!!!Load Koala Pictures !!Assembler (BiboAssembler) {{{ 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 {{{ PROC KPicLoad=*()[$A2$10$A9$07$9D$42$03$A0$01$84$D5$A9$00$9D$48$03$9D$49$03 $20$56$E4$A4$D5$C0$08$D0$02$85$D4$C0$0E$30$07$C0$13$10$03$99 $B6$02$C8$C0$1C$30$DB$10$08$50$2E$42$2E$20$27$38$36$A9$00$85 $DB$85$DC$A5$58$85$D7$85$D9$A5$59$85$D8$85$DA$A9$00$85$D6$9D $48$03$9D$49$03$20$56$E4$10$01$60$A8$29$80$85$DE$98$29$7F$D0 $18$A9$00$9D$48$03$9D$49$03$20$56$E4$85$D6$A9$00$9D$48$03$9D $49$03$20$56$E4$85$D5$A9$00$9D$48$03$9D$49$03$20$56$E4$85$DD $A0$00$A5$DD$91$D7$38$A5$D5$E9$01$85$D5$A5$D6$E9$00$85$D6$90 $AA$A5$D4$C9$02$D0$0A$E6$D7$D0$49$E6$D8$D0$45$90$DB$E6$DC$18 $A5$D7$69$50$85$D7$90$02$E6$D8$A9$60$C5$DC$D0$30$A9$00$85$DC $A5$DB$D0$13$A9$01$85$DB$18$A5$D9$69$28$85$D7$A5$DA$69$00$85 $D8$90$15$A9$00$85$DB$18$A5$D9$69$01$85$D7$85$D9$A5$DA$69$00 $85$D8$85$DA$A5$D5$D0$07$A5$D6$D0$03$18$90$A0$A5$DE$10$0D$A9 $00$9D$48$03$9D$49$03$20$56$E4$85$DD$18$90$9C] MODULE ; FOR USER }}}