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 / CPM / TURBODSG / MAC < prev    next >
Text File  |  2000-06-30  |  65KB  |  5,082 lines

  1. ; NSWP VERS 2.05.26 as of 03/02/86
  2. ; BY DISZILOG 12/03/85 (VER .21,.22 LOST)
  3. ;
  4. .Z80
  5. ;
  6. CR    EQU    0DH
  7. LF    EQU    0AH
  8. ;
  9. BDOS    EQU    5
  10. RSTDSK    EQU    13        ; RESET DISK SYSTEM (HERE: RESET DMA)
  11. SELDSK    EQU    14        ; SELECT DISK
  12. FOPEN    EQU    15        ; OPEN FILE
  13. FCLOSE    EQU    16        ; CLOSE FILE
  14. SFIRST    EQU    17        ; SEARCH FOR FIRST
  15. SNEXT    EQU    18        ; SEARCH FOR NEXT
  16. FDELT    EQU    19        ; FILE DELETE
  17. FREAD    EQU    20        ; FILE READ
  18. FWRIT    EQU    21        ; FILE WRITE
  19. FMAKE    EQU    22        ; MAKE FILE
  20. FRENAM    EQU    23        ; RENAME FILE
  21. GETDRV    EQU    25        ; GET DRIVE
  22. SETDMA    EQU    26        ; SET DMA ADDRESS
  23. SETATT    EQU    30        ; SET ATTRIBUTE
  24. GSUSER    EQU    32        ; GET/SET USER
  25. ;
  26. TDOS    EQU    50H
  27. SABORT    EQU    8        ; SET ABORT ADDRESS
  28. GETSER    EQU    12        ; GET SERIAL NUMBER / PRIVILEGE STATUS
  29. COMPAT    EQU    13        ; SET COMPATIBILITY FLAGS
  30. SNDCL    EQU    18        ; SEND COMMAND LINE
  31. ;
  32. DFCB    EQU    5CH
  33. DBUF    EQU    80H
  34. STACK    EQU    3C00H
  35. ;
  36.     CSEG
  37. ;
  38. START:    JP    BEGIN
  39. ;
  40. MAXLIN::DB    24
  41. ;
  42. REVON::    DS    7
  43. REVOF::    DS    7
  44.     DB    'NSWP (c) 1983 by Dave Rand'
  45. ;
  46. BEGIN:    LD    SP,STACK        ; SET UP LOCAL STACK
  47.     LD    A,(TDOS)        ; CHECK IF RUNNING TURBODOS
  48.     CP    0C3H
  49.     JR    Z,ISTURB        ; SKIP IF TD...
  50.     CALL    ILPRT            ;   ELSE BARF
  51.     DB    CR,LF,7
  52.     'ERROR: TurboDOS ver 1.3 and up only!',CR,LF,0
  53.     RST    0
  54. ;
  55. ISTURB:    LD    C,GETSER        ; CHECK PRIV STATUS
  56.     CALL    TDOS
  57.     BIT    7,B
  58.     JR    NZ,..ISP
  59.     CALL    ILPRT
  60.     DB    CR,LF,7
  61.     'NON-PRIVILEGED USER',CR,LF,0
  62.     RST    0
  63. ;
  64. ..ISP:    LD    C,COMPAT
  65.     LD    E,0F8H            ; SET COMPAT FLAGS
  66.     CALL    TDOS
  67.     LD    C,SABORT
  68.     LD    DE,LOOP            ; SET ABORT ADDRESS
  69.     CALL    TDOS
  70.     LD    HL,(BDOS+1)        ; GET BDOS ENTRY POINT
  71.     DEC    H            ; PROTECT ZONE
  72.     LD    L,0            ; MAKE EVEN PAGE
  73.     LD    (RAMTOP),HL        ; STORE AS END OF TPA
  74.     LD    C,GETDRV        ; GET CURRENT DRIVE
  75.     CALL    BDOS
  76.     LD    (DRIVE1),A        ; STORE IT AWAY
  77.     LD    (DRIVE2),A
  78.     LD    C,GSUSER        ; GET CURRENT USER
  79.     LD    E,0FFH
  80.     CALL    BDOS
  81.     LD    (USER1),A        ; STORE IT AWAY, TOO
  82.     LD    (USER2),A
  83.     LD    HL,DFCB+1        ; MOVE DEFAULT FCB...
  84.     LD    DE,FCB1+1        ;   INTO INTERNAL FCB
  85.     LD    B,11            ; (11 BYTES)
  86.     CALL    MOVHDB
  87.     LD    A,'?'            ; SET EXTENT BYTES
  88.     LD    (DE),A            ;   TO WILDCARD
  89.     INC    DE
  90.     LD    (DE),A
  91.     INC    DE
  92.     LD    (DE),A
  93.     INC    DE
  94.     LD    (DE),A
  95.     LD    HL,-1            ; INITIALIZE FILECOUNT
  96.     LD    (NMBFLS),HL        ;   AND FILE POINTER
  97.     LD    (FILNMB),HL
  98.     CALL    PRCMDL            ; PROCESS COMMAND LINE
  99.     CALL    CRCRCT            ; SET UP CRC LOOKUP TABLE
  100. RELOG:    LD    C,RSTDSK        ; SET DMA TO 80H
  101.     CALL    BDOS
  102.     CALL    DSPBNR            ; DISPLAY BANNER
  103.     CALL    GTBKSZ            ; GET DRIVE'S BLOCK SIZE
  104.     CALL    ILPRT            ; PRINT INFO
  105.     DB    'Drive ',0
  106.     LD    A,(USER2)        ; GET USER
  107.     INC    A            ; IF USER<>0FFH...
  108.     JR    NZ,.NALL        ;   THEN DISPLAY USER NUMBER
  109.     LD    A,'*'            ;     ELSE DISPLAY A "*"
  110.     CALL    PUTCH
  111.     LD    A,'?'            ;     BE SURE FCB BYTE 1 IS "?"
  112.     JR    .ALLU
  113. ;
  114. .NALL:    DEC    A
  115.     PUSH    AF
  116.     LD    E,A
  117.     CALL    LOGUSR
  118.     POP    AF
  119.     LD    L,A
  120.     LD    H,0
  121.     CALL    HXDCNX
  122.     XOR    A
  123. .ALLU:    LD    (FCB1),A        ; SET DRIVE FIELD
  124.     LD    A,(DRIVE2)
  125.     ADD    A,'A'
  126.     CALL    PUTCH
  127.     CALL    ILPRT
  128.     DB    ':  ',0
  129.     LD    HL,-1
  130.     LD    (NMBFLS),HL        ; INITIALIZE # OF FILES
  131.     INC    HL
  132.     LD    (FREEK),HL        ; INITIALIZE FREESPACE
  133.     LD    (TOTALK),HL        ;   AND TOTAL FILESIZE
  134.     CALL    CALCFS            ; CALCULATE FREE SPACE
  135.     LD    HL,STACK        ; HL = BUFFER
  136.     LD    DE,FCB1            ; DE = FILENAME MATCH
  137.     CALL    WILDEX            ; EXPAND WILDCARD INTO BUFFER
  138.     LD    A,L            ; CHECK IF ANY FILES
  139.     OR    H
  140.     DEC    HL
  141.     JR    Z,.NFLSF        ; NO FILES FOUND
  142.     INC    HL            ; ELSE INCREMENT COUNT
  143.     LD    (NMBFLS),HL        ;   AND STORE
  144.     CALL    PRPBUF            ; PRE-PROCESS BUFFER
  145.     CALL    SORTBF            ; SORT FILENAME BUFFER
  146.     CALL    UNDUPE            ; REMOVE DUPLICATES
  147.     LD    HL,(Y2C15)
  148.     DEC    HL
  149.     LD    (NMBFLS),HL
  150. .NFLSF:    PUSH    HL
  151.     CALL    PSTATS
  152.     POP    HL
  153.     INC    HL
  154.     CALL    CLCFPT
  155.     LD    (FILPTR),HL
  156.     LD    HL,0
  157.     LD    (FILNMB),HL
  158.     LD    (TAGTOT),HL
  159.     LD    (TAGTO1),HL
  160. ;
  161. ; MAIN LOOP. COME HERE AFTER EVERY COMMAND.
  162. ;
  163. LOOP:    LD    SP,STACK        ; RESET STACK
  164.     LD    A,(USER2)        ; GET REQUESTED USER
  165.     LD    (USER3),A        ; SAVE IT
  166.     CALL    LOGDUE            ; LOG IT IN
  167.     LD    HL,(NMBFLS)        ; CHECK NUMBER OF FILES
  168.     INC    HL
  169.     LD    A,L            ; HAVE ANY?
  170.     OR    H
  171.     JR    NZ,HAVEFL        ;   YES, SKIP TO MAIN COMMAND ENTRY
  172.     CALL    ILPRT            ;     ELSE DISPLAY MESSAGE
  173.     DB    CR,LF,CR,LF
  174.     DB    'No files.',0
  175.     CALL    CIN            ; ACCEPT ONLY L,S,X,Z COMMANDS
  176.     CP    'X'
  177.     JP    Z,0            ; QUIT
  178.     CP    'L'
  179.     JP    Z,LOGNEW
  180.     CP    'S'
  181.     JP    Z,FREESP
  182.     CP    'Z'
  183.     JP    Z,CHANGE
  184.     LD    A,7
  185.     CALL    PUTCH
  186.     JR    LOOP
  187. ;
  188. ; COME HERE FOR MAIN COMMAND ACCEPTOR
  189. ;
  190. HAVEFL:    CALL    CRLF            ; NEW LINE
  191.     LD    HL,(FILNMB)        ; GET CURRNT FILE NUMBER
  192.     CALL    CLCFPT            ; POINT TO FILENAME
  193.     CALL    DSPCFN            ; DISPLAY IT WITH SIZE/STATUS
  194.     CALL    CIN            ; GET A CHARACTER
  195.     LD    B,A            ; MOVE CHAR INTO B
  196.     LD    HL,LOOP            ; SET UP RETURN STACK
  197.     PUSH    HL
  198.     LD    HL,CMDTBL        ; POINT TO COMMAND TABLE
  199. SRHCMD:    LD    A,(HL)            ; GET COMMAND BYTE
  200.     OR    A            ; IF ZERO
  201.     JR    Z,..ERR            ;   THEN COMMAND NOT FOUND
  202.     CP    B            ; CHECK IF FOUND
  203.     INC    HL            ; POINT TO ADDRESS
  204.     JR    Z,FNDCMD        ; BRANCH IF FOUND
  205.     INC    HL            ; ELSE POINT TO
  206.     INC    HL            ;   NEXT CHARACTER
  207.     JR    SRHCMD            ;   AND REPEAT
  208. ;
  209. FNDCMD:    LD    E,(HL)            ; GET COMMAND ROUTINE ADDRESS
  210.     INC    HL
  211.     LD    D,(HL)
  212.     PUSH    DE            ; GO TO COMMAND ROUTINE
  213.     RET
  214. ;
  215. ..ERR:    LD    A,7            ; SOUND BELL IF ERROR
  216.     JP    PUTCH
  217. ;
  218. ; PRINT STATS
  219. ;
  220. PSTATS:    PUSH    HL
  221.     CALL    CLCTLK
  222.     LD    HL,(TOTALK)
  223.     LD    C,4
  224.     CALL    HEXDEC
  225.     CALL    ILPRT
  226.     DB    'K in ',0
  227.     POP    HL
  228.     INC    HL
  229.     LD    C,4
  230.     CALL    HEXDEC
  231.     CALL    ILPRT
  232.     DB    ' files.  ',0
  233.     LD    HL,(FREEK)
  234.     LD    C,4
  235.     CALL    HEXDEC
  236.     CALL    ILPRT
  237.     DB    'K free.',0
  238.     RET
  239. ;
  240. ; COMMAND TABLE - LETTER FOLLOWED BY ADDRESS
  241. ;
  242. CMDTBL:    DB    ' '
  243.     DW    FORWRD
  244.     DB    CR
  245.     DW    FORWRD
  246.     DB    'B'
  247.     DW    BAKWRD
  248.     DB    'X'
  249.     DW    0            ; QUIT
  250.     DB    'S'
  251.     DW    FREESP
  252.     DB    'D'
  253.     DW    DELETE
  254.     DB    'T'
  255.     DW    TAGFLE
  256.     DB    'U'
  257.     DW    UNTAGF
  258.     DB    'V'
  259.     DW    VIEWFL
  260.     DB    'P'
  261.     DW    PRINTF
  262.     DB    'E'
  263.     DW    ERASEF
  264.     DB    'L'
  265.     DW    LOGNEW
  266.     DB    'C'
  267.     DW    COPYFL
  268.     DB    'M'
  269.     DW    MASSCP
  270.     DB    'A'
  271.     DW    TAGAGN
  272.     DB    'R'
  273.     DW    RENAME
  274.     DB    'F'
  275.     DW    FINDFL
  276.     DB    'W'
  277.     DW    MASSTG
  278.     DB    'Y'
  279.     DW    SETATR
  280.     DB    '?'
  281.     DW    HELPME
  282.     DB    'Q'
  283.     DW    SQZUSQ
  284.     DB    'Z'
  285.     DW    CHANGE
  286.     DB    'G'
  287.     DW    GOEXEC
  288.     DB    0
  289. ;
  290. ; EXECUTE A COMMAND
  291. ;
  292. GOEXEC:    LD    HL,(FILNMB)
  293.     CALL    CLCFPT            ; HL=FILENAME POINTER
  294.     PUSH    HL            ; SAVE
  295.     LD    DE,8
  296.     ADD    HL,DE            ; POINT TO TYPE
  297.     LD    A,(HL)
  298.     AND    7FH
  299.     CP    'C'
  300.     JR    NZ,NOCOMF
  301.     INC    HL
  302.     LD    A,(HL)
  303.     AND    7FH
  304.     CP    'O'
  305.     JR    NZ,NOCOMF
  306.     INC    HL
  307.     LD    A,(HL)
  308.     AND    7FH
  309.     CP    'M'
  310.     JR    NZ,NOCOMF
  311.     LD    HL,80H
  312.     LD    (HL),'\'
  313.     INC    HL
  314.     POP    DE            ; GET FP
  315.     LD    B,8            ; 8 CHARS MAX
  316. .CCL:    LD    A,(DE)            ; GET A CHAR
  317.     CP    ' '            ; BLANK?
  318.     JR    Z,.CCE            ;   YES
  319.     LD    (HL),A
  320.     INC    HL
  321.     INC    DE
  322.     DJNZ    .CCL
  323. .CCE:    XOR    A
  324.     LD    (HL),A
  325.     LD    E,0FFH
  326.     LD    C,47
  327.     CALL    5
  328. ;
  329. NOCOMF:    CALL    ILPRT
  330.     DB    ' not a .COM file',7,0
  331.     JP    LOOP
  332. ;
  333. ; FORWARD A FILE
  334. ;
  335. FORWRD:    LD    HL,(FILNMB)
  336.     INC    HL
  337. A0346:    LD    (FILNMB),HL
  338.     EX    DE,HL
  339.     LD    HL,(NMBFLS)
  340.     CALL    CPHLDE
  341.     JP    NC,LOOP
  342.     LD    HL,0
  343.     LD    (FILNMB),HL
  344.     CALL    CRLF
  345.     JP    LOOP
  346. ;
  347. ; BACKWARD A FILE
  348. ;
  349. BAKWRD:    LD    HL,(FILNMB)
  350.     LD    A,H
  351.     OR    L
  352.     DEC    HL
  353.     LD    (FILNMB),HL
  354.     JP    NZ,LOOP
  355.     CALL    CRLF
  356.     LD    HL,(NMBFLS)
  357.     LD    (FILNMB),HL
  358.     JP    LOOP
  359. ;
  360. ; CHANGE DRIVE
  361. ;
  362. CHANGE:    CALL    GETDR
  363.     SUB    41H
  364.     LD    E,A
  365.     PUSH    DE
  366.     LD    C,26
  367.     LD    D,DBUF
  368.     CALL    TDOS
  369.     POP    DE
  370.     LD    C,25
  371.     LD    D,-1
  372.     PUSH    DE
  373.     CALL    TDOS
  374.     OR    A
  375.     JR    Z,LOKOK
  376.     CALL    ILPRT
  377.     DB    CR,LF
  378.     DB    '-- DRIVE IN USE --',7,0
  379.     JP    LOOP
  380. ;
  381. LOKOK:    CALL    ILPRT
  382.     DB    CR,LF
  383.     DB    'Change disk, press RETURN to continue:',0
  384. ..R?.:    LD    C,3
  385.     CALL    BDOS
  386.     CP    CR
  387.     LD    A,7
  388.     JR    Z,..RT.
  389.     CALL    PUTCH
  390.     JR    ..R?.
  391. ;
  392. ..RT.:    LD    C,25
  393.     POP    DE
  394.     INC    D
  395.     CALL    TDOS
  396.     JP    LOOP
  397. ;
  398. GETDR:    CALL    ILPRT
  399.     DB    '  Which drive? ',0
  400.     CALL    INPLN
  401.     LD    A,(LINET)
  402.     CP    'A'
  403.     JP    C,LOOP
  404.     CP    'P'+1
  405.     JP    NC,LOOP
  406.     RET
  407. ;
  408. ; DISPLAY FREE SPACE
  409. ;
  410. FREESP:    CALL    GETDR
  411.     PUSH    AF
  412.     LD    C,RSTDSK
  413.     CALL    BDOS
  414.     LD    A,(DRIVE2)
  415.     LD    B,A
  416.     POP    AF
  417.     SUB    41H
  418.     LD    (DRIVE2),A
  419.     PUSH    BC
  420.     PUSH    AF
  421.     CALL    CRLF
  422.     CALL    GTBKSZ
  423.     CALL    CALCFS
  424.     CALL    CRLF
  425.     LD    HL,(FREEK)
  426.     LD    C,4
  427.     CALL    HEXDEC
  428.     CALL    ILPRT
  429.     DB    'K remaining on drive ',0
  430.     POP    AF
  431.     ADD    A,'A'
  432.     CALL    PUTCH
  433.     LD    A,':'
  434.     CALL    PUTCH
  435.     CALL    CRLF
  436.     POP    BC
  437.     LD    A,B
  438.     LD    (DRIVE2),A
  439.     CALL    GTBKSZ
  440.     JP    LOOP
  441. ;
  442. ; SET ATTRIBUTES
  443. ;
  444. SETATR:    CALL    ILPRT
  445.     DB    '  Which attributes (2-4,R,G,A)? ',0
  446.     CALL    INPLN
  447.     LD    HL,DSTFCB+1
  448.     LD    B,11
  449. A0419:    LD    (HL),0
  450.     INC    HL
  451.     DJNZ    A0419
  452.     LD    HL,LINEC
  453.     LD    A,(HL)
  454.     OR    A
  455.     JP    Z,LOOP
  456.     INC    HL
  457.     LD    (Y2C3D),HL
  458. A042C:    LD    HL,(Y2C3D)
  459.     EX    DE,HL
  460.     CALL    SKNBL
  461.     EX    DE,HL
  462.     INC    HL
  463.     LD    (Y2C3D),HL
  464.     OR    A
  465.     JR    Z,A0457
  466.     LD    HL,ATTRS
  467.     LD    DE,DSTFCB+1
  468.     LD    B,11
  469. A0444:    CP    (HL)
  470.     JR    Z,A0451
  471.     INC    HL
  472.     INC    DE
  473.     DJNZ    A0444
  474.     JR    A042C
  475. ;
  476. A0451:    LD    A,80H
  477.     LD    (DE),A
  478.     JR    A042C
  479. ;
  480. A0457:    LD    A,2
  481.     JP    A098F
  482. ;
  483. ATTRS:    DB    'z234zzzzRGA'
  484. ;
  485. ; DELETE A FILE
  486. ;
  487. DELETE:    CALL    ILPRT
  488.     DB    '  Delete file? ',0
  489.     CALL    CIN
  490.     CP    'Y'
  491.     JP    NZ,LOOP
  492.     LD    HL,(FILNMB)
  493.     CALL    DELFHL
  494.     JP    LOOP
  495. ;
  496. ; DELETE FILE # IN HL
  497. ;
  498. DELFHL:    CALL    CLCFPT
  499.     PUSH    HL
  500.     CALL    SUBUP
  501.     POP    HL
  502.     PUSH    HL
  503.     LD    DE,DFCB+1
  504.     XOR    A
  505.     LD    (DFCB),A
  506.     LD    B,11
  507.     CALL    MOVHDB
  508.     PUSH    HL
  509.     PUSH    DE
  510.     POP    HL
  511.     INC    DE
  512.     LD    B,22
  513.     LD    (HL),0
  514.     CALL    MOVHDB
  515.     LD    E,0FFH
  516.     CALL    LOGUSR
  517.     LD    E,A
  518.     POP    HL
  519.     PUSH    DE
  520.     LD    E,(HL)
  521.     CALL    LOGUSR
  522.     LD    A,(DFCB+9)
  523.     AND    80H
  524.     JR    Z,NOTRDO
  525.     CALL    ILPRT
  526.     DB    '  R/O. Delete? ',7,0
  527.     CALL    CIN
  528.     CP    'Y'
  529.     JR    Z,DELRDO
  530.     POP    DE
  531.     POP    HL
  532.     RET
  533. ;
  534. ; DELETE R/O FILE
  535. ;
  536. DELRDO:    LD    A,(DFCB+9)
  537.     AND    7FH
  538.     LD    (DFCB+9),A
  539.     LD    DE,DFCB
  540.     CALL    SATTRB
  541. NOTRDO:    LD    DE,DFCB
  542.     CALL    DELDE
  543.     JR    NZ,DLTD
  544. NTDLT:    CALL    ILPRT
  545.     DB    ' Can''t delete file',7,0
  546.     JP    LOOP
  547. ;
  548. DLTD:    POP    DE
  549.     CALL    LOGUSR
  550.     LD    HL,(NMBFLS)
  551.     LD    DE,(FILNMB)
  552.     OR    A
  553.     SBC    HL,DE
  554.     ADD    HL,HL
  555.     ADD    HL,HL
  556.     ADD    HL,HL
  557.     ADD    HL,HL
  558.     PUSH    HL
  559.     POP    BC
  560.     POP    HL
  561.     PUSH    HL
  562.     LD    DE,10H
  563.     ADD    HL,DE
  564.     POP    DE
  565.     LD    A,B
  566.     OR    C
  567.     JR    Z,A0523
  568. A0519:    LD    A,(HL)
  569.     LD    (DE),A
  570.     INC    HL
  571.     INC    DE
  572.     DEC    BC
  573.     LD    A,B
  574.     OR    C
  575.     JR    NZ,A0519
  576. A0523:    LD    HL,(NMBFLS)
  577.     DEC    HL
  578.     LD    (NMBFLS),HL
  579.     EX    DE,HL
  580.     LD    HL,(FILNMB)
  581.     CALL    CPHLDE
  582.     RET    C
  583.     RET    Z
  584.     DEC    HL
  585.     LD    (FILNMB),HL
  586.     RET
  587. ;
  588. ; ERASE FILE
  589. ;
  590. ERASEF:    CALL    ILPRT
  591.     DB    CR,LF
  592.     DB    'Erase Tagged or Untagged files (T/U)? ',0
  593.     CALL    CIN
  594.     CP    'T'
  595.     JR    Z,A0571
  596.     CP    'U'
  597.     JP    NZ,LOOP
  598. A0571:    CP    'T'
  599.     LD    A,1
  600.     JR    Z,A0579
  601.     XOR    A
  602. A0579:    LD    (Y2C0C),A
  603. A057C:    CALL    ILPRT
  604.     DB    CR,LF
  605.     DB    'Do you wish to be prompted (Y/N/A)? ',0
  606.     CALL    CIN
  607.     CP    3
  608.     JP    Z,LOOP
  609.     CP    'A'
  610.     JP    Z,LOOP
  611.     CP    'N'
  612.     JR    Z,A05C2
  613.     CP    'Y'
  614.     LD    A,1
  615.     JR    NZ,A057C
  616.     JR    A05C3
  617. ;
  618. A05C2:    XOR    A
  619. A05C3:    LD    (Y2C33),A
  620.     LD    HL,0
  621. A05C9:    PUSH    HL
  622.     LD    (FILNMB),HL
  623.     CALL    CLCFPT
  624.     PUSH    HL
  625.     CALL    ADDH12
  626.     LD    A,(HL)
  627.     AND    1
  628.     LD    B,A
  629.     LD    A,(Y2C0C)
  630.     CP    B
  631.     POP    HL
  632.     JR    NZ,A0633
  633.     PUSH    HL
  634.     CALL    ILPRT
  635.     DB    CR,LF
  636.     DB    'Deleting  ---> ',0
  637.     POP    HL
  638.     CALL    A13DA
  639.     LD    A,(Y2C33)
  640.     OR    A
  641.     JR    Z,A0624
  642.     CALL    ILPRT
  643.     DB    '  Delete (Y/N/A)? ',0
  644.     CALL    CIN
  645.     CP    'A'
  646.     JR    Z,A0647
  647.     CP    'Y'
  648.     JR    NZ,A0633
  649. A0624:    CALL    A1598
  650.     JR    Z,A0650
  651.     POP    HL
  652.     PUSH    HL
  653.     CALL    DELFHL
  654.     POP    HL
  655.     JR    A0635
  656. ;
  657. A0633:    POP    HL
  658.     INC    HL
  659. A0635:    EX    DE,HL
  660.     LD    HL,(NMBFLS)
  661.     INC    HL
  662.     LD    A,L
  663.     OR    H
  664.     JR    Z,A0647
  665.     DEC    HL
  666.     CALL    CPHLDE
  667.     EX    DE,HL
  668.     JP    NC,A05C9
  669. A0647:    LD    HL,0
  670.     LD    (FILNMB),HL
  671.     JP    LOOP
  672. ;
  673. A0650:    LD    HL,0
  674.     LD    (FILNMB),HL
  675.     JP    A0B55
  676. ;
  677. ; ADD UP TAGGED FILES AND DISPLAY
  678. ;
  679. ADDUP:    LD    A,(HL)            ; GET TAG FLAG
  680.     LD    (HL),1            ; SET TO TAGGED
  681.     CP    1            ; IF ALREADY TAGGED
  682.     JR    Z,.TALRY        ;   THEN SKIP
  683.     INC    HL
  684.     CALL    CLCFSZ            ; CALC FILE SIZE
  685.     PUSH    HL
  686.     LD    HL,(TAGTO1)        ; ACCUMULATE 1K SIZE TOTAL
  687.     ADD    HL,DE
  688.     LD    (TAGTO1),HL
  689.     POP    HL
  690.     EX    DE,HL
  691.     LD    HL,(TAGTOT)        ; ACCUMULATE CUR BLK TOTAL
  692.     ADD    HL,DE
  693.     LD    (TAGTOT),HL
  694. .TALRY:    LD    HL,(TAGTOT)
  695.     LD    C,4
  696.     CALL    HEXDEC
  697.     CALL    ILPRT
  698.     DB    'K (',0
  699.     LD    HL,(TAGTO1)
  700.     LD    C,4
  701.     CALL    HEXDEC
  702.     CALL    ILPRT
  703.     DB    'K).',0
  704.     RET
  705. ;
  706. ; TAG FILE
  707. ;
  708. TAGFLE:    CALL    .MTGDF
  709.     LD    HL,(FILNMB)
  710.     CALL    CLCFPT
  711.     CALL    ADDH12
  712.     CALL    ADDUP
  713.     JP    FORWRD
  714. ;
  715. .MTGDF:    CALL    ILPRT
  716.     DB    '  Tagged files = ',0
  717.     RET
  718. ;
  719. ; UNTAG FILE
  720. ;
  721. UNTAGF:    CALL    .MTGDF            ; DISPLAY MESSAGE
  722.     LD    HL,(FILNMB)
  723.     CALL    CLCFPT
  724.     CALL    SUBUP            ; SUBTRACT FILESIZE FROM TOTAL
  725.     CALL    .TALRY
  726.     JP    FORWRD
  727. ;
  728. SUBUP:    CALL    ADDH12
  729.     LD    A,(HL)
  730.     LD    (HL),0
  731.     CP    1
  732.     RET    NZ
  733.     PUSH    HL
  734.     INC    HL
  735.     CALL    CLCFSZ
  736.     PUSH    HL
  737.     LD    HL,(TAGTO1)
  738.     OR    A
  739.     SBC    HL,DE
  740.     LD    (TAGTO1),HL
  741.     POP    HL
  742.     EX    DE,HL
  743.     LD    HL,(TAGTOT)
  744.     OR    A
  745.     SBC    HL,DE
  746.     LD    (TAGTOT),HL
  747.     POP    HL
  748.     RET
  749. ;
  750. ; LOG INTO NEW DRIVE, USER OR FILEMATCH
  751. ;
  752. LOGNEW:    LD    C,GETDRV        ; GET DRIVE
  753.     CALL    BDOS
  754.     LD    E,A            ; DRIVE TO E
  755.     LD    C,26            ; FLUSH
  756.     LD    D,80H            ; UNCONDITIONAL
  757.     CALL    TDOS
  758.     CALL    ILPRT
  759.     DB    '  New drive/user/mask? ',0
  760.     CALL    INPLN
  761.     LD    HL,LINEC
  762.     LD    A,(HL)
  763.     OR    A
  764.     JP    Z,LOOP
  765.     INC    HL
  766.     LD    (Y2C3D),HL
  767.     CALL    PARSDF
  768.     LD    A,(DFCB)
  769.     OR    A
  770.     JR    NZ,A072C
  771.     LD    A,(DRIVE2)
  772.     INC    A
  773. A072C:    DEC    A
  774.     LD    (DRIVE2),A
  775.     LD    A,(Y2C3A)
  776.     CP    0FFH
  777.     JR    NZ,A0745
  778.     LD    A,(LINET+1)
  779.     CP    '*'
  780.     LD    A,0FFH
  781.     JR    Z,A0745
  782.     LD    A,(USER2)
  783. A0745:    LD    (USER2),A
  784.     LD    A,(DFCB+1)
  785.     CP    ' '
  786.     JR    NZ,A075D
  787.     LD    HL,DFCB+1
  788.     LD    DE,DFCB+2
  789.     LD    B,10
  790.     LD    (HL),'?'
  791.     CALL    MOVHDB
  792. A075D:    LD    HL,DFCB
  793.     LD    DE,FCB1
  794.     LD    B,12
  795.     CALL    MOVHDB
  796.     CALL    CRLF
  797.     CALL    CRLF
  798.     JP    RELOG
  799. ;
  800. A0771:    PUSH    HL
  801.     XOR    A
  802.     LD    (CRCFLG),A
  803. A0776:    LD    A,(HL)
  804.     OR    A
  805.     JR    Z,A0784
  806.     CP    'V'
  807.     INC    HL
  808.     JR    NZ,A0776
  809.     LD    (CRCFLG),A
  810. A0784:    POP    HL
  811.     RET
  812. ;
  813. A0786:    CALL    ILPRT
  814.     DB    CR,LF
  815.     DB    'Illegal drive code.',0
  816.     JP    LOOP
  817. ;
  818. A07A2:    CALL    A0771
  819.     LD    A,(USER2)
  820.     LD    (Y2C3A),A
  821.     LD    A,(DRIVE2)
  822.     LD    (Y2C38),A
  823.     LD    A,(HL)
  824.     CP    '0'
  825.     JR    C,A0786
  826.     CP    '9'+1
  827.     JR    C,A07D2
  828.     CP    'A'
  829.     JR    C,A0786
  830.     CP    'P'+1
  831.     JR    NC,A0786
  832.     SUB    'A'
  833.     LD    (Y2C38),A
  834.     INC    HL
  835.     LD    A,(HL)
  836.     CP    ':'
  837.     RET    Z
  838.     OR    A
  839.     RET    Z
  840. ;
  841. ; FOLLOWING CODE CALCULATES USER #
  842. ;
  843. A07D2:    CP    '*'
  844.     JR    Z,A0806
  845.     CP    '0'
  846.     RET    C
  847.     CP    '9'+1
  848.     RET    NC
  849.     AND    0FH
  850.     LD    C,A
  851.     CALL    USRPAT            ; MULTIPLY
  852.     LD    B,A
  853.     INC    HL
  854.     LD    A,(HL)
  855.     CP    ':'
  856.     JR    Z,A07FF
  857.     OR    A
  858.     JR    Z,A07FF
  859.     CP    '0'
  860.     JR    C,A07FF
  861.     CP    '9'+1
  862.     JR    NC,A07FF
  863.     SUB    '0'
  864.     ADD    A,B
  865.     CP    32
  866.     RET    NC
  867.     LD    (Y2C3A),A
  868.     RET
  869. ;
  870. A07FF:    LD    A,C
  871.     LD    (Y2C3A),A
  872.     RET
  873. ;
  874. A0806:    LD    A,0FFH
  875.     LD    (Y2C3A),A
  876.     RET
  877. ;
  878. ; GET TAGGED/UNTAGGED RESPONSE AND SET A
  879. ;
  880. GTUR.:    CALL    ILPRT
  881.     DB    CR,LF
  882.     DB    'Tagged or Untagged files (T/U)? ',0
  883.     CALL    CIN
  884.     CP    'T'
  885.     JR    Z,.GTURT
  886.     CP    'U'
  887.     JP    NZ,LOOP
  888.     XOR    A
  889.     JR    .GTURS
  890. ;
  891. .GTURT:    LD    A,1
  892. .GTURS:    LD    (.TOTU.),A
  893.     RET
  894. ;
  895. ; LINE INPUT
  896. ;
  897. INPLN:    LD    DE,LINE
  898.     LD    C,10
  899.     CALL    BDOS
  900.     LD    HL,LINEC
  901.     PUSH    HL
  902.     LD    E,(HL)
  903.     INC    HL
  904.     LD    D,0
  905.     ADD    HL,DE
  906.     LD    (HL),0
  907.     INC    HL
  908.     LD    (HL),B
  909.     POP    HL
  910. A0822:    INC    HL
  911.     LD    A,(HL)
  912.     OR    A
  913.     RET    Z
  914.     CALL    CAPS
  915.     LD    (HL),A
  916.     JR    A0822
  917. ;
  918. A082D:    CALL    ILPRT
  919.     DB    '  Copy to drive/user? ',0
  920.     CALL    INPLN
  921.     LD    HL,LINEC
  922.     LD    A,(HL)
  923.     OR    A
  924.     JP    Z,LOOP
  925.     PUSH    HL
  926.     LD    C,RSTDSK
  927.     CALL    BDOS
  928.     CALL    GTBKSZ
  929.     POP    HL
  930.     INC    HL
  931.     CALL    A07A2
  932.     LD    A,(Y2C43)
  933.     OR    A
  934.     RET    NZ
  935. A0865:    LD    A,(USER3)
  936.     LD    B,A
  937.     LD    A,(Y2C3A)
  938.     CP    0FFH
  939.     JR    Z,A0873
  940.     CP    B
  941.     RET    NZ
  942. A0873:    LD    A,(Y2C38)
  943.     LD    B,A
  944.     LD    A,(DRIVE2)
  945.     CP    B
  946.     RET    NZ
  947.     CALL    ILPRT
  948.     DB    CR,LF
  949.     DB    'Can''t copy to same drive and user.',0
  950.     JP    LOOP
  951. ;
  952. ; COPY A FILE
  953. ;
  954. COPYFL:    LD    HL,(FILNMB)
  955.     CALL    CLCFPT
  956.     PUSH    HL
  957.     XOR    A
  958.     LD    (SRCFCB),A
  959.     LD    DE,SRCFCB+1
  960.     LD    B,11
  961.     CALL    MOVHDB
  962.     LD    A,(HL)
  963.     LD    (USER3),A
  964.     CALL    ILPRT
  965.     DB    '  Copy to (filespec)? ',0
  966.     CALL    INPLN
  967.     LD    HL,LINEC
  968.     LD    A,(HL)
  969.     OR    A
  970.     JP    Z,LOOP
  971.     INC    HL
  972.     LD    (Y2C3D),HL
  973.     CALL    PARSDF
  974.     LD    HL,(Y2C3D)
  975.     CALL    A0771
  976.     LD    A,(DFCB+1)
  977.     CP    ' '
  978.     JR    NZ,A090A
  979.     LD    HL,SRCFCB+1
  980.     LD    DE,DFCB+1
  981.     LD    B,11
  982. A0900:    LD    A,(HL)
  983.     AND    7FH
  984.     LD    (DE),A
  985.     INC    HL
  986.     INC    DE
  987.     DJNZ    A0900
  988. A090A:    LD    A,(DFCB)
  989.     DEC    A
  990.     LD    (Y2C38),A
  991.     LD    HL,SRCFCB+1
  992.     LD    DE,DFCB+1
  993.     CALL    A100E
  994.     JR    NZ,A0920
  995.     CALL    A0865
  996. A0920:    LD    HL,DFCB+1
  997.     LD    DE,SRCFCB+1
  998.     LD    B,11
  999. A0928:    LD    A,(DE)
  1000.     AND    80H
  1001.     OR    (HL)
  1002.     LD    (HL),A
  1003.     INC    HL
  1004.     INC    DE
  1005.     DJNZ    A0928
  1006.     LD    HL,DFCB
  1007.     LD    DE,DSTFCB
  1008.     LD    B,12
  1009.     CALL    MOVHDB
  1010.     LD    A,1
  1011.     LD    (.CPFL),A
  1012.     POP    HL
  1013.     CALL    A0DB4
  1014.     JP    LOOP
  1015. ;
  1016. ; SQ/USQ ENTRY POINT
  1017. ;
  1018. SQZUSQ:    CALL    ILPRT
  1019.     DB    CR,LF
  1020.     DB    '  Squeeze, Unsqueeze or Reverse (S,U,R)? ',0
  1021.     CALL    CIN
  1022.     LD    (Y2C00),A
  1023.     CP    'S'
  1024.     JR    Z,A0989
  1025.     CP    'U'
  1026.     JR    Z,A0989
  1027.     CP    'R'
  1028.     JP    NZ,LOOP
  1029. A0989:    LD    A,1
  1030.     JR    A098F
  1031. ;
  1032. ; MOVE FILES
  1033. ;
  1034. MASSCP:    XOR    A
  1035. A098F:    LD    (Y2C43),A
  1036.     PUSH    AF
  1037.     CALL    GTUR.            ; ASK TAG/UNTAG
  1038.     CALL    CRLF
  1039.     LD    A,(USER2)
  1040.     LD    (USER3),A
  1041.     POP    AF
  1042.     CP    2
  1043.     JR    Z,A09A5
  1044.     CALL    A082D
  1045. A09A5:    LD    HL,0
  1046. A09A8:    PUSH    HL
  1047.     CALL    CLCFPT
  1048.     PUSH    HL
  1049.     CALL    ADDH12
  1050.     LD    A,(HL)
  1051.     AND    1
  1052.     CP    1
  1053. .TOTU.    EQU    $-1            ; T/U FLAG
  1054.     DEC    HL
  1055.     LD    B,(HL)
  1056.     POP    HL
  1057.     JP    NZ,.NTTGD        ; SKIP IF NOT TAGGED
  1058.     PUSH    HL
  1059.     LD    A,B
  1060.     LD    (USER3),A
  1061.     LD    A,(Y2C43)
  1062.     OR    A
  1063.     JR    NZ,A0A08
  1064.     LD    A,(DRIVE2)
  1065.     LD    B,A
  1066.     LD    A,(Y2C38)
  1067.     CP    B
  1068.     JR    NZ,A0A08
  1069.     LD    A,(USER3)
  1070.     LD    B,A
  1071.     LD    A,(Y2C3A)
  1072.     CP    B
  1073.     JR    NZ,A0A08
  1074.     CALL    ILPRT
  1075.     DB    CR,LF
  1076.     DB    'Skipping, same drive & user --> ',0
  1077.     POP    HL
  1078.     CALL    A13DA
  1079.     JP    .NTTGD
  1080. ;
  1081. A0A08:    LD    A,(Y2C43)
  1082.     CP    1
  1083.     JR    Z,A0A2C
  1084.     CP    2
  1085.     JR    Z,A0A43
  1086.     CALL    ILPRT
  1087.     DB    CR,LF
  1088.     DB    'Copying  --> ',0
  1089.     JR    A0A57
  1090. ;
  1091. A0A2C:    CALL    ILPRT
  1092.     DB    CR,LF
  1093.     DB    'SQ/USQ   --> ',0
  1094.     JR    A0A57
  1095. ;
  1096. A0A43:    CALL    ILPRT
  1097.     DB    CR,LF
  1098.     DB    'Setting  --> ',0
  1099. A0A57:    POP    HL
  1100.     PUSH    HL
  1101.     CALL    A13DA
  1102.     CALL    ILPRT
  1103.     DB    ' to ',0
  1104. A0A64:    LD    A,(Y2C43)
  1105.     CP    2
  1106.     JR    NZ,A0AE2
  1107.     LD    HL,DSTFCB+1
  1108.     LD    DE,T0AC2
  1109.     LD    B,4
  1110. A0A74:    LD    A,(HL)
  1111.     OR    A
  1112.     CALL    NZ,A0AA3
  1113.     INC    HL
  1114.     INC    DE
  1115.     INC    DE
  1116.     INC    DE
  1117.     DEC    B
  1118.     DJNZ    A0A74
  1119.     LD    HL,DSTFCT
  1120.     LD    DE,T0ACE
  1121.     LD    A,(HL)
  1122.     OR    A
  1123.     CALL    Z,A0ABA
  1124.     LD    DE,T0AD3
  1125.     LD    B,3
  1126. A0A91:    LD    A,(HL)
  1127.     OR    A
  1128.     CALL    NZ,A0ABA
  1129.     INC    HL
  1130.     INC    DE
  1131.     INC    DE
  1132.     INC    DE
  1133.     INC    DE
  1134.     INC    DE
  1135.     DJNZ    A0A91
  1136.     JR    A0B1E
  1137. ;
  1138. A0AA3:    PUSH    HL
  1139.     PUSH    DE
  1140.     PUSH    BC
  1141.     LD    B,3
  1142. A0AA8:    EX    DE,HL
  1143. A0AA9:    LD    A,(HL)
  1144.     PUSH    HL
  1145.     PUSH    BC
  1146.     CALL    PUTCH
  1147.     POP    BC
  1148.     POP    HL
  1149.     INC    HL
  1150.     DJNZ    A0AA9
  1151.     POP    BC
  1152.     POP    DE
  1153.     POP    HL
  1154.     RET
  1155. ;
  1156. A0ABA:    PUSH    HL
  1157.     PUSH    DE
  1158.     PUSH    BC
  1159.     LD    B,5
  1160.     JR    A0AA8
  1161. ;
  1162. T0AC2:    DB    ' F  2  3  4 '
  1163. T0ACE:    DB    ' R/W '
  1164. T0AD3:    DB    ' R/O  GLB  ARC '
  1165. ;
  1166. A0AE2:    LD    A,(Y2C3A)
  1167.     CP    0FFH
  1168.     JR    NZ,A0AF5
  1169.     LD    A,(USER3)
  1170. A0AF5:    LD    L,A
  1171.     LD    H,0
  1172.     CP    10
  1173.     LD    C,1
  1174.     JR    C,A0B00
  1175.     INC    C
  1176. A0B00:    CALL    HEXDEC
  1177.     LD    A,(Y2C38)
  1178.     ADD    A,'A'
  1179.     CALL    PUTCH
  1180.     LD    A,':'
  1181.     CALL    PUTCH
  1182.     LD    A,(CRCFLG)
  1183.     OR    A
  1184.     JR    Z,A0B1E
  1185.     CALL    ILPRT
  1186.     DB    '  with CRC',0
  1187. A0B1E:    POP    HL
  1188.     PUSH    HL
  1189.     LD    A,(Y2C43)
  1190.     CP    1
  1191.     JR    Z,A0B33
  1192.     CP    2
  1193.     JR    Z,A0B6D
  1194.     CALL    A0DBA
  1195.     JR    A0B36
  1196. ;
  1197. A0B33:    CALL    A0C33
  1198. A0B36:    POP    HL
  1199.     CALL    SUBUP
  1200.     LD    A,(.TOTU.)
  1201.     DEC    A
  1202.     JR    NZ,.NTTGD
  1203.     LD    (HL),2
  1204. .NTTGD:    CALL    A1598
  1205.     JR    Z,A0B55
  1206.     POP    HL
  1207.     INC    HL
  1208.     EX    DE,HL
  1209.     LD    HL,(NMBFLS)
  1210.     CALL    CPHLDE
  1211.     EX    DE,HL
  1212.     JP    NC,A09A8
  1213.     CALL    CRLF
  1214.     JR    A0B6A
  1215. ;
  1216. A0B55:    CALL    ILPRT
  1217.     DB    CR,LF
  1218.     DB    '-- Aborted --',7,0
  1219. A0B6A:    JP    LOOP
  1220. ;
  1221. A0B6D:    PUSH    HL
  1222.     LD    DE,SRCFCB
  1223.     XOR    A
  1224.     LD    (DE),A
  1225.     INC    DE
  1226.     LD    B,11
  1227.     CALL    MOVHDB
  1228.     LD    A,(HL)
  1229.     PUSH    AF
  1230.     PUSH    DE
  1231.     POP    HL
  1232.     INC    DE
  1233.     LD    (HL),0
  1234.     LD    B,22
  1235.     CALL    MOVHDB
  1236.     POP    AF
  1237.     LD    (USER3),A
  1238.     CALL    LOGDUE
  1239.     LD    HL,SRCFCB+1
  1240.     LD    DE,DSTFCB+1
  1241.     LD    B,11
  1242. A0B94:    LD    A,(HL)
  1243.     AND    7FH
  1244.     LD    (HL),A
  1245.     LD    A,(DE)
  1246.     OR    (HL)
  1247.     LD    (HL),A
  1248.     INC    HL
  1249.     INC    DE
  1250.     DJNZ    A0B94
  1251.     LD    DE,SRCFCB
  1252.     CALL    SATTRB
  1253.     LD    HL,SRCFCB+1
  1254.     POP    DE
  1255.     LD    B,11
  1256.     CALL    MOVHDB
  1257.     JR    A0B36
  1258. ;
  1259. ; TAG FILES AGAIN AFTER COPY
  1260. ;
  1261. TAGAGN:    LD    HL,0
  1262. A0BB8:    PUSH    HL
  1263.     CALL    CLCFPT
  1264.     PUSH    HL
  1265.     CALL    ADDH12
  1266.     LD    A,(HL)
  1267.     CP    2
  1268.     JR    NZ,A0BEC
  1269.     CALL    ILPRT
  1270.     DB    CR,LF
  1271.     DB    'Retagging --> ',0
  1272.     POP    HL
  1273.     PUSH    HL
  1274.     CALL    A13DA
  1275.     LD    A,' '
  1276.     CALL    PUTCH
  1277.     POP    HL
  1278.     CALL    ADDH12
  1279.     CALL    ADDUP
  1280.     PUSH    HL
  1281. A0BEC:    POP    HL
  1282.     POP    HL
  1283.     INC    HL
  1284.     EX    DE,HL
  1285.     LD    HL,(NMBFLS)
  1286.     CALL    CPHLDE
  1287.     EX    DE,HL
  1288.     JR    NC,A0BB8
  1289.     JP    LOOP
  1290. ;
  1291. A0BFD:    CALL    A1FED
  1292.     OR    A
  1293.     RET    NZ
  1294.     PUSH    AF
  1295.     PUSH    DE
  1296.     PUSH    HL
  1297.     CALL    ILPRT
  1298.     DB    '(',0
  1299. A0C0A:    POP    HL
  1300.     PUSH    HL
  1301. A0C0C:    LD    A,(HL)
  1302.     INC    HL
  1303.     OR    A
  1304.     JR    Z,A0C1A
  1305.     PUSH    HL
  1306.     CALL    PUTCH
  1307.     POP    HL
  1308.     JR    A0C0C
  1309. ;
  1310. A0C1A:    CALL    ILPRT
  1311.     DB    ')',0
  1312.     POP    HL
  1313.     POP    DE
  1314.     POP    AF
  1315.     RET
  1316. ;
  1317. ; PRINT B BYTES OF FILE NAME
  1318. ;
  1319. PFNBYT:    LD    A,(HL)
  1320.     CP    ' '
  1321.     PUSH    HL
  1322.     PUSH    BC
  1323.     CALL    NZ,PUTCH
  1324.     POP    BC
  1325.     POP    HL
  1326.     INC    HL
  1327.     DJNZ    PFNBYT
  1328.     RET
  1329. ;
  1330. A0C33:    LD    (Y2C01),HL
  1331.     CALL    A15B8
  1332.     CALL    A0D6E
  1333.     EX    DE,HL
  1334.     LD    HL,(FILPTR)
  1335.     LD    (Y2C21),HL
  1336.     LD    HL,(Y2C01)
  1337.     JP    NZ,A0DAC
  1338.     EX    DE,HL
  1339.     LD    DE,0FF76H
  1340.     CALL    CPHLDE
  1341.     JR    NZ,A0C66
  1342.     LD    HL,(Y2C01)
  1343.     LD    A,(Y2C00)
  1344.     CP    'U'
  1345.     JP    Z,A0CDD
  1346.     CP    'R'
  1347.     JP    Z,A0CDD
  1348.     JP    A0DAC
  1349. ;
  1350. A0C66:    LD    HL,(Y2C01)
  1351.     LD    A,(Y2C00)
  1352.     CP    'R'
  1353.     JR    Z,A0C76
  1354.     CP    'U'
  1355.     JP    Z,A0DAC
  1356. A0C76:    LD    HL,Y2EED
  1357.     CALL    A2160
  1358.     OR    A
  1359.     LD    HL,(Y2C01)
  1360.     JP    NZ,A0DAC
  1361.     CALL    A16C0
  1362.     LD    HL,SRCFCB
  1363.     LD    DE,DSTFCB
  1364.     LD    B,0CH
  1365.     LD    (HL),0
  1366.     CALL    MOVHDB
  1367.     LD    HL,DSTFCT
  1368.     LD    A,(HL)
  1369.     AND    7FH
  1370.     CP    ' '
  1371.     JR    NZ,A0CA3
  1372.     LD    (HL),'Q'
  1373.     INC    HL
  1374.     LD    (HL),'Q'
  1375. A0CA3:    INC    HL
  1376.     LD    (HL),'Q'
  1377.     CALL    ILPRT
  1378.     DB    '(',0
  1379. A0CAB:    LD    HL,DSTFCB+1
  1380.     LD    B,8
  1381.     CALL    PFNBYT
  1382.     PUSH    HL
  1383.     LD    A,'.'
  1384.     CALL    PUTCH
  1385.     POP    HL
  1386.     LD    B,3
  1387.     CALL    PFNBYT
  1388.     CALL    ILPRT
  1389.     DB    ')',0
  1390.     CALL    A1625
  1391.     LD    HL,(Y2C01)
  1392.     CALL    A15B8
  1393.     LD    HL,SRCFCB
  1394.     CALL    A2576
  1395.     CALL    A1739
  1396.     CALL    CLSDST
  1397.     JP    A16C0
  1398. ;
  1399. A0CDD:    LD    HL,Y2EED
  1400.     CALL    A0BFD
  1401.     OR    A
  1402.     JR    Z,A0CFC
  1403.     CALL    ILPRT
  1404.     DB    '  Not a SQ file.',0
  1405.     RET
  1406. ;
  1407. A0CFC:    LD    (Y2C3D),HL
  1408.     EX    DE,HL
  1409.     LD    (Y2C41),HL
  1410.     LD    A,(Y2C3A)
  1411.     PUSH    AF
  1412.     CALL    A1B9C
  1413.     POP    AF
  1414.     LD    (Y2C3A),A
  1415.     LD    HL,DFCB
  1416.     LD    DE,DSTFCB
  1417.     LD    (HL),0
  1418.     LD    B,0CH
  1419.     CALL    MOVHDB
  1420.     CALL    A1625
  1421.     LD    HL,0
  1422. A0D21:    PUSH    HL
  1423.     CALL    A20BA
  1424.     POP    HL
  1425.     JR    NZ,A0D35
  1426.     LD    E,A
  1427.     LD    D,0
  1428.     ADD    HL,DE
  1429.     PUSH    HL
  1430.     CALL    A171C
  1431.     POP    HL
  1432.     JR    A0D21
  1433. ;
  1434. A0D35:    EX    DE,HL
  1435.     LD    HL,(Y2C41)
  1436.     CALL    CPHLDE
  1437.     PUSH    AF
  1438.     CALL    A1739
  1439.     CALL    CLSDST
  1440.     CALL    A16C0
  1441.     POP    AF
  1442.     RET    Z
  1443.     CALL    ILPRT
  1444.     DB    CR,LF
  1445.     DB    'ERROR - Checksum error in file ',0
  1446.     RET
  1447. ;
  1448. A0D6E:    CALL    A1773
  1449.     RET    NZ
  1450.     PUSH    AF
  1451.     CALL    A1773
  1452.     LD    H,A
  1453.     POP    AF
  1454.     LD    L,A
  1455.     CP    A
  1456.     RET
  1457. ;
  1458. A0D7B:    CALL    A0D6E
  1459.     RET    Z
  1460.     CALL    ILPRT
  1461.     DB    CR,LF
  1462.     DB    'Premature EOF on file... aborted.',0
  1463.     JP    LOOP
  1464. ;
  1465. A0DAC:    PUSH    HL
  1466.     CALL    A16C0
  1467.     POP    HL
  1468.     JR    A0DBA
  1469. ;
  1470. A0DB4:    CALL    A15B8
  1471.     JR    A0DE3
  1472. ;
  1473. A0DBA:    LD    A,(Y2C38)
  1474.     LD    B,A
  1475.     LD    A,(DRIVE2)
  1476.     CP    B
  1477.     JR    NZ,A0DD1
  1478.     LD    A,(USER3)
  1479.     LD    B,A
  1480.     LD    A,(Y2C3A)
  1481.     CP    0FFH
  1482.     RET    Z
  1483.     CP    B
  1484.     RET    Z
  1485. A0DD1:    CALL    A15B8
  1486.     LD    HL,SRCFCB
  1487.     LD    DE,DSTFCB
  1488.     LD    B,0CH
  1489.     CALL    MOVHDB
  1490.     XOR    A
  1491.     LD    (DSTFCB),A
  1492. A0DE3:    LD    HL,0
  1493.     LD    (CRCACC),HL
  1494.     CALL    A1625
  1495.     CALL    LOGDUE
  1496.     LD    HL,(FILPTR)
  1497.     LD    (Y2C34),HL
  1498. A0DF5:    PUSH    HL
  1499.     EX    DE,HL
  1500.     LD    C,SETDMA
  1501.     CALL    BDOS
  1502.     LD    DE,SRCFCB
  1503.     LD    C,FREAD
  1504.     CALL    BDOS
  1505.     POP    HL
  1506.     OR    A
  1507.     JR    NZ,A0E1E
  1508.     LD    DE,80H
  1509.     ADD    HL,DE
  1510.     LD    (Y2C34),HL
  1511.     EX    DE,HL
  1512.     LD    HL,(RAMTOP)
  1513.     CALL    CPHLDE
  1514.     EX    DE,HL
  1515.     CALL    C,A0ED5
  1516.     JR    A0DF5
  1517. ;
  1518. A0E1E:    CALL    A0ED5
  1519.     CALL    CLSDST
  1520.     CALL    A16C0
  1521.     LD    A,(CRCFLG)
  1522.     OR    A
  1523.     RET    Z
  1524.     LD    HL,.CPFL
  1525.     LD    A,(HL)
  1526.     LD    (HL),0
  1527.     OR    A
  1528.     CALL    NZ,CRLF
  1529.     CALL    ILPRT
  1530.     DB    '  Verifying... ',0
  1531.     CALL    A1604
  1532.     LD    HL,Y2C76
  1533.     LD    DE,Y2C77
  1534.     LD    B,21
  1535.     LD    (HL),0
  1536.     CALL    MOVHDB
  1537.     LD    DE,DSTFCB
  1538.     LD    C,FOPEN
  1539.     CALL    BDOS
  1540.     INC    A
  1541.     JR    NZ,A0E74
  1542.     CALL    ILPRT
  1543.     DB    ' Can''t open file!',0
  1544.     JP    LOOP
  1545. ;
  1546. A0E74:    LD    DE,80H
  1547.     LD    C,SETDMA
  1548.     CALL    BDOS
  1549.     LD    HL,(CRCACC)
  1550.     LD    (SRCCRC),HL
  1551.     LD    HL,0
  1552.     LD    (CRCACC),HL
  1553. .VFYLP:    LD    C,FREAD
  1554.     LD    DE,DSTFCB
  1555.     CALL    BDOS
  1556.     OR    A
  1557.     JR    NZ,VFYDUN
  1558.     LD    HL,DBUF
  1559.     LD    DE,100H
  1560.     CALL    CRCBLK
  1561.     JR    .VFYLP
  1562. ;
  1563. VFYDUN:    CALL    CLSDST            ; CLOSE DESTINATION FILE
  1564.     LD    DE,(SRCCRC)
  1565.     LD    HL,(CRCACC)
  1566.     CALL    CPHLDE
  1567.     JR    Z,.VFYOK
  1568.     CALL    ILPRT
  1569.     DB    'verify error',7,0
  1570.     JP    LOOP
  1571. ;
  1572. .VFYOK:    CALL    ILPRT
  1573.     DB    'file ok.',0
  1574.     RET
  1575. ;
  1576. A0ED5:    LD    DE,(Y2C34)
  1577.     LD    HL,(FILPTR)
  1578.     CALL    CPHLDE
  1579.     RET    Z
  1580.     CALL    CRCBLK
  1581.     CALL    A1604
  1582.     LD    HL,(FILPTR)
  1583. A0EE9:    PUSH    HL
  1584.     EX    DE,HL
  1585.     LD    C,SETDMA
  1586.     CALL    BDOS
  1587.     LD    DE,DSTFCB
  1588.     LD    C,FWRIT
  1589.     CALL    BDOS
  1590.     POP    HL
  1591.     OR    A
  1592.     JR    NZ,A0F16
  1593.     LD    DE,80H
  1594.     ADD    HL,DE
  1595.     LD    DE,(Y2C34)
  1596.     CALL    CPHLDE
  1597.     JR    NZ,A0EE9
  1598.     CALL    LOGDUE
  1599.     LD    HL,(FILPTR)
  1600.     LD    (Y2C34),HL
  1601.     RET
  1602. ;
  1603. A0F16:    LD    C,GETDRV        ; GET DRIVE
  1604.     CALL    BDOS
  1605.     LD    E,A            ; DRIVE TO E
  1606.     LD    C,26            ; FLUSH
  1607.     LD    D,80H            ; UNCONDITIONAL
  1608.     CALL    TDOS
  1609.     CALL    ILPRT
  1610.     DB    CR,LF
  1611.     DB    'Destination disk full.',0
  1612.     CALL    CLSDST
  1613.     CALL    A16C0
  1614.     CALL    A16E7
  1615.     JP    LOOP
  1616. ;
  1617. FINDFL:    CALL    ILPRT
  1618.     DB    '  Find what? ',0
  1619.     CALL    INPLN
  1620.     LD    HL,LINET
  1621.     LD    (Y2C3D),HL
  1622.     CALL    A1B9C
  1623.     LD    HL,DFCB+1
  1624.     LD    A,(HL)
  1625.     CP    ' '
  1626.     JP    Z,LOOP
  1627.     LD    B,11
  1628. A0F6D:    LD    A,(HL)
  1629.     CP    ' '
  1630.     JR    NZ,A0F75
  1631.     LD    (HL),'?'
  1632. A0F75:    INC    HL
  1633.     DJNZ    A0F6D
  1634.     CALL    ILPRT
  1635.     DB    CR,LF,0
  1636.     LD    HL,-1
  1637.     CALL    A0FEF
  1638.     JP    NZ,LOOP
  1639.     LD    (FILNMB),HL
  1640.     JP    LOOP
  1641. ;
  1642. MASSTG:    CALL    ILPRT
  1643.     DB    '  Tag what? ',0
  1644.     CALL    INPLN
  1645.     LD    HL,LINET
  1646.     LD    (Y2C3D),HL
  1647.     CALL    A1B9C
  1648.     LD    HL,DFCB+1
  1649.     LD    A,(HL)
  1650.     CP    ' '
  1651.     JP    Z,LOOP
  1652.     CALL    ILPRT
  1653.     DB    CR,LF,0
  1654.     LD    HL,-1
  1655. A0FBD:    CALL    A0FEF
  1656.     JP    NZ,LOOP
  1657.     PUSH    HL
  1658.     CALL    ILPRT
  1659.     DB    CR,LF
  1660.     DB    'Tagging --> ',0
  1661.     POP    HL
  1662.     PUSH    HL
  1663.     CALL    CLCFPT
  1664.     PUSH    HL
  1665.     CALL    A13DA
  1666.     LD    A,' '
  1667.     CALL    PUTCH
  1668.     POP    HL
  1669.     CALL    ADDH12
  1670.     CALL    ADDUP
  1671.     POP    HL
  1672.     JR    A0FBD
  1673. ;
  1674. A0FEF:    INC    HL
  1675.     EX    DE,HL
  1676.     LD    HL,(NMBFLS)
  1677.     CALL    CPHLDE
  1678.     JR    C,A100A
  1679.     EX    DE,HL
  1680.     PUSH    HL
  1681.     CALL    CLCFPT
  1682.     LD    DE,5DH
  1683.     CALL    A100E
  1684.     POP    HL
  1685.     RET    Z
  1686.     JR    A0FEF
  1687. ;
  1688. A100A:    LD    A,1
  1689.     OR    A
  1690.     RET
  1691. ;
  1692. A100E:    LD    B,11
  1693.     EX    DE,HL
  1694. A1011:    LD    A,(HL)
  1695.     CP    '?'
  1696.     JR    Z,A101C
  1697.     LD    A,(DE)
  1698.     AND    7FH
  1699.     CP    (HL)
  1700.     RET    NZ
  1701. A101C:    INC    HL
  1702.     INC    DE
  1703.     DJNZ    A1011
  1704.     RET
  1705. ;
  1706. RENAME:    LD    HL,(FILNMB)
  1707.     CALL    CLCFPT
  1708.     LD    DE,11
  1709.     ADD    HL,DE
  1710.     LD    A,(HL)
  1711.     LD    (USER3),A
  1712.     CALL    ILPRT
  1713.     DB    '  New name, or *? ',0
  1714.     CALL    INPLN
  1715.     LD    HL,LINET
  1716.     LD    (Y2C3D),HL
  1717.     LD    HL,DFCB+16
  1718.     PUSH    HL
  1719.     CALL    PARSFN
  1720.     POP    HL
  1721.     INC    HL
  1722.     LD    A,(HL)
  1723.     CP    ' '
  1724.     JP    Z,LOOP
  1725.     LD    B,11
  1726. A1061:    CP    '?'
  1727.     JP    Z,RENWIL
  1728.     INC    HL
  1729.     DJNZ    A1061
  1730.     LD    A,(Y2C3A)
  1731.     CP    0FFH
  1732.     JR    NZ,A1076
  1733.     LD    A,(USER3)
  1734. A1076:    LD    (HL),A
  1735.     LD    HL,(FILNMB)
  1736.     CALL    CLCFPT
  1737.     CALL    A10B9
  1738.     CP    '.'
  1739.     JR    NZ,A108D
  1740.     LD    C,RSTDSK
  1741.     CALL    BDOS
  1742.     CALL    GTBKSZ
  1743. A108D:    LD    HL,(FILNMB)
  1744.     PUSH    HL
  1745.     LD    HL,(NMBFLS)
  1746.     INC    HL
  1747.     LD    (NMBFLS),HL
  1748.     CALL    SORTBF
  1749.     CALL    UNDUPE
  1750.     LD    HL,(Y2C15)
  1751.     DEC    HL
  1752.     LD    (NMBFLS),HL
  1753.     EX    DE,HL
  1754.     POP    HL
  1755.     LD    (FILNMB),HL
  1756.     CALL    CPHLDE
  1757.     JP    C,LOOP
  1758.     LD    HL,0
  1759.     LD    (FILNMB),HL
  1760.     JP    LOOP
  1761. ;
  1762. A10B9:    PUSH    HL            ; ANYTHING MISSING BELOW HERE?????
  1763.     LD    (Y2C38),A
  1764.     LD    DE,DFCB
  1765.     XOR    A
  1766.     LD    (DFCB),A
  1767.     INC    DE
  1768.     LD    B,0BH
  1769.     CALL    MOVHDB
  1770.     LD    B,4
  1771.     XOR    A
  1772. A10D0:    LD    (DE),A
  1773.     INC    DE
  1774.     DJNZ    A10D0
  1775.     CALL    LOGDUE
  1776.     LD    A,(DFCB+9)
  1777.     AND    80H
  1778.     JR    Z,A10F9
  1779.     LD    A,(DFCB+9)
  1780.     AND    7FH
  1781.     LD    (DFCB+9),A
  1782.     LD    A,(DFCB+25)
  1783.     AND    7FH
  1784.     LD    (DFCB+25),A
  1785.     LD    DE,DFCB
  1786.     CALL    SATTRB
  1787. A10F9:    LD    A,(Y2C3A)
  1788.     CP    0FFH
  1789.     LD    E,A
  1790.     LD    A,(USER3)
  1791.     JR    NZ,A1106
  1792.     LD    E,A
  1793. A1106:    CALL    LOGUSR
  1794.     LD    HL,6DH
  1795.     LD    DE,SRCFCB+1
  1796.     LD    B,0BH
  1797.     CALL    MOVHDB
  1798.     XOR    A
  1799.     LD    (SRCFCB),A
  1800.     CALL    A15AB
  1801.     LD    DE,SRCFCB
  1802.     LD    HL,(FILPTR)
  1803.     CALL    WILDEX
  1804.     LD    A,L
  1805.     OR    H
  1806.     JR    Z,A1152
  1807.     CALL    ILPRT
  1808.     DB    CR,LF
  1809.     DB    'Destination file exists!',0
  1810.     LD    C,RSTDSK
  1811.     CALL    BDOS
  1812.     CALL    GTBKSZ
  1813.     JP    LOOP
  1814. ;
  1815. A1152:    LD    A,(Y2C3A)
  1816.     CP    0FFH
  1817.     JR    Z,A1162
  1818.     LD    B,A
  1819.     LD    A,(USER3)
  1820.     CP    B
  1821.     JR    NZ,DIF.US
  1822. A1162:    LD    A,(USER3)
  1823.     LD    E,A
  1824.     CALL    LOGUSR
  1825.     LD    E,0FFH
  1826.     CALL    LOGUSR
  1827.     PUSH    AF
  1828.     LD    DE,DFCB
  1829.     LD    C,FRENAM
  1830.     CALL    BDOS
  1831.     POP    AF
  1832.     LD    E,A
  1833.     CALL    LOGUSR
  1834.     XOR    A
  1835. A117D:    POP    DE
  1836.     PUSH    AF
  1837.     LD    HL,6DH
  1838.     LD    B,12
  1839.     CALL    MOVHDB
  1840.     POP    AF
  1841.     CP    A
  1842.     RET
  1843. ;
  1844. DIF.US:    CALL    ILPRT
  1845.     DB    CR,LF,LF,7
  1846.     DB    'ERROR: Cannot rename file to different user'
  1847.     DB    CR,LF,0
  1848.     JP    LOOP
  1849. ;
  1850. WILDEX:    PUSH    HL
  1851.     PUSH    DE
  1852.     LD    C,SETDMA
  1853.     LD    DE,DBUF
  1854.     CALL    BDOS
  1855.     POP    DE
  1856.     PUSH    DE
  1857.     LD    C,SFIRST
  1858.     CALL    BDOS
  1859.     INC    A
  1860.     POP    DE
  1861.     POP    HL
  1862.     LD    BC,0
  1863.     JR    NZ,GETFLN
  1864.     LD    HL,0
  1865.     RET
  1866. ;
  1867. GETFLN:    PUSH    DE
  1868.     PUSH    BC
  1869.     PUSH    HL
  1870.     DEC    A
  1871.     ADD    A,A
  1872.     ADD    A,A
  1873.     ADD    A,A
  1874.     ADD    A,A
  1875.     ADD    A,A
  1876.     LD    HL,DBUF
  1877.     ADD    A,L
  1878.     LD    L,A
  1879.     POP    DE
  1880.     LD    B,32
  1881.     CALL    MOVHDB
  1882.     PUSH    DE
  1883.     INC    D
  1884.     LD    HL,(RAMTOP)
  1885.     CALL    CPHLDE
  1886.     JR    NC,NOTOM
  1887.     CALL    ILPRT
  1888.     DB    CR,LF
  1889.     DB    'OUT OF MEMORY?',0
  1890.     RST    0
  1891. ;
  1892. NOTOM:    POP    DE
  1893.     PUSH    DE
  1894.     POP    HL
  1895.     POP    BC
  1896.     INC    BC
  1897.     POP    DE
  1898.     PUSH    DE
  1899.     PUSH    BC
  1900.     PUSH    HL
  1901.     LD    C,SNEXT
  1902.     CALL    BDOS
  1903.     INC    A
  1904.     POP    HL
  1905.     POP    BC
  1906.     POP    DE
  1907.     JR    NZ,GETFLN
  1908.     LD    L,C
  1909.     LD    H,B
  1910.     RET
  1911. ;
  1912. ; WILDCARD RENAME
  1913. ;
  1914. RENWIL:    CALL    ILPRT
  1915.     DB    CR,LF,CR,LF
  1916.     DB    'Old name? ',0
  1917.     CALL    INPLN
  1918.     LD    HL,LINET
  1919.     LD    (Y2C3D),HL
  1920.     LD    HL,FCB0
  1921.     CALL    PARSFN
  1922.     LD    A,(FCB0+1)
  1923.     CP    ' '
  1924.     JP    Z,LOOP
  1925.     LD    A,(Y2C3A)
  1926.     LD    (Y2C0C),A
  1927.     CALL    ILPRT
  1928.     DB    CR,LF
  1929.     DB    'New name? ',0
  1930.     CALL    INPLN
  1931.     LD    HL,LINET
  1932.     LD    (Y2C3D),HL
  1933.     LD    HL,DSTFCB
  1934.     CALL    PARSFN
  1935.     LD    A,(DSTFCB+1)
  1936.     CP    ' '
  1937.     JP    Z,LOOP
  1938.     CALL    CRLF
  1939.     LD    HL,0
  1940. A1312:    PUSH    HL
  1941.     CALL    CLCFPT
  1942.     PUSH    HL
  1943.     LD    DE,FCB0+1
  1944.     CALL    A1385
  1945.     JR    NZ,A1362
  1946.     CALL    ILPRT
  1947.     DB    CR,LF
  1948.     DB    'Renaming --> ',0
  1949.     POP    HL
  1950.     PUSH    HL
  1951.     CALL    A13DA
  1952.     POP    HL
  1953.     PUSH    HL
  1954.     LD    DE,11
  1955.     ADD    HL,DE
  1956.     LD    A,(HL)
  1957.     LD    (USER3),A
  1958.     CALL    ILPRT
  1959.     DB    ' to ',0
  1960.     POP    HL
  1961.     PUSH    HL
  1962.     CALL    A13B2
  1963.     LD    HL,6DH
  1964.     CALL    A13DA
  1965.     POP    HL
  1966.     CALL    A10B9
  1967.     LD    B,A
  1968.     LD    A,(D1374)
  1969.     OR    B
  1970.     LD    (D1374),A
  1971.     PUSH    HL
  1972. A1362:    POP    HL
  1973.     POP    HL
  1974.     INC    HL
  1975.     EX    DE,HL
  1976.     LD    HL,(NMBFLS)
  1977.     CALL    CPHLDE
  1978.     EX    DE,HL
  1979.     JR    NC,A1312
  1980.     CALL    CRLF
  1981.     LD    A,0
  1982. D1374    EQU    $-1
  1983.     CP    '.'
  1984.     JP    NZ,A108D
  1985.     LD    C,RSTDSK
  1986.     CALL    BDOS
  1987.     CALL    GTBKSZ
  1988.     JP    A108D
  1989. ;
  1990. A1385:    LD    A,(HL)
  1991.     CP    0E5H
  1992.     JR    Z,A13AF
  1993.     PUSH    HL
  1994.     LD    BC,11
  1995.     ADD    HL,BC
  1996.     LD    B,(HL)
  1997.     POP    HL
  1998.     LD    A,(Y2C0C)
  1999.     CP    0FFH
  2000.     JR    Z,A139C
  2001.     CP    B
  2002.     RET    NZ
  2003. A139C:    LD    A,(DE)
  2004.     CP    03FH
  2005.     JR    Z,A13A8
  2006.     LD    B,A
  2007.     LD    A,7FH
  2008.     AND    (HL)
  2009.     CP    B
  2010.     RET    NZ
  2011. A13A8:    INC    HL
  2012.     INC    DE
  2013.     DEC    C
  2014.     JR    NZ,A139C
  2015.     RET
  2016. ;
  2017. A13AF:    XOR    A
  2018.     CPL
  2019.     RET
  2020. ;
  2021. A13B2:    LD    DE,DSTFCB+1
  2022.     LD    BC,6DH
  2023.     LD    A,0BH
  2024. A13BA:    PUSH    AF
  2025.     LD    A,(DE)
  2026.     CP    03FH
  2027.     JR    NZ,A13C4
  2028.     LD    A,(HL)
  2029.     AND    7FH
  2030. A13C4:    LD    (BC),A
  2031.     INC    HL
  2032.     INC    DE
  2033.     INC    BC
  2034.     POP    AF
  2035.     DEC    A
  2036.     JR    NZ,A13BA
  2037.     LD    A,(Y2C3A)
  2038.     CP    0FFH
  2039.     JR    NZ,A13D8
  2040.     LD    A,(USER3)
  2041. A13D8:    LD    (BC),A
  2042.     RET
  2043. ;
  2044. A13DA:    PUSH    HL
  2045.     LD    DE,11
  2046.     ADD    HL,DE
  2047.     LD    L,(HL)
  2048.     LD    H,0
  2049.     LD    A,L
  2050.     CP    10
  2051.     LD    C,1
  2052.     JR    C,A13F5
  2053.     INC    C
  2054. A13F5:    PUSH    BC
  2055.     CALL    HEXDEC
  2056.     LD    A,(DRIVE2)
  2057.     ADD    A,41H
  2058.     CALL    PUTCH
  2059.     LD    A,':'
  2060.     CALL    PUTCH
  2061.     POP    BC
  2062.     LD    A,C
  2063.     CP    2
  2064.     JR    Z,A140A
  2065.     LD    A,' '
  2066.     CALL    PUTCH
  2067. A140A:    LD    B,8
  2068.     POP    HL
  2069.     CALL    A1460
  2070.     PUSH    HL
  2071.     LD    A,'.'
  2072.     CALL    PUTCH
  2073.     POP    HL
  2074.     LD    B,3
  2075.     JR    A1460
  2076. ;
  2077. ; DISPLAY CURRENT FILE NAME
  2078. ;
  2079. DSPCFN:    PUSH    HL
  2080.     LD    HL,(FILNMB)
  2081.     INC    HL
  2082.     LD    C,4
  2083.     CALL    HEXDEC
  2084.     CALL    ILPRT
  2085.     DB    '. ',0
  2086.     POP    HL
  2087.     CALL    A13DA
  2088.     INC    HL
  2089.     LD    A,(HL)
  2090.     PUSH    AF
  2091.     INC    HL
  2092.     PUSH    HL
  2093.     LD    A,' '
  2094.     CALL    PUTCH
  2095.     POP    HL
  2096.     CALL    CLCFSZ
  2097.     LD    C,4
  2098.     CALL    HEXDEC
  2099.     CALL    ILPRT
  2100.     DB    'K :',0
  2101.     POP    AF
  2102.     OR    A
  2103.     LD    C,' '
  2104.     JR    Z,A145B
  2105.     CP    1
  2106.     LD    C,'*'
  2107.     JR    Z,A145B
  2108.     LD    C,'#'
  2109. A145B:    LD    A,C
  2110.     JP    PUTCH
  2111. ;
  2112. A1460:    PUSH    BC
  2113.     PUSH    HL
  2114.     LD    A,(HL)
  2115.     CALL    PUTCH
  2116.     POP    HL
  2117.     POP    BC
  2118.     INC    HL
  2119.     DJNZ    A1460
  2120.     RET
  2121. ;
  2122. PRINTF:    CALL    CRLF
  2123.     LD    A,5
  2124.     LD    (Y2C3C),A
  2125.     JR    A14C9
  2126. ;
  2127. VIEWFL:    CALL    CRLF
  2128.     XOR    A
  2129.     LD    (Y2C3C),A
  2130.     INC    A
  2131.     LD    (Y2C32),A
  2132. A1484:    CALL    ILPRT
  2133.     DB    'Press ^X to abort, L to advance a line, cr to advance '
  2134.     DB    'a page.',CR,LF,0
  2135.     LD    A,2
  2136. A14C9:    LD    (Y2C3B),A
  2137.     LD    HL,(FILNMB)
  2138.     CALL    CLCFPT
  2139.     CALL    A15B8
  2140.     CALL    A0D7B
  2141.     LD    DE,0FF76H
  2142.     CALL    CPHLDE
  2143.     LD    HL,A1773
  2144.     JR    NZ,A14FD
  2145.     LD    HL,(FILPTR)
  2146.     LD    (Y2C21),HL
  2147.     LD    HL,Y2EED
  2148.     CALL    A0BFD
  2149.     OR    A
  2150.     JR    NZ,A14FD
  2151.     CALL    CRLF
  2152.     LD    HL,A20BA
  2153.     JR    A1505
  2154. ;
  2155. A14FD:    PUSH    HL
  2156.     LD    HL,(FILPTR)
  2157.     LD    (Y2C21),HL
  2158.     POP    HL
  2159. A1505:    LD    (D151B),HL
  2160. A1508:    CALL    A15A4
  2161.     CP    'X'-40H
  2162.     JR    Z,A1575
  2163.     CP    3
  2164.     JR    Z,A1575
  2165.     CP    'S'-40H
  2166.     JR    Z,A157B
  2167.     CALL    A1773
  2168. D151B    EQU    $-2
  2169.     JR    NZ,A1575
  2170.     CP    'Z'-40H
  2171.     JR    Z,A1575
  2172.     AND    7FH
  2173.     LD    E,A
  2174.     CP    CR
  2175.     JR    NZ,A1534
  2176.     LD    A,(Y2C32)
  2177.     INC    A
  2178.     LD    (Y2C32),A
  2179. A1534:    LD    A,(Y2C3B)
  2180.     LD    C,A
  2181.     CALL    BDOS
  2182.     LD    A,(Y2C3C)
  2183.     OR    A
  2184.     JR    NZ,A1508
  2185.     LD    A,(Y2C32)
  2186.     LD    B,A
  2187.     LD    A,(MAXLIN)
  2188.     CP    B
  2189.     JR    NZ,A1508
  2190.     CALL    A1590
  2191.     CP    04CH
  2192.     JR    Z,A156B
  2193.     CP    06CH
  2194.     JR    Z,A156B
  2195.     CP    018H
  2196.     JR    Z,A1575
  2197.     CP    03H
  2198.     JR    Z,A1575
  2199.     XOR    A
  2200.     LD    (Y2C32),A
  2201.     JR    A1508
  2202. ;
  2203. A156B:    LD    A,(Y2C32)
  2204.     DEC    A
  2205.     LD    (Y2C32),A
  2206.     JR    A1508
  2207. ;
  2208. A1575:    CALL    A16C0
  2209.     LD    A,(Y2C3C)        ; GET FLAG
  2210.     CP    5            ; PRINTER?
  2211.     JP    NZ,LOOP            ;   NO, GO BACK
  2212.     LD    C,28            ; ELSE SIGNAL EOP
  2213.     CALL    TDOS
  2214.     JP    LOOP
  2215. ;
  2216. A157B:    CALL    A1590
  2217.     JR    A1508
  2218. ;
  2219. CONDIN:    LD    C,11
  2220.     CALL    BDOS
  2221.     OR    A
  2222.     RET    Z
  2223. CIN:    LD    C,1
  2224.     CALL    BDOS
  2225.     JP    CAPS
  2226. ;
  2227. A1590:    CALL    A15A4
  2228.     OR    A
  2229.     JR    Z,A1590
  2230.     RET
  2231. ;
  2232. A1598:    CALL    CONDIN
  2233.     CP    3
  2234.     RET    Z
  2235.     CALL    CAPS
  2236.     CP    58H
  2237.     RET
  2238. ;
  2239. A15A4:    LD    E,0FFH
  2240.     LD    C,6
  2241.     JP    BDOS
  2242. ;
  2243. A15AB:    LD    HL,Y2C50
  2244.     LD    DE,Y2C51
  2245.     LD    B,20
  2246.     LD    (HL),0
  2247.     JP    MOVHDB
  2248. ;
  2249. A15B8:    LD    DE,SRCFCB
  2250.     XOR    A
  2251.     LD    (SRCFCB),A
  2252.     INC    DE
  2253.     LD    B,11
  2254.     CALL    MOVHDB
  2255.     LD    A,(HL)
  2256.     PUSH    AF
  2257.     CALL    A15AB
  2258.     POP    AF
  2259.     LD    (USER3),A
  2260.     CALL    LOGDUE
  2261.     LD    HL,(FILPTR)
  2262.     LD    (Y2C21),HL
  2263.     LD    (Y2C1F),HL
  2264.     LD    DE,SRCFCB
  2265.     LD    C,FOPEN
  2266.     CALL    BDOS
  2267.     INC    A
  2268.     RET    NZ
  2269.     CALL    ILPRT
  2270.     DB    CR,LF
  2271.     DB    'Can''t open file!',0
  2272.     JP    LOOP
  2273. ;
  2274. A1604:    LD    A,(Y2C38)
  2275.     LD    E,A
  2276.     LD    C,SELDSK
  2277.     CALL    BDOS
  2278.     LD    A,(Y2C3A)
  2279. LOGUSA:    LD    E,A
  2280. LOGUSR:    LD    C,GSUSER
  2281.     JP    BDOS
  2282. ;
  2283. ; LOG INTO ENTRY DU:
  2284. ;
  2285. LOGDUE:    LD    A,(DRIVE2)
  2286.     LD    E,A
  2287.     LD    C,SELDSK
  2288.     CALL    BDOS
  2289.     LD    A,(USER3)
  2290.     JR    LOGUSA
  2291. ;
  2292. A1625:    LD    HL,(FILPTR)
  2293.     LD    DE,1400H
  2294.     ADD    HL,DE
  2295.     LD    (Y2C25),HL
  2296.     LD    (Y2C23),HL
  2297.     LD    DE,1000H
  2298.     ADD    HL,DE
  2299.     LD    (Y2C27),HL
  2300.     CALL    A1604
  2301.     LD    DE,DSTFCB
  2302.     PUSH    DE
  2303.     LD    A,(DSTFCT)
  2304.     AND    7FH
  2305.     LD    (DSTFCT),A
  2306.     CALL    A16B2
  2307.     POP    DE
  2308.     PUSH    DE
  2309.     LD    C,FOPEN
  2310.     CALL    BDOS
  2311.     INC    A
  2312.     JR    Z,A167E
  2313.     POP    DE
  2314.     PUSH    DE
  2315.     LD    C,FCLOSE
  2316.     CALL    BDOS
  2317.     LD    A,(DSTFCT)
  2318.     AND    80H
  2319.     JR    Z,A1677
  2320.     LD    A,(DSTFCT)
  2321.     AND    7FH
  2322.     LD    (DSTFCT),A
  2323.     CALL    A16B2
  2324.     POP    DE
  2325.     PUSH    DE
  2326.     CALL    SATTRB
  2327. A1677:    POP    DE
  2328.     PUSH    DE
  2329.     CALL    DELDE
  2330.     JP    Z,NTDLT
  2331.     CP    4
  2332.     JR    Z,A167E
  2333.     LD    HL,.CPFL
  2334.     LD    A,(HL)
  2335.     LD    (HL),0
  2336.     OR    A
  2337.     CALL    NZ,CRLF
  2338.     CALL    ILPRT
  2339.     DB    '  (D)',0
  2340. A167E:    CALL    A16B2
  2341.     POP    DE
  2342.     LD    C,FMAKE
  2343.     CALL    BDOS
  2344.     INC    A
  2345.     RET    NZ
  2346.     CALL    ILPRT
  2347.     DB    CR,LF
  2348.     DB    'Destination disk directory full.',0
  2349.     JP    LOOP
  2350. ;
  2351. A16B2:    LD    HL,Y2C76
  2352.     LD    DE,Y2C77
  2353.     LD    B,22
  2354.     LD    (HL),0
  2355.     JP    MOVHDB
  2356. ;
  2357. A16C0:    CALL    LOGDUE
  2358.     LD    DE,SRCFCB
  2359.     LD    C,FCLOSE
  2360.     CALL    BDOS
  2361.     INC    A
  2362.     RET    NZ
  2363. A16CD:    CALL    ILPRT
  2364.     DB    CR,LF
  2365.     DB    'Can''t close file!',0
  2366.     JP    LOOP
  2367. ;
  2368. A16E7:    CALL    A1604
  2369.     CALL    A16B2
  2370.     LD    DE,DSTFCB
  2371.     CALL    DELDE
  2372.     RET    NZ
  2373.     JP    NTDLT
  2374. ;
  2375. CLSDST:    CALL    A1604
  2376.     LD    DE,DSTFCB
  2377.     LD    C,FCLOSE
  2378.     CALL    BDOS
  2379.     INC    A
  2380.     JR    Z,A16CD
  2381.     LD    HL,DSTFCT
  2382.     LD    A,(SRCFCT)
  2383.     AND    80H
  2384.     JR    Z,.CGLO
  2385.     SET    7,(HL)
  2386. .CGLO:    LD    A,(SRCFCT+1)
  2387.     AND    80H
  2388.     JR    Z,.DSET
  2389.     INC    HL
  2390.     SET    7,(HL)
  2391. .DSET:    LD    DE,DSTFCB
  2392. SATTRB:    LD    C,SETATT        ; ATTEMPT TO SET ATTRIBUTE
  2393.     CALL    BDOS
  2394.     OR    A
  2395.     RET    Z            ; OK
  2396.     CALL    ILPRT            ;   ELSE REPORT ERROR
  2397.     DB    ' -- unable to set attributes --',7,0
  2398.     RET
  2399. ;
  2400. A171C:    LD    DE,(Y2C27)
  2401.     LD    HL,(Y2C23)
  2402.     LD    B,A
  2403.     CALL    CPHLDE
  2404.     LD    A,B
  2405.     JR    Z,A1731
  2406.     LD    (HL),A
  2407.     INC    HL
  2408.     LD    (Y2C23),HL
  2409.     RET
  2410. ;
  2411. A1731:    PUSH    AF
  2412.     CALL    A1739
  2413.     POP    AF
  2414.     JR    A171C
  2415. ;
  2416. A1739:    LD    DE,(Y2C23)
  2417.     LD    HL,(Y2C25)
  2418.     CALL    CPHLDE
  2419.     RET    Z
  2420.     PUSH    HL
  2421.     CALL    A1604
  2422.     POP    HL
  2423. A1749:    PUSH    HL
  2424.     EX    DE,HL
  2425.     LD    C,SETDMA
  2426.     CALL    BDOS
  2427.     LD    DE,DSTFCB
  2428.     LD    C,FWRIT
  2429.     CALL    BDOS
  2430.     OR    A
  2431.     JP    NZ,A0F16
  2432.     POP    HL
  2433.     LD    DE,80H
  2434.     ADD    HL,DE
  2435.     EX    DE,HL
  2436.     LD    HL,(Y2C23)
  2437.     EX    DE,HL
  2438.     CALL    CPHLDE
  2439.     JR    C,A1749
  2440.     LD    HL,(Y2C25)
  2441.     LD    (Y2C23),HL
  2442.     RET
  2443. ;
  2444. A1773:    LD    DE,(Y2C1F)
  2445.     LD    HL,(Y2C21)
  2446.     CALL    CPHLDE
  2447.     JR    Z,A1787
  2448.     LD    A,(HL)
  2449.     INC    HL
  2450.     LD    (Y2C21),HL
  2451.     CP    A
  2452.     RET
  2453. ;
  2454. A1787:    CALL    LOGDUE
  2455.     LD    HL,(FILPTR)
  2456.     LD    (Y2C21),HL
  2457.     LD    (Y2C1F),HL
  2458.     LD    B,20H
  2459. A1795:    PUSH    BC
  2460.     EX    DE,HL
  2461.     LD    C,SETDMA
  2462.     CALL    BDOS
  2463.     LD    DE,SRCFCB
  2464.     LD    C,FREAD
  2465.     CALL    BDOS
  2466.     POP    BC
  2467.     OR    A
  2468.     JR    NZ,A17BA
  2469.     LD    HL,(Y2C1F)
  2470.     LD    DE,80H
  2471.     ADD    HL,DE
  2472.     LD    (Y2C1F),HL
  2473.     DJNZ    A1795
  2474.     JR    A1773
  2475. ;
  2476. A17BA:    LD    DE,(Y2C21)
  2477.     LD    HL,(Y2C1F)
  2478.     CALL    CPHLDE
  2479.     JR    NZ,A1773
  2480.     XOR    A
  2481.     DEC    A
  2482.     RET
  2483. ;
  2484. A17CA:    LD    HL,(NMBFLS)
  2485.     PUSH    HL
  2486.     POP    BC
  2487.     LD    HL,STACK
  2488.     LD    DE,STACK
  2489.     RET
  2490. ;
  2491. ; PROCESS FILENAME ON INITIAL COMMAND LINE
  2492. ;
  2493. PRCMDL:    LD    A,(DFCB)
  2494.     OR    A
  2495.     JR    Z,.CRDV
  2496.     DEC    A
  2497.     LD    (DRIVE2),A
  2498. .CRDV:    LD    A,(DFCB+17)
  2499.     CP    '?'
  2500.     JR    NZ,.NALU
  2501.     LD    A,0FFH
  2502.     LD    (USER2),A
  2503. .NALU:    LD    HL,FCB1+1
  2504.     LD    A,(HL)
  2505.     CP    ' '
  2506.     RET    NZ
  2507.     LD    DE,FCB1+2
  2508.     LD    (HL),'?'
  2509.     LD    B,10
  2510.     JP    MOVHDB
  2511. ;
  2512. PRPBUF:    CALL    A17CA
  2513. A1802:    LD    A,(HL)
  2514.     CP    ' '
  2515.     JR    NC,A1834
  2516.     PUSH    HL
  2517.     PUSH    AF
  2518.     INC    HL
  2519.     PUSH    BC
  2520.     LD    B,11
  2521.     CALL    MOVHDB
  2522.     POP    BC
  2523.     POP    AF
  2524.     LD    (DE),A
  2525.     LD    A,(HL)
  2526.     PUSH    AF
  2527.     INC    HL
  2528.     INC    DE
  2529.     XOR    A
  2530.     LD    (DE),A
  2531.     INC    HL
  2532.     INC    DE
  2533.     LD    A,(HL)
  2534.     LD    (DE),A
  2535.     INC    DE
  2536.     POP    AF
  2537.     LD    (DE),A
  2538.     INC    DE
  2539.     INC    HL
  2540.     LD    A,(HL)
  2541.     LD    (DE),A
  2542.     INC    DE
  2543.     POP    HL
  2544. A1827:    PUSH    DE
  2545.     LD    DE,20H
  2546.     ADD    HL,DE
  2547.     POP    DE
  2548.     DEC    BC
  2549.     LD    A,B
  2550.     OR    C
  2551.     JR    NZ,A1802
  2552.     RET
  2553. ;
  2554. A1834:    PUSH    BC
  2555.     LD    B,16
  2556.     LD    A,0E5H
  2557. A1839:    LD    (DE),A
  2558.     INC    DE
  2559.     DJNZ    A1839
  2560.     POP    BC
  2561.     JR    A1827
  2562. ;
  2563. SORTBF:    LD    HL,(NMBFLS)
  2564.     LD    (Y2C19),HL
  2565.     DEC    HL
  2566.     LD    A,H
  2567.     OR    L
  2568.     RET    Z
  2569. A184D:    LD    HL,(Y2C19)
  2570.     LD    A,H
  2571.     OR    L
  2572.     RET    Z
  2573.     XOR    A
  2574.     LD    A,H
  2575.     RRA
  2576.     LD    H,A
  2577.     LD    A,L
  2578.     RRA
  2579.     LD    L,A
  2580.     LD    (Y2C19),HL
  2581.     OR    H
  2582.     JR    NZ,A1862
  2583.     INC    HL
  2584. A1862:    LD    (Y2C1B),HL
  2585.     EX    DE,HL
  2586.     LD    HL,(NMBFLS)
  2587.     DEC    HL
  2588.     OR    A
  2589.     SBC    HL,DE
  2590.     LD    (Y2C15),HL
  2591.     LD    HL,0
  2592.     LD    (Y2C13),HL
  2593. A1879:    LD    HL,(Y2C13)
  2594.     LD    (FILNMB),HL
  2595. A187F:    LD    DE,(FILNMB)
  2596.     LD    HL,(Y2C1B)
  2597.     ADD    HL,DE
  2598.     LD    (Y2C17),HL
  2599.     CALL    A18C4
  2600.     JR    Z,A18B0
  2601.     JR    C,A18B0
  2602.     CALL    A18F5
  2603.     LD    DE,(Y2C1B)
  2604.     LD    HL,(FILNMB)
  2605.     OR    A
  2606.     SBC    HL,DE
  2607.     LD    (FILNMB),HL
  2608.     JP    M,A18B0
  2609.     OR    L
  2610.     JR    Z,A18B0
  2611.     JR    A187F
  2612. ;
  2613. A18B0:    LD    HL,(Y2C13)
  2614.     INC    HL
  2615.     LD    (Y2C13),HL
  2616.     EX    DE,HL
  2617.     LD    HL,(Y2C15)
  2618.     CALL    CPHLDE
  2619.     JR    C,A184D
  2620.     JR    A1879
  2621. ;
  2622. A18C4:    LD    HL,(FILNMB)
  2623.     CALL    CLCFPT
  2624.     LD    (Y2C0D),HL
  2625.     PUSH    HL
  2626.     LD    HL,(Y2C17)
  2627.     CALL    CLCFPT
  2628.     LD    (Y2C0F),HL
  2629.     POP    DE
  2630.     LD    B,11
  2631. A18DA:    LD    A,(HL)
  2632.     AND    7FH
  2633.     LD    C,A
  2634.     LD    A,(DE)
  2635.     AND    7FH
  2636.     CP    C
  2637.     RET    NZ
  2638.     INC    HL
  2639.     INC    DE
  2640.     DJNZ    A18DA
  2641.     LD    B,5
  2642. A18EB:    LD    A,(DE)
  2643.     CP    (HL)
  2644.     RET    NZ
  2645.     INC    HL
  2646.     INC    DE
  2647.     DJNZ    A18EB
  2648.     RET
  2649. ;
  2650. A18F5:    LD    DE,(Y2C0D)
  2651.     LD    HL,(Y2C0F)
  2652.     LD    C,10H
  2653. A18FE:    LD    B,(HL)
  2654.     LD    A,(DE)
  2655.     LD    (HL),A
  2656.     LD    A,B
  2657.     LD    (DE),A
  2658.     INC    DE
  2659.     INC    HL
  2660.     DEC    C
  2661.     JR    NZ,A18FE
  2662.     RET
  2663. ;
  2664. CPHLDE:    LD    A,H
  2665.     CP    D
  2666.     RET    NZ
  2667.     LD    A,L
  2668.     CP    E
  2669.     RET
  2670. ;
  2671. UNDUPE:    LD    HL,0
  2672.     LD    (FILNMB),HL
  2673.     LD    (Y2C15),HL
  2674.     INC    HL
  2675.     LD    (Y2C13),HL
  2676.     LD    HL,(NMBFLS)
  2677.     LD    (SRCCRC),HL
  2678. A1923:    CALL    A195D
  2679.     JR    Z,A192F
  2680.     CALL    A197D
  2681.     CALL    Z,A1946
  2682. A192F:    LD    HL,(Y2C13)
  2683.     LD    (FILNMB),HL
  2684.     INC    HL
  2685.     LD    (Y2C13),HL
  2686.     LD    HL,(SRCCRC)
  2687.     DEC    HL
  2688.     LD    (SRCCRC),HL
  2689.     LD    A,H
  2690.     OR    L
  2691.     JR    NZ,A1923
  2692.     RET
  2693. ;
  2694. A1946:    LD    HL,(Y2C15)
  2695.     CALL    CLCFPT
  2696.     EX    DE,HL
  2697.     LD    HL,(Y2C0D)
  2698.     LD    B,10H
  2699.     CALL    MOVHDB
  2700.     LD    HL,(Y2C15)
  2701.     INC    HL
  2702.     LD    (Y2C15),HL
  2703.     RET
  2704. ;
  2705. A195D:    LD    HL,(FILNMB)
  2706.     CALL    CLCFPT
  2707.     LD    (Y2C0D),HL
  2708.     PUSH    HL
  2709.     LD    HL,(Y2C13)
  2710.     CALL    CLCFPT
  2711.     LD    (Y2C0F),HL
  2712.     POP    DE
  2713.     LD    B,12
  2714. A1973:    LD    A,(DE)
  2715.     CP    (HL)
  2716.     RET    NZ
  2717.     INC    HL
  2718.     INC    DE
  2719.     DJNZ    A1973
  2720.     RET
  2721. ;
  2722. A197D:    LD    HL,(Y2C0D)
  2723.     LD    A,(HL)
  2724.     CP    0E5H
  2725.     JR    Z,A19B5
  2726.     PUSH    HL
  2727.     LD    DE,11
  2728.     ADD    HL,DE
  2729.     LD    B,(HL)
  2730.     POP    HL
  2731.     LD    DE,FCB1+1
  2732.     LD    C,11
  2733.     LD    A,B
  2734.     CP    32
  2735.     JR    NC,A19B5
  2736.     LD    A,(USER2)
  2737.     CP    0FFH
  2738.     JR    Z,A19A2
  2739.     CP    B
  2740.     RET    NZ
  2741. A19A2:    LD    A,(DE)
  2742.     CP    03FH
  2743.     JR    Z,A19AE
  2744.     LD    B,A
  2745.     LD    A,7FH
  2746.     AND    (HL)
  2747.     CP    B
  2748.     RET    NZ
  2749. A19AE:    INC    HL
  2750.     INC    DE
  2751.     DEC    C
  2752.     JR    NZ,A19A2
  2753.     RET
  2754. ;
  2755. A19B5:    OR    A
  2756.     RET
  2757. ;
  2758. ; CALC TOTAL K
  2759. ;
  2760. CLCTLK:    LD    HL,0
  2761.     LD    (TOTALK),HL
  2762.     LD    HL,(NMBFLS)
  2763.     INC    HL
  2764.     LD    A,L
  2765.     OR    H
  2766.     RET    Z
  2767.     PUSH    HL
  2768.     POP    BC
  2769.     LD    HL,STACK+13
  2770.     LD    DE,16
  2771. CTLKL1:    PUSH    HL
  2772.     PUSH    DE
  2773.     PUSH    BC
  2774.     CALL    CLCFSZ
  2775.     EX    DE,HL
  2776.     LD    HL,(TOTALK)
  2777.     ADD    HL,DE
  2778.     LD    (TOTALK),HL
  2779.     POP    BC
  2780.     POP    DE
  2781.     POP    HL
  2782.     ADD    HL,DE
  2783.     DEC    BC
  2784.     LD    A,B
  2785.     OR    C
  2786.     JR    NZ,CTLKL1
  2787.     RET
  2788. ;
  2789. HEXDEC:    PUSH    HL
  2790.     LD    DE,10000
  2791.     CALL    CPHLDE
  2792.     JR    C,HEXDC4
  2793.     LD    D,5
  2794.     JR    HEXDC0
  2795. ;
  2796. HEXDC4:    LD    DE,1000
  2797.     CALL    CPHLDE
  2798.     JR    C,HEXDC3
  2799.     LD    D,4
  2800.     JR    HEXDC0
  2801. ;
  2802. HEXDC3:    LD    DE,100
  2803.     CALL    CPHLDE
  2804.     JR    C,HEXDC2
  2805.     LD    D,3
  2806.     JR    HEXDC0
  2807. ;
  2808. HEXDC2:    LD    A,L
  2809.     CP    10
  2810.     JR    C,HEXDC1
  2811.     LD    D,2
  2812.     JR    HEXDC0
  2813. ;
  2814. HEXDC1:    LD    D,1
  2815. HEXDC0:    LD    A,C
  2816.     SUB    D
  2817.     JR    Z,HDNLB
  2818.     JR    C,HDNLB
  2819. LDBL:    PUSH    AF
  2820.     LD    A,' '
  2821.     CALL    PUTCH
  2822.     POP    AF
  2823.     DEC    A
  2824.     JR    NZ,LDBL
  2825. HDNLB:    POP    HL
  2826. HXDCNX:    PUSH    AF
  2827.     PUSH    BC
  2828.     PUSH    DE
  2829.     PUSH    HL
  2830.     LD    BC,-10
  2831.     LD    DE,-1
  2832. HXDCLP:    ADD    HL,BC
  2833.     INC    DE
  2834.     JR    C,HXDCLP
  2835.     LD    BC,10
  2836.     ADD    HL,BC
  2837.     EX    DE,HL
  2838.     LD    A,H
  2839.     OR    L
  2840.     CALL    NZ,HXDCNX
  2841.     LD    A,E
  2842.     ADD    A,'0'
  2843.     CALL    PUTCH
  2844.     POP    HL
  2845.     POP    DE
  2846.     POP    BC
  2847.     POP    AF
  2848.     RET
  2849. ;
  2850. CALCFS:    LD    DE,DBUF
  2851.     LD    C,SETDMA
  2852.     CALL    BDOS
  2853.     LD    A,(DRIVE2)
  2854.     LD    E,A
  2855.     LD    C,46
  2856.     CALL    BDOS
  2857.     LD    HL,(DBUF)
  2858.     LD    A,(DBUF+2)
  2859.     LD    B,A
  2860.     LD    C,3
  2861. A1AB9:    OR    A
  2862.     RR    B
  2863.     RR    H
  2864.     RR    L
  2865.     DEC    C
  2866.     JR    NZ,A1AB9
  2867.     LD    (FREEK),HL
  2868.     RET
  2869. ;
  2870. CLCFSZ:    LD    D,0
  2871.     LD    E,(HL)
  2872.     EX    DE,HL
  2873.     ADD    HL,HL
  2874.     ADD    HL,HL
  2875.     ADD    HL,HL
  2876.     ADD    HL,HL
  2877.     ADD    HL,HL
  2878.     EX    DE,HL
  2879.     INC    HL
  2880.     LD    A,(HL)
  2881.     PUSH    HL
  2882.     LD    H,0
  2883.     LD    L,A
  2884.     ADD    HL,DE
  2885.     ADD    HL,HL
  2886.     ADD    HL,HL
  2887.     ADD    HL,HL
  2888.     ADD    HL,HL
  2889.     POP    DE
  2890.     INC    DE
  2891.     LD    A,(DE)
  2892.     RRCA
  2893.     RRCA
  2894.     RRCA
  2895.     PUSH    AF
  2896.     AND    1FH
  2897.     ADD    A,L
  2898.     LD    L,A
  2899.     JR    NC,A1AEE
  2900.     INC    H
  2901. A1AEE:    POP    AF
  2902.     AND    0E0H
  2903.     JR    Z,A1AF5
  2904.     INC    HL
  2905. A1AF5:    PUSH    HL
  2906.     POP    DE
  2907.     LD    A,(BLKSZE)
  2908.     OR    A
  2909.     RET    Z
  2910.     CP    1
  2911.     JR    Z,A1B38
  2912.     CP    2
  2913.     JR    Z,A1B29
  2914.     CP    3
  2915.     JR    Z,A1B1A
  2916.     LD    A,L
  2917.     AND    0FH
  2918.     RET    Z
  2919.     PUSH    DE
  2920.     LD    A,0F0H
  2921.     AND    L
  2922.     LD    L,A
  2923.     LD    DE,10H
  2924.     ADD    HL,DE
  2925.     POP    DE
  2926.     RET
  2927. ;
  2928. A1B1A:    LD    A,L
  2929.     AND    7
  2930.     RET    Z
  2931.     PUSH    DE
  2932.     LD    DE,8
  2933.     ADD    HL,DE
  2934.     LD    A,L
  2935.     AND    0F8H
  2936.     LD    L,A
  2937.     POP    DE
  2938.     RET
  2939. ;
  2940. A1B29:    LD    A,L
  2941.     AND    3
  2942.     RET    Z
  2943.     LD    A,L
  2944.     AND    0FCH
  2945.     LD    L,A
  2946.     PUSH    DE
  2947.     LD    DE,4
  2948.     ADD    HL,DE
  2949.     POP    DE
  2950.     RET
  2951. ;
  2952. A1B38:    LD    A,L
  2953.     AND    1
  2954.     RET    Z
  2955.     INC    HL
  2956.     RET
  2957. ;
  2958. ; MOVE HL->DE, B BYTES
  2959. ;
  2960. MOVHDB:    LD    C,B
  2961.     LD    B,0
  2962.     LDIR
  2963.     RET
  2964. ;
  2965. CAPS:    CP    'a'
  2966.     RET    C
  2967.     CP    'z'+1
  2968.     RET    NC
  2969.     AND    5FH
  2970.     RET
  2971. ;
  2972. ; GET BLOCK SIZE AND LOG DRIVE
  2973. ;
  2974. GTBKSZ:    LD    A,(DRIVE2)
  2975.     LD    E,A
  2976.     PUSH    DE
  2977.     LD    C,SELDSK
  2978.     CALL    BDOS
  2979.     POP    DE
  2980.     LD    C,19
  2981.     CALL    TDOS
  2982.     CP    0FFH            ; NETWORK ERROR?
  2983.     JR    Z,NTWERR
  2984.     AND    7
  2985.     SUB    3
  2986.     LD    (BLKSZE),A
  2987.     RET
  2988. ;
  2989. NTWERR:    CALL    ILPRT
  2990.     DB    CR,LF,LF,7
  2991.     DB    'Network Error',CR,LF,0
  2992.     RST    0
  2993. ;
  2994. HELPME:    CALL    DSPBNR
  2995.     LD    DE,HLPMSG
  2996.     CALL    PRINTM
  2997.     LD    HL,(NMBFLS)
  2998.     CALL    PSTATS
  2999.     CALL    CRLF
  3000.     CALL    .MTGDF
  3001.     CALL    .TALRY
  3002.     JP    CRLF
  3003. ;
  3004. DSPBNR:    LD    DE,BANNER
  3005.     CALL    PRINTM
  3006.     LD    C,GETSER
  3007.     CALL    TDOS
  3008.     PUSH    BC
  3009.     PUSH    DE
  3010.     LD    C,2
  3011.     CALL    HEXDEC
  3012.     LD    A,'/'
  3013.     CALL    PUTCH
  3014.     POP    HL
  3015.     LD    C,1
  3016.     CALL    HEXDEC
  3017.     LD    C,12
  3018.     CALL    5
  3019.     PUSH    DE
  3020.     LD    DE,BANN1
  3021.     CALL    PRINTM
  3022.     POP    HL
  3023.     LD    C,1
  3024.     CALL    HEXDEC
  3025.     LD    DE,BANN2
  3026.     CALL    PRINTM
  3027.     POP    HL
  3028.     CALL    PVERS
  3029.     LD    DE,BANN3
  3030.     CALL    PRINTM
  3031.     LD    C,12
  3032.     CALL    5
  3033.     CALL    PVERS
  3034.     LD    DE,BANN4
  3035.     JP    PRINTM
  3036. ;
  3037. PVERS:    LD    A,L
  3038.     AND    0F0H
  3039.     RRA
  3040.     RRA
  3041.     RRA
  3042.     RRA
  3043.     OR    30H
  3044.     PUSH    HL
  3045.     CALL    PUTCH
  3046.     LD    A,'.'
  3047.     CALL    PUTCH
  3048.     POP    HL
  3049.     LD    A,L
  3050.     AND    0FH
  3051.     OR    30H
  3052.     JP    PUTCH
  3053. ;
  3054. A1B9C:    LD    HL,(Y2C3D)
  3055.     EX    DE,HL
  3056.     CALL    SKNBL
  3057.     LD    HL,DFCB
  3058.     XOR    A
  3059.     LD    (HL),A
  3060.     DEC    A
  3061.     JP    A1C26
  3062. ;
  3063. ; PARSE TO DEFAULT FCB
  3064. ;
  3065. PARSDF:    LD    HL,DFCB
  3066. ;
  3067. ; PARSE FILE NAME
  3068. ;
  3069. PARSFN:    LD    DE,(Y2C3D)    ; GET SOURCE
  3070.     CALL    SKNBL        ; ADVANCE DE TO FIRST NONBLANK
  3071.     LD    A,(DRIVE2)    ; GET DEFAULT DRIVE
  3072.     INC    A        ; MAKE 1..16
  3073.     LD    B,A        ; SAVE IT
  3074.     LD    C,0FFH        ; SET USER TO NONE
  3075.     LD    A,(DE)        ; GET CHAR
  3076.     OR    A        ; IF EOL
  3077.     JR    Z,A1C07        ;   THEN DONE PARSING
  3078.     PUSH    DE        ; SAVE POINTER
  3079.     CP    '0'        ; IF NON-NUMBERIC
  3080.     JR    C,A1BCF        ;   THEN SKIP
  3081.     CP    '9'+1        ; IF NUMERIC
  3082.     JR    C,A1BE2        ;   THEN PROCESS USER NUMBER
  3083. A1BCF:    SBC    A,40H        ; MAY BE A DRIVESPEC - SAVE AS SUCH
  3084.     LD    B,A
  3085.     INC    DE
  3086.     LD    A,(DE)        ; GET NECT CHAR
  3087.     CP    ':'        ; DRIVE/USER TERMINATOR?
  3088.     JR    Z,A1C11        ;   YES
  3089.     OR    A        ; EOL?
  3090.     JR    Z,A1C11        ;   YES
  3091.     CP    '*'        ; WILDCARD?
  3092.     JR    Z,A1BE5        ;   YES
  3093. A1BE2:    SUB    '0'        ; MAKE BINARY 0..9
  3094.     LD    C,A
  3095. A1BE5:    INC    DE
  3096.     LD    A,(DE)        ; GET NEXT BYTE
  3097.     CP    '9'+1        ; NUMERIC CHECK AGAIN
  3098.     JR    Z,A1C11
  3099.     OR    A
  3100.     JR    Z,A1C11
  3101.     PUSH    AF
  3102.     CALL    USRPAT
  3103.     LD    C,A
  3104.     POP    AF
  3105.     SUB    '0'
  3106.     ADD    A,C
  3107.     LD    C,A
  3108.     INC    DE
  3109.     LD    A,(DE)
  3110.     CP    ':'
  3111.     JR    Z,A1C11
  3112.     OR    A
  3113.     JR    Z,A1C11
  3114. A1C06:    POP    DE
  3115. A1C07:    LD    A,(DRIVE2)
  3116.     INC    A
  3117.     LD    (HL),A
  3118.     LD    A,0FFH
  3119.     JR    A1C26
  3120. ;
  3121. A1C11:    LD    A,B
  3122.     CP    11H
  3123.     JR    NC,A1C06
  3124.     LD    A,C
  3125.     CP    0FFH
  3126.     JR    Z,A1C22
  3127.     CP    ' '
  3128.     JR    NC,A1C06
  3129. A1C22:    POP    AF
  3130.     LD    (HL),B
  3131.     INC    DE
  3132.     LD    A,C
  3133. A1C26:    LD    (Y2C3A),A
  3134.     LD    B,8
  3135. A1C2B:    CALL    CKDLIM
  3136.     JR    Z,A1C4C
  3137.     INC    HL
  3138.     CP    '*'
  3139.     JR    NZ,A1C3C
  3140.     LD    (HL),'?'
  3141.     JR    A1C3E
  3142. ;
  3143. A1C3C:    LD    (HL),A
  3144.     INC    DE
  3145. A1C3E:    DJNZ    A1C2B
  3146. A1C42:    CALL    CKDLIM
  3147.     JR    Z,A1C53
  3148.     INC    DE
  3149.     JR    A1C42
  3150. ;
  3151. A1C4C:    INC    HL
  3152.     LD    (HL),' '
  3153.     DJNZ    A1C4C
  3154. A1C53:    LD    B,3
  3155.     CP    '.'
  3156.     JR    NZ,A1C7C
  3157.     INC    DE
  3158. A1C5B:    CALL    CKDLIM
  3159.     JR    Z,A1C7C
  3160.     INC    HL
  3161.     CP    '*'
  3162.     JR    NZ,A1C6C
  3163.     LD    (HL),'?'
  3164.     JR    A1C6E
  3165. ;
  3166. A1C6C:    LD    (HL),A
  3167.     INC    DE
  3168. A1C6E:    DJNZ    A1C5B
  3169. A1C72:    CALL    CKDLIM
  3170.     JR    Z,A1C83
  3171.     INC    DE
  3172.     JR    A1C72
  3173. ;
  3174. A1C7C:    INC    HL
  3175.     LD    (HL),' '
  3176.     DJNZ    A1C7C
  3177. A1C83:    LD    B,3
  3178. A1C85:    INC    HL
  3179.     LD    (HL),0
  3180.     DJNZ    A1C85
  3181.     EX    DE,HL
  3182.     LD    (Y2C3D),HL
  3183.     RET
  3184. ;
  3185. CKDLIM:    LD    A,(DE)
  3186.     OR    A
  3187.     RET    Z
  3188.     CP    ' '
  3189.     RET    Z
  3190.     CP    3DH
  3191.     RET    Z
  3192.     CP    5FH
  3193.     RET    Z
  3194.     CP    '.'
  3195.     RET    Z
  3196.     CP    ':'
  3197.     RET    Z
  3198.     CP    3BH
  3199.     RET    Z
  3200.     CP    3CH
  3201.     RET    Z
  3202.     CP    3EH
  3203.     RET
  3204. ;
  3205. ; SKIP TO NONBLANK OR EOL
  3206. ;
  3207. SKNBL:    LD    A,(DE)
  3208.     OR    A
  3209.     RET    Z
  3210.     CP    ' '
  3211.     RET    NZ
  3212.     INC    DE
  3213.     JR    SKNBL
  3214. ;
  3215. ; CREATE CRC LOOKUP TABLE
  3216. ;
  3217. CRCRCT:    LD    HL,CRCTBL
  3218.     LD    C,0
  3219. A1CBB:    EX    DE,HL
  3220.     LD    HL,0
  3221.     LD    A,C
  3222.     PUSH    BC
  3223.     LD    B,8
  3224.     XOR    H
  3225.     LD    H,A
  3226. A1CC5:    ADD    HL,HL
  3227.     JR    NC,A1CD1
  3228.     LD    A,10H
  3229.     XOR    H
  3230.     LD    H,A
  3231.     LD    A,21H
  3232.     XOR    L
  3233.     LD    L,A
  3234. A1CD1:    DJNZ    A1CC5
  3235.     POP    BC
  3236.     EX    DE,HL
  3237.     LD    (HL),D
  3238.     INC    H
  3239.     LD    (HL),E
  3240.     DEC    H
  3241.     INC    HL
  3242.     INC    C
  3243.     JR    NZ,A1CBB
  3244.     RET
  3245. ;
  3246. ; CALCULATE CRC OF ALL BYTES BETWEEN HL AND DE, INCLUSIVELY
  3247. ;
  3248. CRCBLK:    LD    A,(CRCFLG)        ; CHECK IF CRC ENABLED
  3249.     OR    A
  3250.     RET    Z            ; RETURN IF NOT
  3251. .CRCLP:    LD    A,(HL)
  3252.     CALL    CRCK
  3253.     INC    HL
  3254.     CALL    CPHLDE
  3255.     JR    NZ,.CRCLP
  3256.     RET
  3257. ;
  3258. CRCK:    PUSH    BC
  3259.     PUSH    HL
  3260.     PUSH    DE
  3261.     LD    HL,(CRCACC)
  3262.     EX    DE,HL
  3263.     LD    B,0
  3264.     XOR    D
  3265.     LD    C,A
  3266.     LD    HL,CRCTBL
  3267.     ADD    HL,BC
  3268.     LD    A,(HL)
  3269.     XOR    E
  3270.     LD    D,A
  3271.     INC    H
  3272.     LD    E,(HL)
  3273.     EX    DE,HL
  3274.     LD    (CRCACC),HL
  3275.     POP    DE
  3276.     POP    HL
  3277.     POP    BC
  3278.     RET
  3279. ;
  3280. ADDH12:    LD    DE,12
  3281.     ADD    HL,DE
  3282.     RET
  3283. ;
  3284. CRLF:    CALL    ILPRT
  3285.     DB    CR,LF,0
  3286.     RET
  3287. ;
  3288. ILPRT:    POP    HL
  3289.     LD    A,(HL)
  3290.     OR    A
  3291.     INC    HL
  3292.     PUSH    HL
  3293.     RET    Z
  3294.     CALL    PUTCH
  3295.     JR    ILPRT
  3296. ;
  3297. PRINTM:    LD    C,9
  3298.     JP    BDOS
  3299. ;
  3300. PUTCH:    BIT    7,A
  3301.     JR    Z,OUTCHR
  3302.     PUSH    AF
  3303.     CALL    A1D46
  3304.     POP    AF
  3305.     CALL    OUTCHR
  3306.     JR    A1D4C
  3307. ;
  3308. OUTCHR:    AND    7FH
  3309.     LD    E,A
  3310.     LD    C,2
  3311.     JP    BDOS
  3312. ;
  3313. A1D46:    LD    HL,REVON
  3314.     JR    A1D4F
  3315. ;
  3316. A1D4C:    LD    HL,REVOF
  3317. A1D4F:    LD    A,(HL)
  3318.     INC    HL
  3319.     OR    A
  3320.     RET    Z
  3321.     LD    B,A
  3322. A1D54:    PUSH    HL
  3323.     PUSH    BC
  3324.     LD    A,(HL)
  3325.     CALL    OUTCHR
  3326.     POP    BC
  3327.     POP    HL
  3328.     INC    HL
  3329.     DJNZ    A1D54
  3330.     RET
  3331. ;
  3332. ; CALCULATE FILE POINTER
  3333. ;
  3334. CLCFPT:    ADD    HL,HL
  3335.     ADD    HL,HL
  3336.     ADD    HL,HL
  3337.     ADD    HL,HL
  3338.     LD    DE,STACK
  3339.     ADD    HL,DE
  3340.     RET
  3341. ;
  3342. USRPAT:    PUSH    BC
  3343.     XOR    A
  3344.     LD    B,10
  3345. DC10LP:    ADD    A,B
  3346.     DEC    C
  3347.     JR    NZ,DC10LP
  3348.     POP    BC
  3349.     RET
  3350. ;
  3351. ; DELETE FILE (FCB IN DE), RETURN Z=ERROR
  3352. ;
  3353. DELDE:    PUSH    DE
  3354.     LD    C,SFIRST            ; SEE IF EXISTS
  3355.     CALL    BDOS
  3356.     INC    A
  3357.     LD    A,3
  3358.     JR    Z,.XDL            ; EXIT IF NOT THERE
  3359.     POP    DE
  3360.     PUSH    DE
  3361.     LD    C,FDELT            ; WIPE IT OUT
  3362.     CALL    BDOS
  3363.     INC    A
  3364.     JR    NZ,.XDL            ; OK TO EXIT
  3365.     POP    DE
  3366.     RET
  3367. ;
  3368. .XDL:    POP    DE
  3369.     INC    A
  3370.     RET
  3371. ;
  3372. BANNER:
  3373. CLS::    DB    '    '
  3374.     DB    CR,LF
  3375.     DB    'NSWP Version 2.05.26 for TurboDOS',CR,LF
  3376.     DB    'Original (c) Dave Rand, 1983,1984',CR,LF
  3377.     DB    'Serial number $'
  3378. BANN1:    DB    '  Network CPU : $'
  3379. BANN2:    DB    CR,LF,'TurboDOS version : $'
  3380. BANN3:    DB    '  CP/M version : $'
  3381. BANN4:    DB    CR,LF,CR,LF,'$'
  3382. ;
  3383. HLPMSG:    DB    CR,LF
  3384.     DB    9,'A - Retag files       | Q - Squeeze/Unsqueeze files'
  3385.     DB    CR,LF
  3386.     DB    9,'B - Back one file     | R - Rename file(s)'
  3387.     DB    CR,LF
  3388.     DB    9,'C - Copy file         | S - Check remaining space'
  3389.     DB    CR,LF
  3390.     DB    9,'D - Delete file       | T - Tag file for transfer'
  3391.     DB    CR,LF
  3392.     DB    9,'E - Erase T/U files   | U - Untag file'
  3393.     DB    CR,LF
  3394.     DB    9,'F - Find file         | V - View file'
  3395.     DB    CR,LF
  3396.     DB    9,'G - Go execute file   | W - Wildcard tag of files'
  3397.     DB    CR,LF
  3398.     DB    9,'L - Log new disk/user | Y - Set file status.'
  3399.     DB    CR,LF
  3400.     DB    9,'M - Mass file copy    | Z - Change disk'
  3401.     DB    CR,LF
  3402.     DB    9,'P - Print file        | ? - Display this help'
  3403.     DB    CR,LF
  3404.     DB    9,'X - Exit to TurboDOS  | cr, sp - Forward one file'
  3405.     DB    CR,LF,CR,LF,'$'
  3406. ;
  3407. ; INPUT LINE
  3408. ;
  3409. LINE:    DB    18
  3410. LINEC:    DB    2
  3411. LINET:    DB    '23'
  3412.     DS    18
  3413. ;
  3414. A1FED:    LD    DE,16
  3415.     LD    (D2156),HL
  3416.     ADD    HL,DE
  3417.     LD    (D2158),HL
  3418.     LD    HL,0
  3419.     ADD    HL,SP
  3420.     LD    (A206A+1),HL
  3421.     CALL    A2141
  3422.     LD    DE,0FF76H
  3423.     CALL    CMPHD
  3424.     LD    A,1
  3425.     RET    NZ
  3426.     XOR    A
  3427.     LD    (D2152),A
  3428.     LD    (D2155),A
  3429.     CALL    A2141
  3430.     LD    (D215C),HL
  3431.     LD    HL,(D2156)
  3432. A201A:    PUSH    HL
  3433.     CALL    A1773
  3434.     POP    HL
  3435.     PUSH    AF
  3436. D2020:    CALL    CAPS
  3437.     LD    B,A
  3438.     POP    AF
  3439.     LD    (HL),B
  3440.     INC    HL
  3441.     JR    NZ,A206A
  3442.     OR    A
  3443.     JR    NZ,A201A
  3444.     CALL    A2141
  3445.     LD    (D215E),HL
  3446.     LD    DE,102H
  3447.     CALL    CMPHD
  3448.     JR    C,A2041
  3449.     LD    A,2
  3450.     OR    A
  3451.     RET
  3452. ;
  3453. A2041:    LD    DE,(D2158)
  3454. A2046:    LD    (D215A),HL
  3455.     LD    A,H
  3456.     OR    L
  3457.     JR    Z,A2071
  3458.     PUSH    DE
  3459.     CALL    A2141
  3460.     POP    DE
  3461.     EX    DE,HL
  3462.     LD    (HL),E
  3463.     INC    HL
  3464.     LD    (HL),D
  3465.     INC    HL
  3466.     PUSH    HL
  3467.     CALL    A2141
  3468.     EX    DE,HL
  3469.     POP    HL
  3470.     LD    (HL),E
  3471.     INC    HL
  3472.     LD    (HL),D
  3473.     INC    HL
  3474.     EX    DE,HL
  3475.     LD    HL,(D215A)
  3476.     DEC    HL
  3477.     JR    A2046
  3478. ;
  3479. A206A:    LD    SP,0            ; FILLED LATER
  3480.     LD    A,3
  3481.     OR    A
  3482.     RET
  3483. ;
  3484. A2071:    LD    HL,(D2156)
  3485.     LD    DE,(D215C)
  3486.     XOR    A
  3487.     RET
  3488. ;
  3489.     DB    'USQ SECTION (C) DAVE RAND'
  3490. ;
  3491. A20BA:    LD    HL,0
  3492.     ADD    HL,SP
  3493.     LD    (A206A+1),HL
  3494.     LD    A,(D2155)
  3495.     OR    A
  3496.     JR    Z,A20D1
  3497.     DEC    A
  3498.     LD    (D2155),A
  3499.     LD    A,(D2154)
  3500.     CP    A
  3501.     RET
  3502. ;
  3503. A20D1:    CALL    A20F3
  3504.     CP    90H
  3505.     JR    NZ,A20EE
  3506.     CALL    A20F3
  3507.     OR    A
  3508.     JR    NZ,A20E4
  3509.     LD    A,90H
  3510.     CP    A
  3511.     RET
  3512. ;
  3513. A20E4:    DEC    A
  3514.     DEC    A
  3515.     LD    (D2155),A
  3516.     LD    A,(D2154)
  3517.     CP    A
  3518.     RET
  3519. ;
  3520. A20EE:    LD    (D2154),A
  3521.     CP    A
  3522.     RET
  3523. ;
  3524. A20F3:    LD    DE,0
  3525.     LD    A,(D2153)
  3526.     LD    C,A
  3527. A20FA:    LD    A,(D2152)
  3528.     OR    A
  3529.     JR    NZ,A210C
  3530.     PUSH    DE
  3531.     CALL    A1773
  3532.     JP    NZ,A206A
  3533.     POP    DE
  3534.     LD    C,A
  3535.     LD    A,8
  3536. A210C:    DEC    A
  3537.     LD    (D2152),A
  3538.     LD    A,C
  3539.     RRCA
  3540.     LD    C,A
  3541.     LD    HL,(D2158)
  3542.     JR    NC,A211B
  3543.     INC    HL
  3544.     INC    HL
  3545. A211B:    ADD    HL,DE
  3546.     ADD    HL,DE
  3547.     ADD    HL,DE
  3548.     ADD    HL,DE
  3549.     LD    E,(HL)
  3550.     INC    HL
  3551.     LD    D,(HL)
  3552.     LD    A,D
  3553.     AND    80H
  3554.     JR    Z,A20FA
  3555.     LD    A,C
  3556.     LD    (D2153),A
  3557.     LD    A,D
  3558.     CP    0FEH
  3559.     LD    A,1AH
  3560.     JR    Z,A2138
  3561.     LD    A,E
  3562.     CPL
  3563.     CP    A
  3564.     RET
  3565. ;
  3566. A2138:    POP    HL
  3567.     OR    A
  3568.     RET
  3569. ;
  3570. CMPHD:    LD    A,H
  3571.     CP    D
  3572.     RET    NZ
  3573.     LD    A,L
  3574.     CP    E
  3575.     RET
  3576. ;
  3577. A2141:    CALL    A1773
  3578.     JP    NZ,A206A
  3579.     PUSH    AF
  3580.     CALL    A1773
  3581.     JP    NZ,A206A
  3582.     LD    H,A
  3583.     POP    AF
  3584.     LD    L,A
  3585.     RET
  3586. ;
  3587. D2152:    DB    0
  3588. D2153:    DB    0
  3589. D2154:    DB    0
  3590. D2155:    DB    0
  3591. D2156:    DW    0
  3592. D2158:    DW    0
  3593. D215A:    DW    0
  3594. D215C:    DW    0
  3595. D215E:    DW    0
  3596. ;
  3597. A2160:    LD    A,0FFH
  3598.     LD    (D29C6),A
  3599.     LD    (D2A20),HL
  3600.     LD    HL,0
  3601.     ADD    HL,SP
  3602.     LD    (D2A60),HL
  3603.     LD    SP,D2A60
  3604.     LD    HL,(D2A20)
  3605.     LD    A,L
  3606.     AND    0FCH
  3607.     LD    L,A
  3608.     LD    A,4
  3609.     CALL    A296B
  3610.     LD    (D29C7),HL
  3611.     LD    DE,1024
  3612.     ADD    HL,DE
  3613.     LD    (D2A1C),HL
  3614.     LD    DE,1024
  3615.     ADD    HL,DE
  3616.     LD    (D2A1E),HL
  3617.     CALL    A2904
  3618.     XOR    A
  3619.     LD    (D29CC),A
  3620.     CALL    A2935
  3621.     JR    NZ,A21A1
  3622.     LD    A,2
  3623.     JP    A256E
  3624. ;
  3625. A21A1:    LD    DE,0FF76H
  3626.     CALL    CMPHD
  3627.     JR    NZ,A21AF
  3628.     LD    A,1
  3629.     JP    A256E
  3630. ;
  3631. A21AF:    LD    A,L
  3632.     LD    (D29CB),A
  3633.     PUSH    HL
  3634.     CALL    A28E6
  3635.     POP    HL
  3636.     LD    A,H
  3637.     JR    A21C2
  3638. ;
  3639. A21BC:    CALL    A2941
  3640.     JP    Z,A221D
  3641. A21C2:    LD    HL,D29CB
  3642.     CP    (HL)
  3643.     JR    Z,A21F7
  3644.     INC    HL
  3645.     INC    (HL)
  3646.     DEC    (HL)
  3647.     JR    Z,A2214
  3648.     PUSH    AF
  3649.     LD    A,(HL)
  3650.     LD    (HL),0
  3651.     CP    3
  3652.     JR    NC,A21E8
  3653.     LD    B,A
  3654.     DEC    HL
  3655.     LD    A,(HL)
  3656. A21DB:    PUSH    AF
  3657.     CALL    A28E6
  3658.     POP    AF
  3659.     DJNZ    A21DB
  3660.     POP    AF
  3661.     JR    A2214
  3662. ;
  3663. A21E8:    PUSH    AF
  3664.     LD    A,90H
  3665.     CALL    A28EF
  3666.     POP    AF
  3667.     INC    A
  3668.     CALL    A28EF
  3669.     POP    AF
  3670.     JR    A2214
  3671. ;
  3672. A21F7:    CP    90H
  3673.     JR    Z,A2214
  3674.     INC    HL
  3675.     INC    (HL)
  3676.     LD    A,(HL)
  3677.     CP    0FFH
  3678.     JR    NZ,A21BC
  3679.     PUSH    HL
  3680.     LD    A,90H
  3681.     CALL    A28EF
  3682.     POP    HL
  3683.     LD    A,(HL)
  3684.     LD    (HL),0
  3685.     CALL    A28EF
  3686.     LD    A,(D29CB)
  3687. A2214:    LD    (D29CB),A
  3688.     CALL    A28E6
  3689.     JR    A21BC
  3690. ;
  3691. A221D:    LD    A,(D29CC)
  3692.     OR    A
  3693.     JR    Z,A222F
  3694.     PUSH    AF
  3695.     LD    A,90H
  3696.     CALL    A28EF
  3697.     POP    AF
  3698.     INC    A
  3699.     CALL    A28EF
  3700. A222F:    LD    B,0
  3701.     LD    HL,(D2A1C)
  3702. A2234:    LD    E,(HL)
  3703.     INC    HL
  3704.     LD    D,(HL)
  3705.     INC    HL
  3706.     LD    C,(HL)
  3707.     INC    HL
  3708.     LD    A,D
  3709.     OR    E
  3710.     OR    C
  3711.     JR    NZ,A224A
  3712.     INC    HL
  3713.     DJNZ    A2234
  3714.     LD    A,2
  3715.     JP    A256E
  3716. ;
  3717. A224A:    DEC    B
  3718.     LD    A,(HL)
  3719.     PUSH    HL
  3720.     LD    HL,(D2A1E)
  3721.     LD    (HL),A
  3722.     INC    HL
  3723.     LD    (HL),E
  3724.     INC    HL
  3725.     LD    (HL),D
  3726.     INC    HL
  3727.     LD    (HL),C
  3728.     INC    HL
  3729.     LD    (D29D9),HL
  3730.     POP    HL
  3731.     LD    A,1
  3732.     LD    (D29CD),A
  3733.     INC    HL
  3734. A2262:    LD    E,(HL)
  3735.     INC    HL
  3736.     LD    D,(HL)
  3737.     INC    HL
  3738.     LD    C,(HL)
  3739.     INC    HL
  3740.     LD    A,(HL)
  3741.     INC    HL
  3742.     LD    (D2A1A),A
  3743.     LD    A,E
  3744.     OR    D
  3745.     OR    C
  3746.     JR    Z,A22D1
  3747.     PUSH    HL
  3748.     PUSH    BC
  3749.     LD    A,(D29CD)
  3750.     LD    B,A
  3751.     LD    HL,(D2A1E)
  3752.     INC    HL
  3753. A227D:    PUSH    HL
  3754.     CALL    A298C
  3755.     JR    C,A2294
  3756.     POP    HL
  3757.     INC    HL
  3758.     INC    HL
  3759.     INC    HL
  3760.     INC    HL
  3761.     DJNZ    A227D
  3762.     LD    A,C
  3763.     LD    (D2A1B),A
  3764.     JR    A22B0
  3765. ;
  3766. A2294:    LD    HL,(D29D9)
  3767.     LD    A,C
  3768.     LD    (D2A1B),A
  3769.     POP    BC
  3770.     PUSH    BC
  3771.     DEC    BC
  3772.     LD    A,L
  3773.     SUB    C
  3774.     LD    C,A
  3775.     LD    A,H
  3776.     SBC    A,B
  3777.     LD    B,A
  3778.     PUSH    DE
  3779.     LD    D,H
  3780.     LD    E,L
  3781.     INC    DE
  3782.     INC    DE
  3783.     INC    DE
  3784.     DEC    HL
  3785.     CALL    A29B5
  3786.     POP    DE
  3787.     POP    HL
  3788. A22B0:    DEC    HL
  3789.     POP    BC
  3790.     LD    A,(D2A1A)
  3791.     LD    (HL),A
  3792.     INC    HL
  3793.     LD    (HL),E
  3794.     INC    HL
  3795.     LD    (HL),D
  3796.     INC    HL
  3797.     LD    A,(D2A1B)
  3798.     LD    (HL),A
  3799.     LD    HL,(D29D9)
  3800.     INC    HL
  3801.     INC    HL
  3802.     INC    HL
  3803.     INC    HL
  3804.     LD    (D29D9),HL
  3805.     LD    A,(D29CD)
  3806.     INC    A
  3807.     LD    (D29CD),A
  3808.     POP    HL
  3809. A22D1:    DJNZ    A2262
  3810.     LD    A,(D29CD)
  3811.     LD    HL,T2860
  3812.     LD    B,7
  3813.     OR    A
  3814.     JR    Z,A22F3
  3815. A22E1:    INC    (HL)
  3816.     DEC    (HL)
  3817.     JR    NZ,A22EA
  3818.     CP    (HL)
  3819.     JR    NZ,A22EE
  3820. A22EA:    CP    (HL)
  3821.     JR    NC,A22F3
  3822. A22EE:    INC    HL
  3823.     DJNZ    A22E1
  3824. A22F3:    INC    B
  3825.     INC    B
  3826.     INC    B
  3827.     LD    HL,D285F
  3828.     LD    (HL),B
  3829.     XOR    A
  3830.     LD    (D2A15),A
  3831.     LD    (D2A16),A
  3832. A2301:    CALL    A284A
  3833.     XOR    A
  3834.     LD    H,A
  3835.     LD    (D29CC),A
  3836.     LD    (D29D8),A
  3837.     INC    A
  3838.     LD    L,A
  3839.     LD    (D29CB),A
  3840.     LD    (D29D6),HL
  3841.     INC    A
  3842.     LD    (D29D2),A
  3843.     LD    HL,(D29C7)
  3844.     LD    (D29D4),HL
  3845.     LD    HL,0
  3846.     LD    (D29E9),HL
  3847.     LD    (D29EB),HL
  3848.     LD    HL,T2A02
  3849.     LD    DE,T2A03
  3850.     LD    BC,10H
  3851.     LD    (HL),0
  3852.     CALL    A29AA
  3853.     LD    A,(D2A15)
  3854.     OR    A
  3855.     JR    NZ,A236B
  3856. A233C:    CALL    A2832
  3857.     JP    Z,A2432
  3858.     CALL    A2883
  3859.     JR    Z,A23A3
  3860.     LD    B,A
  3861.     LD    A,(D29CB)
  3862.     CP    C
  3863.     JR    Z,A2358
  3864. A2350:    CALL    A26EB
  3865.     INC    A
  3866.     CP    C
  3867.     JR    NZ,A2350
  3868. A2358:    LD    A,(D29D2)
  3869.     CP    1
  3870.     JR    Z,A23A8
  3871.     LD    HL,D29CC
  3872.     INC    (HL)
  3873.     LD    A,B
  3874.     CALL    A2771
  3875.     JR    A233C
  3876. ;
  3877. A236B:    CALL    A2832
  3878.     JP    Z,A2432
  3879.     LD    B,A
  3880. A2372:    LD    HL,D29CB
  3881.     LD    A,(D285F)
  3882.     CP    (HL)
  3883.     JR    C,A23A4
  3884.     LD    A,(HL)
  3885.     LD    HL,T29F1
  3886.     CALL    A296B
  3887.     LD    A,(D29CC)
  3888.     CP    (HL)
  3889.     JR    NZ,A2390
  3890.     CALL    A26EB
  3891.     JR    A2372
  3892. ;
  3893. A2390:    LD    A,(D29D2)
  3894.     CP    1
  3895.     JR    Z,A23A8
  3896.     LD    HL,D29CC
  3897.     INC    (HL)
  3898.     LD    A,B
  3899.     CALL    A2771
  3900.     JR    A236B
  3901. ;
  3902. A23A3:    LD    B,A
  3903. A23A4:    PUSH    BC
  3904.     JR    A23AC
  3905. ;
  3906. A23A8:    PUSH    BC
  3907. A23A9:    CALL    A26EB
  3908. A23AC:    LD    HL,D29CE
  3909.     LD    A,(HL)
  3910.     CP    0FEH
  3911.     JR    C,A23C0
  3912.     LD    A,(D29CB)
  3913.     CP    7
  3914.     LD    A,(HL)
  3915.     JR    NC,A23C0
  3916.     LD    A,0FDH
  3917. A23C0:    INC    A
  3918.     INC    A
  3919.     LD    B,A
  3920.     LD    A,(D29D2)
  3921.     ADD    A,A
  3922.     SUB    B
  3923.     JR    NC,A2400
  3924.     LD    A,(D29D2)
  3925.     OR    A
  3926.     RLA
  3927.     JR    NC,A23D8
  3928.     RRA
  3929.     RRA
  3930.     JR    A23E0
  3931. ;
  3932. A23D8:    RRA
  3933.     CALL    A28CB
  3934.     OR    A
  3935.     JR    Z,A23A9
  3936. A23E0:    LD    (D29D3),A
  3937.     POP    BC
  3938.     JR    A23EE
  3939. ;
  3940. A23E7:    CALL    A2832
  3941.     JR    Z,A2432
  3942.     LD    B,A
  3943. A23EE:    LD    HL,D29CC
  3944.     INC    (HL)
  3945.     LD    A,(D29D3)
  3946.     CP    (HL)
  3947.     JR    C,A23A8
  3948.     LD    A,B
  3949.     CALL    A2771
  3950.     JR    A23E7
  3951. ;
  3952. A2400:    LD    (D29D3),A
  3953.     POP    BC
  3954.     JR    A240E
  3955. ;
  3956. A2407:    CALL    A2832
  3957.     JR    Z,A2432
  3958.     LD    B,A
  3959. A240E:    LD    HL,D29CC
  3960.     INC    (HL)
  3961.     LD    A,(D29D3)
  3962.     CP    (HL)
  3963.     LD    A,B
  3964.     JR    C,A2420
  3965.     CALL    A2771
  3966.     JR    A2407
  3967. ;
  3968. A2420:    CALL    A26EB
  3969.     JR    A242C
  3970. ;
  3971. A2426:    CALL    A2832
  3972.     JR    Z,A2432
  3973. A242C:    CALL    A2771
  3974.     JR    A2426
  3975. ;
  3976. A2432:    LD    A,(D2A16)
  3977.     OR    A
  3978.     PUSH    AF
  3979.     CALL    NZ,A2817
  3980.     POP    AF
  3981.     JP    NZ,A250D
  3982.     LD    A,(D2A15)
  3983.     OR    A
  3984.     JR    NZ,A246F
  3985.     LD    HL,D29E9
  3986.     LD    DE,T29ED
  3987.     LD    BC,4
  3988.     CALL    A29AA
  3989.     LD    HL,T2A02
  3990.     LD    DE,T29F1
  3991.     LD    BC,11H
  3992.     CALL    A29AA
  3993.     LD    A,(D29C0)
  3994.     DEC    A
  3995.     LD    (D2A13),A
  3996.     LD    A,0FFH
  3997.     LD    (D2A15),A
  3998.     LD    (D2A17),A
  3999.     JR    A24E7
  4000. ;
  4001. A246F:    LD    A,0FFH
  4002.     LD    (D2A17),A
  4003.     LD    HL,D29E9
  4004.     LD    DE,T29ED
  4005.     LD    B,4
  4006.     CALL    A2999
  4007.     JR    C,A24B0
  4008. A2482:    XOR    A
  4009.     LD    (D2A17),A
  4010. A2486:    LD    HL,T29F1
  4011.     LD    A,(D2A13)
  4012.     CALL    A296B
  4013.     LD    A,(D2A18)
  4014.     LD    C,(HL)
  4015.     LD    (HL),A
  4016.     LD    A,(D2A14)
  4017.     CPL
  4018.     INC    A
  4019.     CP    0FFH
  4020.     JR    Z,A24E7
  4021.     LD    B,A
  4022.     LD    A,(D2A19)
  4023.     SUB    C
  4024.     CP    02H
  4025.     JR    NC,A24E7
  4026.     INC    (HL)
  4027.     LD    A,B
  4028.     LD    (D2A14),A
  4029.     JR    A24D1
  4030. ;
  4031. A24B0:    LD    HL,T2A02
  4032.     LD    DE,T29F1
  4033.     LD    BC,11H
  4034.     CALL    A29AA
  4035. A24BC:    LD    HL,T29F1
  4036.     LD    A,(D2A13)
  4037.     CALL    A296B
  4038.     LD    A,(HL)
  4039.     LD    (D2A18),A
  4040.     LD    A,(D2A14)
  4041.     ADD    A,(HL)
  4042.     JP    M,A2486
  4043.     LD    (HL),A
  4044. A24D1:    LD    A,(D2A17)
  4045.     OR    A
  4046.     JP    Z,A2301
  4047.     LD    HL,D29E9
  4048.     LD    DE,T29ED
  4049.     LD    BC,4
  4050.     CALL    A29AA
  4051.     JP    A2301
  4052. ;
  4053. A24E7:    LD    A,0FFH
  4054.     LD    (D2A14),A
  4055.     LD    A,(D285F)
  4056.     LD    HL,D2A13
  4057.     INC    (HL)
  4058.     CP    (HL)
  4059.     JR    NC,A24FF
  4060.     LD    A,0FFH
  4061.     LD    (D2A16),A
  4062.     JP    A2301
  4063. ;
  4064. A24FF:    LD    A,(HL)
  4065.     LD    HL,T29F1
  4066.     CALL    A296B
  4067.     LD    A,(HL)
  4068.     LD    (D2A19),A
  4069.     JR    A24BC
  4070. ;
  4071. A250D:    LD    HL,D29E9
  4072.     LD    BC,1027
  4073.     CALL    A2A62
  4074.     XOR    A
  4075.     LD    (D29C6),A
  4076.     LD    HL,(D29D6)
  4077.     ADD    HL,HL
  4078.     ADD    HL,HL
  4079.     LD    A,0FH
  4080.     CALL    A296B
  4081.     LD    DE,D29E9
  4082.     LD    (D29E0),HL
  4083.     LD    HL,0
  4084.     LD    (D29E2),HL
  4085.     LD    HL,D29E0
  4086.     LD    B,4
  4087.     CALL    A2970
  4088.     EX    DE,HL
  4089.     LD    A,(HL)
  4090.     OR    7FH
  4091.     LD    (HL),A
  4092.     EX    DE,HL
  4093.     LD    (HL),1
  4094.     PUSH    HL
  4095.     INC    HL
  4096.     XOR    A
  4097.     LD    (HL),A
  4098.     INC    HL
  4099.     LD    (HL),A
  4100.     INC    HL
  4101.     LD    (HL),A
  4102.     POP    HL
  4103.     LD    B,4
  4104.     CALL    A2970
  4105.     EX    DE,HL
  4106.     LD    BC,1031
  4107.     CALL    A2A62
  4108.     LD    HL,D29DD
  4109.     LD    BC,307H
  4110.     CALL    A2A62
  4111.     LD    HL,(D29DD)
  4112.     EX    DE,HL
  4113.     LD    HL,(D29E9)
  4114.     CALL    CMPHD
  4115.     LD    A,3
  4116.     JR    NC,A256E
  4117.     XOR    A
  4118. A256E:    LD    HL,(D2A60)
  4119.     LD    SP,HL
  4120.     LD    HL,(D29E9)
  4121.     RET
  4122. ;
  4123. A2576:    LD    A,(D29C6)
  4124.     OR    A
  4125.     JR    Z,A257F
  4126.     XOR    A
  4127.     RET
  4128. ;
  4129. A257F:    LD    (D2A22),HL
  4130.     LD    HL,0
  4131.     ADD    HL,SP
  4132.     LD    (D2A60),HL
  4133.     LD    SP,D2A60
  4134.     LD    HL,0FF76H
  4135.     CALL    A26DC
  4136.     LD    HL,(D29DB)
  4137.     CALL    A26DC
  4138.     EX    DE,HL
  4139.     LD    HL,0
  4140.     OR    A
  4141.     SBC    HL,DE
  4142.     LD    (D29DB),HL
  4143.     LD    HL,(D2A22)
  4144.     INC    HL
  4145.     LD    B,8
  4146. A25A8:    LD    A,(HL)
  4147.     CP    ' '
  4148.     JR    Z,A25B6
  4149.     CALL    A26E1
  4150.     INC    HL
  4151.     DJNZ    A25A8
  4152. A25B6:    LD    A,'.'
  4153.     CALL    A26E1
  4154.     LD    A,B
  4155.     CALL    A296B
  4156.     LD    B,3
  4157. A25C1:    LD    A,(HL)
  4158.     CP    ' '
  4159.     JR    Z,A25CF
  4160.     CALL    A26E1
  4161.     INC    HL
  4162.     DJNZ    A25C1
  4163. A25CF:    XOR    A
  4164.     CALL    A26E1
  4165.     LD    HL,(D29D6)
  4166.     CALL    A26DC
  4167.     ADD    HL,HL
  4168.     ADD    HL,HL
  4169.     EX    DE,HL
  4170.     LD    HL,(D29C7)
  4171. A25DF:    LD    A,(HL)
  4172.     CALL    A26E1
  4173.     INC    HL
  4174.     DEC    DE
  4175.     LD    A,D
  4176.     OR    E
  4177.     JR    NZ,A25DF
  4178.     XOR    A
  4179.     LD    (D29CA),A
  4180.     LD    (D29CC),A
  4181.     LD    A,8
  4182.     LD    (D29C9),A
  4183.     CALL    A2941
  4184.     JR    A2654
  4185. ;
  4186. A25FC:    CALL    A2941
  4187.     JR    Z,A265D
  4188.     LD    HL,D29CB
  4189.     CP    (HL)
  4190.     JR    Z,A2637
  4191.     INC    HL
  4192.     INC    (HL)
  4193.     DEC    (HL)
  4194.     JR    Z,A2654
  4195.     PUSH    AF
  4196.     LD    A,(HL)
  4197.     LD    (HL),0
  4198.     CP    3
  4199.     JR    NC,A2628
  4200.     LD    B,A
  4201.     DEC    HL
  4202.     LD    A,(HL)
  4203. A261B:    PUSH    AF
  4204.     CALL    A26A3
  4205.     POP    AF
  4206.     DJNZ    A261B
  4207.     POP    AF
  4208.     JR    A2654
  4209. ;
  4210. A2628:    PUSH    AF
  4211.     LD    A,90H
  4212.     CALL    A26AC
  4213.     POP    AF
  4214.     INC    A
  4215.     CALL    A26AC
  4216.     POP    AF
  4217.     JR    A2654
  4218. ;
  4219. A2637:    CP    90H
  4220.     JR    Z,A2654
  4221.     INC    HL
  4222.     INC    (HL)
  4223.     LD    A,(HL)
  4224.     CP    0FFH
  4225.     JR    NZ,A25FC
  4226.     PUSH    HL
  4227.     LD    A,90H
  4228.     CALL    A26AC
  4229.     POP    HL
  4230.     LD    A,(HL)
  4231.     LD    (HL),0
  4232.     CALL    A26AC
  4233.     LD    A,(D29CB)
  4234. A2654:    LD    (D29CB),A
  4235.     CALL    A26A3
  4236.     JR    A25FC
  4237. ;
  4238. A265D:    LD    A,(D29CC)
  4239.     OR    A
  4240.     JR    Z,A266F
  4241.     PUSH    AF
  4242.     LD    A,90H
  4243.     CALL    A26AC
  4244.     POP    AF
  4245.     INC    A
  4246.     CALL    A26AC
  4247. A266F:    LD    A,0FFH
  4248.     CALL    A295F
  4249.     INC    HL
  4250.     INC    HL
  4251.     INC    HL
  4252.     CALL    A26B1
  4253.     LD    A,(D29C9)
  4254.     CP    8
  4255.     JR    Z,A268E
  4256.     LD    B,A
  4257.     LD    A,(D29CA)
  4258. A2686:    RRA
  4259.     DJNZ    A2686
  4260.     CALL    A26E1
  4261. A268E:    LD    A,0FFH
  4262.     LD    (D29C6),A
  4263.     LD    HL,(D29DB)
  4264.     LD    A,H
  4265.     OR    L
  4266.     LD    A,1
  4267.     JR    NZ,A269E
  4268.     XOR    A
  4269. A269E:    LD    HL,(D2A60)
  4270.     LD    SP,HL
  4271.     RET
  4272. ;
  4273. A26A3:    CP    90H
  4274.     JR    NZ,A26AC
  4275.     CALL    A26AC
  4276.     XOR    A
  4277. A26AC:    PUSH    BC
  4278.     CALL    A295F
  4279.     POP    BC
  4280. A26B1:    PUSH    BC
  4281.     LD    B,(HL)
  4282.     INC    HL
  4283.     LD    E,(HL)
  4284.     INC    HL
  4285.     LD    D,(HL)
  4286.     LD    A,(D29C9)
  4287.     LD    C,A
  4288. A26BB:    RL    E
  4289.     RL    D
  4290. ;    LD    A,E
  4291. ;    RLA
  4292. ;    LD    E,A
  4293. ;    LD    A,D
  4294. ;    RLA
  4295. ;    LD    D,A
  4296.     LD    A,(D29CA)
  4297.     RRA
  4298.     DEC    C
  4299.     JR    NZ,A26CF
  4300.     CALL    A26E1
  4301.     LD    C,8
  4302.     XOR    A
  4303. A26CF:    LD    (D29CA),A
  4304.     DJNZ    A26BB
  4305.     LD    A,C
  4306.     LD    (D29C9),A
  4307.     POP    BC
  4308.     RET
  4309. ;
  4310. A26DC:    LD    A,L
  4311.     CALL    A26E1
  4312.     LD    A,H
  4313. A26E1:    PUSH    BC
  4314.     PUSH    DE
  4315.     PUSH    HL
  4316.     CALL    A171C
  4317.     POP    HL
  4318.     POP    DE
  4319.     POP    BC
  4320.     RET
  4321. ;
  4322. A26EB:    PUSH    AF
  4323.     PUSH    BC
  4324.     LD    A,(D2A16)
  4325.     OR    A
  4326.     JR    Z,A2727
  4327.     LD    A,(D29D2)
  4328.     LD    HL,(D29D6)
  4329.     EX    DE,HL
  4330.     LD    HL,(D29D4)
  4331.     LD    B,A
  4332.     LD    A,(D29D8)
  4333.     LD    C,A
  4334. A2703:    LD    (HL),E
  4335.     INC    HL
  4336.     LD    (HL),D
  4337.     INC    HL
  4338.     LD    A,L
  4339.     AND    2
  4340.     JR    NZ,A270E
  4341.     INC    C
  4342. A270E:    INC    DE
  4343.     LD    A,D
  4344.     OR    A
  4345.     JR    Z,A2718
  4346.     CP    E
  4347.     JR    Z,A273E
  4348. A2718:    DJNZ    A2703
  4349.     LD    (D29D4),HL
  4350.     EX    DE,HL
  4351.     LD    (D29D6),HL
  4352.     LD    A,C
  4353.     LD    (D29D8),A
  4354. A2727:    LD    HL,D29CB
  4355.     INC    (HL)
  4356.     LD    A,(HL)
  4357.     CP    11H
  4358.     JR    NC,A273E
  4359.     XOR    A
  4360.     LD    (D29CC),A
  4361.     LD    HL,D29D2
  4362.     LD    A,(HL)
  4363.     ADD    A,A
  4364.     LD    (HL),A
  4365.     POP    BC
  4366.     POP    AF
  4367.     RET
  4368. ;
  4369. A273E:    POP    BC
  4370.     POP    AF
  4371.     POP    HL
  4372.     LD    A,(D285F)
  4373.     DEC    A
  4374.     LD    B,A
  4375.     JR    NZ,A274E
  4376.     LD    A,4
  4377.     JP    P,A256E
  4378. A274E:    LD    A,(D2A16)
  4379.     OR    A
  4380.     JR    NZ,A275C
  4381.     LD    A,(D2A15)
  4382.     OR    A
  4383.     JP    NZ,A2482
  4384. A275C:    LD    HL,D285F
  4385.     LD    (HL),B
  4386.     LD    A,(D2A16)
  4387.     OR    A
  4388.     JP    Z,A2301
  4389.     XOR    A
  4390.     LD    (D2A16),A
  4391.     LD    (D2A15),A
  4392.     JP    A2301
  4393. ;
  4394. A2771:    PUSH    AF
  4395.     CALL    A295F
  4396. A2775:    LD    A,(D29CB)
  4397.     LD    (HL),A
  4398.     INC    HL
  4399.     PUSH    HL
  4400.     LD    HL,(D29D0)
  4401.     DEC    HL
  4402.     LD    (D29E5),A
  4403.     LD    DE,T29E3
  4404.     LD    BC,3
  4405.     XOR    A
  4406.     LD    (DE),A
  4407.     DEC    DE
  4408.     CALL    A29B5
  4409.     LD    HL,0
  4410.     LD    (D29E6),HL
  4411.     LD    (D29E7),HL
  4412.     LD    B,4
  4413.     LD    DE,D29E5
  4414.     LD    HL,D29E0
  4415.     CALL    A2B43
  4416.     LD    DE,D29E9
  4417.     LD    HL,D29E0
  4418.     LD    B,4
  4419.     CALL    A2970
  4420.     LD    A,(D29CB)
  4421.     LD    HL,T2A02
  4422.     CALL    A296B
  4423.     INC    (HL)
  4424.     LD    HL,D29D2
  4425.     DEC    (HL)
  4426.     LD    A,(D2A16)
  4427.     OR    A
  4428.     JR    NZ,A27C5
  4429.     POP    HL
  4430.     POP    AF
  4431.     RET
  4432. ;
  4433. A27C5:    LD    HL,(D29D4)
  4434.     LD    DE,0
  4435.     LD    (HL),0FFH
  4436.     LD    A,(D29D8)
  4437.     LD    C,A
  4438. A27D1:    LD    A,L
  4439.     AND    2
  4440.     JR    Z,A27D8
  4441.     SCF
  4442. A27D8:    LD    A,D
  4443.     RRA
  4444.     LD    D,A
  4445.     LD    A,E
  4446.     RRA
  4447.     LD    E,A
  4448.     LD    A,(HL)
  4449.     CP    3
  4450.     JR    C,A27FD
  4451.     LD    B,C
  4452. A27E5:    DEC    HL
  4453.     LD    A,(HL)
  4454.     DEC    HL
  4455.     PUSH    AF
  4456.     LD    A,L
  4457.     AND    2
  4458.     JR    Z,A27F0
  4459.     DEC    C
  4460. A27F0:    POP    AF
  4461.     OR    A
  4462.     JR    NZ,A27E5
  4463.     LD    A,(HL)
  4464.     CP    B
  4465.     JR    Z,A27D1
  4466.     JR    A27E5
  4467. ;
  4468. A27FD:    POP    HL
  4469.     LD    (HL),E
  4470.     INC    HL
  4471.     LD    (HL),D
  4472.     LD    HL,(D29D4)
  4473.     POP    AF
  4474.     CPL
  4475.     LD    (HL),A
  4476.     INC    HL
  4477.     LD    (HL),0FFH
  4478.     INC    HL
  4479.     LD    (D29D4),HL
  4480.     LD    A,L
  4481.     AND    2
  4482.     RET    NZ
  4483.     LD    HL,D29D8
  4484.     INC    (HL)
  4485.     RET
  4486. ;
  4487. A2817:    LD    A,0FFH
  4488.     CALL    A295F
  4489.     INC    HL
  4490.     INC    HL
  4491.     INC    HL
  4492.     PUSH    HL
  4493.     LD    HL,T2827
  4494.     EX    (SP),HL
  4495.     CALL    A2775
  4496. T2827:    LD    HL,(D29D4)
  4497.     LD    A,0FEH
  4498.     DEC    HL
  4499.     LD    (HL),A
  4500.     DEC    HL
  4501.     INC    A
  4502.     LD    (HL),A
  4503.     RET
  4504. ;
  4505. A2832:    LD    HL,(D29CE)
  4506.     LD    A,L
  4507.     OR    H
  4508.     RET    Z
  4509.     DEC    HL
  4510.     LD    (D29CE),HL
  4511.     LD    HL,(D29D0)
  4512.     LD    A,(HL)
  4513.     INC    HL
  4514.     LD    D,H
  4515.     LD    E,L
  4516.     INC    HL
  4517.     INC    HL
  4518.     INC    HL
  4519.     LD    (D29D0),HL
  4520.     RET
  4521. ;
  4522. A284A:    LD    A,(D29CD)
  4523.     LD    L,A
  4524.     LD    H,0
  4525.     OR    A
  4526.     JR    NZ,A2855
  4527.     INC    H
  4528. A2855:    LD    (D29CE),HL
  4529.     LD    HL,(D2A1E)
  4530.     LD    (D29D0),HL
  4531.     RET
  4532. ;
  4533. D285F:    DB    0
  4534. T2860:    DB    80H,40H,20H,10H,8,4,2
  4535. T2867:    DW    0FFFFH,30H,18H,0CH,6,3
  4536.     DW    180H,0C0H,60H,30H,18H,0CH,6,3
  4537. ;
  4538. A2883:    PUSH    AF
  4539.     CALL    A28B2
  4540.     LD    HL,(D29E0)
  4541.     EX    DE,HL
  4542.     LD    C,1
  4543.     LD    HL,T2867
  4544.     LD    A,(D285F)
  4545.     LD    B,A
  4546. A2894:    LD    A,(HL)
  4547.     INC    HL
  4548.     PUSH    HL
  4549.     LD    H,(HL)
  4550.     LD    L,A
  4551.     OR    A
  4552.     SBC    HL,DE
  4553.     POP    HL
  4554.     JR    C,A28AB
  4555.     INC    C
  4556.     INC    HL
  4557.     DJNZ    A2894
  4558.     POP    AF
  4559.     LD    B,A
  4560.     XOR    A
  4561.     LD    A,B
  4562.     RET
  4563. ;
  4564. A28AB:    POP    AF
  4565.     OR    A
  4566.     RET    NZ
  4567.     DEC    A
  4568.     LD    A,0
  4569.     RET
  4570. ;
  4571. A28B2:    EX    DE,HL
  4572.     LD    DE,D29E0
  4573.     PUSH    DE
  4574.     XOR    A
  4575.     LD    (DE),A
  4576.     INC    DE
  4577.     LD    (DE),A
  4578.     INC    DE
  4579.     LD    BC,3
  4580.     CALL    A29AA
  4581.     POP    HL
  4582.     LD    DE,T29C1
  4583.     LD    B,5
  4584.     JP    A2A82
  4585. ;
  4586. A28CB:    LD    B,0
  4587. A28CD:    SUB    3
  4588.     JR    C,A28D6
  4589.     INC    B
  4590.     JR    A28CD
  4591. ;
  4592. A28D6:    LD    A,B
  4593.     RET
  4594. ;
  4595. A28D8:    LD    HL,T29C1
  4596.     INC    (HL)
  4597.     RET    NZ
  4598.     INC    HL
  4599.     INC    (HL)
  4600.     RET    NZ
  4601.     INC    HL
  4602.     INC    (HL)
  4603.     RET    NZ
  4604.     INC    HL
  4605.     INC    (HL)
  4606.     RET
  4607. ;
  4608. A28E6:    CP    90H
  4609.     JR    NZ,A28EF
  4610.     CALL    A28EF
  4611.     XOR    A
  4612. A28EF:    CALL    A28D8
  4613.     LD    L,A
  4614.     LD    H,0
  4615.     ADD    HL,HL
  4616.     ADD    HL,HL
  4617.     EX    DE,HL
  4618.     LD    HL,(D2A1C)
  4619.     ADD    HL,DE
  4620.     INC    (HL)
  4621.     RET    NZ
  4622.     INC    HL
  4623.     INC    (HL)
  4624.     RET    NZ
  4625.     INC    HL
  4626.     INC    (HL)
  4627.     RET
  4628. ;
  4629. A2904:    XOR    A
  4630.     LD    B,A
  4631.     LD    C,A
  4632.     LD    HL,(D2A1C)
  4633. A290A:    LD    (HL),A
  4634.     INC    HL
  4635.     LD    (HL),A
  4636.     INC    HL
  4637.     LD    (HL),A
  4638.     INC    HL
  4639.     LD    (HL),C
  4640.     INC    HL
  4641.     INC    C
  4642.     DJNZ    A290A
  4643.     LD    HL,T29C1
  4644.     LD    (HL),A
  4645.     INC    HL
  4646.     LD    (HL),A
  4647.     INC    HL
  4648.     LD    (HL),A
  4649.     INC    HL
  4650.     LD    (HL),A
  4651.     INC    HL
  4652.     LD    HL,T29C1
  4653.     LD    DE,D29DD
  4654.     LD    BC,4
  4655.     CALL    A29AA
  4656.     LD    HL,0
  4657.     LD    (D29DB),HL
  4658.     RET
  4659. ;
  4660. A2935:    CALL    A2941
  4661.     RET    Z
  4662.     LD    L,A
  4663.     PUSH    HL
  4664.     CALL    A2941
  4665.     POP    HL
  4666.     LD    H,A
  4667.     RET
  4668. ;
  4669. A2941:    CALL    A1773
  4670.     JR    Z,A2949
  4671.     CP    A
  4672.     RET
  4673. ;
  4674. A2949:    PUSH    AF
  4675.     LD    HL,(D29DB)
  4676.     CALL    A296B
  4677.     LD    (D29DB),HL
  4678.     POP    AF
  4679.     LD    HL,D29DD
  4680.     INC    (HL)
  4681.     RET    NZ
  4682.     INC    HL
  4683.     INC    (HL)
  4684.     RET    NZ
  4685.     INC    HL
  4686.     INC    (HL)
  4687.     RET
  4688. ;
  4689. A295F:    LD    HL,(D2A1C)
  4690.     LD    B,A
  4691.     CALL    A296B
  4692.     LD    A,B
  4693.     CALL    A296B
  4694.     LD    A,B
  4695. A296B:    ADD    A,L
  4696.     LD    L,A
  4697.     RET    NC
  4698.     INC    H
  4699.     RET
  4700. ;
  4701. A2970:    PUSH    HL
  4702.     PUSH    DE
  4703.     OR    A
  4704. A2973:    LD    A,(DE)
  4705.     ADC    A,(HL)
  4706.     LD    (DE),A
  4707.     INC    DE
  4708.     INC    HL
  4709.     DJNZ    A2973
  4710.     POP    DE
  4711.     POP    HL
  4712.     RET
  4713. ;
  4714. A298C:    INC    HL
  4715.     INC    HL
  4716.     LD    A,(HL)
  4717.     CP    C
  4718.     RET    NZ
  4719.     DEC    HL
  4720.     LD    A,(HL)
  4721.     CP    D
  4722.     RET    NZ
  4723.     DEC    HL
  4724.     LD    A,(HL)
  4725.     CP    E
  4726.     RET
  4727. ;
  4728. A2999:    LD    C,B
  4729.     LD    B,0
  4730.     ADD    HL,BC
  4731.     EX    DE,HL
  4732.     ADD    HL,BC
  4733. A299F:    DEC    HL
  4734.     DEC    DE
  4735.     LD    A,(DE)
  4736.     CP    (HL)
  4737.     RET    NZ
  4738.     DEC    C
  4739.     JR    NZ,A299F
  4740.     CP    (HL)
  4741.     RET
  4742. ;
  4743. A29AA:    LD    A,B
  4744.     OR    C
  4745.     RET    Z
  4746.     DEC    BC
  4747.     LD    A,(HL)
  4748.     LD    (DE),A
  4749.     INC    HL
  4750.     INC    DE
  4751.     JR    A29AA
  4752. ;
  4753. A29B5:    LD    A,B
  4754.     OR    C
  4755.     RET    Z
  4756.     DEC    BC
  4757.     LD    A,(HL)
  4758.     LD    (DE),A
  4759.     DEC    HL
  4760.     DEC    DE
  4761.     JR    A29B5
  4762. ;
  4763. D29C0:    DB    4
  4764. T29C1:    DS    5
  4765. D29C6:    DB    0FFH
  4766. D29C7:    DW    0
  4767. D29C9:    DB    0
  4768. D29CA:    DB    0
  4769. D29CB:    DB    0
  4770. D29CC:    DB    0
  4771. D29CD:    DB    0
  4772. D29CE:    DW    0
  4773. D29D0:    DW    0
  4774. D29D2:    DB    0
  4775. D29D3:    DB    0
  4776. D29D4:    DW    0
  4777. D29D6:    DW    0
  4778. D29D8:    DB    0
  4779. D29D9:    DW    0
  4780. D29DB:    DW    0
  4781. D29DD:    DS    3
  4782. D29E0:    DW    0
  4783. D29E2:    DB    0
  4784. T29E3:    DW    0
  4785. D29E5:    DB    0
  4786. D29E6:    DB    0
  4787. D29E7:    DW    0
  4788. D29E9:    DW    0
  4789. D29EB:    DW    0
  4790. T29ED:    DS    4
  4791. T29F1:    DS    17
  4792. T2A02:    DB    0
  4793. T2A03:    DS    16
  4794. D2A13:    DB    0
  4795. D2A14:    DB    0
  4796. D2A15:    DB    0
  4797. D2A16:    DB    0
  4798. D2A17:    DB    0
  4799. D2A18:    DB    0
  4800. D2A19:    DB    0
  4801. D2A1A:    DB    0
  4802. D2A1B:    DB    0
  4803. D2A1C:    DW    0
  4804. D2A1E:    DW    0
  4805. D2A20:    DW    0
  4806. D2A22:    DS    62
  4807. D2A60:    DW    0
  4808. ;
  4809. A2A62:    LD    A,C
  4810.     OR    A
  4811.     RET    Z
  4812.     LD    A,B
  4813.     OR    A
  4814.     RET    Z
  4815.     LD    E,B
  4816.     LD    D,0
  4817.     ADD    HL,DE
  4818.     DEC    HL
  4819.     OR    A
  4820. A2A6E:    PUSH    AF
  4821.     LD    B,A
  4822.     LD    E,L
  4823.     LD    D,H
  4824. A2A72:    LD    A,(HL)
  4825.     RRA
  4826.     LD    (HL),A
  4827.     DEC    HL
  4828.     DJNZ    A2A72
  4829.     LD    L,E
  4830.     LD    H,D
  4831.     POP    AF
  4832.     DEC    C
  4833.     JR    NZ,A2A6E
  4834.     RET
  4835. ;
  4836. A2A82:    LD    A,B
  4837.     OR    A
  4838.     JP    Z,A2B25
  4839.     LD    (D2B2A),HL
  4840.     EX    DE,HL
  4841.     LD    (D2B2C),HL
  4842.     LD    C,B
  4843.     LD    L,C
  4844.     LD    H,0
  4845.     ADD    HL,HL
  4846.     ADD    HL,HL
  4847.     ADD    HL,HL
  4848.     INC    HL
  4849.     LD    (D2B32),HL
  4850.     LD    HL,T2B35
  4851.     LD    DE,T2B3C
  4852.     LD    B,C
  4853.     XOR    A
  4854. A2AA1:    LD    (HL),A
  4855.     LD    (DE),A
  4856.     INC    HL
  4857.     INC    DE
  4858.     DJNZ    A2AA1
  4859.     LD    HL,T2B35
  4860.     LD    (D2B2E),HL
  4861.     LD    HL,T2B3C
  4862.     LD    (D2B30),HL
  4863.     LD    HL,(D2B2C)
  4864.     LD    B,C
  4865.     XOR    A
  4866. A2ABA:    OR    (HL)
  4867.     INC    HL
  4868.     DJNZ    A2ABA
  4869.     OR    A
  4870.     JR    Z,A2B21
  4871.     OR    A
  4872. A2AC5:    LD    B,C
  4873.     LD    HL,(D2B2A)
  4874. A2AC9:    LD    A,(HL)
  4875.     RLA
  4876.     LD    (HL),A
  4877.     INC    HL
  4878.     DJNZ    A2AC9
  4879.     LD    HL,D2B32
  4880.     DEC    (HL)
  4881.     JR    NZ,A2ADD
  4882.     INC    HL
  4883.     DEC    (HL)
  4884.     JP    M,A2B25
  4885. A2ADD:    LD    HL,(D2B2E)
  4886.     LD    B,C
  4887. A2AE1:    LD    A,(HL)
  4888.     LD    (HL),A
  4889.     INC    HL
  4890.     DJNZ    A2AE1
  4891.     PUSH    BC
  4892.     LD    A,C
  4893.     LD    (D2B34),A
  4894.     LD    HL,(D2B30)
  4895.     LD    B,H
  4896.     LD    C,L
  4897.     LD    HL,(D2B2E)
  4898.     EX    DE,HL
  4899.     LD    HL,(D2B2C)
  4900.     OR    A
  4901. A2AFB:    LD    A,(DE)
  4902.     SBC    A,(HL)
  4903.     LD    (BC),A
  4904.     INC    HL
  4905.     INC    DE
  4906.     INC    BC
  4907.     LD    A,(D2B34)
  4908.     DEC    A
  4909.     LD    (D2B34),A
  4910.     JR    NZ,A2AFB
  4911.     POP    BC
  4912.     CCF
  4913.     JR    NC,A2AC5
  4914.     LD    HL,(D2B2E)
  4915.     EX    DE,HL
  4916.     LD    HL,(D2B30)
  4917.     LD    (D2B2E),HL
  4918.     EX    DE,HL
  4919.     LD    (D2B30),HL
  4920.     JR    A2AC5
  4921. ;
  4922. A2B21:    SCF
  4923.     JR    A2B26
  4924. ;
  4925. A2B25:    OR    A
  4926. A2B26:    LD    HL,(D2B2E)
  4927.     RET
  4928. ;
  4929. D2B2A:    DW    0
  4930. D2B2C:    DW    0
  4931. D2B2E:    DW    0
  4932. D2B30:    DW    0
  4933. D2B32:    DW    0
  4934. D2B34:    DB    0
  4935. T2B35:    DS    7
  4936. T2B3C:    DS    7
  4937. ;
  4938. A2B43:    LD    A,B
  4939.     OR    A
  4940.     RET    Z
  4941.     LD    C,B
  4942.     LD    B,0
  4943.     ADD    HL,BC
  4944.     EX    DE,HL
  4945.     LD    (D2BAB),HL
  4946.     LD    HL,T2BAD
  4947.     ADD    HL,BC
  4948.     LD    (D2BA9),HL
  4949.     LD    L,C
  4950.     LD    H,B
  4951.     ADD    HL,HL
  4952.     ADD    HL,HL
  4953.     ADD    HL,HL
  4954.     INC    HL
  4955.     LD    (D2BA7),HL
  4956.     LD    B,C
  4957.     LD    HL,T2BAD
  4958. A2B62:    LD    (HL),0
  4959.     INC    HL
  4960.     DJNZ    A2B62
  4961.     OR    A
  4962. A2B6A:    LD    B,C
  4963.     LD    HL,(D2BA9)
  4964. A2B6E:    DEC    HL
  4965.     LD    A,(HL)
  4966.     RRA
  4967.     LD    (HL),A
  4968.     DJNZ    A2B6E
  4969.     LD    L,E
  4970.     LD    H,D
  4971.     LD    B,C
  4972. A2B79:    DEC    HL
  4973.     LD    A,(HL)
  4974.     RRA
  4975.     LD    (HL),A
  4976.     DJNZ    A2B79
  4977.     JR    NC,A2B98
  4978.     PUSH    DE
  4979.     LD    HL,(D2BAB)
  4980.     EX    DE,HL
  4981.     LD    HL,T2BAD
  4982.     LD    B,C
  4983.     OR    A
  4984. A2B8E:    LD    A,(DE)
  4985.     ADC    A,(HL)
  4986.     LD    (HL),A
  4987.     INC    DE
  4988.     INC    HL
  4989.     DJNZ    A2B8E
  4990.     POP    DE
  4991. A2B98:    LD    HL,D2BA7
  4992.     DEC    (HL)
  4993.     JR    NZ,A2B6A
  4994.     INC    HL
  4995.     INC    (HL)
  4996.     DEC    (HL)
  4997.     RET    Z
  4998.     DEC    (HL)
  4999.     JR    A2B6A
  5000. ;
  5001. D2BA7:    DW    0
  5002. D2BA9:    DW    0
  5003. D2BAB:    DW    0
  5004. T2BAD:    DS    83
  5005. ;
  5006. Y2C00:    DB    0
  5007. Y2C01:    DW    0
  5008. CRCFLG:    DB    0
  5009. .CPFL:    DB    0        ; 1="C" COMMAND, 0=OTHERS (FOR CRC)
  5010. DRIVE1:    DB    0
  5011. DRIVE2:    DB    0
  5012. USER1:    DB    0
  5013. USER2:    DB    0
  5014. SRCCRC:    DW    0
  5015. NMBFLS:    DW    0
  5016. Y2C0C:    DB    0
  5017. Y2C0D:    DW    0
  5018. Y2C0F:    DW    0
  5019. FILNMB:    DW    0        ; POINTER TO FILENAME ARRAY (FILE #)
  5020. Y2C13:    DW    0
  5021. Y2C15:    DW    0
  5022. Y2C17:    DW    0
  5023. Y2C19:    DW    0
  5024. Y2C1B:    DW    0
  5025. FILPTR:    DW    0
  5026. Y2C1F:    DW    0
  5027. Y2C21:    DW    0
  5028. Y2C23:    DW    0
  5029. Y2C25:    DW    0
  5030. Y2C27:    DW    0
  5031. BLKSZE:    DB    0
  5032. FREEK:    DW    0
  5033. TOTALK:    DW    0
  5034. TAGTOT:    DW    0            ; TOTAL K FILES TAGGED
  5035. TAGTO1:    DW    0            ; TOTAL FILES TAGGED IF 1K/BLOCK
  5036. Y2C32:    DB    0
  5037. Y2C33:    DB    0
  5038. Y2C34:    DW    0
  5039. RAMTOP:    DW    0
  5040. Y2C38:    DB    0
  5041. USER3:    DB    0
  5042. Y2C3A:    DB    0
  5043. Y2C3B:    DB    0
  5044. Y2C3C:    DB    0
  5045. Y2C3D:    DW    0
  5046. CRCACC:    DW    0
  5047. Y2C41:    DW    0
  5048. Y2C43:    DB    0
  5049. ;
  5050. SRCFCB:    DB    0
  5051.     DS    8
  5052. SRCFCT:    DS    3
  5053. Y2C50:    DB    0
  5054. Y2C51:    DB    0
  5055. Y2C52:    DS    24
  5056. ;
  5057. DSTFCB:    DB    0
  5058.     DS    8
  5059. DSTFCT:    DS    3
  5060. Y2C76:    DB    0
  5061. Y2C77:    DS    25
  5062. ;
  5063. FCB0:    DB    0
  5064.     DS    37
  5065. FCB1:    DB    0
  5066.     DS    37
  5067. CRCTBL:    DS    512
  5068. Y2EDC:    DW    0
  5069. Y2EDE:    DW    0
  5070. Y2EE0:    DS    3
  5071. Y2EE3:    DS    10
  5072. Y2EED:    DB    0
  5073.     END
  5074. 2BA9:    DW    0
  5075. D2BAB:    DW    0
  5076. T2BAD:    DS    83
  5077. ;
  5078. Y2C00:    DB    0
  5079. Y2C01:    DW    0
  5080. CRCFLG:    DB    0
  5081. .CPFL:    DB    0