home *** CD-ROM | disk | FTP | other *** search
/ Strange Invasion 1995 January / Strange_Invasion_1995_01_Lausberg_Stefan_Side_B.atr / kurs6.lst < prev    next >
File List  |  2023-02-26  |  4KB  |  1 lines

  1. ¢00010          .LI OFF¢00020 ;        .OF "D:KURS6.COM"¢00040 ------------------------------¢00050 BUFFER   .BL 44,0  unsere Bildschirmzeile¢00060 POSITION .HX 0000  Position im Text¢00070 ------------------------------¢00080 TEXT     ; Dieser Text wird ausgegeben¢00090          .AT " Ein weiteres phaenomenales Programm "¢00100          .AT "(aehem) des Assemblerkurses im "¢00110          .AT "צ⌠≥β∈τσáח∈÷β≤Θ∩∈ - dem monatlichen Magazin, "¢00120          .AT "das viermal im Jahr erscheint oder so "¢00130          .AT "aehnlich... Genug gelaestert......................."¢00140 TEXTLENGTH = *-TEXT¢00150 ------------------------------¢00160 POINTER  = $FE    brauchen wir fuer indirekten Zugriff¢00170 HSCROL   = $D404  Das Register, welches Softscrolling ermoeglicht¢00180 ------------------------------¢00190 DLIST    ; unsere Ergaenzung zur Displaylist¢00200          .HX 52  Gr.0 + Softscolling + neue Adresse¢00210          .DA BUFFER  die eben erwaehnte Adresse¢00220          .HX 41  auf VSYNC warten uns Zurueckspringen¢00230 DLPTR    .DA 00  die Anfangsadresse der Displaylist¢00240 ------------------------------¢00250 VSYNC    ; auf VSync warten¢00260          LDA 20  Uhr abfragen...¢00270 .1¢00280          CMP 20¢00290          BEQ .1  bis sie sich aendert¢00300          RTS¢00310 ------------------------------¢00320 SOFTSCROLL  ; 3,2,1,0 in HSCROL schreiben...¢00330          LDX #3¢00340 .1¢00350          STX HSCROL¢00360          JSR VSYNC  ...und dazwischen auf VSync warten¢00370          DEX¢00380          BPL .1¢00390          RTS¢00400 ------------------------------¢00410 SHIFTBUFFER ; Buffer um 1 Byte nach links verschieben¢00420          LDX #0¢00430 .1¢00440          LDA BUFFER+1,X¢00450          STA BUFFER,X¢00460          INX¢00470          CPX #43  ; wir brauchen nur 43 Bytes verschieben¢00480          BCC .1¢00490          RTS¢00500 ------------------------------¢00510 INIT     ; neue DL "einhaengen"¢00520          LDA 560      $41 in der richtigen DL suchen¢00530          STA POINTER¢00540          LDA 561¢00550          STA POINTER+1¢00560          LDY #0¢00570 .1¢00580          LDA (POINTER),Y¢00590          CMP #$41¢00600          BEQ .2¢00610          AND #$40  neue Adressen beruecksichtigen¢00620          BEQ .3¢00630          INY¢00640          INY¢00650 .3¢00660          INY¢00670          JMP .1¢00680 .2¢00690          INY       Ruecksprungadresse uebernehemen¢00700          LDA (POINTER),Y¢00710          STA DLPTR¢00720          INY¢00730          LDA (POINTER),Y¢00740          STA DLPTR+1¢00750          DEY¢00760          DEY¢00770          JSR VSYNC   sicherheitshalber warten¢00780          LDA #1      "Sprung ohne Warten" eintragen¢00790          STA (POINTER),Y¢00800          INY¢00810          LDA #DLIST  unsere DL-Erweiterung einhaengen¢00820          STA (POINTER),Y¢00830          INY¢00840          LDA /DLIST¢00850          STA (POINTER),Y¢00860          RTS¢00870 ------------------------------¢00880 START¢00890          JSR INIT  DL vorbereiten¢00900 .1¢00910          JSR SHIFTBUFFER Buffer nach links schieben¢00920          CLC             aktuelle Position im Text berechnen¢00930          LDA #TEXT¢00940          ADC POSITION¢00950          STA POINTER¢00960          LDA /TEXT¢00970          ADC POSITION+1¢00980          STA POINTER+1¢00990          LDY #0¢01000          LDA (POINTER),Y neuen Buchstaben holen¢01010          STA BUFFER+43   und am Ende vom Buffer eintragen¢01020          JSR SOFTSCROLL  und saaaanft scrollen¢01030          INC POSITION    Position im Text erhoehen¢01040          BNE .2¢01050          INC POSITION+1¢01060 .2¢01070          LDA POSITION+1¢01080          CMP /TEXTLENGTH sind wir schon am Ende?¢01090          BCC .1¢01100          LDA POSITION¢01110          CMP #TEXTLENGTH¢01120          BCC .1¢01130          LDA #0          dann alles von vorne¢01140          STA POSITION¢01150          STA POSITION+1¢01160          JMP .1¢01170 ------------------------------¢01180 ;        .OR $2E0¢01190 ;        .DA START¢01200 ------------------------------¢