home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C128Toolkit / 1750-RAMDISK.LBR / EXPRAM.SRC.seq < prev   
Encoding:
Text File  |  2019-04-13  |  15.1 KB  |  820 lines

  1. ;
  2. ;
  3. ;         EXPANSION RAM
  4. ;
  5.        * = $B000
  6. ;
  7. ;
  8. ;
  9.        JMP START
  10. WSET   LDY #$04
  11. PARL   LDA WSZ,X   ;SET WINDOW BORDERS
  12.        STA $00E3,Y ;PAGE 1 PARAMETERS
  13.        DEX
  14.        DEY
  15.        BNE PARL
  16.        JSR $C142   ;CLR HOME
  17. ;
  18.        LDX #$00    ;PRINT WINDOW
  19.        JSR PRT
  20.        STX $FC
  21. ROWS   LDX $FC
  22.        JSR PRT
  23.        LDA $EB
  24.        CMP $E4
  25.        BNE ROWS    ;HEIGHT LOOP
  26.        JSR PRT
  27.        DEC $E4     ;SET INSIDE WINDOW
  28.        INC $E5
  29.        INC $E6
  30.        DEC $E7
  31.        JSR $CA32   ;CLR LINE OVERFLOW
  32.        JSR $C150   ;CURSOR HOME
  33.        RTS         ;EXIT
  34. PRT    JSR SIDE
  35. NEXT   LDA CHR,X   ;GET CHAR BYTES
  36.        JSR $C72D
  37.        LDA $EC
  38.        CMP $E7
  39.        BNE NEXT
  40. SNXT   INX
  41. SIDE   LDA CHR,X   ;WIDTH LOOP
  42.        BEQ CONT
  43.        JSR $C72D
  44.        JMP SNXT
  45. CONT   INX
  46.        RTS
  47. ;
  48. ;
  49. WSZC   .BYT 0
  50. WSZ    .BYT 0,13,2,3,17
  51.        .BYT 15,2,3,22
  52.        .BYT 17,2,3,22
  53. ;
  54. CHR    .BYT 159,207,0,183,18,32,0
  55.        .BYT 146,180,0,32,18,32,0
  56.        .BYT 175,0,175,175,175,0
  57. ;
  58. ;
  59. SWAP   JSR $CA24   ;SCREEN = WINDOW
  60.        JSR $C150   ;CRSR HOME
  61.        LDA WSZ
  62.        STA $F1     ;RESOTRE CRSR COLOR
  63.        LDA $EE     ;MAX COLUMNS
  64.        CMP #$4F    ;79 COL
  65.        BEQ S80     ;YES, GO 80 COL
  66. ;
  67.        LDA #$04    ;SCREEN START
  68.        STA $FB     ;SET UP IND ADDR
  69.        STA $FD
  70.        LDA #$00
  71.        STA $FA
  72.        STA $FC
  73.        LDA #$FA
  74.        STA $02B9   ;Z-PAGE POINTER
  75.        JSR SET
  76.        LDA #$D8    ;COLOR RAM
  77.        STA $FD
  78. SET    LDY #$00
  79.        STY $FF
  80. RDWT   LDA SF      ;STASH/FETCH?
  81.        BNE FETCH
  82.        LDX #$01    ;TO BANK 1
  83.        LDA ($FC),Y ;FROM SCREEN
  84.        JSR $FF77   ;STASH
  85.        JMP LOOP
  86. ;
  87. FETCH  LDA #$FA
  88.        LDX #$01    ;FROM BANK 1
  89.        JSR $FF74   ;FETCH
  90.        STA ($FC),Y ;TO SCREEN
  91. ;
  92. LOOP   INY
  93.        BNE RDWT
  94.        INC $FB     ;INC HI BYTES
  95.        INC $FD
  96.        INC $FF
  97.        LDA $FF
  98.        CMP #$04    ;DONE?
  99.        BNE RDWT
  100.        RTS         ;GET COLOR OR EXIT
  101. ;
  102. SF     .BYT 01
  103. ;
  104. ;
  105. S80    LDA #$10    ;16 PAGES
  106.        STA $FF
  107.        LDX #$12    ;R18 DEST HI BYTE
  108.        LDA RW
  109.        JSR WRITE
  110.        INX         ;R19 DEST LO BYTE
  111.        LDA #$00
  112.        JSR WRITE
  113.        LDA #$A0
  114.        LDX #$18    ;R24 SET COPY BIT
  115.        JSR WRITE
  116.        LDA #$00
  117.        LDX #$21    ;R33 SOURCE LO BYTE
  118.        JSR WRITE
  119.        LDY RW+1
  120. LP2    TYA
  121.        LDX #$20    ;R32 SOURCE HI BYTE
  122.        JSR WRITE
  123.        LDA #$00
  124.        LDX #$1E    ;WORD COUNT
  125.        JSR WRITE
  126.        INY
  127.        DEC $FF
  128.        BNE LP2
  129.        RTS         ;EXIT
  130. ;
  131. WRITE  STX $D600   ;WRITE  TO VDC
  132. WAIT   BIT $D600
  133.        BPL WAIT
  134.        STA $D601
  135.        RTS
  136. ;
  137. RW     .BYT 16,0
  138. ;
  139. ;
  140. ;          --- MENU SCREENS ---
  141. ;             ---  MAIN  ---
  142. ;
  143. ;
  144. START  LDA $F1     ;SAVE SCREEN
  145.        STA WSZ     ;  CURSOR COLOR
  146.        LDA $D021
  147.        STA WSZC    ;  SCREEN COLOR
  148.        LDA #$FB
  149.        STA $D021   ; GREY SCREEN
  150.        LDA #$00
  151.        STA SF      ;REINITIALIZE SWAP
  152.        STA RW+1    ; FOR READ
  153.        LDA #$10    ; 40 COL AND
  154.        STA RW      ; 80 COL
  155. MAIN   JSR SWAP
  156.        LDA #$01
  157.        STA SF     ;RESTE R/W FOR
  158.        LDA #$00    ;40 AND 80 COL SCRN
  159.        STA RW
  160.        LDA #$10
  161.        STA RW+1
  162.        JSR $CAE5   ;SCROLLING OFF
  163.        LDA #$9F    ;CYAN
  164.        STA CHR     ;BORDER COLOR
  165.        LDX #$04
  166.        JSR WSET    ;DO WINDOW
  167.        LDX #$01
  168. PRCH   STX SEL
  169.        LDA LO-1,X  ;SET ADDR FOR JMP
  170.        STA $FE
  171.        LDA HI-1,X
  172.        STA $FF
  173.        JSR $FA17
  174.        .BYT 19,146,'   M E N U',13
  175.        .BYT '╖╖╖╖╖╖╖╖╖╖╖╖',13,13,32,0
  176.        CPX #$01
  177.        BNE CH1
  178.        JSR $C8C2    ;RVS ON
  179. CH1    JSR $FA17
  180.        .BYT 'DISK > EXP',13,13,32,0
  181.        CPX #$02
  182.        BNE CH2
  183.        JSR $C8C2
  184. CH2    JSR $FA17
  185.        .BYT 'EXP > HOST',13,13,32,0
  186.        CPX #$03
  187.        BNE CH3
  188.        JSR $C8C2
  189. CH3    JSR $FA17
  190.        .BYT 'HOST > EXP',13,0
  191. ;
  192. KEY    JSR $FFE4
  193.        CMP #$1B     ;ESC CHAR
  194.        BNE CRDN
  195.        JSR $CAE2    ;ENABLE SCROLLING
  196.        LDA KMSG
  197.        STA $9D      ;RESTORE KERNAL MSG
  198.        LDA WSZC
  199.        STA $D021    ;RESTORE SCRN COLOR
  200.        JMP SWAP     ;FETCH AND EXIT
  201. CRDN   CMP #$11     ;CRSR DOWN?
  202.        BNE CSRUP
  203.        INC SEL
  204.        LDX SEL
  205.        CPX #$04     ;>#3?
  206.        BNE PS1
  207.        LDX #$01
  208. PS1    JMP PRCH
  209. CSRUP  CMP #$91     ;CRSR UP?
  210.        BNE RETRN
  211.        DEC SEL
  212.        LDX SEL
  213.        BNE PS2      ; =0 ?
  214.        LDX #$03
  215. PS2    JMP PRCH
  216. RETRN  CMP #$0D     ;<RETURN> KEY?
  217.        BNE KEY
  218.        JMP ($FE)
  219. ;
  220. SEL    .BYT 0
  221. LO     .BYT 0,0,0   ;VECTOR IND JUMP
  222. HI     .BYT 0,0,0   ;TABLE
  223. ;
  224. ;
  225. ;       --- HOST => EXP ---
  226. ;
  227. ;
  228. HOST   LDA #$9E     ;YELLOW
  229.        STA CHR      ;BORDER COLOR
  230.        LDX #$08     ;BORDER TABLE
  231.        JSR WSET     ;DO NEW WINDOW
  232. ;
  233. HST1   JSR $FA17
  234.        .BYT 19,146,' HOST -> EXP RAM'
  235.        .BYT 13,'╖╖╖╖╖╖╖╖╖╖╖╖╖╖╖╖╖'
  236.        .BYT 13,32,32
  237. BSC    .BYT 18,'BASIC',146,32,32
  238. BIN    .BYT 146,'BINARY',13,0
  239. ;
  240. HKEY   JSR $FFE4
  241.        CMP #$1B     ;ESCAPE?
  242.        BNE C1
  243.        JMP MAIN
  244. C1     CMP #$1D     ;CRSR RIGHT?
  245.        BEQ C2
  246.        CMP #$9D     ;CRSR LEFT?
  247.        BNE R1
  248. C2     LDA #$80
  249.        EOR BSC      ;RVS ON <> RVS OFF
  250.        STA BSC
  251.        LDA #$80
  252.        EOR BIN
  253.        STA BIN
  254.        JMP HST1    ;PRINT NEW MENU
  255. R1     CMP #$0D     ;<RET> KEY?
  256.        BNE HKEY
  257. ;
  258.        JSR XFLAD
  259.        JSR XFLNM
  260.        JMP MAIN
  261. XFLNM  JSR $FA17
  262.        .BYT 13,' FILENAME:',13,0
  263. FLNM   JSR $FFCF
  264.        INY
  265.        CMP #$0D     ;<RET> KEY?
  266.        BEQ PAD      ;W/ #$A0
  267.        STA ($FE),Y
  268.        JMP FLNM
  269. PAD    LDA #$A0
  270. PD1    CPY #$11     ;16 CHAR IN NAME?
  271.        BEQ BSRAM    ;YES, CONT.
  272.        STA ($FE),Y
  273.        INY
  274.        JMP PD1
  275. BSRAM  LDA BSC
  276.        CMP #$12     ;RVS=BASIC PRG
  277.        BNE BNINP
  278.        LDA $2D      ;START OF BASIC
  279.        STA ($FE),Y
  280.        INY
  281.        LDA $2E
  282.        STA ($FE),Y
  283.        JSR XRBEG    ;EX RAM ADDR
  284.        INY
  285.        SEC
  286.        LDA $1210    ;END OF BASIC TEXT
  287.        SBC $2D      ;CALC # OF BYTES
  288.        STA ($FE),Y
  289.        INY
  290.        LDA $1211
  291.        SBC $2E
  292.        STA ($FE),Y
  293. GODMA  INY          ;C128 BANK
  294.        LDA #$00
  295.        STA ($FE),Y
  296.        JMP DPREP
  297. BNINP  JSR $FA17
  298.        .BYT 13,13,'BANK (0/1): ',0
  299.        JSR $FFCF
  300.        STA FN+2
  301. STADR  JSR $FA17
  302.        .BYT 19,17,17,17,17,17,17,17,17
  303.        .BYT 17,'START ADDR: $',0
  304.        JSR HXINP
  305.        BCS STADR
  306.        STA $0AB4    ;TEMP STORAGE
  307.        JSR CNVHX
  308.        BCS STADR
  309.        STA $0AB5    ;TEMP STORAGE
  310.        STA ($FE),Y
  311.        INY
  312.        LDA $0AB4
  313.        STA ($FE),Y
  314.        JSR XRBEG
  315. ENDAD  JSR $FA17
  316.        .BYT 19,17,17,17,17,17,17,17,17
  317.        .BYT 17,17,' END  ADDR: $',0
  318.        JSR HXINP
  319.        BCS ENDAD
  320.        STA $0AB6
  321.        JSR CNVHX
  322.        BCS ENDAD
  323.        INY
  324.        SEC
  325.        SBC $0AB5    ;CALC FILE SIZE
  326.        STA ($FE),Y
  327.        INY
  328.        LDA $0AB6
  329.        SBC $0AB4
  330.        STA ($FE),Y
  331.        INY
  332.        LDA FN+2     ;BANK #
  333.        SEC
  334.        SBC #$30
  335.        STA ($FE),Y
  336. ;
  337. DPREP  INC TOTFL
  338.        CLC
  339.        LDA FN
  340.        ADC #$19     ;+25 FOR NEXT FLNAME
  341.        STA FN
  342.        BCC DP1
  343.        INC FN+1
  344. DP1    LDY #$16
  345.        CLC
  346.        LDA ($FE),Y  ;UPDDATE RAM ADDR
  347.        ADC RAMAD
  348.        STA RAMAD
  349.        INY
  350.        LDA ($FE),Y
  351.        ADC RAMAD+1
  352.        STA RAMAD+1
  353.        BCC DP2
  354.        INC RAMAD+2
  355. DP2    JMP DMA
  356. ;
  357. HXINP  LDX #$00
  358. INLP   JSR $FFCF    ;INPUT HEX CHARS
  359.        STA $0200,X
  360.        INX
  361.        CMP #$0D
  362.        BNE INLP
  363.        LDX #$FF
  364. CNVHX  JSR HXCV     ;CONVERT HEX CHARS
  365.        BCS HXRTN    ;TO LO HI BYTE
  366.        ASL A
  367.        ASL A
  368.        ASL A
  369.        ASL A
  370.        STA $FA,X
  371.        JSR HXCV
  372.        BCS HXRTN
  373.        DEX
  374.        CLC
  375.        ADC $FA,X
  376.        INX
  377. HXRTN  RTS
  378. ;
  379. HXCV   INX
  380.        LDA $0200,X
  381.        SEC
  382.        SBC #$30    ;ASCII TO INT
  383.        BCC SCRT
  384.        CMP #$0A
  385.        BCC ASCRT
  386.        SBC #$07
  387.        CMP #$10
  388.        BCC ASCRT
  389. SCRT   SEC         ;NOT $0-$F RTS
  390. ASCRT  RTS
  391. ;
  392. XFLAD  LDA #$80    ;STASH CMD
  393.        STA DCMD+1
  394.        LDA FN
  395.        STA $FE
  396.        LDA FN+1
  397.        STA $FF
  398.        LDA #$00
  399.        TAY
  400.        STA ($FE),Y
  401.        RTS
  402. ;
  403. XRBEG  INY
  404.        LDA RAMAD
  405.        STA ($FE),Y
  406.        INY
  407.        LDA RAMAD+1
  408.        STA ($FE),Y
  409.        INY
  410.        LDA RAMAD+2
  411.        STA ($FE),Y
  412.        RTS
  413. ;
  414. ;
  415. FN    .BYT 0,189,0  ;CAT IND ADDR, BANK
  416. ;
  417. RAMAD  .BYT 0,0,0   ;NEXT AVAIL ADDR
  418. ;
  419. ;
  420. ;
  421. ;      ---- EXP DIRECTORY ----
  422. ;            -- FETCH --
  423. ;
  424. ;
  425. DIR    LDA #$99      ;LT. GREEN
  426.        STA CHR
  427.        LDX #$0C      ;BORDER TABLE
  428.        JSR WSET
  429.        JSR $FA17
  430.        .BYT 19,146,'EXP RAM DIRECTORY'
  431.        .BYT 13,'╖╖╖╖╖╖╖╖╖╖╖╖╖╖╖╖╖',0
  432.        LDA TOTFL
  433.        CMP #$01
  434.        BNE EXMUS
  435.        JSR $FA17
  436.        .BYT 13,13,'  EXP RAM EMPTY'
  437.        .BYT 13,13,'  PRESS ANY KEY',0
  438. EXWT   JSR $FFE4
  439.        BEQ EXWT
  440.        JMP MAIN
  441. EXMUS  LDA #$01
  442.        STA SELECT
  443.        STA TOP
  444.        LDA #$0B
  445.        STA TOP+1
  446. EXMNU  JSR $FA17
  447.        .BYT 19,17,17,17,0
  448.        LDA #$01
  449.        STA $FE       ;SET IND ADDR
  450.        LDA #$BD
  451.        STA $FF
  452.        LDX #$01
  453. EXMU1  CPX TOP
  454.        BEQ EXM1
  455.        JSR ADD
  456.        INX
  457.        JMP EXMU1
  458. ;
  459. EXM1   CPX SELECT
  460.        BNE EXM2
  461.        LDA #$80      ;RVS ON
  462.        STA $F3
  463. EXM2   LDY #$00
  464. EXM3   LDA ($FE),Y
  465.        JSR $FFD2
  466.        INY
  467.        CPY #$10      ;ALL 16 CHARS?
  468.        BNE EXM3
  469.        JSR ADD
  470. EXM4   INX
  471.        LDA #$0D
  472.        JSR $FFD2
  473.        CPX TOTFL     ;LAST FILE?
  474.        BEQ EXKEY
  475.        CPX TOP+1
  476.        BNE EXM1
  477. ;
  478. EXKEY  JSR $FFE4
  479.        CMP #$1B      ;ESCAPE KEY?
  480.        BNE EXCUP
  481.        JMP MAIN
  482. EXCUP  CMP #$91      ;CRSR UP?
  483.        BNE EXM5
  484.        DEC SELECT
  485.        BNE EXUP1
  486.        INC SELECT
  487. EXUP1  LDA SELECT
  488.        CMP TOP
  489.        BCS EXUP2
  490.        DEC TOP
  491.        DEC TOP+1
  492. EXUP2  JMP EXMNU
  493. EXM5   CMP #$11      ;CRSR  DOWN?
  494.        BNE EXM7
  495.        INC SELECT
  496.        LDA SELECT
  497.        CMP TOTFL
  498.        BCC EXM8
  499.        DEC SELECT
  500. EXM8   LDA SELECT
  501.        CMP TOP+1
  502.        BCC EXM9
  503.        INC TOP
  504.        INC TOP+1
  505. EXM9   JMP EXMNU
  506. EXM7   CMP #$0D      ;RETURN KEY?
  507.        BNE EXKEY
  508. ;
  509.        LDA #$00      ;SET ADDR FOR DMA
  510.        STA $FE
  511.        LDA #$BD
  512.        STA $FF
  513.        LDX SELECT    ;SET UP FETCH
  514. SELEC1 DEX
  515.        BEQ DMAJ
  516.        JSR ADD
  517.        JMP SELEC1
  518. DMAJ   LDA #$81
  519.        STA DCMD+1
  520.        JSR DMA       ;TO DMA
  521.        JMP MAIN
  522. ;
  523. ;
  524. ADD    CLC
  525.        LDA #$19      ;ADD 25 TO BASE
  526.        ADC $FE
  527.        STA $FE
  528.        BCC ADD1
  529.        INC $FF
  530. ADD1   RTS
  531. ;
  532. ;
  533. ;
  534. SELECT .BYT 0
  535. TOTFL  .BYT 1        ;TOTAL # FILES,
  536. TOP    .BYT 0,0      ; # AT TOP OF DISP
  537. ;                    ;AND BOTTOM
  538. ;
  539. ;
  540. ;
  541. ;  ---- DMA SETUP AND RUN  ----
  542. ;
  543. DMA    LDY #$11
  544.        LDX #$02
  545. DM1    LDA ($FE),Y
  546.        STA $DF00,X
  547.        INY
  548.        INX
  549.        CPX #$09
  550.        BNE DM1
  551. ;
  552.        LDA ($FE),Y
  553.        TAX
  554. DCMD   LDY #$80      ;DMA COMMAND
  555.        JSR $FF50
  556.        RTS           ;RETURN TO ORIGIN
  557. ;                    ;MENU
  558. ;
  559. ;
  560. ;      ---- DISK TO RAM ----
  561. ;
  562. ;
  563. ;
  564. DISK   LDA #$1E       ;GREEN
  565.        STA CHR
  566.        LDX #$0C
  567.        JSR WSET
  568.        JSR $FA17
  569.        .BYT 146,19,' DISK  DIRECTORY',13
  570.        .BYT '╖╖╖╖╖╖╖╖╖╖╖╖╖╖╖╖╖',13
  571.        .BYT ' PROGRAM       XFR',0
  572.        LDA #$03
  573.        CLC
  574.        ADC $E5       ;LOWER TOP WINDOW
  575.        STA $E5
  576.        JSR $CA32     ;CLEAR OVERFLOW BIT
  577.        JSR $C150     ;CRSR HOME
  578.        LDA #$00
  579.        STA $FE
  580.        LDA #$B8
  581.        STA $FF
  582.        LDA #$02      ;INITIALIZE DISK
  583.        LDX #<IND
  584.        LDY #>IND
  585.        JSR $FFBD     ;SET NAME
  586.        LDX #$00
  587.        JSR $FF68     ;SET BANK
  588.        LDA #$0F
  589.        LDX #$08
  590.        LDY #$0F
  591.        JSR $FFBA     ;SET LFS
  592.        JSR $FFC0     ;OPEN
  593.        LDX #$0F
  594.        JSR $FFC6
  595.        JSR $FFCF     CHECK FOR ERROR
  596.        STA DERR
  597.        LDA #$0F
  598.        JSR $FFC3     ;CLOSE
  599.        JSR $FFCC     ;CLRCHN
  600.        LDA DERR
  601.        CMP #$31
  602.        BCC DER1
  603.        JMP MAIN
  604. DER1   LDA $9D
  605.        STA KMSG
  606.        LDA #$00      ;KERNAL MSG OFF
  607.        STA $9D
  608.        LDA #$01
  609.        LDX #$08
  610.        LDY #$00
  611.        JSR $FFBA     ;SET LFS
  612.        LDA #$06
  613.        LDX #<DDIR
  614.        LDY #>DDIR
  615.        JSR $FFBD     ;SET NAME
  616.        JSR $FFC0     ;OPEN
  617.        LDX #$01
  618.        JSR $FFC6     ;OPEN CHN
  619.        LDX #$32
  620. HD1    JSR $FFCF     ;DUMP HEADER
  621.        DEX
  622.        BNE HD1
  623. DFILE  LDY #$00      ;GET FILE NAMES
  624.        TYA           ;XFER FLAG
  625.        STA ($FE),Y
  626.        INY
  627.        INY
  628.        LDX #$04
  629. DFL1   JSR $FFCF
  630.        DEX
  631.        BNE DFL1
  632. DFL2   JSR $FFCF
  633.        CMP #$0D
  634.        BEQ CLOSE
  635.        CMP #$22      ;QUOTES?
  636.        BNE DFL2
  637. DFL3   JSR $FFCF
  638.        CMP #$22
  639.        BEQ DFL4
  640.        STA ($FE),Y
  641.        INY
  642.        JMP DFL3
  643. DFL4   STY FLEN
  644.        LDA #$A0      ;PAD NAME W/SPACES
  645. DFL5   CPY #$12      ;16 CHARS YET?
  646.        BEQ DFL6
  647.        STA ($FE),Y
  648.        INY
  649.        JMP DFL5
  650. DFL6   LDY #$01
  651.        LDX FLEN
  652.        DEX
  653.        DEX
  654.        TXA
  655.        STA ($FE),Y
  656. DFL8   JSR $FFCF
  657.        BNE DFL8      ;DUMP REMAINING
  658.        JSR FLADD
  659.        JMP DFILE
  660. CLOSE  LDA #$FF
  661.        STA ($FE),Y
  662.        LDA #$01
  663.        JSR $FFC3
  664.        JSR $FFCC
  665.        LDA #$99      ;LT.GREEN
  666.        JSR $FFD2
  667.        JSR $CAE2     ;SCROLLING ON
  668.        LDA #$00      ;RESET ADDR
  669.        STA $FE
  670.        LDA #$B8
  671.        STA $FF
  672. GFLN   LDY #$01
  673. GLP    INY
  674.        LDA ($FE),Y   ;PRINT FILE NAME
  675.        CMP #$FF
  676.        BEQ XFRFL
  677.        JSR $FFD2
  678.        CMP #02
  679.        BCS GLP
  680.        JSR $FA17
  681.        .BYT 166,157,0
  682. DKY    JSR $FFE4
  683.        LDY #$00
  684.        CMP #$1B      ;ESCAPE KEY
  685.        BNE DKY1
  686.        JMP MAIN
  687. DKY1   CMP #$59      ;Y  YES
  688.        BNE DKY2
  689.        JSR $FFD2
  690.        LDA #$01
  691.        STA ($FE),Y
  692.        JMP DKY3
  693. DKY2   CMP #$4E      ;N  NO
  694.        BNE DKY4
  695.        JSR $FFD2
  696. DKY3   JSR FLADD
  697.        LDA #$0D
  698.        JSR $FFD2
  699.        JMP GFLN
  700. DKY4   CMP #$0D
  701.        BNE DKY
  702. ;
  703. XFRFL  JSR XFLAD     ;SET ADDR
  704.        LDA #$00      ;IND ADDR OF DISK
  705.        STA $FC       ;FILES
  706.        LDA #$B8
  707.        STA $FD
  708. DDF1   LDY #$00
  709. DDF2   LDA ($FC),Y   ;FIND FLAGGED FILES
  710.        BNE DDF4
  711.        JSR DDADD
  712.        JMP DDF2
  713. DDF4   INY
  714.        LDA ($FC),Y
  715.        STA $B7       ;FILE NAME LEN
  716.        LDA $FD
  717.        STA $BC       ;HI BYTE FILE NAME
  718.        CLC
  719.        LDA #$02
  720.        ADC $FC
  721.        STA $BB       ;LO BYTE
  722.        BCC DDF5
  723.        INC $BC       ;HI BYTE
  724. DDF5   INY
  725.        LDA ($FC),Y
  726.        DEY
  727.        STA ($FE),Y   ;ADD NAME TO EXP
  728.        CMP #$FF      ;LAST FILE?
  729.        BNE DDF6
  730.        JMP MAIN      ;EXIT
  731. DDF6   INY
  732.        CPY #$12
  733.        BNE DDF5
  734.        LDA #$00
  735.        LDX #$00      ;SET BANK
  736.        JSR $FF68
  737.        LDA #$01
  738.        LDX #$08
  739.        LDY #$00
  740.        JSR $FFBA     ;SET LFS
  741.        JSR $FFC0     ;OPEN
  742.        LDX #$01
  743.        JSR $FFC6
  744.        LDY #$11
  745.        JSR $FFCF     ;GET BEGINNING ADDR
  746.        STA FLEN+1
  747.        LDA #$01
  748.        STA ($FE),Y
  749.        INY
  750.        JSR $FFCF
  751.        STA FLEN+2
  752.        LDA #$1C
  753.        STA ($FE),Y
  754.        LDA #$01
  755.        JSR $FFC3     ;CLOSE
  756.        JSR $FFCC
  757.        LDA #$00
  758.        LDX #$08
  759.        LDY #$00
  760.        JSR $FFBA     ;SETLFS
  761.        LDA #$00
  762.        LDX #$01
  763.        LDY #$1C
  764.        JSR $FFD5     ;LOAD FILE
  765.        STX ENDL
  766.        STY ENDH
  767.        LDY #$12
  768.        JSR XRBEG     ;STORE IN EXP RAM
  769.        INY
  770.        LDA ENDL
  771.        STA ($FE),Y   ;FILE SIZE
  772.        INY
  773.        SEC
  774.        LDA ENDH
  775.        SBC #$1C
  776.        STA ($FE),Y
  777.        JSR GODMA
  778.        LDY #$11      ;RESTORE LOAD ADDR
  779.        LDA FLEN+1
  780.        STA ($FE),Y
  781.        INY
  782.        LDA FLEN+2
  783.        STA ($FE),Y
  784.        JSR XFLAD
  785.        JSR DDADD
  786.        JMP DDF1
  787. ;
  788. ;
  789. ;
  790. FLADD  CLC           ;+18 FOR NEXT FILE
  791.        LDA #$12
  792.        ADC $FE
  793.        STA $FE
  794.        BCC FLRTN
  795.        INC $FF
  796. FLRTN  RTS
  797. ;
  798. DDADD  CLC
  799.        LDA #$12
  800.        ADC $FC
  801.        STA $FC
  802.        BCC DDRTN
  803.        INC $FD
  804. DDRTN  RTS
  805. ;
  806. ;
  807. ;
  808. IND    .BYT 'I0'
  809. DDIR   .BYT '$0:*=P'
  810. FLEN   .BYT 0,0,0
  811. DERR   .BYT 0
  812. KMSG   .BYT 0
  813. ENDL   .BYT 0
  814. ENDH   .BYT 0
  815. ;
  816. ;
  817. ;
  818. ;
  819. ;
  820. ;╟