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 ***
Back to previous page