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 / CPMUG029.ARK / WSYSGEN.ASM < prev   
Assembly Source File  |  1984-04-29  |  3KB  |  217 lines

  1. ;
  2. ;NSYSGEN RESOURCED 7/27/78 BY WARD CHRISTENSEN
  3. ;    TO ADD LOOP FUNCTION ON 'PUT SYSTEM'
  4. ;
  5.     ORG    0100H
  6. BDOS    EQU    05H
  7. BUFFER    EQU    0900H
  8.     LXI    SP,STACK
  9.     JMP    START
  10. KEYIN    MVI    C,01H
  11.     CALL    BDOS
  12.     ANI    5FH
  13.     RET
  14. TYPE    MOV    E,A
  15.     MVI    C,02H
  16.     CALL    BDOS
  17.     RET
  18. CRLF    MVI    A,0DH
  19.     CALL    TYPE
  20.     MVI    A,0AH
  21.     CALL    TYPE
  22.     RET
  23. PRTMSG    PUSH    H
  24.     CALL    CRLF
  25.     POP    H
  26. MSGLP    MOV    A,M
  27.     ORA    A
  28.     RZ
  29.     PUSH    H
  30.     CALL    TYPE
  31.     POP    H
  32.     INX    H
  33.     JMP    MSGLP
  34. SELDSK    MOV    C,A
  35.     LHLD    0001H
  36.     LXI    D,0018H
  37.     DAD    D
  38.     PCHL
  39. SETTRK    LHLD    0001H
  40.     LXI    D,001BH
  41.     DAD    D
  42.     PCHL
  43. SETSEC    LHLD    0001H
  44.     LXI    D,001EH
  45.     DAD    D
  46.     PCHL
  47. SETDMA    LHLD    0001H
  48.     LXI    D,0021H
  49.     DAD    D
  50.     PCHL
  51. READSEC    LHLD    0001H
  52.     LXI    D,0024H
  53.     DAD    D
  54.     PCHL
  55. WRSEC    LHLD    0001H
  56.     LXI    D,0027H
  57.     DAD    D
  58.     PCHL
  59. RWSYS    LXI    H,BUFFER
  60.     SHLD    BUFAD
  61.     XRA    A
  62.     STA    TRKNO
  63. LOOP    LXI    H,TRKNO
  64.     MOV    A,M
  65.     CPI    02H
  66.     RNC
  67.     INR    M
  68.     MOV    C,A
  69.     CALL    SETTRK
  70. TRKLOOP    XRA    A
  71.     STA    SECTNO
  72. SECLOOP    CALL    CKEOTRK
  73.     NOP
  74.     NOP
  75.     NOP
  76.     JNC    LOOP
  77.     INR    M
  78.     LHLD    BUFAD
  79.     MOV    B,H
  80.     MOV    C,L
  81.     LXI    D,0080H
  82.     DAD    D
  83.     SHLD    BUFAD
  84.     CALL    SETDMA
  85.     XRA    A
  86.     STA    ERRCT
  87. RETRY    LDA    ERRCT
  88.     CPI    10
  89.     JC    CONT
  90.     LXI    H,PERRMSG
  91.     CALL    PRTMSG
  92.     CALL    KEYIN
  93.     CPI    0DH
  94.     JNZ    REBOOT
  95.     CALL    CRLF
  96.     JMP    SECLOOP
  97. CONT    INR    A
  98.     STA    ERRCT
  99.     LDA    SECTNO
  100.     MOV    C,A
  101.     CALL    SETSEC
  102.     LDA    RWFLG
  103.     ORA    A
  104.     JZ    READING
  105.     CALL    WRSEC
  106.     JMP    CKRETCD
  107. READING    CALL    READSEC
  108. CKRETCD    ORA    A
  109.     JZ    SECLOOP
  110.     JMP    RETRY
  111. KRET1    RET
  112. START    LXI    H,VERSMSG
  113.     CALL    PRTMSG
  114.     LXI    H,GETMSG
  115.     CALL    PRTMSG
  116.     CALL    KEYIN
  117.     MVI    C,01H
  118.     CPI    'Y'
  119.     JZ    GETFRB
  120.     CPI    'B'
  121.     JZ    GETFRB
  122.     MVI    C,00H
  123.     CPI    'A'
  124.     JNZ    ASKPUT
  125. GETFRB    MOV    A,C
  126.     ADI    'A'
  127.     STA    SRCDSK
  128.     MOV    A,C
  129.     CALL    SELDSK
  130.     CALL    CRLF
  131.     LXI    H,SRCMSG
  132.     CALL    PRTMSG
  133.     CALL    KEYIN
  134.     CPI    0DH
  135.     JNZ    REBOOT
  136.     CALL    CRLF
  137.     XRA    A
  138.     STA    RWFLG
  139.     CALL    RWSYS
  140.     LXI    H,CPLTMSG
  141.     CALL    PRTMSG
  142. ASKPUT    CALL    CRLF
  143.     LXI    H,PUTMSG
  144.     CALL    PRTMSG
  145.     CALL    KEYIN
  146.     MVI    C,01H
  147.     CPI    'Y'
  148.     JZ    PUTSYS
  149.     CPI    'B'
  150.     JZ    PUTSYS
  151.     MVI    C,00H
  152.     CPI    'A'
  153.     JNZ    REBOOT
  154. PUTSYS    MOV    A,C
  155.     ADI    'A'
  156.     STA    DESTDSK
  157.     MOV    A,C
  158.     CALL    SELDSK
  159.     CALL    CRLF
  160.     LXI    H,DESTMSG
  161.     CALL    PRTMSG
  162.     CALL    KEYIN
  163.     CPI    0DH
  164.     JNZ    REBOOT
  165.     CALL    CRLF
  166.     LXI    H,RWFLG
  167.     MVI    M,01H
  168.     CALL    RWSYS
  169.     LXI    H,CPLTMSG
  170.     CALL    PRTMSG
  171.     JMP    ASKPUT
  172. REBOOT    LXI    H,BOOTMSG
  173.     CALL    PRTMSG
  174.     CALL    KEYIN
  175.     CPI    0DH
  176.     JNZ    REBOOT
  177.     MVI    A,00H
  178.     CALL    SELDSK
  179.     CALL    CRLF
  180.     JMP    0000H
  181. VERSMSG    DB    'SYSGEN VERSION 1.1',0
  182. GETMSG    DB    'GET SYSTEM? (Y/N)',0
  183. SRCMSG    DB    'SOURCE ON '
  184. SRCDSK    DB    'B, THEN TYPE RETURN',0
  185. PUTMSG    DB    'PUT SYSTEM? (Y/N)',0
  186. DESTMSG    DB    'DESTINATION ON '
  187. DESTDSK    DB    'B, THEN TYPE RETURN',0
  188. PERRMSG    DB    'PERMANENT ERROR, TYPE RETURN '
  189.     DB    'TO IGNORE',0
  190. CPLTMSG    DB    'FUNCTION COMPLETE',0
  191. BOOTMSG    DB    'REBOOTING, TYPE RETURN'
  192.     DB    0,0
  193. TRKNO    DB    0
  194. SECTNO    DB    0
  195. RWFLG    DB    0
  196. BUFAD    DW    0000H
  197. ERRCT    DB    0
  198.     DS    0014H
  199. STACK    DS    001FH
  200. ;
  201. ;CHECK FOR END OF TRK
  202. ;
  203. CKEOTRK    LXI    H,TRKNO
  204.     MOV    A,M
  205.     DCR    A
  206.     DCR    A
  207.     JZ    TRKTWO
  208.     LXI    H,SECTNO
  209.     MOV    A,M
  210.     CPI    1AH
  211.     RET
  212. TRKTWO    LXI    H,SECTNO
  213.     MOV    A,M
  214.     CPI    22H
  215.     RET
  216.     END
  217.