home *** CD-ROM | disk | FTP | other *** search
- ;
- ; TITLE DISK HARDWARE READ SPEED TESTER
- ; FILENAME RSPEED.ASM
- ; AUTHOR Robert A. Van Valzah 4/27/79
- ;
- ;
- MAXSECT EQU 100
- $-MACRO
- ;
- PRINT MACRO STRING
- LOCAL MSG,AROUND
- MVI C,9
- LXI D,MSG
- CALL 5
- JMP AROUND
- MSG DB 13,10,STRING,'$'
- AROUND:
- ENDM
- ;
- ;
- ORG 100H
- ENTRY:
- LXI SP,STACK ;LOCAL STACK
- CALL GETVEC ;LINK TO CBIOS
- PRINT 'RSPEED.COM 5/21/79'
- PRINT 'ENTER NUMBER OF SECTORS PER TRACK? '
- CALL GETNUM
- STA NSECTS
- SETSKEW:
- PRINT 'ENTER SKEW FACTOR? '
- CALL GETNUM
- STA SKEW
- ORA A
- JNZ FILLTABL
- PRINT 'ENTER SECTOR NUMBERS, ZERO WHEN DONE'
- LXI H,STABL
- TABSEC:
- CALL GETNUM
- MOV M,A
- ORA A
- JZ GOTTABL
- INX H
- JMP TABSEC
- FILLTABL:
- LXI H,SUT
- MVI C,MAXSECT
- ZAPTABL:
- MVI M,0
- INX H
- DCR C
- JNZ ZAPTABL
- LXI D,STABL+1
- LDA NSECTS
- MOV C,A
- MVI B,1
- STORSEC:
- MOV A,B
- STAX D
- MVI A,LOW(STABL)
- ADD C
- CMP E
- INX D
- MVI A,0
- STAX D
- JZ GOTTABL
- CALL SECAD
- MVI M,0FFH ;SET SECTOR USED FLAG
- LDA SKEW
- ADD B
- MOV B,A
- MTYSEC:
- CALL BMODC
- CALL SECAD
- MOV A,M
- ORA A
- JZ STORSEC
- INR B
- JMP MTYSEC
- ;
- SECAD:
- LXI H,SUT
- MOV A,B
- ADD L
- MOV L,A
- RNC
- INR H
- RET
- ;
- BMODC:
- MOV A,B
- SUB C
- RZ
- RC
- MOV B,A
- RET
- ;
- GOTTABL:
- PRINT 'PRESS ANY KEY TO READ, S TO RESET SKEW . .'
- RDKEY:
- CALL CONIN
- CPI 'S'
- JZ SETSKEW
- CPI 3
- JZ 0
- LXI H,STABL+1
- RDSEC:
- MOV A,M
- ORA A
- JZ GOTTABL
- MOV C,A
- PUSH H
- CALL SETSEC
- CALL READ
- POP H
- INX H
- JMP RDSEC
- ;
- GETNUM:
- MVI C,0
- GN1:
- PUSH B
- CALL CONIN
- MOV C,A
- PUSH PSW
- CALL CONOUT
- POP PSW
- POP B
- CPI 13
- MOV B,A
- MOV A,C
- RZ
- ADD A
- ADD A
- ADD C
- ADD A
- MOV C,A
- MOV A,B
- SUI '0'
- JC GN1
- CPI '9'+1
- JNC GN1
- ADD C
- MOV C,A
- JMP GN1
- ;
- GETVEC:
- LHLD 1
- LXI D,VECTORS
- MVI C,14*3
- GV1:
- MOV A,M
- STAX D
- INX H
- INX D
- DCR C
- JNZ GV1
- RET
- ;
- ; RAM AREAS
- ;
- VECTORS:
- WBOOT DS 3
- CSTS DS 3
- CONIN DS 3
- CONOUT DS 3
- LIST DS 3
- PUNCH DS 3
- READER DS 3
- HOME DS 3
- SELDSK DS 3
- SETTRK DS 3
- SETSEC DS 3
- SETDMA DS 3
- READ DS 3
- WRITE DS 3
- ;
- SKEW DB 0
- NSECTS DB 0
- ;
- DS 30
- STACK:
- ;
- STABL:
- DS MAXSECT
- SUT:
- DS MAXSECT
- ;
- END ENTRY
-