home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C128CPM / 2.2DIR.ARC / 2.2DIR.ASM next >
Encoding:
Assembly Source File  |  2019-04-13  |  3.5 KB  |  236 lines

  1. ;        LABELS FOR KERNAL ROUTINES
  2. ;
  3.      * = $080F
  4. SETLFS = $FFBA
  5. SETNAM = $FFBD
  6.   OPEN = $FFC0
  7.  CHKIN = $FFC6
  8.  CHRIN = $FFCF
  9. CHKOUT = $FFC9
  10. CHROUT = $FFD2
  11.  CLRCH = $FFCC
  12.  CLOSE = $FFC3
  13.  CLALL = $FFE7
  14. LINPRT = $BDCD
  15.   PLOT = $FFF0
  16. ;
  17. ;         PROGRAM CONSTANTS
  18. ;
  19. CPMDIR = $4000
  20. NFILES = $C3
  21.  TOTLK = $BE
  22.  CURTK = $BF
  23.    DEV = $08
  24.     Z1 = $FB
  25.     Z2 = $FC
  26.     Z3 = $FD
  27.     Z4 = $FE
  28.     Z5 = $02
  29.     Z6 = $C4
  30.   CYAN = $9F
  31.    DOT = $2E
  32.     CR = $0D
  33.    CLR = $93
  34.     SP = $20
  35. ;
  36. JMP TOP
  37. ;
  38.   INIT .BYTE 'I0'
  39.   DATA .BYTE '#'
  40.   READ .BYTE  'U1:2 0 3 '
  41.  TITLE .BYTE  31,18,'           CP/M 2.2 DIRECTORY           ',146
  42.        .BYTE 13,151,'U# NAME    .TYP  KB  U# NAME    .TYP  KB',159
  43.  TOTAL .BYTE 'FILES, USING '
  44.  KUSED .BYTE 'K OF 134K CAPACITY',13
  45. ;
  46. TOP    JSR ERRCHN
  47.        JSR DATCHN
  48. ;
  49.        LDA #$30
  50.        STA Z1
  51.        LDA #<CPMDIR
  52.        STA Z3
  53.        LDA #>CPMDIR
  54.        STA Z4
  55. ;
  56. GETDIR LDX #$0F
  57.        JSR CHKOUT
  58.        LDX #00
  59. RWHEAD LDA READ,X
  60.        JSR CHROUT
  61.        INX
  62.        CPX #09
  63.        BNE RWHEAD
  64.        LDA Z1
  65.        JSR CHROUT
  66.        JSR CLRCH
  67. ;
  68.        LDX #01
  69.        JSR CHKIN
  70.        LDY #00
  71. GETL1  JSR CHRIN   ;READ DATA
  72.        STA (Z3),Y
  73.        INY
  74.        CPY #00
  75.        BNE GETL1
  76.        INC Z4
  77.        INC Z1
  78.        LDA #$38
  79.        CMP Z1
  80.        BNE GETDIR
  81. ;
  82.        LDA #01
  83.        JSR CLOSE
  84.        LDA #$0F
  85.        JSR CLOSE
  86.        JSR CLALL
  87. ;
  88.        LDA #CLR    ;SCREEN SETUP
  89.        JSR CHROUT
  90.        LDX #00
  91.        STX $D020
  92.        STX $D021
  93.        STX NFILES
  94.        STX TOTLK
  95.        STX CURTK
  96. TLP1   LDA TITLE,X
  97.        JSR CHROUT
  98.        INX
  99.        CPX #$56
  100.        BNE TLP1
  101. ;
  102.        LDA #<CPMDIR
  103.        STA Z3
  104.        LDA #>CPMDIR
  105.        STA Z4
  106.        LDA #00
  107.        STA Z1
  108.        LDA #04
  109.        STA Z2
  110. PRINT  LDY #00
  111.        INC Z1
  112.        LDA (Z3),Y
  113.        STA Z5
  114.        CMP #$E5
  115.        BEQ NEXT
  116.        JSR CURSOR
  117.        LDX Z5
  118.        LDA #00
  119.        JSR LINPRT
  120.        LDA #SP
  121.        JSR CHROUT
  122.        JSR CHROUT
  123. PRL1   LDA (Z3),Y
  124.        JSR CHROUT
  125.        INY
  126.        CPY #09
  127.        BNE PRL1
  128.        LDA #DOT
  129.        JSR CHROUT
  130.        INC NFILES
  131. PRL2   LDA (Z3),Y
  132.        JSR CHROUT
  133.        INY
  134.        CPY #$0C
  135.        BNE PRL2
  136. ;
  137.        LDY #$10
  138. NKLOOP LDA (Z3),Y
  139.        CMP #00
  140.        BEQ PRNTK
  141.        INC CURTK
  142.        INC TOTLK
  143.        INY
  144.        CPY #$20
  145.        BNE NKLOOP
  146. PRNTK  LDX CURTK
  147.        LDA #SP
  148.        CPX #$0A
  149.        BCS ONESP
  150.        JSR CHROUT
  151. ONESP  JSR CHROUT
  152.        CLC
  153.        LDA #00
  154.        STA CURTK
  155.        JSR LINPRT
  156.        LDA #'K
  157.        JSR CHROUT
  158. OU, #$40
  159.        CMP Z1
  160.        BEQ ENDIT
  161.        CLC
  162.        LDA Z3
  163.        ADC #$20
  164.        STA Z3
  165.        LDA Z4
  166.        ADC #00
  167.        STA Z4
  168.        LDA Z5
  169.        CMP #$E5
  170.        BEQ BACK
  171.        LDA Z1
  172.        AND #01
  173.        BNE BACK
  174.        LDA #CR
  175.        JSR CHROUT
  176. BACK   JMP PRINT
  177. ;
  178. ERRCHN LDA #$0F
  179.        LDX #DEV
  180.        LDY #$0F
  181.        JSR SETLFS
  182.        LDA #02
  183.        LDX #<INIT
  184.        LDY #>INIT
  185.        JSR SETNAM
  186.        JSR OPEN
  187.        RTS
  188. ;
  189. DATCHN LDA #01
  190.        LDX #DEV
  191.        LDY #02
  192.        JSR SETLFS
  193.        LDA #01
  194.        LDX #<DATA
  195.        LDY #>DATA
  196.        JSR SETNAM
  197.        JSR OPEN
  198.        RTS
  199. ;
  200.  ENDIT LDA #CR
  201.        JSR CHROUT
  202.        LDA #00
  203.        LDX NFILES
  204.        JSR LINPRT
  205.        LDA #SP
  206.        JSR CHROUT
  207.  TOTL1 LDA TOTAL,X
  208.        JSR CHROUT
  209.        INX
  210.        CPX #$0D
  211.        BNE TOTL1
  212.        LDX TOTLK
  213.        LDA #00
  214.        JSR LINPRT
  215.        LDX #00
  216. KUDL1  LDA KUSED,X
  217.        JSR CHROUT
  218.        INX
  219.        CPX #$13
  220.        BNE KUDL1
  221.        RTS
  222. ;
  223. CURSOR LDX Z2
  224.        LDY #00
  225.        LDA #01
  226.        AND NFILES
  227.        BNE CR1
  228. CR2    CLC
  229.        JSR PLOT
  230.        LDY #00
  231.        RTS
  232. CR1    LDY #$15
  233.        INC Z2
  234.        JMP CR2
  235. .END
  236.