home *** CD-ROM | disk | FTP | other *** search
/ CBM Funet Archive / cbm-funet-archive-2003.iso / cbm / programming / msdos / xa214f.lzh / xa214f / examples / pack_eng.a65 < prev    next >
Encoding:
Text File  |  1995-01-04  |  19.6 KB  |  1,071 lines

  1.  
  2.  
  3. #INCLUDE  "C64DEF.DEF"
  4.  
  5.  
  6.  
  7. #DEFINE   tOUT(A)   .(:LDA #<A:LDY #>A:JSR tXTOUT:.)
  8.  
  9. #DEFINE   aOUT(A)   .(:LDA #<B:LDY #>B:JSR tXTOUT:JMP C:B .BYT A,0:C .)
  10.  
  11. #DEFINE   iBOUT(A)  .(:LDX A:LDA #0:JSR intout:.)
  12.  
  13. #DEFINE   iOUT(A)   .(:LDX A:LDA A+1:JSR intout:.)
  14.  
  15.  
  16.  
  17. #DEFINE   pfadlen   40
  18.  
  19. #DEFINE   fn_wr     3
  20.  
  21. #DEFINE   fn_rd     4
  22.  
  23. #DEFINE   xcode     $F7
  24.  
  25. #DEFINE   vERSION   1
  26.  
  27.  
  28.  
  29.           .(
  30.  
  31.           .WORD $0801
  32.  
  33.           *=$0801
  34.  
  35.  
  36.  
  37.           .WORD BASICEND,10
  38.  
  39.           .BYT $9E,"2064",0       ;SYS $0810
  40.  
  41. BASICEND  .WORD 0
  42.  
  43.           .BYT 0,0,0
  44.  
  45.  
  46.  
  47.           .(
  48.  
  49.           JSR clrch
  50.  
  51.           JSR INISCREEN
  52.  
  53.           JSR INIPAR     
  54.  
  55. MENU1     
  56.  
  57.           tOUT(M1ATXT)
  58.  
  59.           tOUT(QUELLPFAD)
  60.  
  61.           tOUT(M1BTXT)
  62.  
  63.           iBOUT(QUELLDRV)
  64.  
  65.           tOUT(M1CTXT)          
  66.  
  67.           tOUT(ZIELPFAD)
  68.  
  69.           tOUT(M1DTXT)
  70.  
  71.           iBOUT(ZIELDRV)
  72.  
  73.           tOUT(M1ETXT)          
  74.  
  75.           
  76.  
  77. NEXT      JSR get
  78.  
  79.           BEQ NEXT
  80.  
  81.  
  82.  
  83.           LDX #0
  84.  
  85. L1        CMP BEFKEYS,X
  86.  
  87.           BEQ EXE
  88.  
  89.           INX
  90.  
  91.           CPX #aNZBEFS
  92.  
  93.           BCC L1
  94.  
  95.           BCS NEXT
  96.  
  97.           
  98.  
  99. EXE       JSR EXEC
  100.  
  101.           JMP MENU1
  102.  
  103.           
  104.  
  105. EXEC      TXA
  106.  
  107.           ASL
  108.  
  109.           TAX
  110.  
  111.           LDA MADR+1,X
  112.  
  113.           PHA
  114.  
  115.           LDA MADR,X
  116.  
  117.           PHA
  118.  
  119.           RTS
  120.  
  121.           
  122.  
  123. MADR      .WORD PACK-1,UNPACK-1,QUELLE-1,ZIEL-1,SWITCH-1,DIR-1,QDRV-1,ZDRV-1
  124.  
  125. BEFKEYS   .ASC tc_f1,tc_f2,tc_f3,tc_f5,tc_f8,tc_f7,tc_f4,tc_f6
  126.  
  127. aNZBEFS   =8
  128.  
  129.    
  130.  
  131. M1ATXT    .ASC tc_lch,tc_sco,tc_ff,tc_lf,tc_lf
  132.  
  133.           .ASC "(f1) pack programms",tc_cr,tc_lf
  134.  
  135.           .ASC "(f2) extract from archive",tc_cr,tc_lf
  136.  
  137.           .ASC "(f3) sourcepath/arc:",0
  138.  
  139. M1BTXT    .ASC tc_cr,tc_lf
  140.  
  141.           .ASC "(f4) sourcedevice:",0
  142.  
  143. M1CTXT    .ASC tc_cr,tc_lf
  144.  
  145.           .ASC "(f5) targetpath/arc:",0
  146.  
  147. M1DTXT    .ASC tc_cr,tc_lf
  148.  
  149.           .ASC "(f6) targetdevice :",0
  150.  
  151. M1ETXT    .ASC tc_cr,tc_lf        
  152.  
  153.           .ASC "(f7) sourcedirectory",tc_cr,tc_lf
  154.  
  155.           .ASC "(f8) exchange target and source",tc_cr,tc_lf
  156.  
  157.           .ASC "your choice please",tc_cr,0
  158.  
  159.           .)
  160.  
  161.  
  162.  
  163. UNPACK    .(
  164.  
  165.           JSR OPENARCRD
  166.  
  167.           BCS CLS
  168.  
  169.           
  170.  
  171.           LDA #0
  172.  
  173.           STA RCNT
  174.  
  175.           STA RCNT+1
  176.  
  177.           
  178.  
  179.           JSR RBYTE
  180.  
  181.           CMP #vERSION
  182.  
  183.           BNE VERR
  184.  
  185.           
  186.  
  187. LOOP      JSR UNPACKFILE
  188.  
  189.           BCC LOOP
  190.  
  191.           
  192.  
  193.           tOUT(T1)
  194.  
  195.           LDA RCNT+1
  196.  
  197.           LDX RCNT
  198.  
  199.           JSR intout
  200.  
  201.           LDA #tc_cr
  202.  
  203.           JSR bsout
  204.  
  205.           JSR WAITKEY
  206.  
  207.           
  208.  
  209. CLS       LDA #fn_rd
  210.  
  211.           JSR close
  212.  
  213.           RTS
  214.  
  215.           
  216.  
  217. VERR      tOUT(VERRTXT)
  218.  
  219.           JMP CLS
  220.  
  221. VERRTXT   .ASC "unknown archive version",0
  222.  
  223.  
  224.  
  225. T1        .ASC "archive had bytes #",0
  226.  
  227.           .)
  228.  
  229.           
  230.  
  231. UNPACKFILE
  232.  
  233.           .(
  234.  
  235.           LDA #0
  236.  
  237.           STA WCNT
  238.  
  239.           STA WCNT+1
  240.  
  241.           LDA #tc_cr
  242.  
  243.           JSR bsout
  244.  
  245.           LDY #0
  246.  
  247.           STY p1
  248.  
  249. L1        JSR RBYTE
  250.  
  251.           BCS ENDX
  252.  
  253.           LDY p1
  254.  
  255.           STA FILETAB,Y
  256.  
  257.           INC p1
  258.  
  259.           CMP #0
  260.  
  261.           BEQ ENDNAM
  262.  
  263.           JSR bsout
  264.  
  265.           JMP L1
  266.  
  267.           
  268.  
  269. ENDNAM    tOUT(ASK)
  270.  
  271.           JSR WAITKEY
  272.  
  273.           CMP #"j"
  274.  
  275.           BNE NOUNPACK
  276.  
  277.           tOUT(TOK)
  278.  
  279.           LDA #<-1
  280.  
  281.           STA p1+1
  282.  
  283.           JSR FXOPEN
  284.  
  285.           JSR gETZST
  286.  
  287.           BCS XA
  288.  
  289.           BCC LO
  290.  
  291.           
  292.  
  293. ENDX      JMP END
  294.  
  295. NOUNPACK  tOUT(TNO)
  296.  
  297. XA        LDA #0
  298.  
  299.           STA p1+1
  300.  
  301.  
  302.  
  303. LO        JSR RBYTE
  304.  
  305.           BCS CLS
  306.  
  307.           CMP #xcode
  308.  
  309.           BNE XB
  310.  
  311.           JSR RBYTE
  312.  
  313.           STA WXANZ
  314.  
  315.           CMP #0
  316.  
  317.           CLC
  318.  
  319.           BEQ CLS
  320.  
  321.           JSR RBYTE
  322.  
  323.           STA WXBYT
  324.  
  325.           BIT p1+1
  326.  
  327.           BPL LO
  328.  
  329. LY        LDA WXBYT
  330.  
  331.           JSR WBYTE
  332.  
  333.           DEC WXANZ
  334.  
  335.           BNE LY
  336.  
  337.           JMP LO
  338.  
  339.           
  340.  
  341. XB        BIT p1+1
  342.  
  343.           BPL LO
  344.  
  345.           JSR WBYTE
  346.  
  347.           JMP LO
  348.  
  349.                                      
  350.  
  351. CLS       PHP
  352.  
  353.           JSR WBUF
  354.  
  355.           LDA #fn_wr
  356.  
  357.           JSR close
  358.  
  359.           
  360.  
  361.           tOUT(T1)
  362.  
  363.           LDA WCNT+1
  364.  
  365.           LDX WCNT
  366.  
  367.           JSR intout
  368.  
  369.           LDA #tc_cr
  370.  
  371.           JSR bsout
  372.  
  373.           
  374.  
  375.           PLP
  376.  
  377. END       RTS
  378.  
  379.           
  380.  
  381. ASK       .ASC tc_cr,"extract file (y/n)?",0
  382.  
  383.  
  384.  
  385. T1        .ASC "gives bytes #",0
  386.  
  387.           .)
  388.  
  389.           
  390.  
  391. INCWCNT   .(
  392.  
  393.           INC WCNT
  394.  
  395.           BNE L1
  396.  
  397.           INC WCNT+1
  398.  
  399. L1        RTS
  400.  
  401.           .)
  402.  
  403.           
  404.  
  405. FXOPEN    .(
  406.  
  407.           LDY #0
  408.  
  409.           STY int
  410.  
  411. L1        LDA ZIELPFAD,Y
  412.  
  413.           STA inbuf,Y
  414.  
  415.           BEQ L2
  416.  
  417.           INY
  418.  
  419.           CMP #":"
  420.  
  421.           BEQ L1A
  422.  
  423.           CMP #"/"
  424.  
  425.           BNE L1B
  426.  
  427. L1A       STY int
  428.  
  429. L1B       CPY #pfadlen
  430.  
  431.           BCC L1
  432.  
  433.           
  434.  
  435. L2        LDX int
  436.  
  437.           LDY #0
  438.  
  439. L3        LDA FILETAB,Y
  440.  
  441.           STA inbuf,X
  442.  
  443.           INX
  444.  
  445.           INY
  446.  
  447.           CMP #0
  448.  
  449.           BNE L3
  450.  
  451.           DEX
  452.  
  453.           TXA
  454.  
  455.           LDX #<inbuf
  456.  
  457.           LDY #>inbuf
  458.  
  459.           JSR setfnpar
  460.  
  461.           LDA #fn_wr
  462.  
  463.           LDX ZIELDRV
  464.  
  465.           LDY #1
  466.  
  467.           JSR setfpar
  468.  
  469.           
  470.  
  471.           JSR open
  472.  
  473.           BCS ERR
  474.  
  475.           JSR CLRWRBUF
  476.  
  477.           CLC
  478.  
  479. ERR       RTS
  480.  
  481.           .)
  482.  
  483.  
  484.  
  485. OPENARCRD .(
  486.  
  487.           LDY #0
  488.  
  489. L0        LDA QUELLPFAD,Y
  490.  
  491.           BEQ L1
  492.  
  493.           INY
  494.  
  495.           CPY #pfadlen
  496.  
  497.           BCC L0
  498.  
  499. L1        CPY #0
  500.  
  501.           BEQ ERR
  502.  
  503.           TYA
  504.  
  505.           LDX #<QUELLPFAD
  506.  
  507.           LDY #>QUELLPFAD
  508.  
  509.           JSR setfnpar
  510.  
  511.           LDA #fn_rd
  512.  
  513.           LDX QUELLDRV
  514.  
  515.           LDY #0
  516.  
  517.           JSR setfpar
  518.  
  519.           JSR open
  520.  
  521.           BCS ERR
  522.  
  523.           JSR gETQST
  524.  
  525.           BCS ERR
  526.  
  527.           JSR CLRRDBUF
  528.  
  529.           CLC
  530.  
  531.           RTS
  532.  
  533. ERR       SEC
  534.  
  535.           RTS
  536.  
  537.           .)
  538.  
  539.  
  540.  
  541. PACK      .(
  542.  
  543.           JSR GETLIST
  544.  
  545.           LDA ANZFILES
  546.  
  547.           BEQ END
  548.  
  549.           JSR OPENARCWR
  550.  
  551.           BCS CLS
  552.  
  553.  
  554.  
  555.           LDA #vERSION
  556.  
  557.           JSR WBYTE
  558.  
  559.                               
  560.  
  561.           LDA #0
  562.  
  563.           STA p1
  564.  
  565. L1        JSR SETFADR
  566.  
  567.           STA p2
  568.  
  569.           STX p2+1
  570.  
  571.           JSR PACKFILE
  572.  
  573.           INC p1
  574.  
  575.           LDA p1
  576.  
  577.           CMP ANZFILES
  578.  
  579.           BCC L1
  580.  
  581.                   
  582.  
  583.           JSR WBUF
  584.  
  585.           
  586.  
  587. CLS       LDA #fn_wr
  588.  
  589.           JSR close
  590.  
  591.           
  592.  
  593.           JSR gETZST
  594.  
  595.         
  596.  
  597. END       JMP linein:RTS
  598.  
  599.           .)
  600.  
  601.           
  602.  
  603. PACKFILE  .(
  604.  
  605.           tOUT(LFT)
  606.  
  607.  
  608.  
  609.           LDY #0
  610.  
  611. L1        STY p1+1
  612.  
  613.           LDA (p2),Y
  614.  
  615.           JSR bsout
  616.  
  617.           JSR WBYTE
  618.  
  619.           LDY p1+1
  620.  
  621.           INY
  622.  
  623.           CMP #0
  624.  
  625.           BNE L1
  626.  
  627.  
  628.  
  629.           JSR FOPEN
  630.  
  631.           BCS LE
  632.  
  633.  
  634.  
  635.           JSR CLRWXBYT
  636.  
  637. L2        JSR RBYTE
  638.  
  639.           BCS L3
  640.  
  641.           JSR WXBYTE
  642.  
  643.           JMP L2
  644.  
  645. L3        JSR SAVWXBYT
  646.  
  647.           
  648.  
  649. LE        LDA #fn_rd
  650.  
  651.           JSR close
  652.  
  653.           
  654.  
  655.           LDA #xcode
  656.  
  657.           JSR WBYTE
  658.  
  659.           LDA #0
  660.  
  661.           JSR WBYTE
  662.  
  663.           
  664.  
  665.           LDA #tc_cr
  666.  
  667.           JSR bsout
  668.  
  669.           RTS
  670.  
  671.               
  672.  
  673. LFT       .ASC tc_cr,"Copying ",0
  674.  
  675.  
  676.  
  677.           .)
  678.  
  679.  
  680.  
  681. FOPEN     .(
  682.  
  683.           LDY #0
  684.  
  685.           STY int
  686.  
  687. L1        LDA QUELLPFAD,Y
  688.  
  689.           STA inbuf,Y
  690.  
  691.           BEQ L2
  692.  
  693.           INY
  694.  
  695.           CMP #":"
  696.  
  697.           BEQ L1A
  698.  
  699.           CMP #"/"
  700.  
  701.           BNE L1B
  702.  
  703. L1A       STY int
  704.  
  705. L1B       CPY #pfadlen
  706.  
  707.           BCC L1
  708.  
  709.           
  710.  
  711. L2        LDX int
  712.  
  713.           LDY #0
  714.  
  715. L3        LDA (p2),Y
  716.  
  717.           STA inbuf,X
  718.  
  719.           INX
  720.  
  721.           INY
  722.  
  723.           CMP #0
  724.  
  725.           BNE L3
  726.  
  727.           DEX
  728.  
  729.           TXA
  730.  
  731.           LDX #<inbuf
  732.  
  733.           LDY #>inbuf
  734.  
  735.           JSR setfnpar
  736.  
  737.           LDA #fn_rd
  738.  
  739.           LDX QUELLDRV
  740.  
  741.           LDY #0
  742.  
  743.           JSR setfpar
  744.  
  745.           
  746.  
  747.           JSR open
  748.  
  749.           BCS ERR
  750.  
  751.           JSR CLRRDBUF
  752.  
  753.           CLC
  754.  
  755. ERR       RTS
  756.  
  757.           .)
  758.  
  759.  
  760.  
  761. INCRCNT   .(
  762.  
  763.           INC RCNT
  764.  
  765.           BNE L1
  766.  
  767.           INC RCNT+1
  768.  
  769. L1        RTS
  770.  
  771.           .)
  772.  
  773.           
  774.  
  775. RBYTE     .(
  776.  
  777.           LDY RO
  778.  
  779.           CPY RI
  780.  
  781.           BEQ LEERBUF
  782.  
  783.           LDA RB,Y
  784.  
  785.           INC RO
  786.  
  787.           CLC
  788.  
  789.           RTS
  790.  
  791.             
  792.  
  793. LEERBUF   LDA RF
  794.  
  795.           BEQ LDBUF
  796.  
  797.           SEC
  798.  
  799.           RTS
  800.  
  801.           
  802.  
  803. LDBUF     LDA #0
  804.  
  805.           STA RI
  806.  
  807.           STA RO
  808.  
  809.           LDX #fn_rd
  810.  
  811.           JSR chkin
  812.  
  813.           LDA #0
  814.  
  815.           STA status
  816.  
  817.  
  818.  
  819. LOK       JSR basin
  820.  
  821.  
  822.  
  823.      PHA
  824.  
  825.      LDA status
  826.  
  827.      BEQ L0
  828.  
  829.      LDA #"l"
  830.  
  831.      JSR bsout
  832.  
  833.      iBOUT($90)
  834.  
  835.      LDA #tc_cr
  836.  
  837.      JSR bsout
  838.  
  839. L0   PLA
  840.  
  841.  
  842.  
  843.           JSR INCRCNT
  844.  
  845.           LDY RI
  846.  
  847.           STA RB,Y
  848.  
  849.           INY
  850.  
  851.           STY RI
  852.  
  853.           INY
  854.  
  855.           ;CPY RO
  856.  
  857.           BEQ LE
  858.  
  859.           LDA status
  860.  
  861.           BEQ LOK
  862.  
  863.           
  864.  
  865. LE        LDA status
  866.  
  867.           STA RF
  868.  
  869.           JSR clrch
  870.  
  871.           JMP RBYTE
  872.  
  873.           .)
  874.  
  875.           
  876.  
  877. CLRRDBUF  .(
  878.  
  879.           LDA #0
  880.  
  881.           STA RI
  882.  
  883.           STA RO
  884.  
  885.           STA RF
  886.  
  887.           RTS
  888.  
  889.           .)
  890.  
  891.           
  892.  
  893. WXBYTE    .(
  894.  
  895.           LDX WXANZ
  896.  
  897.           BEQ ADD
  898.  
  899.           INX
  900.  
  901.           BNE AD2
  902.  
  903.           PHA
  904.  
  905.           JSR SAVWXBYT
  906.  
  907.           PLA
  908.  
  909.           JMP ADD
  910.  
  911.           
  912.  
  913. AD2       CMP WXBYT
  914.  
  915.           BEQ ADX
  916.  
  917.           PHA
  918.  
  919.           JSR SAVWXBYT
  920.  
  921.           PLA
  922.  
  923. ADD       STA WXBYT
  924.  
  925. ADX       INC WXANZ
  926.  
  927.  
  928.  
  929.           RTS
  930.  
  931.           .)
  932.  
  933.           
  934.  
  935. CLRWXBYT  .(
  936.  
  937.           LDA #0
  938.  
  939.           STA WXANZ
  940.  
  941.           RTS
  942.  
  943.           .)
  944.  
  945.           
  946.  
  947. SAVWXBYT  .(
  948.  
  949.           LDA WXANZ
  950.  
  951.           BEQ NOSAV
  952.  
  953.           CMP #4
  954.  
  955.           BCS SAVS
  956.  
  957.           LDA WXBYT
  958.  
  959.           CMP #xcode
  960.  
  961.           BEQ SAVS
  962.  
  963.  
  964.  
  965. L1        LDA WXBYT
  966.  
  967.           JSR WBYTE
  968.  
  969.           DEC WXANZ
  970.  
  971.           BNE L1
  972.  
  973.           RTS
  974.  
  975.  
  976.  
  977. SAVS      LDA #xcode
  978.  
  979.           JSR WBYTE
  980.  
  981.           LDA WXANZ
  982.  
  983.           JSR WBYTE
  984.  
  985.           LDA WXBYT
  986.  
  987.           JSR WBYTE  
  988.  
  989.           LDA #0
  990.  
  991.           STA WXANZ
  992.  
  993. NOSAV     RTS
  994.  
  995.           .)
  996.  
  997.        
  998.  
  999. OPENARCWR .(
  1000.  
  1001.           LDY #0
  1002.  
  1003. L0        LDA ZIELPFAD,Y
  1004.  
  1005.           BEQ L1
  1006.  
  1007.           INY
  1008.  
  1009.           CPY #pfadlen
  1010.  
  1011.           BCC L0
  1012.  
  1013. L1        CPY #0
  1014.  
  1015.           BEQ ERR
  1016.  
  1017.           TYA
  1018.  
  1019.           LDX #<ZIELPFAD
  1020.  
  1021.           LDY #>ZIELPFAD
  1022.  
  1023.           JSR setfnpar
  1024.  
  1025.           LDA #fn_wr
  1026.  
  1027.           LDX ZIELDRV
  1028.  
  1029.           LDY #1
  1030.  
  1031.           JSR setfpar
  1032.  
  1033.           JSR open
  1034.  
  1035.           BCS ERR
  1036.  
  1037.           LDA ZIELDRV
  1038.  
  1039.           JSR gETZST
  1040.  
  1041.           BCS ERR
  1042.  
  1043.           JSR CLRWRBUF
  1044.  
  1045.           CLC
  1046.  
  1047.           RTS
  1048.  
  1049. ERR       SEC
  1050.  
  1051.           RTS
  1052.  
  1053.           .)
  1054.  
  1055.           
  1056.  
  1057. CLRWRBUF  .(
  1058.  
  1059.           LDA #0
  1060.  
  1061.           STA WI
  1062.  
  1063.           STA WO
  1064.  
  1065.           RTS
  1066.  
  1067.           .)
  1068.  
  1069.  
  1070.  
  1071. WBYTE     .(
  1072.  
  1073.           LDY WI
  1074.  
  1075.           STA WB,Y
  1076.  
  1077.           INY
  1078.  
  1079.           STY WI
  1080.  
  1081.           INY
  1082.  
  1083.           CPY WO
  1084.  
  1085.           BNE NOWR
  1086.  
  1087.           PHA
  1088.  
  1089.           JSR WBUF
  1090.  
  1091.           PLA
  1092.  
  1093. NOWR      RTS
  1094.  
  1095.           .)
  1096.  
  1097.           
  1098.  
  1099. WBUF      .(
  1100.  
  1101.           LDX #fn_wr
  1102.  
  1103.           JSR ckout
  1104.  
  1105.           LDY WO
  1106.  
  1107. L1        CPY WI
  1108.  
  1109.           BEQ END
  1110.  
  1111.           LDA WB,Y
  1112.  
  1113.           JSR bsout
  1114.  
  1115.  
  1116.  
  1117.      LDA status
  1118.  
  1119.      BEQ L0
  1120.  
  1121.      TYA
  1122.  
  1123.      PHA
  1124.  
  1125.      LDA #"w"
  1126.  
  1127.      JSR $E716
  1128.  
  1129.      LDA $90
  1130.  
  1131.      ORA #$40
  1132.  
  1133.      JSR $E716
  1134.  
  1135.      LDA #tc_cr
  1136.  
  1137.      JSR $E716
  1138.  
  1139.      PLA
  1140.  
  1141.      TAY
  1142.  
  1143. L0
  1144.  
  1145.           JSR INCWCNT
  1146.  
  1147.           INY
  1148.  
  1149.           JMP L1
  1150.  
  1151. END       LDA #0
  1152.  
  1153.           STA WI
  1154.  
  1155.           STA WO
  1156.  
  1157.           JSR clrch
  1158.  
  1159.           RTS
  1160.  
  1161.           .)
  1162.  
  1163.           
  1164.  
  1165.           .(
  1166.  
  1167. &gETQST   LDA QUELLDRV
  1168.  
  1169.           JMP gETST
  1170.  
  1171. &gETZST   LDA ZIELDRV    
  1172.  
  1173. &gETST    
  1174.  
  1175.           PHA
  1176.  
  1177.           JSR clrch
  1178.  
  1179.           LDA #tc_cr
  1180.  
  1181.           JSR bsout
  1182.  
  1183.           PLA
  1184.  
  1185.           JSR talk
  1186.  
  1187.           LDA #15+$60
  1188.  
  1189.           JSR sectalk
  1190.  
  1191.           LDA #0
  1192.  
  1193.           STA status
  1194.  
  1195.           JSR iecin
  1196.  
  1197.           PHA
  1198.  
  1199.           JSR bsout
  1200.  
  1201.           
  1202.  
  1203. L1        JSR iecin
  1204.  
  1205.           CMP #0
  1206.  
  1207.           BEQ L2
  1208.  
  1209.           JSR bsout
  1210.  
  1211.           LDA status
  1212.  
  1213.           BEQ L1
  1214.  
  1215. L2        JSR untalk
  1216.  
  1217.           PLA
  1218.  
  1219.           CMP #"0"
  1220.  
  1221.           BNE ERR
  1222.  
  1223.           CLC
  1224.  
  1225.           RTS
  1226.  
  1227. ERR       SEC
  1228.  
  1229.           RTS
  1230.  
  1231.           .)
  1232.  
  1233.                               
  1234.  
  1235. /*
  1236.  
  1237. SHOWLIST  .(
  1238.  
  1239.           LDA #0
  1240.  
  1241.           STA p1
  1242.  
  1243.           
  1244.  
  1245. L1        LDA p1
  1246.  
  1247.           CMP ANZFILES
  1248.  
  1249.           BCS LE
  1250.  
  1251.           
  1252.  
  1253.           JSR SETFADR
  1254.  
  1255.           LDA #tc_cr
  1256.  
  1257.           JSR bsout
  1258.  
  1259.           LDA int
  1260.  
  1261.           LDY int+1
  1262.  
  1263.           JSR tXTOUT
  1264.  
  1265.           INC p1
  1266.  
  1267.           JMP L1
  1268.  
  1269. LE        RTS
  1270.  
  1271.           .)
  1272.  
  1273. */                  
  1274.  
  1275.           .(
  1276.  
  1277. L4X       JMP L4
  1278.  
  1279.  
  1280.  
  1281. &GETLIST  
  1282.  
  1283.           LDA #0
  1284.  
  1285.           STA ANZFILES
  1286.  
  1287.           
  1288.  
  1289.           LDA #tc_ff
  1290.  
  1291.           JSR bsout
  1292.  
  1293.           
  1294.  
  1295.           JSR SETDIRNAM
  1296.  
  1297.           JSR sendnam
  1298.  
  1299.           LDA devadr
  1300.  
  1301.           JSR talk
  1302.  
  1303.           LDA secadr
  1304.  
  1305.           JSR sectalk
  1306.  
  1307.           
  1308.  
  1309.           LDA #0
  1310.  
  1311.           STA status
  1312.  
  1313.           LDY #3
  1314.  
  1315. L0        STY p1
  1316.  
  1317. L1        JSR iecin
  1318.  
  1319.           STA p1+1
  1320.  
  1321.           LDY status
  1322.  
  1323.           BNE L4X
  1324.  
  1325.           JSR iecin
  1326.  
  1327.           DEC p1
  1328.  
  1329.           BNE L1
  1330.  
  1331.           LDX p1+1
  1332.  
  1333.           JSR intout
  1334.  
  1335.           LDA #" "
  1336.  
  1337.           JSR bsout
  1338.  
  1339.  
  1340.  
  1341. LA        JSR iecin
  1342.  
  1343.           CMP #0
  1344.  
  1345.           BEQ L4X
  1346.  
  1347.           CMP #tc_rev
  1348.  
  1349.           BNE L3X
  1350.  
  1351.           JMP L3
  1352.  
  1353. L3X       JSR bsout
  1354.  
  1355.           CMP #34
  1356.  
  1357.           BNE LA
  1358.  
  1359.  
  1360.  
  1361.           LDA ANZFILES
  1362.  
  1363.           JSR SETFADR
  1364.  
  1365.           STA p2
  1366.  
  1367.           STX p2+1
  1368.  
  1369.           
  1370.  
  1371.           LDY #0
  1372.  
  1373. LB        STY p1
  1374.  
  1375.           JSR iecin
  1376.  
  1377.           JSR bsout
  1378.  
  1379.           LDY p1
  1380.  
  1381.           CMP #34
  1382.  
  1383.           BEQ LC
  1384.  
  1385.           STA (p2),Y
  1386.  
  1387.           INY
  1388.  
  1389.           CPY #17
  1390.  
  1391.           BCC LB
  1392.  
  1393. LC        LDA #","
  1394.  
  1395.           STA (p2),Y
  1396.  
  1397.           INY
  1398.  
  1399.           
  1400.  
  1401. LD        STY p1
  1402.  
  1403.           JSR iecin
  1404.  
  1405.           JSR bsout
  1406.  
  1407.           LDY p1
  1408.  
  1409.           CMP #" "
  1410.  
  1411.           BEQ LD
  1412.  
  1413.           STA p1+1
  1414.  
  1415.           STA (p2),Y
  1416.  
  1417.           INY
  1418.  
  1419.           LDA #0
  1420.  
  1421.           STA (p2),Y
  1422.  
  1423. /*
  1424.  
  1425.           LDA #tc_cr
  1426.  
  1427.           JSR bsout
  1428.  
  1429.           LDA p2+1
  1430.  
  1431.           LDX p2
  1432.  
  1433.           JSR intout
  1434.  
  1435.           LDA #":"
  1436.  
  1437.           JSR bsout
  1438.  
  1439.           LDA p2
  1440.  
  1441.           LDY p2+1
  1442.  
  1443.           JSR tXTOUT
  1444.  
  1445. */
  1446.  
  1447. LF        TAX
  1448.  
  1449.           JSR iecin
  1450.  
  1451.           JSR bsout
  1452.  
  1453.           CMP #" "
  1454.  
  1455.           BNE LF
  1456.  
  1457.           CPX #"<"
  1458.  
  1459.           BEQ LG
  1460.  
  1461.           LDA #" "
  1462.  
  1463.           JSR bsout
  1464.  
  1465. LG        LDA #" "
  1466.  
  1467.           JSR bsout
  1468.  
  1469.           
  1470.  
  1471.           LDA p1+1
  1472.  
  1473.           JSR TESTKEYS
  1474.  
  1475.  
  1476.  
  1477. LH        JSR iecin
  1478.  
  1479.           CMP #0
  1480.  
  1481.           BNE LH
  1482.  
  1483.           BEQ L2
  1484.  
  1485.           
  1486.  
  1487. L3        JSR iecin
  1488.  
  1489.           LDX status
  1490.  
  1491.           BNE L4
  1492.  
  1493.           TAX
  1494.  
  1495.           BEQ L2
  1496.  
  1497.           JSR bsout
  1498.  
  1499.           JMP L3
  1500.  
  1501.  
  1502.  
  1503. L2        LDA #tc_cr
  1504.  
  1505.           JSR bsout
  1506.  
  1507.           JSR get
  1508.  
  1509.           BEQ L5
  1510.  
  1511.           JSR WAITKEY
  1512.  
  1513. L5        LDY #2
  1514.  
  1515.           BEQ L4
  1516.  
  1517.           JMP L0
  1518.  
  1519. L4        JSR clsfil
  1520.  
  1521.           JMP WAITKEY                    
  1522.  
  1523.           .)
  1524.  
  1525.  
  1526.  
  1527. TESTKEYS  .(
  1528.  
  1529.           CMP #"p"
  1530.  
  1531.           BEQ OK
  1532.  
  1533.           CMP #"s"
  1534.  
  1535.           BEQ OK
  1536.  
  1537.           RTS
  1538.  
  1539. OK        tOUT(T1)
  1540.  
  1541.           JSR WAITKEY
  1542.  
  1543.           CMP #"j"
  1544.  
  1545.           BEQ JA
  1546.  
  1547.           tOUT(TNO)
  1548.  
  1549.           RTS
  1550.  
  1551. JA        tOUT(TOK)
  1552.  
  1553.           INC ANZFILES
  1554.  
  1555.           RTS
  1556.  
  1557.           
  1558.  
  1559. T1        .ASC tc_rev,"yes/no ",tc_crl,tc_crl,tc_crl
  1560.  
  1561.           .ASC tc_crl,tc_crl,tc_crl,tc_crl,0
  1562.  
  1563. &TNO      .ASC tc_reo,"no     ",0
  1564.  
  1565. &TOK      .ASC tc_reo,"yes    ",0
  1566.  
  1567.           .)
  1568.  
  1569.           
  1570.  
  1571. SETFADR   .(
  1572.  
  1573.           LDX #0
  1574.  
  1575.           STX int+1
  1576.  
  1577.           ASL 
  1578.  
  1579.           ROL int+1
  1580.  
  1581.           ASL
  1582.  
  1583.           ROL int+1
  1584.  
  1585.           STA int
  1586.  
  1587.           LDX int+1
  1588.  
  1589.           ASL
  1590.  
  1591.           ROL int+1
  1592.  
  1593.           ASL
  1594.  
  1595.           ROL int+1
  1596.  
  1597.           CLC
  1598.  
  1599.           ADC int
  1600.  
  1601.           STA int
  1602.  
  1603.           TXA
  1604.  
  1605.           ADC int+1
  1606.  
  1607.           STA int+1
  1608.  
  1609.           LDA #<FILETAB
  1610.  
  1611.           CLC
  1612.  
  1613.           ADC int
  1614.  
  1615.           STA int
  1616.  
  1617.           PHA
  1618.  
  1619.           LDA #>FILETAB
  1620.  
  1621.           ADC int+1
  1622.  
  1623.           STA int+1
  1624.  
  1625.           TAX
  1626.  
  1627.           PLA
  1628.  
  1629.           RTS
  1630.  
  1631.           .)
  1632.  
  1633.           
  1634.  
  1635. DIR       .(
  1636.  
  1637.           LDA #tc_ff
  1638.  
  1639.           JSR bsout
  1640.  
  1641.           
  1642.  
  1643.           JSR SETDIRNAM
  1644.  
  1645.           JSR sendnam
  1646.  
  1647.           LDA devadr
  1648.  
  1649.           JSR talk
  1650.  
  1651.           LDA secadr
  1652.  
  1653.           JSR sectalk
  1654.  
  1655.           
  1656.  
  1657.           LDA #0
  1658.  
  1659.           STA status
  1660.  
  1661.           LDY #3
  1662.  
  1663. L0        STY p1
  1664.  
  1665. L1        JSR iecin
  1666.  
  1667.           STA p1+1
  1668.  
  1669.           LDY status
  1670.  
  1671.           BNE L4
  1672.  
  1673.           JSR iecin
  1674.  
  1675.           DEC p1
  1676.  
  1677.           BNE L1
  1678.  
  1679.           LDX p1+1
  1680.  
  1681.           JSR intout
  1682.  
  1683.           LDA #" "
  1684.  
  1685.           JSR bsout
  1686.  
  1687. L3        JSR iecin
  1688.  
  1689.           LDX status
  1690.  
  1691.           BNE L4
  1692.  
  1693.           TAX
  1694.  
  1695.           BEQ L2
  1696.  
  1697.           JSR bsout
  1698.  
  1699.           JMP L3
  1700.  
  1701. L2        LDA #tc_cr
  1702.  
  1703.           JSR bsout
  1704.  
  1705.           JSR get
  1706.  
  1707.           BEQ L5
  1708.  
  1709.           JSR WAITKEY
  1710.  
  1711. L5        LDY #2
  1712.  
  1713.           BNE L0
  1714.  
  1715. L4        JSR clsfil
  1716.  
  1717.           JMP WAITKEY                    
  1718.  
  1719.           .)
  1720.  
  1721.  
  1722.  
  1723. WAITKEY   JSR get
  1724.  
  1725.           BEQ WAITKEY
  1726.  
  1727.           RTS
  1728.  
  1729.           
  1730.  
  1731. SETDIRNAM .(
  1732.  
  1733. P1        =int
  1734.  
  1735.  
  1736.  
  1737.           LDA #"$"
  1738.  
  1739.           STA inbuf
  1740.  
  1741.           LDX #1
  1742.  
  1743.           STX P1
  1744.  
  1745.           
  1746.  
  1747.           LDY #0
  1748.  
  1749. L1        LDA QUELLPFAD,Y
  1750.  
  1751.           BEQ NODP
  1752.  
  1753.           CMP #":"
  1754.  
  1755.           BEQ DP
  1756.  
  1757.           INY
  1758.  
  1759.           CPY #pfadlen
  1760.  
  1761.           BCC L1
  1762.  
  1763. NODP      LDA #":"
  1764.  
  1765.           STA inbuf,X
  1766.  
  1767.           INX
  1768.  
  1769. DP        LDY #0
  1770.  
  1771. DP1       LDA QUELLPFAD,Y
  1772.  
  1773.           STA inbuf,X
  1774.  
  1775.           BEQ END
  1776.  
  1777.           CMP #":"
  1778.  
  1779.           BEQ L2A
  1780.  
  1781.           CMP #"/"
  1782.  
  1783.           BNE L2
  1784.  
  1785. L2A       STX P1
  1786.  
  1787. L2        INX
  1788.  
  1789.           INY
  1790.  
  1791.           CPY #pfadlen
  1792.  
  1793.           BCC DP1
  1794.  
  1795. END       LDX P1
  1796.  
  1797.           INX
  1798.  
  1799.           LDA #"*"
  1800.  
  1801.           STA inbuf,X
  1802.  
  1803.           INX
  1804.  
  1805.           LDA #"."
  1806.  
  1807.           STA inbuf,X
  1808.  
  1809.           INX
  1810.  
  1811.           LDA #"*"
  1812.  
  1813.           STA inbuf,X
  1814.  
  1815.           INX
  1816.  
  1817.           TXA
  1818.  
  1819.           LDX #<inbuf
  1820.  
  1821.           LDY #>inbuf
  1822.  
  1823.           JSR setfnpar
  1824.  
  1825.           LDA #1
  1826.  
  1827.           LDX QUELLDRV
  1828.  
  1829.           LDY #0
  1830.  
  1831.           JMP setfpar
  1832.  
  1833.           .)
  1834.  
  1835.  
  1836.  
  1837. QDRV      .(
  1838.  
  1839.           INC QUELLDRV
  1840.  
  1841.           LDA QUELLDRV
  1842.  
  1843.           CMP #12
  1844.  
  1845.           BCC OK
  1846.  
  1847.           LDA #8
  1848.  
  1849.           STA QUELLDRV
  1850.  
  1851. OK        RTS
  1852.  
  1853.           .)
  1854.  
  1855.           
  1856.  
  1857. ZDRV      .(
  1858.  
  1859.           INC ZIELDRV
  1860.  
  1861.           LDA ZIELDRV
  1862.  
  1863.           CMP #12
  1864.  
  1865.           BCC OK
  1866.  
  1867.           LDA #8
  1868.  
  1869.           STA ZIELDRV
  1870.  
  1871. OK        RTS
  1872.  
  1873.           .)
  1874.  
  1875.           
  1876.  
  1877. QUELLE    .(
  1878.  
  1879.           tOUT(QUELLTXT)
  1880.  
  1881.           JSR linein
  1882.  
  1883.           LDY #0
  1884.  
  1885. Q1        LDA inbuf,Y
  1886.  
  1887.           STA QUELLPFAD,Y
  1888.  
  1889.           BEQ END
  1890.  
  1891.           INY
  1892.  
  1893.           CPY #pfadlen-1
  1894.  
  1895.           BCC Q1
  1896.  
  1897.           LDA #0
  1898.  
  1899.           STA QUELLPFAD,Y
  1900.  
  1901. END       RTS
  1902.  
  1903.  
  1904.  
  1905. QUELLTXT  .ASC tc_cr,"please input new sourcepath/archive:",tc_cr,0
  1906.  
  1907.           .)
  1908.  
  1909.  
  1910.  
  1911. ZIEL      .(
  1912.  
  1913.           tOUT(QUELLTXT)
  1914.  
  1915.           JSR linein
  1916.  
  1917.           LDY #0
  1918.  
  1919. Q1        LDA inbuf,Y
  1920.  
  1921.           STA ZIELPFAD,Y
  1922.  
  1923.           BEQ END
  1924.  
  1925.           INY
  1926.  
  1927.           CPY #pfadlen-1
  1928.  
  1929.           BCC Q1
  1930.  
  1931.           LDA #0
  1932.  
  1933.           STA ZIELPFAD,Y
  1934.  
  1935. END       RTS
  1936.  
  1937.  
  1938.  
  1939. QUELLTXT  .ASC tc_cr,"please input new targetpath/archive:",tc_cr,0
  1940.  
  1941.           .)
  1942.  
  1943.  
  1944.  
  1945. SWITCH    .(
  1946.  
  1947.           LDA QUELLDRV
  1948.  
  1949.           LDX ZIELDRV
  1950.  
  1951.           STX QUELLDRV
  1952.  
  1953.           STA ZIELDRV
  1954.  
  1955.           LDX #0
  1956.  
  1957. L1        LDA QUELLPFAD,X
  1958.  
  1959.           PHA
  1960.  
  1961.           LDA ZIELPFAD,X
  1962.  
  1963.           STA QUELLPFAD,X
  1964.  
  1965.           PLA
  1966.  
  1967.           STA ZIELPFAD,X
  1968.  
  1969.           INX
  1970.  
  1971.           CPX #pfadlen
  1972.  
  1973.           BCC L1
  1974.  
  1975.           RTS
  1976.  
  1977.           .)
  1978.  
  1979.           
  1980.  
  1981. INIPAR    .(
  1982.  
  1983.           LDA #0
  1984.  
  1985.           STA QUELLPFAD
  1986.  
  1987.           STA ZIELPFAD
  1988.  
  1989.           LDA devadr
  1990.  
  1991.           CMP #8
  1992.  
  1993.           BCC NOVAL
  1994.  
  1995.           CMP #12
  1996.  
  1997.           BCC OK
  1998.  
  1999. NOVAL     LDA #8
  2000.  
  2001. OK        STA QUELLDRV
  2002.  
  2003.           STA ZIELDRV
  2004.  
  2005.           RTS
  2006.  
  2007.           .)
  2008.  
  2009.           
  2010.  
  2011. tXTOUT    .(
  2012.  
  2013. P         =$22
  2014.  
  2015.  
  2016.  
  2017.           STA P
  2018.  
  2019.           STY P+1
  2020.  
  2021. L1        LDY #0
  2022.  
  2023.           LDA (P),Y
  2024.  
  2025.           BEQ LE
  2026.  
  2027.           JSR bsout
  2028.  
  2029.           INC P
  2030.  
  2031.           BNE L1
  2032.  
  2033.           INC P+1
  2034.  
  2035.           BNE L1
  2036.  
  2037. LE        RTS
  2038.  
  2039.           .)
  2040.  
  2041.           
  2042.  
  2043. INISCREEN .(
  2044.  
  2045.           LDA #col_schwarz
  2046.  
  2047.           STA vic+vic_extcol
  2048.  
  2049.           STA vic+vic_bckcol0
  2050.  
  2051.           LDA #tc_hellgruen
  2052.  
  2053.           JSR bsout
  2054.  
  2055.           RTS
  2056.  
  2057.           .)
  2058.  
  2059.  
  2060.  
  2061. SYSMEM    =*
  2062.  
  2063.  
  2064.  
  2065. QUELLDRV  =SYSMEM
  2066.  
  2067. ZIELDRV   =SYSMEM+1
  2068.  
  2069. -SYSMEM   +=2
  2070.  
  2071.  
  2072.  
  2073. QUELLPFAD =SYSMEM
  2074.  
  2075. ZIELPFAD  =SYSMEM+pfadlen
  2076.  
  2077. -SYSMEM   +=2*pfadlen
  2078.  
  2079.  
  2080.  
  2081. ANZFILES  =SYSMEM
  2082.  
  2083. -SYSMEM   +=1
  2084.  
  2085.  
  2086.  
  2087. WI        =SYSMEM
  2088.  
  2089. WO        =SYSMEM+1
  2090.  
  2091. -SYSMEM   +=2
  2092.  
  2093. WB        =SYSMEM
  2094.  
  2095. -SYSMEM   +=256
  2096.  
  2097.  
  2098.  
  2099. WXBYT     =SYSMEM
  2100.  
  2101. WXANZ     =SYSMEM+1
  2102.  
  2103. -SYSMEM   +=2
  2104.  
  2105.  
  2106.  
  2107. RI        =SYSMEM
  2108.  
  2109. RO        =SYSMEM+1
  2110.  
  2111. RF        =SYSMEM+2
  2112.  
  2113. -SYSMEM   +=3
  2114.  
  2115. RB        =SYSMEM
  2116.  
  2117. -SYSMEM   +=256
  2118.  
  2119.  
  2120.  
  2121. WCNT      =SYSMEM
  2122.  
  2123. -SYSMEM   +=2
  2124.  
  2125. RCNT      =SYSMEM
  2126.  
  2127. -SYSMEM   +=2
  2128.  
  2129. ECNT      =SYSMEM
  2130.  
  2131. -SYSMEM   +=2
  2132.  
  2133.  
  2134.  
  2135. FILETAB   =SYSMEM
  2136.  
  2137. ENDE      .)
  2138.  
  2139.  
  2140.  
  2141.