home *** CD-ROM | disk | FTP | other *** search
/ 64'er 1986 October / 64er_Magazin_86-10_1986_Markt__Technik_de_Side_B.d64 / sourcelisting (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  5KB  |  208 lines

  1. 100 rem *****************************
  2. 110 rem * quelltext fuer            *
  3. 120 rem * profi-ass oder formel-64  *
  4. 130 rem * programm : h.i.d.e. v3.2  *
  5. 140 rem *                           *
  6. 150 rem * written by...frank hund   *
  7. 160 rem *              hoehenweg 8  *
  8. 170 rem *         5200 siegburg 1   *
  9. 180 rem *                           *
  10. 190 rem * (c) 1986 f.h.             *
  11. 200 rem *                           *
  12. 210 rem * start $c000=49152         *
  13. 220 rem *****************************
  14. 230 :
  15. 240 sys9*4096
  16. 250 .opt oo
  17. 260 * = $c000
  18. 270 ;
  19. 280 jsr 42291        ;nichts geht
  20. 290 lda 34           ;ueber ein gutes
  21. 300 clc              ;'old' zu anfang.
  22. 310 adc #$02         ;h.i.d.e. wird
  23. 320 sta 45           ;dadurch
  24. 330 lda 35           ;anwender-
  25. 340 adc #$00         ;freundlicher!
  26. 350 sta 46           ;
  27. 360 lda 43            ;initialisieren
  28. 370 sta $fb           ;
  29. 380 lda 44            ;
  30. 390 sta $fc           ;
  31. 400 lda #$00          ;
  32. 410 sta zaehlerlow    ;
  33. 420 sta zaehlerhigh   ;
  34. 430 jsr hello         ;moment bitte !
  35. 440 ;
  36. 450 mainloop ldy #$00 ;
  37. 460 lda ($fb),y       ;adresse fuer
  38. 470 sta adresselow    ;naechste zeile
  39. 480 iny               ;lesen
  40. 490 lda ($fb),y       ;
  41. 500 sta adressehigh
  42. 510 bne nostop        ;pruefen auf
  43. 520 lda adresselow    ;ende
  44. 530 bne nostop        ;
  45. 540 jmp fertig
  46. 550 ;
  47. 560 nostop jsr zout ;zeilennummer
  48. 570 ;               ;ausgeben...
  49. 580 ldy #$04          ;wird diese
  50. 590 lda ($fb),y       ;zeile
  51. 600 cmp #"@"          ;verschont "?"
  52. 610 beq nohide        ;
  53. 620 ldy #$00          ;nein ! (hehe...)
  54. 630 clc               ;hilfszaehler
  55. 640 lda zaehlerlow    ;um 6 erhoehen
  56. 650 adc #$06          ;
  57. 660 sta zaehlerlow    ;
  58. 670 lda zaehlerhigh   ;
  59. 680 adc #$00          ;
  60. 690 sta zaehlerhigh   ;
  61. 700 ;
  62. 710 jsr verknuepfe    ;addieren und
  63. 720 ;                 ;zurueckschreiben
  64. 730 clc
  65. 740 lda $fb           ;4 bytes
  66. 750 adc #$04          ;(adresse,
  67. 760 sta $fb           ;zeilennummer)
  68. 770 lda $fc           ;ueberspringen
  69. 780 adc #$00          ;
  70. 790 sta $fc
  71. 800 jmp copit         ;k o p i e r e n
  72. 810 ;
  73. 820 back ldy #$00     ;entstandenen
  74. 830 tya               ;zwischenraum
  75. 840 sta ($fb),y       ;mit
  76. 850 iny               ;1* 00
  77. 860 lda #$3a          ;5* 3a
  78. 870 fuell sta ($fb),y ;auffuellen
  79. 880 iny               ;
  80. 890 cpy #$06          ;
  81. 900 bne fuell
  82. 910 set lda adresselow;vektor auf
  83. 920 sta $fb           ;naechste, neu-
  84. 930 lda adressehigh   ;errechnente
  85. 940 sta $fc           ;zeile
  86. 950 jmp mainloop      ;und von anfang
  87. 960 ;
  88. 970 nohide lda #$20   ;zeile wird
  89. 980 sta ($fb),y       ;verschont.
  90. 990 ldy #$00          ;marke (@) wird
  91. 1000 jsr verknuepfe   ;beseitigt...
  92. 1010 jmp set          ;
  93. 1020 ;
  94. 1030 verknuepfe clc   ;unteroutine :
  95. 1040 lda adresselow   ;
  96. 1050 adc zaehlerlow   ;berechnung der
  97. 1060 sta adresselow   ;naechsten
  98. 1070 sta ($fb),y      ;adresse.
  99. 1080 lda adressehigh  ;
  100. 1090 adc zaehlerhigh  ;
  101. 1100 sta adressehigh  ;
  102. 1110 iny              ;
  103. 1120 sta ($fb),y      ;
  104. 1130 rts
  105. 1140 ;
  106. 1150 zout ldx #$00    ;routine
  107. 1160 llp3 lda pos,x   ;aktuelle
  108. 1170 jsr $ffd2        ;zeilennummer
  109. 1180 inx              ;ausgeben.
  110. 1190 cmp #$00         ;
  111. 1200 bne llp3         ;
  112. 1210 ldy #$02         ;
  113. 1220 lda ($fb),y      ;
  114. 1230 tax              ;
  115. 1240 iny              ;
  116. 1250 lda ($fb),y      ;
  117. 1260 jsr $bdcd        ;
  118. 1270 rts
  119. 1280 ;
  120. 1290 fertig clc       ;fertig...fast!
  121. 1300 lda 43           ;wichtig:
  122. 1310 adc #$05         ;ein 'a' in der
  123. 1320 sta $fb          ;1. zeile.
  124. 1330 lda 44           ;ausfuehrlich
  125. 1340 adc #$00         ;gemacht damit
  126. 1350 sta $fc          ;flexibel fuer
  127. 1360 ldy #$00         ;alle speicher-
  128. 1370 lda #$41         ;bereiche
  129. 1380 sta ($fb),y
  130. 1390 rts              ;back to basic
  131. 1400 ;
  132. 1410 copit lda 45     ;kopierroutine
  133. 1420 sta $fd          ;=============
  134. 1430 lda 46           ;
  135. 1440 sta $fe          ;initialisieren:
  136. 1450 clc              ;-vektoren
  137. 1460 lda 45           ; setzen
  138. 1470 adc #$06         ;-speicherende
  139. 1480 sta 45           ; hochsetzen
  140. 1490 lda 46           ;
  141. 1500 adc #$00         ;
  142. 1510 sta 46           ;
  143. 1520 cmp #$a0         ;prg zu gross
  144. 1530 beq error        ;geworden"?"
  145. 1540 jsr deb
  146. 1550 ;
  147. 1560 begin ldy #$00   ;
  148. 1570 lda ($fd),y      ;hier wird der
  149. 1580 ldy #$06         ;speicher
  150. 1590 sta ($fd),y      ;zwischen der
  151. 1600 dec $fd          ;aktuellen
  152. 1610 lda $fd          ;'arbeitsstelle'
  153. 1620 cmp #$ff         ;und dem
  154. 1630 bne no           ;programmende
  155. 1640 dec $fe          ;um 6 bytes
  156. 1650 no lda $fd       ;nach hinten
  157. 1660 cmp $fb          ;verschoben
  158. 1670 bne begin        ;
  159. 1680 lda $fe          ;
  160. 1690 cmp $fc          ;
  161. 1700 bne begin        ;
  162. 1710 jsr inb
  163. 1720 jmp back         ;zurueck
  164. 1730 ;
  165. 1740 inb inc $fb      ;kleine
  166. 1750 lda $fb          ;subroutinen
  167. 1760 bne noi          ;
  168. 1770 inc $fc          ;
  169. 1780 noi rts          ;
  170. 1790 ;                ;
  171. 1800 deb dec $fb      ;
  172. 1810 lda $fb          ;
  173. 1820 cmp #$ff         ;
  174. 1830 bne not          ;
  175. 1840 dec $fc          ;
  176. 1850 not rts          ;
  177. 1860 ;
  178. 1870 hello ldx #$00
  179. 1880 llp lda words,x
  180. 1890 jsr $ffd2
  181. 1900 inx
  182. 1910 cmp #$00
  183. 1920 bne llp
  184. 1930 rts
  185. 1940 words .asc "h.i.d.e. v3.2[146]"
  186. 1950 .byt $0d
  187. 1960 .asc "moment bitte !"
  188. 1970 .byt $0d
  189. 1980 .asc "zeile : "
  190. 1990 .byt $00
  191. 2000 error ldx #$00
  192. 2010 llp2 lda words2,x
  193. 2020 jsr $ffd2
  194. 2030 inx
  195. 2040 cmp #$00
  196. 2050 bne llp2
  197. 2060 jmp fertig
  198. 2070 words2 .byt $0d
  199. 2080 .asc "sorry, prg zu lang.[146]"
  200. 2090 .byt $00
  201. 2100 pos .byt $0d
  202. 2110 .asc "[145]" : .byt $00
  203. 2120 ;
  204. 2130 zaehlerlow  .byt 0 ;hilfszeiger
  205. 2140 zaehlerhigh .byt 0 ;
  206. 2150 adresselow  .byt 0 ;
  207. 2160 adressehigh .byt 0 ;
  208.