home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / SIMTEL / CPMUG / CPMUG038.ARK / RSPEED.ASM < prev    next >
Assembly Source File  |  1984-04-29  |  2KB  |  189 lines

  1. ;
  2. ; TITLE        DISK HARDWARE READ SPEED TESTER
  3. ; FILENAME    RSPEED.ASM
  4. ; AUTHOR    Robert A. Van Valzah   4/27/79
  5. ;
  6. ;
  7. MAXSECT    EQU    100
  8. $-MACRO
  9. ;
  10. PRINT    MACRO    STRING
  11.     LOCAL    MSG,AROUND
  12.     MVI    C,9
  13.     LXI    D,MSG
  14.     CALL    5
  15.     JMP    AROUND
  16. MSG    DB    13,10,STRING,'$'
  17. AROUND:
  18.     ENDM
  19. ;
  20. ;
  21.     ORG    100H
  22. ENTRY:
  23.     LXI    SP,STACK ;LOCAL STACK
  24.     CALL    GETVEC    ;LINK TO CBIOS
  25.     PRINT    'RSPEED.COM  5/21/79'
  26.     PRINT    'ENTER NUMBER OF SECTORS PER TRACK? '
  27.     CALL    GETNUM
  28.     STA    NSECTS
  29. SETSKEW:
  30.     PRINT    'ENTER SKEW FACTOR? '
  31.     CALL    GETNUM
  32.     STA    SKEW
  33.     ORA    A
  34.     JNZ    FILLTABL
  35.     PRINT    'ENTER SECTOR NUMBERS, ZERO WHEN DONE'
  36.     LXI    H,STABL
  37. TABSEC:
  38.     CALL    GETNUM
  39.     MOV    M,A
  40.     ORA    A
  41.     JZ    GOTTABL
  42.     INX    H
  43.     JMP    TABSEC
  44. FILLTABL:
  45.     LXI    H,SUT
  46.     MVI    C,MAXSECT
  47. ZAPTABL:
  48.     MVI    M,0
  49.     INX    H
  50.     DCR    C
  51.     JNZ    ZAPTABL
  52.     LXI    D,STABL+1
  53.     LDA    NSECTS
  54.     MOV    C,A
  55.     MVI    B,1
  56. STORSEC:
  57.     MOV    A,B
  58.     STAX    D
  59.     MVI    A,LOW(STABL)
  60.     ADD    C
  61.     CMP    E
  62.     INX    D
  63.     MVI    A,0
  64.     STAX    D
  65.     JZ    GOTTABL
  66.     CALL    SECAD
  67.     MVI    M,0FFH    ;SET SECTOR USED FLAG
  68.     LDA    SKEW
  69.     ADD    B
  70.     MOV    B,A
  71. MTYSEC:
  72.     CALL    BMODC
  73.     CALL    SECAD
  74.     MOV    A,M
  75.     ORA    A
  76.     JZ    STORSEC
  77.     INR    B
  78.     JMP    MTYSEC
  79. ;
  80. SECAD:
  81.     LXI    H,SUT
  82.     MOV    A,B
  83.     ADD    L
  84.     MOV    L,A
  85.     RNC
  86.     INR    H
  87.     RET
  88. ;
  89. BMODC:
  90.     MOV    A,B
  91.     SUB    C
  92.     RZ
  93.     RC
  94.     MOV    B,A
  95.     RET
  96. ;
  97. GOTTABL:
  98.     PRINT    'PRESS ANY KEY TO READ, S TO RESET SKEW . .'
  99. RDKEY:
  100.     CALL    CONIN
  101.     CPI    'S'
  102.     JZ    SETSKEW
  103.     CPI    3
  104.     JZ    0
  105.     LXI    H,STABL+1
  106. RDSEC:
  107.     MOV    A,M
  108.     ORA    A
  109.     JZ    GOTTABL
  110.     MOV    C,A
  111.     PUSH    H
  112.     CALL    SETSEC
  113.     CALL    READ
  114.     POP    H
  115.     INX    H
  116.     JMP    RDSEC
  117. ;
  118. GETNUM:
  119.     MVI    C,0
  120. GN1:
  121.     PUSH    B
  122.     CALL    CONIN
  123.     MOV    C,A
  124.     PUSH    PSW
  125.     CALL    CONOUT
  126.     POP    PSW
  127.     POP    B
  128.     CPI    13
  129.     MOV    B,A
  130.     MOV    A,C
  131.     RZ
  132.     ADD    A
  133.     ADD    A
  134.     ADD    C
  135.     ADD    A
  136.     MOV    C,A
  137.     MOV    A,B
  138.     SUI    '0'
  139.     JC    GN1
  140.     CPI    '9'+1
  141.     JNC    GN1
  142.     ADD    C
  143.     MOV    C,A
  144.     JMP    GN1
  145. ;
  146. GETVEC:
  147.     LHLD    1
  148.     LXI    D,VECTORS
  149.     MVI    C,14*3
  150. GV1:
  151.     MOV    A,M
  152.     STAX    D
  153.     INX    H
  154.     INX    D
  155.     DCR    C
  156.     JNZ    GV1
  157.     RET
  158. ;
  159. ; RAM AREAS
  160. ;
  161. VECTORS:
  162. WBOOT    DS    3
  163. CSTS    DS    3
  164. CONIN    DS    3
  165. CONOUT    DS    3
  166. LIST    DS    3
  167. PUNCH    DS    3
  168. READER    DS    3
  169. HOME    DS    3
  170. SELDSK    DS    3
  171. SETTRK    DS    3
  172. SETSEC    DS    3
  173. SETDMA    DS    3
  174. READ    DS    3
  175. WRITE    DS    3
  176. ;
  177. SKEW    DB    0
  178. NSECTS    DB    0
  179. ;
  180.     DS    30
  181. STACK:
  182. ;
  183. STABL:
  184.     DS    MAXSECT
  185. SUT:
  186.     DS    MAXSECT
  187. ;
  188.     END    ENTRY
  189.