home *** CD-ROM | disk | FTP | other *** search
/ 64'er 1987 March / 64er_Magazin_87-03_1987_Markt__Technik_de_Side_A.d64 / uncover.src (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  3KB  |  153 lines

  1. 10 .os
  2. 20 .ba$c200
  3. 30 bind    .de$a533
  4. 40 numout  .de$bdcd
  5. 50 bsout   .de$e10c
  6. 60 textanf .de$002b
  7. 70 varanf  .de$002d
  8. 80 feldanf .de$002f
  9. 90 feldend .de$0031
  10. 100 l1      .de$0050
  11. 110 h1      .de$0051
  12. 120 l2      .de$0052
  13. 130 h2      .de$0053
  14. 140 l3      .de$0054
  15. 150 h3      .de$0055
  16. 160 vorsch  .de$0056
  17. 170 mem     .de$0334
  18. 180 endldy # 0
  19. 190 s0 lda l1,y ;speichern der
  20. 200 sta mem,y ;zeropage-zeiger
  21. 210 iny
  22. 220 cpy # 7
  23. 230 bne s0
  24. 240 clc
  25. 250 ;ausloten des basicprogrammendes
  26. 260 jsr bind
  27. 270 ldy #0
  28. 280 lda textanf, y ;uebertragen
  29. 290 sta l1         ;des basiczeigers
  30. 300 iny            ;zur freien
  31. 310 lda textanf, y ;benutzung
  32. 320 sta h1
  33. 330 dey
  34. 340 lda(l1),y ;zeigt auf den
  35. 350 ;1.linkpointer,lowbyte
  36. 360 sta l3 ;merken
  37. 370 iny
  38. 380 lda(l1),y ;1.lp,hibyte
  39. 390 sta h3 ;merken
  40. 400 s1 lda(l3),y ;zeigt auf naechsten
  41. 410 ;linkpointer(hi-byte!)
  42. 420 ;ist dieses null, so ist texten-
  43. 430 ;de ausreichend nachgewiesen
  44. 440 beq s6 ;dann weiter
  45. 450 pha
  46. 460 dey       ;zeiger
  47. 470 lda (l3),y;auf neue l.p.
  48. 480 sta l3    ;-adresse
  49. 490 iny
  50. 500 pla       ;aktualisieren
  51. 510 sta h3
  52. 520 bne s1    ;von vorne
  53. 530 ;**
  54. 540 ;**
  55. 550 ;pruefen der einzelnen
  56. 560 ;basiczeilen
  57. 570 s6 ldy #$01
  58. 580 lda(l1),y   ;ist letzte zeile
  59. 590 beq schluss ;fertigprint
  60. 600 ldy # $04 ;byte direkt nach
  61. 610 lda(l1),y ;zeilennummer
  62. 620 beq korrektur
  63. 630 ;(falls nextull)
  64. 640 ldy #$01
  65. 650 lda(l1),y ;zeiger anhand des
  66. 660 pha       ;linkpointers
  67. 670 dey       ;auf naechste
  68. 680 lda(l1),y ;zeile richten
  69. 690 sta l1
  70. 700 pla
  71. 710 sta h1
  72. 720 bne s6
  73. 730 ;**
  74. 740 ;**
  75. 750 korrektur iny
  76. 760 test: iny
  77. 770 lda(l1),y
  78. 780 cmp #":" ;test auf doppelpunkt
  79. 790 clc
  80. 800 beq test:
  81. 810 cmp # $0 ;nur ":"printprint
  82. 820 bne =+1
  83. 830 dey
  84. 840 sty vorsch ;vorschub beim
  85. 850 ;verschieben
  86. 860 clc
  87. 870 lda l1
  88. 880 sta l2
  89. 890 lda h1
  90. 900 sta h2
  91. 910 s8 ldy vorsch ;verschieberoutine
  92. 920 lda(l2),y
  93. 930 ldy #$04
  94. 940 sta(l2),y
  95. 950 inc l2
  96. 960 bne s8
  97. 970 lda h2
  98. 980 cmp h3 ;schon am textendeprint
  99. 990 beq s9
  100. 1000 inc h2
  101. 1010 bne s8
  102. 1020 s9 sec
  103. 1030 tya
  104. 1040 sbc vorsch
  105. 1050 adc l3    ;zeiger auf text-
  106. 1060 bcs = + 2 ;ende dekrementieren
  107. 1070 dec h3
  108. 1080 clc
  109. 1090 sta l3
  110. 1100 ;**
  111. 1110 ;**
  112. 1120 ;zeilennummernausgabe
  113. 1130 lda #$20
  114. 1140 jsr bsout
  115. 1150 ldy #$02
  116. 1160 lda (l1),y ;low-
  117. 1170 tax
  118. 1180 iny
  119. 1190 lda (l1),y ;&hi-byte der z.n.
  120. 1200 jsr numout ;in a/x ausgeben
  121. 1210 lda $d3 ;cursorspalte
  122. 1220 cmp #$21 ;crsr zu weit rechtsprint
  123. 1230 clc
  124. 1240 bmi = + 5
  125. 1250 lda #$0d ;in diesem fall
  126. 1260 jsr bsout ;carriage return
  127. 1270 jsr bind
  128. 1280 clv ;(ruecksprung sichern)
  129. 1290 bvc ret
  130. 1300 schluss ;vorbereitung des basic-
  131. 1310 lda #$2
  132. 1320 adc l1   ;erhoehung um 2
  133. 1330 bcc = +2 ;zeigt dann auf beginn
  134. 1340 inc h1   ;der variablen etc.
  135. 1350 clc
  136. 1360 sta varanf ;korrektur der zeiger
  137. 1370 sta feldanf
  138. 1380 sta feldend
  139. 1390 lda h2
  140. 1400 sta varanf+1
  141. 1410 sta feldanf+1
  142. 1420 sta feldend+1
  143. 1430 ldy #$0
  144. 1440 t0 lda mem,y ;urspr.werte zurueck
  145. 1450 sta l1,y    ;in zero-page
  146. 1460 iny
  147. 1470 cpy # 7
  148. 1480 bne t0
  149. 1490 clc
  150. 1500 ;back to basic
  151. 1510 rts
  152. 1520 .en
  153.