0100 ;FILENAME: GRAPHICS.LIB›0110 .TITLE "GRAPHICS LIBRARY"›0120 .PAGE "GRAPHICS MACRO"›0130 ;›0140 .IF .NOT .DEF ROWCRS›0150 .ERROR "GREQU.M65 missing!"›0160 .ENDIF ›0170 .IF .NOT .DEF CPALOC›0180 .ERROR "SYSEQU.M65 missing!"›0190 .ENDIF ›0200 ;›0210 ;MACRO: GRAPHICS›0220 ;›0230 ;FORM: GRAPHICS N›0240 ;If N is <9, then N is a memory›0250 ;location, else N is a literal.›0260 ;›0270 .MACRO GRAPHICS ›0280 ;›0290 JMP @CONT›0300 @AX1›0310 .BYTE 0›0320 @AX2›0330 .BYTE 0›0340 @CONT›0350 XIO 12,6,0,0,"S:"›0360 .IF %1<9›0370 LDA #%1›0380 .ELSE ›0390 LDA %1›0400 .ENDIF ›0410 STA @AX2›0420 AND #$F0›0430 EOR #$10›0440 ORA #$0C›0450 STA @AX1›0460 OPEN 6,@AX1,@AX2,"S:"›0470 .ENDM ›0480 .PAGE "COLOR, POSITION & PLOT MACROS"›0490 ;›0500 ;MACRO: COLOR›0510 ;›0520 ;FORM: COLOR N›0530 ;If N<16, then N is literal.›0540 ;Else N is a memory location.›0550 ;›0560 .MACRO COLOR ›0570 .IF %1<16›0580 LDA #%1›0590 .ELSE ›0600 LDA %1›0610 .ENDIF ›0620 STA SPARE1›0630 .ENDM ›0640 ;›0650 ;MACRO: POSITION›0660 ;›0670 ;FORM: POSITION X,Y›0680 ;X and Y must be literals, not›0690 ;memory locations›0700 ;›0710 .MACRO POSITION ›0720 LDA # <%1›0730 STA COLCRS›0740 LDA # >%1›0750 STA COLCRS+1›0760 LDA #%2›0770 STA ROWCRS›0780 .ENDM ›0790 ;›0800 ;MACRO: PLOT›0810 ;›0820 ;FORM: PLOT X,Y›0830 ;X and Y must be literals, not›0840 ;memory locations›0850 ;›0860 .MACRO PLOT ›0870 POSITION %1,%2›0880 @CH 6›0890 LDA #CPBINR›0900 STA ICCOM,X›0910 LDA #0›0920 STA ICBLEN,X›0930 STA ICBLEN+1,X›0940 LDA SPARE1›0950 JSR CIO›0960 .ENDM ›0970 .PAGE "DRAWTO & SETCOLOR MACROS"›0980 ;›0990 ;MACRO: DRAWTO›1000 ;›1010 ;FORM: DRAWTO X,Y›1020 ;X and Y must be literals as in›1030 ;POSITION›1040 ;›1050 .MACRO DRAWTO ›1060 POSITION %1,%2›1070 LDA SPARE1›1080 STA ATACHR›1090 @CH 6›1100 LDA #CDRAW›1110 STA ICCOM,X›1120 LDA #CCLOSE›1130 STA ICAUX1,X›1140 LDA #0›1150 STA ICAUX2,X›1160 JSR CIO›1170 .ENDM ›1180 ;›1190 ;MACRO: SETCOLOR›1200 ;›1210 ;FORM: SETCOLOR REG,HUE,LUM›1220 ;Any parameter <16 is considered›1230 ;a memory location›1240 ;›1250 .MACRO SETCOLOR ›1260 .IF %1<16›1270 LDX #%1›1280 .ELSE ›1290 LDX %1›1300 .ENDIF ›1310 .IF %2>16›1320 LDA %2›1330 ASL A›1340 ASL A›1350 ASL A›1360 ASL A›1370 .ELSE ›1380 LDA #%2*16›1390 .ENDIF ›1400 .IF %3<16›1410 LDY #%3›1420 .ELSE ›1430 LDY %3›1440 .ENDIF ›1450 STA COLOR0,X›1460 TYA ›1470 AND #$0E›1480 CLC ›1490 ADC COLOR0,X›1500 STA COLOR0,X›1510 .ENDM ›1520 ;›1530 ;******* END OF GRAPHICS.LIB ***›