home *** CD-ROM | disk | FTP | other *** search
/ 64'er Special 80 / 64er_Magazin_Sonderheft_80_19xx_Markt__Technik_de_Side_B.d64 / rbs-fertig < prev    next >
Text File  |  2022-10-26  |  18KB  |  1,025 lines

  1.  
  2.  
  3. ;**********************************
  4.  
  5. ;*      RAM - Erweiterung         *
  6.  
  7. ;**********************************
  8.  
  9.  
  10. ; * Bedienung :
  11.  
  12. ;       - rl anf.adr,endadr,"name" ->Laden aus RAM an Adresse(inh.von Datei )
  13.  
  14. ;       - rs anf.adr,endadr,"name" ->Speichern von Adresse in RAM in Datei
  15.  
  16. ;       - rf "name",Fuellzeichen   ->Fuellen von Datei mit Fuellzeichen
  17.  
  18. ;       - rn "alter Name","neuer N"->Name aendern
  19.  
  20. ;       - r$                       ->alle Dateinamen u. Adressen auflisten
  21.  
  22. ; * benutzte Zwischenspeicher :
  23.  
  24. ;        - von     : 61,62  (adr.)
  25. ;        - bis     : 63,64  (adr od ends.)
  26. ;        - anf.s.  : 65,66  (Original)
  27. ;                    67,68  (umgewandelt)
  28. ;        - modus   : gleich verzweigt
  29.  
  30. ;        - Fuellz. : 61     (in ASCII)
  31. ;        - von     : 65,66  (seite)
  32.  
  33. ;        - Sp.st.1 : $2f1   (Speicherkonfiguration vor Aufruf)
  34.  
  35. ;        - Zw.sp.  : 2,3,$b6,$bd,$2f0
  36.  
  37. ;********************************
  38.  
  39.  
  40. :komma   =  $aefd    ;auf Komma testen
  41. :getadr  =  $ad8a    ;16-Bit-Zahl in FAC
  42. :adrint  =  $b7f7    ;Zahl in Y/A ($14/15)
  43.  
  44. :getzah  =  $b79b    ;8-Bit-Zahl nach X
  45.  
  46. :intout  =  $bdcd    ;16-Bit-Zahl ausgeben
  47.  
  48. :chrget  =  $73      ;Z. aus BASIC-Text
  49.  
  50.  
  51. ;----------------------------
  52.  
  53. ;{CBM-G}         Makros           {CBM-M}
  54.  
  55. ;----------------------------
  56.  
  57. :strout    m 1
  58.  
  59.        lda #<@0
  60.        ldy #>@0
  61.        jsr $ab1e
  62. /
  63.  
  64.  
  65. ;-----------------------------
  66.  
  67. ;{CBM-G}     Programmanfang        {CBM-M}
  68.  
  69. ;-----------------------------
  70.  
  71.     ;Initialisierung der neuen
  72.  
  73.     ;      BASIC-Befehle
  74.  
  75.  
  76.             org 39700
  77.  
  78.             lda #<erw
  79.             ldx #>erw
  80.             sta $308
  81.             stx $309
  82.  
  83.             jmp $e18d    ;OK ausgeben
  84.  
  85.  
  86.  ;----------------------------
  87.  
  88.         ;BASIC-Erweiterung
  89.  
  90. :erw
  91.             lda $7a   ;chrget-Zeiger
  92.             ldx $7b   ;sichern
  93.             sta 2
  94.             stx 3
  95.  
  96.  
  97.    ;1.Buchstabe
  98.             jsr chrget
  99.  
  100.             cmp #'r   ;1.Z. = R ?
  101.             beq wb
  102.  
  103.             jmp interpr
  104.     :wb
  105.             jsr chrget   ;2.Zeichen ueberspringen
  106.  
  107.             cmp #'$
  108.             bne wz
  109.  
  110.             jmp directory
  111.  
  112.       :wz
  113.             jsr chrget   ;3.Zeichen = "
  114.  
  115.             sta $bd      ;fuer spaetere Abfrage
  116.             cmp #'"      ;nur Filename ?
  117.             bne anfadr
  118.  
  119.  
  120.             jmp filename2
  121.  
  122.      ;-----------------------
  123.  
  124.  
  125.        ;Anfangsadr. holen
  126. :anfadr
  127.             jsr getadr   ;anf.
  128.             jsr adrint   ;->Y/A
  129.  
  130.             sty 61       ;low  Zwischenspeicher (Zw.sp.)
  131.             sta 62       ;high
  132.  
  133.  
  134.   ;Endadr. holen
  135.  
  136.             jsr komma
  137.  
  138.             jsr getadr
  139.             jsr adrint
  140.  
  141.             sty 63       ;low     Zw.sp.
  142.             sta 64       ;high
  143.  
  144.             inc 63       ;auf Grund der Schleifen-
  145.             cld          ;form (letze Adresse wird
  146.             lda #0       ;sonst nicht uebernommen)
  147.             adc 64
  148.             sta 64
  149.  
  150.  
  151.      ;-------------------------
  152.  
  153.  
  154. :filename
  155.             jsr chrget  ;Anfuehrungszeichen vorh.
  156.  
  157.             cmp #'"
  158.             beq filename2
  159.  
  160.             jmp $a7ae   ;provoziert Syntax Error
  161.  
  162. :filename2
  163.             ldy #8      ;textt loeschen
  164.    :lc
  165.             lda #0
  166.             sta textt,y
  167.             dey
  168.             bpl lc
  169.  
  170.    :nextb
  171.             ldy #0
  172.    :loopb
  173.             sty $b6      ;Zw.sp.
  174.  
  175.             jsr chrget   ;Name zuende ?
  176.             cmp #'"
  177.             bne wb1
  178.  
  179.             lda #0       ;ja
  180.             sta textt,y
  181.             jmp endeb
  182.    :wb1
  183.             sta textt,y
  184.  
  185.             ldy $b6
  186.             iny
  187.             cpy #7
  188.             bne loopb
  189.  
  190.    :endeb
  191.             strout textt
  192.  
  193. ;---------------------------
  194.  
  195.       ; Vergleich
  196.  
  197.  
  198.             lda #0
  199.             sta $2f0    ;Zaehler der wievielte Eintrag Name ist
  200.                         ; fuer spaetere Rechnung) - Eintragzaehler
  201.             ldx #<verglt
  202.             lda #>verglt ;Anfang des Direktory (Dir.)
  203.             stx $9e
  204.             sta $9f
  205.  
  206.             ldy #1
  207.    :vgl
  208.             ldx #0
  209.             inc $2f0
  210.    :loopv
  211.             lda verglt,y  ;Vergleich
  212.             cmp textt,x
  213.             bne nvgl
  214.  
  215.             iny           ;eingetragener Name zuende ?
  216.             lda verglt,y
  217.             beq gleich    ; ja
  218.  
  219.    :wv
  220.             inx           ;eingegebener Name zuende ?
  221.             lda textt,x
  222.             beq nvgl      ; ja
  223.  
  224.             jmp loopv
  225.  
  226.      ;------------
  227.  
  228.  :nvgl
  229.   :loopn
  230.             iny          ;Y bis Ende des Namen zaehlen
  231.             lda verglt,y
  232.             cmp #255
  233.             bne loopn
  234.  
  235.   :endetest
  236.             tya          ;Zeiger auf naechsten Namen
  237.             clc
  238.             cld
  239.             adc #8
  240.             tay
  241.             lda verglt,y
  242.             cmp #255      ;Dir. zuende
  243.             beq nichtgef
  244.  
  245.             jmp vgl
  246.  
  247.          ;------------
  248.  
  249. :gleich
  250.             inx           ;eingegebener Name auch zuende ? =>gleich Name im Dir
  251.             lda textt,x
  252.             beq gef       ; ja
  253.  
  254.             jmp nvgl      ;naechster Name
  255.  
  256. :gef
  257.             ldy $2f0
  258.     :ladr
  259.             lda #11
  260.             clc
  261.             cld
  262.             adc $9e     ;Zeiger auf Anf.adr. des Files mit entspr. Namen
  263.             sta $9e
  264.  
  265.             lda #0
  266.             adc $9f     ;Ueberlauf add.
  267.             sta $9f
  268.  
  269.             dey
  270.             beq wgef
  271.  
  272.             lda #6
  273.             clc
  274.             cld
  275.             adc $9e     ;Zeiger auf naechsten Name
  276.             sta $9e
  277.  
  278.             lda #0
  279.             adc $9f     ;Ueberlauf add.
  280.             sta $9f
  281.  
  282.             jmp ladr    ;solange bis Eintragzaehler =0
  283.  
  284.  
  285.     :wgef                  ;Name gefunden
  286.             strout geft
  287.  
  288.             lda $bd
  289.             cmp #'"    ;alte oder
  290.             beq altew  ;neue Werte
  291.  
  292.             jmp wertes
  293.  
  294.  
  295.          ;-------------
  296.  
  297. :nichtgef                  ;Name nicht gefunden
  298.             strout nichtt
  299.  
  300.             jsr chrget
  301.             jmp $a7ae
  302.  
  303.  
  304.  
  305. ;-------------------------------
  306.  
  307.  
  308. :wertes
  309.  
  310.       ;Werte sichern  ( in Dir. schreiben)
  311.  
  312.  
  313.             ldy #0     ;Anf.adr.,Endadr.
  314.   :loopwsi
  315.             lda 61,y
  316.             sta ($9e),y
  317.             iny
  318.             cpy #4
  319.             bne loopwsi
  320.  
  321.        ;weiter da Seite noch uebernommen
  322.        ;      werden muss
  323.  
  324.  
  325.      ;-----------------------
  326.  
  327.     ;Werte aus Dir. uebernehmen
  328.  
  329. :altew
  330.             ldy #0
  331.   :loopws
  332.             lda ($9e),y
  333.             sta 61,y
  334.             iny
  335.             cpy #6
  336.             bne loopws
  337.  
  338.      ;------------------------
  339.  
  340. :befehlstest
  341.  
  342.             lda 2       ;chrget-Zeiger holen
  343.             ldx 3
  344.             sta $7a
  345.             stx $7b
  346.  
  347.             jsr chrget     ;1.Zeichen ueberspringen ( "r" )
  348.  
  349.             jsr chrget
  350.             sta $b6
  351.  
  352.             ldy #0     ;Zaehler
  353. :loopcheck
  354.             lda $b6
  355.             cmp bliste,y
  356.             beq weiterch
  357.  
  358.             iny
  359.             cpy  #5        ;Anzahl der Befehle
  360.             bne loopcheck
  361.  
  362.             jmp interpr    ;wenn nicht gefunden zu Interpreter
  363.  
  364.    :weiterch
  365.             tya
  366.             asl     ;*2
  367.             tay     ;da Adr. 2 Byte
  368.  
  369.             lda adrlist,y
  370.             sta jump+1
  371.             lda adrlist+1,y
  372.             sta jump+2
  373.  
  374. :jump       jmp $ffff    ;wird modifiziert (Adresse des entsprechenden
  375.                          ;  Programmteiles
  376.  
  377.   :interpr  lda 2
  378.             ldx 3
  379.             sta $7a
  380.             stx $7b
  381.  
  382.             jmp $a7e4  ;zu normal Inter-
  383.                        ;  preterroutine
  384.  
  385.  
  386.  
  387. ;---------------------------
  388.  
  389. ;{CBM-G} Modifizierungsroutinen  {CBM-M}
  390.  
  391. ;---------------------------
  392.  
  393.  
  394. :fuellen
  395.             jsr chrget   ;1. " ueberspringen
  396.  
  397.       :lg
  398.             jsr chrget   ;2. Anf.z. suchen , da Zeiger zurueckgest.wurden
  399.             cmp #'"
  400.             bne lg
  401.  
  402.             jsr chrget
  403.             cmp #',      ;Zahl nach Namen ?
  404.             bne null     ; wenn nicht mit 0 fuellen
  405.  
  406.             jsr getzah   ;8-Bit-Zahl holen
  407.             stx 3
  408.             jmp modif
  409.  
  410.        :null
  411.             ldx #0
  412.             stx 3
  413.  
  414. :modif
  415.             ldy #0
  416. :loopmf
  417.             lda modf,y   ;kop. lda 3
  418.             sta mod1,y   ;     sta $de00,x
  419.             iny
  420.             cpy #16
  421.             bne loopmf
  422.  
  423.             lda f66
  424.             sta mod3+1
  425.  
  426.  
  427. ;Seiten die gefuellt werden sollen holen
  428.  
  429.             ldy #4      ;Zeiger auf Seite-Low
  430.             lda ($9e),y
  431.             sta 65      ;in entspr. Stelle schreiben
  432.             iny
  433.             lda ($9e),y ;Seite-High
  434.             sta 66
  435.  
  436.             lda 66
  437.             cmp #7      ;8.Programm ? (bis Seite 2047- da letzter Eintrag)
  438.             beq p8      ;Anf.s. $700
  439.  
  440.  
  441.             ldy #21      ;Anfangsseite des naechsten Programmes holen
  442.             lda ($9e),y  ; bis zu der Seite-1 fuellen
  443.             sta 63
  444.             iny
  445.             lda ($9e),y
  446.             sta 64
  447.             jmp endef
  448.  
  449.       :p8
  450.             lda #<2047   ;Endseite File 8
  451.             sta 63
  452.             lda #>2047
  453.             sta 64
  454.  
  455.     :endef
  456.             jsr eingpcl
  457.             jmp start    ;zu ausfuehrenden Programmteil
  458.  
  459. ;-------------------------------
  460.  
  461. :schreiben
  462.             ldy #0
  463. :loopms
  464.             lda mods,y   ;kop. lda (61),y
  465.             sta mod1,y   ;     sta $de00,x
  466.             iny          ;     lda 61
  467.             cpy #16
  468.             bne loopms
  469.  
  470.             lda s62
  471.             sta mod3+1
  472.  
  473.             jsr eingpcl
  474.  
  475.             jmp start
  476.  
  477. ;-------------------------------
  478.  
  479.  
  480. :lesen
  481.             ldy #0
  482. :loopml
  483.             lda modl,y   ;kop. lda $de00,x
  484.             sta mod1,y   ;     sta (61),y
  485.             iny          ;     lda 61
  486.             cpy #16
  487.             bne loopml
  488.  
  489.             lda l62
  490.             sta mod3+1
  491.  
  492.             jsr eingpcl
  493.  
  494.             jmp start
  495.  
  496. ;-------------------------------
  497.  
  498. :tauschen
  499.             ldy #0
  500. :loopmt
  501.             lda modt,y   ;kop. lda (61),y
  502.             sta mod1,y   ;     sta 3
  503.             iny          ;     ...
  504.             cpy #16
  505.             bne loopmt
  506.  
  507.             lda t62
  508.             sta mod3+1
  509.  
  510.             jmp start
  511.  
  512.  
  513. ;------------------------
  514.  
  515. ;{CBM-G}   RAM-Erweiterung    {CBM-M}
  516.  
  517. ;{CBM-G}  1) beschreiben      {CBM-M}
  518.  
  519. ;{CBM-G}  2) lesen            {CBM-M}
  520.  
  521. ;{CBM-G}  3) fuellen          {CBM-M}
  522.  
  523. ;------------------------
  524.  
  525.  
  526.  
  527. :start
  528.             sei
  529.             lda 1
  530.             sta $2f1
  531.             and #%11111110   ;BASIC-ROM auf RAM
  532.             sta 1
  533.  
  534.  
  535.      ;Seite berechnen ( da in $dffe Bit 0-5
  536.      ;                (und in $dfff Bit 3-7 benutzt wird)
  537.  
  538.  
  539.             jsr seiteber
  540.  
  541.     ;Seite beschreiben
  542.  
  543. :copys
  544.             ldx 67
  545.             ldy 68
  546.             stx $dffe
  547.             sty $dfff
  548.  
  549.             ldx #0    ;Zaehler ob Seite
  550.                       ;voll
  551. :loopsc
  552.             stx 2
  553.  
  554.             ldy #0       ; {CBM-G}lesen          {CBM-G}fuellen
  555.    :mod1
  556.             lda (61),y   ; {CBM-G}lda $de00,x    {CBM-G}lda 61
  557.             sta $de00,x  ; {CBM-G}sta (61),y     {CBM-G}sta de00,x
  558.             nop
  559.             nop
  560.             nop
  561.             nop
  562.             nop
  563.             nop
  564.             nop
  565.             nop
  566.             nop
  567.    :mod2
  568.             lda 61       ;fuer fuellen -> lda 65
  569.             cmp 63
  570.             bne weiters
  571.    :mod3
  572.             lda 62       ;      -"-    -> lda 66
  573.             cmp 64
  574.             bne weiters
  575.  
  576.             jmp rendes   ;wenn gleich -> ende
  577.  
  578.  :weiters
  579.             cld
  580.             clc
  581.             lda #1
  582.             adc 61
  583.             sta 61
  584.  
  585.             lda #0
  586.             adc 62
  587.             sta 62
  588.  
  589.  
  590.             ldx 2
  591.             inx
  592.             bne loopsc
  593.  
  594.    ;naechste Seite berechnen
  595.  
  596.             jsr nextpage
  597.  
  598. :mout
  599.             jmp copys
  600.  
  601. :rendes
  602.             lda $2f1     ;alte Speicherkonf.
  603.             sta 1
  604.             cli
  605.  
  606.             ldy #0       ;auf Seite 0 -> letzte Seite uebernommen
  607.             sty $dffe
  608.             sty $dfff
  609.  
  610.  
  611.             jmp $a7ae     ;zur Interpr.-
  612.                           ; schleife
  613.  
  614.  
  615. ;-----------------------------
  616.  
  617. ;{CBM-G}           Rename          {CBM-M}
  618.  
  619. ;-----------------------------
  620.  
  621.  
  622. :rename
  623.  
  624.   ;Zeiger $9e auf Anfang Filename setzen
  625.  
  626.  
  627.             lda $9e
  628.             sec
  629.             cld
  630.             sbc #10
  631.             sta $9e
  632.  
  633.             lda $9f
  634.             sbc #0
  635.             sta $9f
  636.  
  637.             jsr chrget   ;1."
  638.       :lgr
  639.             jsr chrget   ;2. Anf.z. suchn , da Zeiger zurueckgest.wurden
  640.             cmp #'"
  641.             bne lgr
  642.  
  643.             jsr chrget
  644.             jsr komma
  645.  
  646.             jsr $79      ;vor neuen Namen "
  647.             cmp #'"
  648.             beq wr
  649.  
  650.             jmp $a7ae    ;wenn nicht -> provoziert syntax error
  651.  
  652.        :wr
  653.             ldy #0       ;Neuen Namen holen
  654.    :loopr
  655.             jsr chrget
  656.             cmp #'"
  657.             beq ender
  658.  
  659.             sta ($9e),y  ;und schreiben
  660.             iny
  661.             cpy #8
  662.             bne loopr
  663.  
  664. :ender
  665.             lda #0       ;Endkennzeichen
  666.             sta ($9e),y
  667.  
  668.             jsr eingpcl
  669.  
  670.             jmp $a7ae
  671.  
  672.  
  673. ;-----------------------------
  674.  
  675. ;{CBM-G}           Directory       {CBM-M}
  676.  
  677. ;-----------------------------
  678.  
  679.  
  680. :directory
  681.             ldx #<verglt   ;Anf.adr. Dir.
  682.             lda #>verglt
  683.             stx $9e
  684.             sta $9f
  685.  
  686.             ldy #1         ;Zaehler fuer Adresse
  687.             ldx #8         ;Zaehler fuer Eintraege (Dir. zuende?)
  688.             sty 2
  689.             stx 3
  690.  
  691.    :loopd1
  692.             sec
  693.             jsr $fff0  ;Cursorpos. holen
  694.             stx 69
  695.             ldy #0
  696.  
  697.             clc
  698.             jsr $fff0  ;  -"-   setzen
  699.  
  700.             ldy 2
  701.    :loopd2
  702.             lda ($9e),y  ;Filename ausgeben
  703.             cmp #0
  704.             beq nextn
  705.  
  706.             jsr $ffd2
  707.  
  708.             iny
  709.  
  710.             jmp loopd2
  711.  
  712.  
  713.    :nextn
  714.             ldy 2
  715.      :loopdn
  716.             iny          ;Y bis Ende des Namen zaehlen
  717.             lda verglt,y
  718.             cmp #255
  719.             bne loopdn
  720.             iny          ;Y auf Anf.adr.
  721.             sty 2
  722.  
  723.             ldx 69       ;Cursorpos. setzen
  724.             ldy #10
  725.             clc
  726.             jsr $fff0
  727.  
  728.             ldy 2        ;Anf.adr. holen
  729.             lda verglt,y
  730.             tax
  731.             iny
  732.             lda verglt,y
  733.             sty 2
  734.             jsr $bdcd    ;und ausgeben
  735.  
  736.             ldx 69
  737.             ldy #17
  738.             clc
  739.             jsr $fff0
  740.  
  741.             ldy 2         ;Endadr. holen
  742.             iny
  743.             lda verglt,y
  744.             tax
  745.             iny
  746.             lda verglt,y
  747.             iny
  748.             iny           ;Y auf naechsten Namen
  749.             iny
  750.             iny
  751.             sty 2
  752.             jsr $bdcd     ;und ausgeben
  753.  
  754.             lda #13       ;naechste Zeile
  755.             jsr $ffd2
  756.  
  757.             dec 3         ;Dir. zuende ?
  758.             bne loopd1    ;nein
  759.  
  760.             jsr eingpcl
  761.             jmp $a7ae
  762.  
  763.  
  764.  
  765. ;-----------------------------
  766.  
  767. ;{CBM-G}       Unterprogramme      {CBM-M}
  768.  
  769. ;-----------------------------
  770.  
  771.       ;naechste Seite
  772.  
  773.  
  774. :nextpage
  775.            cld
  776.            clc
  777.            lda #1
  778.            adc 65
  779.            sta 65
  780.  
  781.            lda #0
  782.            adc 66
  783.            sta 66
  784.  
  785.  
  786.  
  787.  
  788.      ;Berechnen der RAM-Seite  (um in $dffe/$dfff zu schreiben)
  789.  
  790.  
  791. :seiteber
  792.             stx $2a1  ;X,Y sichern
  793.             sty $2a2
  794.  
  795.  
  796.             ldy #0    ;$bd loeschen
  797.             sty $bd
  798.  
  799.             lda 65    ;orig.Zahl in
  800.             sta 67    ;Sp.fuer umgew.
  801.             lda 66    ;Zahlen
  802.             sta 68
  803.  
  804.  
  805.             asl 68    ;5mal nach links
  806.             asl 68    ;verschieben
  807.             asl 68    ;(%0000 0111 ->
  808.             asl 68    ; %1110 0000 )
  809.             asl 68
  810.             sta 68
  811.  
  812.             asl 67
  813.             rol $bd   ;Carry -> $bd
  814.  
  815.             asl 67
  816.             rol $bd   ;    -"-
  817.  
  818.             lsr 67    ;low zurueck
  819.             lsr 67
  820.  
  821.             clc
  822.             asl $bd
  823.             asl $bd
  824.             asl $bd
  825.  
  826.             lda $bd
  827.             ora 68
  828.             sta 68
  829.  
  830.             ldx $2a1
  831.             ldy $2a2
  832.  
  833.             rts
  834.  
  835.  
  836. ;-----------------------------
  837.  
  838. ;  Eingabepuffer loeschen
  839.  
  840. :eingpcl
  841.             ldx #58 ;Eing.puffer loeschen
  842.    :loopl   lda #0
  843.             sta $200,x
  844.             dex
  845.             bne loopl
  846.  
  847.             rts
  848.  
  849.  
  850.  
  851. ;-----------------------------
  852.  
  853. ;{CBM-G}     Texte und Daten       {CBM-M}
  854.  
  855. ;-----------------------------
  856.  
  857. ;----------------------------
  858.  
  859. ;{CBM-G}      BASIC-Befehle       {CBM-M}
  860.  
  861. ;----------------------------
  862.  
  863. :bliste     b 's,'l,'f,'t,'n
  864.  
  865. :adrlist    w schreiben,lesen,fuellen,tauschen,rename
  866.  
  867.  
  868.  
  869. ;----------------------------
  870.  
  871. ;{CBM-G} Daten fuer Modifizierung {CBM-M}
  872.  
  873. ;----------------------------
  874.  
  875. :mods
  876.          lda (61),y
  877.          sta $de00,x
  878.          nop
  879.          nop
  880.          nop
  881.          nop
  882.          nop
  883.          nop
  884.          nop
  885.          nop
  886.          nop
  887.  
  888.          lda 61
  889. :s62     b 62
  890.  
  891. ;-----------------
  892.  
  893. :modl
  894.          lda $de00,x
  895.          sta (61),y
  896.          nop
  897.          nop
  898.          nop
  899.          nop
  900.          nop
  901.          nop
  902.          nop
  903.          nop
  904.          nop
  905.  
  906.  
  907.          lda 61
  908. :l62     b 62
  909.  
  910. ;-----------------
  911.  
  912. :modf
  913.          lda 3
  914.          sta $de00,x
  915.          nop
  916.          nop
  917.          nop
  918.          nop
  919.          nop
  920.          nop
  921.          nop
  922.          nop
  923.          nop
  924.  
  925.          lda 65
  926. :f66     b 66
  927.  
  928. ;-----------------
  929.  
  930. :modt
  931.          lda (61),y
  932.          sta 3
  933.          lda $de00,x
  934.          sta (61),y
  935.          lda 3
  936.          sta $de00,x
  937.  
  938.          lda 61
  939. :t62     b 62
  940.  
  941.  
  942.  
  943. ;----------------------------
  944.  
  945. ;{CBM-G}  Filenamen und Adressen  {CBM-M}
  946.  
  947. ;{CBM-G}      Directory           {CBM-M}
  948. ;----------------------------
  949.  
  950.  
  951. :textt    b 0,0,0,0,0,0,0,0,0  ;von Programm geaendert-aktueller Filename
  952.  
  953. :geft     b "  - gefunden ",13,0
  954.  
  955. :nichtt   b "  - nicht gefunden ",0
  956.  
  957. :verglt
  958.           b 0
  959.   ;1.File
  960.           b '1,0,0,0,0,0,0,0   ;Filename ( =< 8 Buchst.)
  961.  
  962.           b 0,255    ;Endkennzeichen
  963.  
  964.           b 0,0    ;Startadresse
  965.  
  966.           b 0,0    ;Endadresse
  967.  
  968.           b 0,0    ;Anfangsseite (fest)
  969.   ;2.File
  970.           b 0,'2,0,0,0,0,0,0,0,0,255
  971.  
  972.           b 0,0,0,0
  973.  
  974.           b 0,1    ;256
  975.   ;3.File
  976.           b 0,'3,0,0,0,0,0,0,0,0,255
  977.  
  978.           b 0,0,0,0
  979.  
  980.           b 0,2    ;512
  981.   ;4.File
  982.           b 0,'4,0,0,0,0,0,0,0,0,255
  983.  
  984.           b 0,0,0,0
  985.  
  986.           b 0,3
  987.   ;5.File
  988.           b 0,'5,0,0,0,0,0,0,0,0,255
  989.  
  990.           b 0,0,0,0
  991.  
  992.           b 0,4
  993.   ;6.File
  994.           b 0,'6,0,0,0,0,0,0,0,0,255
  995.  
  996.           b 0,0,0,0
  997.  
  998.           b 0,5
  999.   ;7.File
  1000.           b 0,'7,0,0,0,0,0,0,0,0,255
  1001.  
  1002.           b 0,0,0,0
  1003.  
  1004.           b 0,6
  1005.   ;8.File
  1006.           b 0,'8,0,0,0,0,0,0,0,0,255
  1007.  
  1008.           b 0,0,0,0
  1009.  
  1010.           b 0,7      ;bis 2047
  1011.  
  1012.  
  1013. :letzte   b 0,255
  1014.  
  1015.  
  1016. ;**********************************
  1017. ;**********************************
  1018. ;**********************************
  1019. ;**********************************
  1020. ;**********************************
  1021.  
  1022.  
  1023.  
  1024.  
  1025.