At line 3 added one line |
!!Assembler (BiboAssembler) |
At line 5 added 228 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 |
}}} |
|
{{{ |
|
00010 .LI OFF |
00020 .OR $3000 |
00030 * |
00040 * |
00050 * |
00060 * |
00070 * |
00080 * |
00090 * |
00100 S JSR OPENS Graphicbildschirm Oeffnen |
00110 JSR KOALA Bild einladen |
00120 JSR GETKEY Auf Taste Warten |
00130 * |
00140 LDA $E401 Editor |
00150 PHA oeffnen |
00160 LDA $E400 und zum |
00170 PHA Assembler |
00180 RTS zurueckkehren |
00190 ------------------------------ |
00200 OPENS LDA #$80 |
00210 STA $6A Graphic |
00220 LDA #$F 15 ohne |
00230 STA $2B Text- |
00240 LDA #0 fenster |
00250 STA $2A oeffnen |
00260 LDA $E411 (Source |
00270 PHA code |
00280 LDA $E410 sichern) |
00290 PHA |
00300 RTS |
00310 ------------------------------ |
00320 GETKEY LDA $E425 Auf Taste |
00330 PHA Warten |
00340 LDA $E424 |
00350 PHA |
00360 RTS |
00370 ------------------------------ |
00380 * |
00390 * Name des zu ladenden Bildes |
00400 * |
00410 ------------------------------ |
00420 FN .DA "D:*.PIC",#$9B |
00430 ------------------------------ |
00440 * |
00450 .IN "D:IOPACK.INC" |
00460 .IN "D:KOALA.INC" |
|
}}} |
!!ACTION |
{{{ |