from BiboAssembler Toolsdisk 1
00010 PLOT LDY OLDY Zeilen- 00020 LDA TABLO,Y addresse 00030 STA PNT als 00040 LDA TABHI,Y Pointer 00050 STA PNT+1 setzen 00060 LDA OLDX 00070 PHA X MOD 8 00080 AND #7 nach <X> 00090 TAX 00100 LDA COLOR Farbe 00110 AND #1 MOD 2 00120 TAY nach <Y> 00130 LDA COLFILL,Y Farbyte holen 00140 AND EMASK,X unnoetige Bits 00150 STA HOLD ausmaskieren 00160 PLA X/8= 00170 LSR Byteoffset 00180 LSR 00190 LSR 00200 TAY in Zeile <Y> 00210 LDA (PNT),Y Graphicbyte Holen 00220 AND CMASK,X alten Wert ausmaskieren 00230 ORA HOLD und durch neuen ersetzen 00240 STA (PNT),Y speichern 00250 RTS 00260 ; 00270 ------------------------------ 00280 * * 00290 * Farbwerte und Loeschmasken * 00300 * * 00310 ------------------------------ 00320 COLFILL .HX 00FF 00330 EMASK .HX 8040201008040201 00340 CMASK .HX 7FBFDFEFF7FBFDFE
00010 PLOT LDY OLDY Zeilen- 00020 LDA TABLO,Y addresse 00030 STA PNT als 00040 LDA TABHI,Y Pointer 00050 STA PNT+1 setzen 00060 LDA OLDX 00070 PHA X MOD 4 00080 AND #3 nach <X> 00090 TAX 00100 LDA COLOR Farbe 00110 AND #3 MOD 4 00120 TAY nach <Y> 00130 LDA COLFILL,Y Farbyte holen 00140 AND EMASK,X unnoetige Bits 00150 STA HOLD ausmaskieren 00160 PLA X/4= 00170 LSR Byteoffset 00180 LSR 00190 TAY in Zeile <Y> 00200 LDA (PNT),Y Graphicbyte Holen 00210 AND CMASK,X alten Wert ausmaskieren 00220 ORA HOLD und durch neuen ersetzen 00230 STA (PNT),Y speichern 00240 RTS 00250 ; 00260 ------------------------------ 00270 * * 00280 * Farbwerte und Loeschmasken * 00290 * * 00300 ------------------------------ 00310 COLFILL .HX 0055AAFF 00320 EMASK .HX C0300C03 00330 CMASK .HX 3FCFF3FC
00010 PLOT LDY OLDY Zeilen- 00020 LDA TABLO,Y addresse 00030 STA PNT als 00040 LDA TABHI,Y Pointer 00050 STA PNT+1 setzen 00060 LDA OLDX 00070 PHA X MOD 2 00080 AND #1 nach <X> 00090 TAX 00100 LDA COLOR Farbe 00110 AND #$F MOD 16 00120 TAY nach <Y> 00130 LDA COLFILL,Y Farbyte holen 00140 AND EMASK,X unnoetige Bits 00150 STA HOLD ausmaskieren 00160 PLA X/2= 00170 LSR Byteoffset 00180 TAY in Zeile <Y> 00190 LDA (PNT),Y Graphicbyte Holen 00200 AND CMASK,X alten Wert ausmaskieren 00210 ORA HOLD und durch neuen ersetzen 00220 STA (PNT),Y speichern 00230 RTS 00240 ; 00250 ------------------------------ 00260 * * 00270 * Farbwerte und Loeschmasken * 00280 * * 00290 ------------------------------ 00300 COLFILL .HX 00112233445566778899AABBCCDDEEFF 00310 EMASK .HX F00F 00320 CMASK .HX 0FF0
00010 .LI OFF 00020 ; 00030 OLDX .EQ $D5 00040 OLDY .EQ $D4 00050 TOX .EQ $DB 00060 TOY .EQ $DA 00070 ADX .EQ $E0 00080 ADX2 .EQ $E1 00090 ADY .EQ $E2 00100 ADY2 .EQ $E3 00110 DX .EQ $E4 00120 DY .EQ $E5 00130 SL .EQ $E6 00140 COUNT .EQ $E8 00150 COLOR .EQ $E9 00160 HOLD .EQ $EA 00170 * 00180 PNT .EQ $D0 00190 ; 00200 SETTABLE LDA $58 Tabelle 00210 STA $00 der 00220 LDA $59 Anfangs- 00230 STA $01 addresse 00240 LDY #0 der 00250 SET LDA $0 Bild- 00260 STA TABLO,Y schirm- 00270 LDA $1 zeilen 00280 STA TABHI,Y erzeugen 00290 CLC (192 Zeilen) 00300 LDA $0 00310 ADC #40 UNBEDINGT 00320 STA $0 NACH DEM 00330 BCC SS1 GRAPHICAUFRUF 00340 INC $1 UND VOR DER 00350 SS1 INY BENUTZUNG 00360 CPY #192 DER GRAPHICROUTINEN 00370 BNE SET AUFRUFEN. 00380 RTS 00390 ; 00400 ; 00410 DRAWLINE LDX #0 Richtungen 00420 STX ADX2 vorbezetzen 00430 STX ADY 00440 STX SL+1 00450 INX 00460 STX COUNT 00470 STX ADY2 00480 STX ADX 00490 ; 00500 LDA TOX Punktabstand 00510 SEC berechnen 00520 SBC OLDX 00530 BCS DSKIP1 00540 DEC ADX gegebenenfalls 00550 DEC ADX Richtung 00560 LDA OLDX aendern 00570 SEC 00580 SBC TOX 00590 DSKIP1 STA DX Delta X 00600 * 00610 LDA TOY Das gleiche 00620 SEC fuer die 00630 SBC OLDY Y-Koor- 00640 BCS DSKIP2 dinate 00650 DEC ADY2 00660 DEC ADY2 00670 LDA OLDY 00680 SEC 00690 SBC TOY 00700 DSKIP2 STA DY 00710 LDA DX Ist 00720 CMP DY dy>dx, 00730 BCS DSKIP3 00740 LDX DX dann 00750 LDA DY dx und dy 00760 STA DX vertauschen 00770 STA DX 00780 TXA 00790 STA DY 00800 LDA ADX auch Richtungen 00810 STA ADX2 fuer X und Y 00820 LDA ADY2 Koordinaten 00830 STA ADY vertauschen 00840 LDA #0 00850 STA ADX 00860 STA ADY2 00870 DSKIP3 LDA DX DX/2 00880 LSR fuer Fehler- 00890 STA SL groesse setzen 00900 LDA DX mehr als 00910 BEQ RETURN 1 Punkt setzen? 00920 JSR PLOT Punkt setzen 00930 ; 00940 MAIN LDA OLDX Richtungen 00950 CLC zu Koor- 00960 ADC ADX dinaten 00970 STA OLDX rechnen 00980 LDA OLDY 00990 CLC 01000 ADC ADY 01010 STA OLDY 01020 INC COUNT 01030 * 01040 LDA SL Fehler- 01050 CLC groesse 01060 ADC DY SL+DY 01070 STA SL 01080 BCC .1 01090 INC SL+1 01100 * 01110 .1 LDA SL+1 SL>DX? 01120 * 01130 BNE SUB 01140 LDA DX 01150 CMP SL 01160 BCS DPLOT 01170 * 01180 SUB LDA SL SL=SL-DX 01190 SEC 01200 SBC DX 01210 STA SL 01220 BCS .1 01230 DEC SL+1 01240 * 01250 .1 LDA OLDX Schritt in 01260 CLC 2. Richtung 01270 ADC ADX2 machen 01280 STA OLDX 01290 LDA OLDY 01300 CLC 01310 ADC ADY2 01320 STA OLDY 01330 * 01340 DPLOT LDA DX Letzter Punkt 01350 CMP COUNT erreicht 01360 BCC RETURN Ja! 01370 JSR PLOT Sonst Punkt setzen 01380 JMP MAIN Wiederholen 01390 ; 01400 RETURN LDA TOY OLD-Koor. 01410 STA OLDY =TO-Koor. 01420 LDA TOX 01430 STA OLDX 01440 JMP PLOT Punkt setzen. 01450 * 01460 OPENS STA $2B Graphicstufe setzen 01470 LDA #0 Ohne Textfenster 01480 STA $2A 01490 LDA #$70 Source Code 01500 STA $6A sichern 01510 JSR OPEN OS-OPEN 01520 JMP SETTABLE Tabelle setzen 01530 * 01540 OPEN LDA $E411 ROM-Jump 01550 PHA ueber 01560 LDA $E410 Stack 01570 PHA 01580 RTS 01590 ------------------------------ 01600 TABLO .BL 192 Platz fuer 01610 TABHI .BL 192 Tabellen
00010 .LI OFF 00020 .OR $4000 00030 * 00040 * 00050 * 00060 * 00070 * 00080 * 00090 START LDA #$90 Source Code 00100 STA $6A sichern 00110 * 00120 LDA #$0 Graphic 9 00130 STA $2A aufrufen 00140 LDA #$9 00150 STA $2B 00160 JSR OPEN 00170 * 00180 LDA #79 Werte und 00190 STA X Cursor 00200 STA $56 vorbereiten 00210 STA $56 00220 STA $5C 00230 * 00240 LOOP LDA X Punkt 00250 STA $55 (X,0) in 00260 AND #$F Farbe 00270 STA COL X MOD 16 00280 LDA #0 setzen 00290 STA $54 00300 LDX #6 00310 JSR PLOT 00320 DEC $55 00330 LDA #79 Verbindungs- 00340 SEC linie nach 00350 SBC X (79-x,191) 00360 STA $5B ziehen 00370 LDA #191 00380 STA $5A 00390 LDX #$A 00400 JSR DRAW 00410 DEC X X=X+1 00420 LDA X Bis X negativ 00430 BPL LOOP 00440 ------------------------------ 00450 WAIT JMP WAIT endlos 00460 ------------------------------ 00470 X .HX 00 00480 Y .HX 00 00490 COL .HX 00 00500 ------------------------------ 00510 ------------------------------ 00520 OPEN LDA $E411 Screen 00530 PHA OPEN 00540 LDA $E410 ueber 00550 PHA Stack 00560 RTS 00570 ------------------------------ 00580 DRAW LDA #17 Drawkommando 00590 STA $22 setzen 00600 PLOT LDA $E411,X Screen PUT 00610 PHA ueber 00620 LDA $E410,X Stack 00630 PHA Jump 00640 LDA COL 00650 RTS
00010 .LI OFF 00020 .OR $4000 00030 * 00040 S LDA #$90 HiMem 00050 STA $6A runtersetzen 00060 * 00070 LDA #$0 Graphic 9 00080 STA $2A aufrufen 00090 LDA #$9 00100 STA $2B 00110 JSR OPEN 00120 * 00130 LDA #0 Cursor- 00140 STA X sitionen 00150 STA $56 setzen 00160 STA $5C 00170 * 00180 LOOP LDA X Von-Ko- 00190 STA $55 ordinate 00200 EOR #$F und Farbe 00210 STA COL setzen 00220 LDA #0 00230 STA $54 00240 * 00250 LDX #6 Punkt 00260 JSR PLOT setzen 00270 * 00280 DEC $55 00290 * 00300 LDA #79 Linie 00310 STA $5B nach 00320 LDA #191 79,191 00330 STA $5A ziehen 00340 LDX #$A 00350 JSR DRAW 00360 * 00370 LDA #0 Punkt 00380 STA $54 0,0 00390 STA $55 setzen 00400 LDX #6 00410 JSR PLOT 00420 DEC $55 00430 * 00440 LDA #79 und mit 00450 SEC Punkt 00460 SBC X 79-X,191 00470 STA $5B durch 00480 LDA #191 Linie 00490 STA $5A verbinden 00500 LDX #$A 00510 JSR DRAW 00520 * 00530 INC X X=X+1 00540 LDA X Wiederholen 00550 CMP #80 bis X=80 00560 BNE LOOP 00570 ------------------------------ 00580 WAIT JMP WAIT Endlos 00590 ------------------------------ 00600 X .HX 00 00610 Y .HX 00 00620 COL .HX 00 00630 ------------------------------ 00640 ------------------------------ 00650 OPEN LDA $E411 Screen 00660 PHA OPEN 00670 LDA $E410 ueber 00680 PHA Stack 00690 RTS Jump 00700 ------------------------------ 00710 DRAW LDA #17 Draw-Kommando 00720 STA $22 setzen 00730 PLOT LDA $E411,X Point-PUT 00740 PHA Vector 00750 LDA $E410,X auf Stack 00760 PHA legen 00770 LDA COL Farbe nach <A> 00780 RTS Jump
00010 XO .EQ $D0 00020 YO .EQ $D2 00030 XT .EQ $D3 00040 YT .EQ $D5 00050 AX .EQ $D6 00060 AX2 .EQ $D8 00070 AY .EQ $DA 00080 AY2 .EQ $DB 00090 DX .EQ $DC 00100 DY .EQ $DE 00110 SL .EQ $DF 00120 C .EQ $E1 00130 * 00140 OFF1 .EQ $E3 00150 OFF2 .EQ $E4 00160 BIT1 .EQ $E5 00170 BIT2 .EQ $E6 00180 * 00190 PNT .EQ $E7 00200 * 00210 BX1 .EQ $E9 00220 BY1 .EQ $EB 00230 BX2 .EQ $EC 00240 BY2 .EQ $EE 00250 * 00260 SAVMSC .EQ $58 00270 * 00280 * 00290 * 00300 * 00310 * 00320 * 00330 * 00340 OPENGR8 LDA #0 Graphic 00350 STA $2A 8 Bild- 00360 LDA #8 schirm 00370 STA $2B oeffen 00380 LDA #$70 00390 STA $6A 00400 JSR SOPEN 00410 * 00420 LDA SAVMSC 00430 STA PNT 00440 LDA SAVMSC+1 00450 STA PNT+1 00460 LDY #0 00470 * 00480 .1 LDA PNT Zeilen- 00490 STA LOTAB,Y addressen 00500 LDA PNT+1 tabelle 00510 STA HITAB,Y erzeugen 00520 CLC 00530 LDA PNT 00540 ADC #40 00550 STA PNT 00560 BCC .2 00570 INC PNT+1 00580 .2 INY 00590 CPY #192 00600 BCC .1 00610 * 00620 LDX #0 Tabelle 00630 .3 TXA mit 00640 LSR Offset/8 00650 LSR 00660 LSR erzeugen 00670 STA RSH8,X 00680 INX 00690 BNE .3 00700 RTS 00710 ------------------------------ 00720 SOPEN LDA $E411 Rom 00730 PHA jump 00740 LDA $E410 fuer 00750 PHA OPEN 00760 RTS 00770 ------------------------------ 00780 PLOT LDX YO Zeilenaddresse 00790 LDA LOTAB,X nach 00800 STA PNT pointer 00810 LDA HITAB,X 00820 STA PNT+1 00830 * 00840 LDY XO+1 Byte- 00850 LDX XO offset 00860 LDA HI,Y aus X- 00870 ORA RSH8,X Koordinate 00880 TAY berechnen 00890 * 00900 TXA Bit innerhalb 00910 AND #7 Byte 00920 * 00930 MO ORA #0 +0 oder +8 je nach Modus 00940 TAX 00950 LDA (PNT),Y Byte laden 00960 CM ORA MASK,X Manipulieren 00970 STA (PNT),Y Speichern 00980 RTS 00990 * 01000 MASK .HX 80402010080402017FBFDFEFF7FBFDFE 01010 HI .HX 0020 01020 * 01030 CMD .HX 1D3D5D Opcodes fuer ORA, AND, EOR 01040 OFF .HX 000800 Maskenoffset 01050 ------------------------------ 01060 SETMODE LDA CMD,X Opcode 01070 STA CM setzen 01080 STA CM1 01090 AND #$F3 auf indiziert Y-Opcode umrechnen 01100 STA CM2 01110 LDA OFF,X Maskenoffset 01120 STA MO+1 setzen 01130 STA MO1+1 01140 RTS 01150 ------------------------------ 01160 HLINE LDX XO+1 Byte und 01170 LDA HI,X Bit Pos- 01180 LDX XO itionen 01190 ORA RSH8,X der Start 01200 STA OFF1 X-Koor- 01210 TXA dinate 01220 AND #7 berechnen 01230 STA BIT1 01240 * 01250 LDX XT+1 Das selbe 01260 STX XO+1 mit der 01270 LDA HI,X Ziel 01280 LDX XT X-Koor- 01290 STX XO dinate 01300 ORA RSH8,X und 01310 STA OFF2 Start=Ziel 01320 TXA Koordinate 01330 AND #7 01340 STA BIT2 01350 * 01360 LDA OFF1 Subtraktion 01370 SEC der Bytepositionen 01380 SBC OFF2 Wenn Ergebnis 01390 STA DX >=0 dann vertauschen 01400 BCS EXOFF 01410 * 01420 HOTHER LDA OFF2 Absulutwert 01430 SEC der Bytepositionen 01440 SBC OFF1 01450 STA DX 01460 JMP HSETRD weiter 01470 * 01480 EXOFF LDX OFF2 Byte und 01490 LDA OFF1 Bit Posi- 01500 STA OFF2 tionen 01510 STX OFF1 vertau- 01520 LDX BIT1 schen 01530 LDA BIT2 01540 STA BIT1 01550 STX BIT2 01560 * 01570 HSETRD LDX YO Addresse 01580 LDA LOTAB,X des Zei- 01590 STA PNT lenanfangs 01600 LDA HITAB,X in Pointer 01610 STA PNT+1 Register 01620 * 01630 LDA DX Start und Ziel Koordinate 01640 BNE HLINE2 im selben Byte? Nein 01650 * 01660 LDX BIT1 Balkenwert 01670 LDY BIT2 berechnen 01680 LDA HMASK1,Y 01690 AND HMASK2,X 01700 STA SETBY+1 und ein- 01710 LDY OFF1 setzen 01720 JMP SETBY 01730 * 01740 HLINE2 CMP #2 Start und Ziel Koordinate in 01750 BCC SETBORD 2 nebeneinanderliegenden Byte? Ja 01760 * 01770 LDY OFF1 Bytes zwischen 01780 LDA #$FF OFF1+1 und 01790 STA SETBY+1 OFF2-1 01800 INY mit #$FF 01810 HLL1 JSR SETBY fuellen 01820 INY 01830 CPY OFF2 01840 BCC HLL1 01850 * 01860 SETBORD LDY OFF1 Werte 01870 LDX BIT1 fuer 01880 LDA HMASK1,X Randbytes 01890 STA SETBY+1 einsetzen 01900 JSR SETBY 01910 LDY OFF2 01920 LDX BIT2 01930 LDA HMASK2,X 01940 STA SETBY+1 01950 * 01960 SETBY LDA #$FF 01970 CM2 ORA (PNT),Y 01980 STA (PNT),Y 01990 RTS 02000 * 02010 HMASK1 .HX FF7F3F1F0F070301 02020 HMASK2 .HX 80C0E0F0F8FCFEFF 02030 ------------------------------ 02040 VLINE LDX XO+1 Byteposition 02050 LDA HI,X bestimmen 02060 LDX XO 02070 ORA RSH8,X 02080 TAY 02090 * 02100 LDA YO Anzahl 02110 SEC der 02120 SBC YT Zeilen 02130 BCC OTHER bestimmen 02140 LDX YT <X> haelt 02150 STA DY die kleinere 02160 JMP VSETRD der beiden 02170 * Y-Koordinaten 02180 OTHER LDA YT 02190 SEC 02200 SBC YO 02210 STA DY 02220 LDX YO 02230 * 02240 VSETRD INC DY 02250 LDA LOTAB,X Zeilenaddresse 02260 STA PNT holen 02270 LDA HITAB,X 02280 STA PNT+1 02290 LDA XO Bitposition 02300 AND #7 bestimmen 02310 MO1 ORA #0 + Modusoffset 02320 TAX 02330 VLL LDA (PNT),Y Byte manipulieren 02340 CM1 ORA MASK,X 02350 STA (PNT),Y 02360 CLC Pointer 02370 LDA PNT +40 02380 ADC #40 Fuer 02390 STA PNT naechste 02400 BCC VLSK Bildzeile 02410 INC PNT+1 02420 VLSK DEC DY Wiederholen 02430 BNE VLL 02440 LDA YT Koordinaten- 02450 STA YO anpassung 02460 RTS 02470 * 02480 DRAWLINE LDX #0 Erklaerung 02490 STX C siehe 02500 STX C+1 im 02510 STX AX2 DRAW.INC 02520 STX AX2+1 File 02530 STX AY 02540 STX SL+1 02550 STX AX+1 02560 INX 02570 STX AX 02580 STX AY2 02590 LDA XO 02600 EOR XT 02610 BNE TST2 02620 EOR XO+1 02630 EOR XT+1 02640 BNE TST2 02650 JMP VLINE 02660 * 02670 TST2 LDA YO 02680 EOR YT 02690 BNE NORMDRAW 02700 JMP HLINE 02710 * 02720 NORMDRAW JSR PLOT 02730 * 02740 SEC 02750 LDA XT 02760 SBC XO 02770 STA DX 02780 LDA XT+1 02790 SBC XO+1 02800 BPL D1OK 02810 * 02820 LDA #$FF 02830 STA AX 02840 STA AX+1 02850 SEC 02860 LDA XO 02870 SBC XT 02880 STA DX 02890 LDA XO+1 02900 SBC XT+1 02910 * 02920 D1OK STA DX+1 02930 SEC 02940 LDA YT 02950 SBC YO 02960 BCS D2OK 02970 * 02980 LDA #$FF 02990 STA AY2 03000 SEC 03010 LDA YO 03020 SBC YT 03030 * 03040 D2OK STA DY 03050 * 03060 LDA DX+1 03070 BNE MAIN1 03080 LDA DY 03090 CMP DX 03100 BEQ SWITCH 03110 BCC MAIN1 03120 * 03130 SWITCH LDA DX 03140 PHA 03150 LDA DY 03160 STA DX 03170 PLA 03180 STA DY 03190 LDA AX 03200 STA AX2 03210 LDA AX+1 03220 STA AX2+1 03230 LDA AY2 03240 STA AY 03250 LDA #0 03260 STA AX 03270 STA AX+1 03280 STA AY2 03290 * 03300 MAIN1 LDA DX+1 03310 LSR 03320 LDA DX 03330 ROR 03340 STA SL 03350 LDA DX 03360 ORA DX+1 03370 BNE DRAWM 03380 JMP PLOT 03390 * 03400 DRAWM LDA XO 03410 CLC 03420 ADC AX 03430 STA XO 03440 LDA XO+1 03450 ADC AX+1 03460 STA XO+1 03470 CLC 03480 LDA YO 03490 ADC AY 03500 STA YO 03510 INC C 03520 BNE DS1 03530 INC C+1 03540 * 03550 DS1 LDA SL 03560 CLC 03570 ADC DY 03580 STA SL 03590 BCC DS2 03600 INC SL+1 03610 * 03620 DS2 LDA DX+1 03630 CMP SL+1 03640 BEQ TST 03650 BCS OUTP 03660 BCC ADDJ 03670 TST LDA DX 03680 CMP SL 03690 BEQ ADDJ 03700 BCS OUTP 03710 * 03720 ADDJ CLC 03730 LDA XO 03740 ADC AX2 03750 STA XO 03760 LDA XO+1 03770 ADC AX2+1 03780 STA XO+1 03790 * 03800 LDA YO 03810 CLC 03820 ADC AY2 03830 STA YO 03840 * 03850 SEC 03860 LDA SL 03870 SBC DX 03880 STA SL 03890 LDA SL+1 03900 SBC DX+1 03910 STA SL+1 03920 * 03930 OUTP LDA DX+1 03940 CMP C+1 03950 BNE OUTP1 03960 LDA DX 03970 CMP C 03980 BNE OUTP1 03990 JMP PLOT 04000 * 04010 OUTP1 JSR PLOT 04020 JMP DRAWM 04030 ------------------------------ 04040 LOTAB .BL 192 04050 HITAB .BL 192 04060 RSH8 .BL 256 04070 ------------------------------ 04080 * 04090 BOX LDA BX1 04100 STA XO Zeichnet 04110 LDA BX1+1 einen 04120 STA XO+1 Rahmen 04130 LDA BY1 mit 04140 STA YO den 04150 STA YT beiden 04160 LDA BX2 gegen- 04170 STA XT ueber- 04180 LDA BX2+1 liegen- 04190 STA XT+1 den Eck- 04200 JSR DRAWLINE Punktko- 04210 LDA BY2 ordi- 04220 STA YT naten 04230 JSR DRAWLINE aus 04240 LDA BX1 BX1,BY1 04250 STA XT und 04260 LDA BX1+1 BX2,BY2 04270 STA XT+1 04280 JSR DRAWLINE 04290 LDA BY1 04300 STA YT 04310 JMP DRAWLINE
00010 .LI OFF 00020 .OR $4000 00030 * 00040 * 00050 * 00060 * 00070 * 00080 * 00090 * 00100 * 00110 ------------------------------ 00120 .IN "D:GR8PACK.INC" 00130 ------------------------------ 00140 * 00150 DEMO JSR OPENGR8 00160 LDX #2 00170 JSR SETMODE 00180 LDA #0 00190 STA WERT 00200 * 00210 LL1 LDA #191 00220 SEC 00230 SBC WERT 00240 STA WERT2 00250 STA YO 00260 LDA #0 00270 STA $2C6 00280 STA XO 00290 STA XO+1 00300 LDA #319 00310 STA XT 00320 LDA /319 00330 STA XT+1 00340 LDA WERT 00350 STA YT 00360 JSR DRAWLINE 00370 LDA WERT 00380 STA YO 00390 LDA #0 00400 STA XO 00410 STA XO+1 00420 LDA WERT2 00430 STA YT 00440 JSR DRAWLINE 00450 LDA WERT 00460 CLC 00470 ADC #7 00480 CMP #192 00490 BCC .1 00500 SEC 00510 SBC #192 00520 .1 STA WERT 00530 LDA #$FF 00540 CMP 764 00550 BEQ LL1 00560 STA 764 00570 JSR OPENGR8 00580 * 00590 DM2 LDA WERT 00600 STA BX1 00610 STA BY1 00620 LDA #0 00630 STA BX1+1 00640 LDA #191 00650 SEC 00660 SBC WERT 00670 STA BY2 00680 LDA #319 00690 LDX /319 00700 SEC 00710 SBC WERT 00720 STA BX2 00730 BCS .1 00740 DEX 00750 .1 STX BX2+1 00760 JSR BOX 00770 LDA WERT 00780 CLC 00790 ADC #115 00800 CMP #192 00810 BCC .2 00820 SEC 00830 SBC #192 00840 .2 STA WERT 00850 LDA #$FF 00860 CMP 764 00870 BEQ DM2 00880 STA 764 00890 JMP DEMO 00900 * 00910 WERT .HX 00 00920 WERT2 .HX 00