This page (revision-8) was last changed on 03-Feb-2023 15:21 by Carsten Strotmann 

This page was created on 14-Mar-2010 12:20 by Carsten Strotmann

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
8 03-Feb-2023 15:21 8 KB Carsten Strotmann to previous
7 02-Jan-2011 12:32 7 KB Carsten Strotmann to previous | to last
6 02-Jan-2011 12:32 7 KB Carsten Strotmann to previous | to last
5 02-Jan-2011 12:31 7 KB Carsten Strotmann to previous | to last
4 02-Jan-2011 12:30 7 KB Carsten Strotmann to previous | to last
3 02-Jan-2011 12:30 7 KB Carsten Strotmann to previous | to last
2 02-Jan-2011 12:30 7 KB Carsten Strotmann to previous | to last
1 14-Mar-2010 12:20 924 bytes Carsten Strotmann to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

At line 3 added one line
!!Assembler (BiboAssembler)
At line 5 added 178 lines
00010 .LI OFF
00020 *
00030 PPOINT .EQ $D0
00040 *
00050 SAVMSC .EQ $58
00060 *
00070 *
00080 *
00090 *
00100 *
00110 KOALA LDX #$10 Kanal 1
00120 JSR CLOSE schliessen
00130 LDX #$14 Kalal 1
00140 LDA #FN zum lesen
00150 LDY /FN oeffnen mit
00160 JSR OPEN Filename in FN
00170 LDX #$10 27 Bytes
00180 LDY #27 von Kanal 1
00190 LDA #$06 nach page 6 lesen
00200 JSR GETBYTES
00210 LDA $0607 Formatbyte
00220 JSR SETADD holen und setzen
00230 JSR INITREGI Register vorbesetzen
00240 LDY #2 Farben
00250 GCOLP1 LDA $060D,Y in Soft-
00260 STA $2C4,Y warere-
00270 DEY gister
00280 BPL GCOLP1 kopieren
00290 LDA $060D+4
00300 STA $2C8
00310 ------------------------------
00320 PLOOP0 JSR GETLEN Laenge holen
00330 LDA FFLAG Fuellen
00340 BEQ FFILL ja
00350 PLOOP1 JSR GETB1 Byte holen
00360 LDY YC in Bild
00370 STA (PPOINT),Y setzen
00380 JSR ADDS Pointer hochzaehlen
00390 LDA PLEN Laenge
00400 BNE .1 erniedriegen
00410 DEC PLEN+1
00420 .1 DEC PLEN
00430 LDA PLEN+1
00440 BPL PLOOP1 Wiederholen wenn ungleich Null
00450 JMP PLOOP0 Weitermachen
00460 ------------------------------
00470 FFILL JSR GETB1 Byte holen
00480 STA HREG abspeichern
00490 PLOOP2 LDY YC in Bildspeicher
00500 LDA HREG kopieren
00510 STA (PPOINT),Y
00520 STA HREG
00530 JSR ADDS naechste Bildposition setzen
00540 LDA PLEN Laenge
00550 BNE .1 runterzaehlen
00560 DEC PLEN+1
00570 .1 DEC PLEN
00580 LDA PLEN+1
00590 BPL PLOOP2 Wiederholen bis Laenge=0
00600 JMP PLOOP0 Hauptschleife
00610 ------------------------------
00620 GETB1 LDA #0 Ein Byte
00630 TAY holen
00640 LDX #$10 Wert steht
00650 JMP GETBYTES im <A> Register
00660 ------------------------------
00670 INITREGI LDA SAVMSC+1 Bildschirmaddresse
00680 STA PPOINT+1 in Pointerregister
00690 LDA #0 X-Zaehler
00700 STA XC Y-Zaehler
00710 STA YC Zeilenzaehler
00720 STA LINEC loeschen
00730 LDA SAVMSC
00740 STA PPOINT
00750 RTS
00760 ------------------------------
00770 ADDS JMP $FFFF Hier wird Sprung zur Addierungsroutine je nach Format
00780 ------------------------------
00790 SETADD ASL Addresse
00800 TAY der
00810 LDA ADDT-2,Y Addierungsroutine
00820 STA ADDS+1 oben bei
00830 LDA ADDT-1,Y ADDS
00840 STA ADDS+2 einsetzen
00850 RTS
00860 *
00870 ADDT .DA KAF1 Addressen der
00880 .DA KAF2 Addierungsroutinen
00890 ------------------------------
00900 GETLEN JSR GETB1 Byte holen
00910 STA PLEN Als LO-Byte speichern
00920 LDA #0 Fillflag
00930 STA FFLAG und HI-Byte
00940 STA PLEN+1 loeschen
00950 LDA PLEN Laenge negativ
00960 BPL SETF Nein
00970 INC FFLAG Flag auf fuellen setzen
00980 AND #$7F Laenge-128
00990 STA PLEN
01000 SETF BNE AJL Ist Laenge=0? Nein
01010 JSR GETB1 16-Bit
01020 STA PLEN+1 Laenge
01030 JSR GETB1 holen
01040 STA PLEN Laenge
01050 AJL BNE .1 erniedriegen
01060 DEC PLEN+1
01070 .1 DEC PLEN
01080 GLOK RTS
01090 ------------------------------
01100 KAF1 LDA PPOINT Pointer+80
01110 CLC (2 Zeilen)
01120 ADC #80
01130 STA PPOINT
01140 LDA PPOINT+1
01150 ADC #0
01160 STA PPOINT+1
01170 INC XC XC=XC+1
01180 LDA XC
01190 CMP #$60 =96
01200 BNE KAF1OK Nein
01210 LDA SAVMSC+1 Bildadresse
01220 STA PPOINT+1 in Pointer
01230 LDA SAVMSC
01240 STA PPOINT
01250 LDA #0 XC loeschen
01260 STA XC
01270 INC LINEC Zeilenzaehler+1
01280 LDA LINEC
01290 CMP #2 =2
01300 BEQ TESTYC Ja
01310 LDA PPOINT Pointer+40
01320 CLC (Eine
01330 ADC #40 Zeile
01340 STA PPOINT versetzen)
01350 LDA PPOINT+1
01360 ADC #0
01370 STA PPOINT+1
01380 BNE KAF1OK bedingunslos
01390 TESTYC LDA #0 LINEC
01400 STA LINEC loeschen
01410 INC YC Naechste
01420 LDA YC Spalte
01430 CMP #40 Spalte 40
01440 BEQ KAF1R erreicht? Ja
01450 KAF1OK RTS zurueck zum Aufruf
01460 KAF1R PLA Rucksprungaddresse
01470 PLA Leschen, da Bild
01480 RTS fertig.
01490 ------------------------------
01500 KAF2 INC YC Naechste
01510 LDA YC Spalte
01520 CMP #40 Spalte 40
01530 BNE KAF2OK erreicht. Nein
01540 INC XC Naechste
01550 LDA XC Zeile
01560 CMP #192 192. erreicht
01570 BEQ KAF1R Ja, Bild Fertig
01580 LDA PPOINT Pointer
01590 CLC +40
01600 ADC #40 Naechste
01610 STA PPOINT Zeile
01620 BCC .1
01630 INC PPOINT+1
01640 .1 LDA #0 Spalte
01650 STA YC loeschen
01660 KAF2OK RTS zurueck
01670 ------------------------------
01680 HREG .HX 00 Platz
01690 YC .HX 00 fuer
01700 XC .HX 00 Hilfs-
01710 PLEN .HX 0000 register
01720 FFLAG .HX 00
01730 LINEC .HX 00
}}}
!!ACTION
{{{