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 >
Wrap
Commodore BASIC
|
2022-10-26
|
5KB
|
208 lines
100 rem *****************************
110 rem * quelltext fuer *
120 rem * profi-ass oder formel-64 *
130 rem * programm : h.i.d.e. v3.2 *
140 rem * *
150 rem * written by...frank hund *
160 rem * hoehenweg 8 *
170 rem * 5200 siegburg 1 *
180 rem * *
190 rem * (c) 1986 f.h. *
200 rem * *
210 rem * start $c000=49152 *
220 rem *****************************
230 :
240 sys9*4096
250 .opt oo
260 * = $c000
270 ;
280 jsr 42291 ;nichts geht
290 lda 34 ;ueber ein gutes
300 clc ;'old' zu anfang.
310 adc #$02 ;h.i.d.e. wird
320 sta 45 ;dadurch
330 lda 35 ;anwender-
340 adc #$00 ;freundlicher!
350 sta 46 ;
360 lda 43 ;initialisieren
370 sta $fb ;
380 lda 44 ;
390 sta $fc ;
400 lda #$00 ;
410 sta zaehlerlow ;
420 sta zaehlerhigh ;
430 jsr hello ;moment bitte !
440 ;
450 mainloop ldy #$00 ;
460 lda ($fb),y ;adresse fuer
470 sta adresselow ;naechste zeile
480 iny ;lesen
490 lda ($fb),y ;
500 sta adressehigh
510 bne nostop ;pruefen auf
520 lda adresselow ;ende
530 bne nostop ;
540 jmp fertig
550 ;
560 nostop jsr zout ;zeilennummer
570 ; ;ausgeben...
580 ldy #$04 ;wird diese
590 lda ($fb),y ;zeile
600 cmp #"@" ;verschont "?"
610 beq nohide ;
620 ldy #$00 ;nein ! (hehe...)
630 clc ;hilfszaehler
640 lda zaehlerlow ;um 6 erhoehen
650 adc #$06 ;
660 sta zaehlerlow ;
670 lda zaehlerhigh ;
680 adc #$00 ;
690 sta zaehlerhigh ;
700 ;
710 jsr verknuepfe ;addieren und
720 ; ;zurueckschreiben
730 clc
740 lda $fb ;4 bytes
750 adc #$04 ;(adresse,
760 sta $fb ;zeilennummer)
770 lda $fc ;ueberspringen
780 adc #$00 ;
790 sta $fc
800 jmp copit ;k o p i e r e n
810 ;
820 back ldy #$00 ;entstandenen
830 tya ;zwischenraum
840 sta ($fb),y ;mit
850 iny ;1* 00
860 lda #$3a ;5* 3a
870 fuell sta ($fb),y ;auffuellen
880 iny ;
890 cpy #$06 ;
900 bne fuell
910 set lda adresselow;vektor auf
920 sta $fb ;naechste, neu-
930 lda adressehigh ;errechnente
940 sta $fc ;zeile
950 jmp mainloop ;und von anfang
960 ;
970 nohide lda #$20 ;zeile wird
980 sta ($fb),y ;verschont.
990 ldy #$00 ;marke (@) wird
1000 jsr verknuepfe ;beseitigt...
1010 jmp set ;
1020 ;
1030 verknuepfe clc ;unteroutine :
1040 lda adresselow ;
1050 adc zaehlerlow ;berechnung der
1060 sta adresselow ;naechsten
1070 sta ($fb),y ;adresse.
1080 lda adressehigh ;
1090 adc zaehlerhigh ;
1100 sta adressehigh ;
1110 iny ;
1120 sta ($fb),y ;
1130 rts
1140 ;
1150 zout ldx #$00 ;routine
1160 llp3 lda pos,x ;aktuelle
1170 jsr $ffd2 ;zeilennummer
1180 inx ;ausgeben.
1190 cmp #$00 ;
1200 bne llp3 ;
1210 ldy #$02 ;
1220 lda ($fb),y ;
1230 tax ;
1240 iny ;
1250 lda ($fb),y ;
1260 jsr $bdcd ;
1270 rts
1280 ;
1290 fertig clc ;fertig...fast!
1300 lda 43 ;wichtig:
1310 adc #$05 ;ein 'a' in der
1320 sta $fb ;1. zeile.
1330 lda 44 ;ausfuehrlich
1340 adc #$00 ;gemacht damit
1350 sta $fc ;flexibel fuer
1360 ldy #$00 ;alle speicher-
1370 lda #$41 ;bereiche
1380 sta ($fb),y
1390 rts ;back to basic
1400 ;
1410 copit lda 45 ;kopierroutine
1420 sta $fd ;=============
1430 lda 46 ;
1440 sta $fe ;initialisieren:
1450 clc ;-vektoren
1460 lda 45 ; setzen
1470 adc #$06 ;-speicherende
1480 sta 45 ; hochsetzen
1490 lda 46 ;
1500 adc #$00 ;
1510 sta 46 ;
1520 cmp #$a0 ;prg zu gross
1530 beq error ;geworden"?"
1540 jsr deb
1550 ;
1560 begin ldy #$00 ;
1570 lda ($fd),y ;hier wird der
1580 ldy #$06 ;speicher
1590 sta ($fd),y ;zwischen der
1600 dec $fd ;aktuellen
1610 lda $fd ;'arbeitsstelle'
1620 cmp #$ff ;und dem
1630 bne no ;programmende
1640 dec $fe ;um 6 bytes
1650 no lda $fd ;nach hinten
1660 cmp $fb ;verschoben
1670 bne begin ;
1680 lda $fe ;
1690 cmp $fc ;
1700 bne begin ;
1710 jsr inb
1720 jmp back ;zurueck
1730 ;
1740 inb inc $fb ;kleine
1750 lda $fb ;subroutinen
1760 bne noi ;
1770 inc $fc ;
1780 noi rts ;
1790 ; ;
1800 deb dec $fb ;
1810 lda $fb ;
1820 cmp #$ff ;
1830 bne not ;
1840 dec $fc ;
1850 not rts ;
1860 ;
1870 hello ldx #$00
1880 llp lda words,x
1890 jsr $ffd2
1900 inx
1910 cmp #$00
1920 bne llp
1930 rts
1940 words .asc "h.i.d.e. v3.2[146]"
1950 .byt $0d
1960 .asc "moment bitte !"
1970 .byt $0d
1980 .asc "zeile : "
1990 .byt $00
2000 error ldx #$00
2010 llp2 lda words2,x
2020 jsr $ffd2
2030 inx
2040 cmp #$00
2050 bne llp2
2060 jmp fertig
2070 words2 .byt $0d
2080 .asc "sorry, prg zu lang.[146]"
2090 .byt $00
2100 pos .byt $0d
2110 .asc "[145]" : .byt $00
2120 ;
2130 zaehlerlow .byt 0 ;hilfszeiger
2140 zaehlerhigh .byt 0 ;
2150 adresselow .byt 0 ;
2160 adressehigh .byt 0 ;