.NLIST ;TO USE THESE MACROS, JUST INCLUDE THIS FILE AS THE ;FIRST PART OF YOUR ASSEMBLY. ;THE FOLLOWING MACROS ALLOW YOU TO EASYLY ASSEMBLE THE ;BASIC GT40 SCOPE INSTRUCTUIONS, AND DATA ITEMS. ;REFER TO THE GT40 GRAPHIC DISPLAY MANUAL VOLUME 1 PPGS3-16,3-27,3-28 ;THE FORMATS OF THE MACRO CALLS ARE AS FOLLOWS: ; ;SGM MODE[,INTENT[,K1[,K2[,K3]]]] ; ; SET GRAPHIC MODE IS THE WORK HORSE MACRO, THE PARAMETERS ; HAVE THE FOLLOWING MEANING: ; MODE IS THE GRAPHIC MODE AND IS EITHER (CHAR,SVEC,LVEC,PNT, ; RPNT,GRFX,GRFY) IT MUST BE PRESENT,ALL THE OTHER ; PARAMETERS ARE OPTIONAL. ; INTENT IS THE INTENCITY LEVEL, IT IT IS PRESENT IT MUST ; BE A NUMBER FROM 0 TO 7 INCLUSIVE. ; K1 K2 K3 ARE FROM 0 TO 3 KEYWORDS (NOTE THAT IF INTENT IS ; OMITTED, THE FIRST KEYWORD MUST STILL BE THE THIRD ; PARAMETER). THE ORDER OF THE KEYWORDS MAKES NO DIFFERENCE. ; ONE CAN BE CHOSEN FROM EACH OF THE FOLLOWING 3 SETS. ; LPI NOLPI A LIGHT PEN INTERUPT IS ENABLED, DISABLED. ; BLK NOBLK BLINKING IS ENABLED, DISABLED. ; SOLID LDASH SDASH DDASH SELECT THE TYPE OF LINES DRAWN. ; ;SJMP LAB ; ; THIS A SCOPE CODE BRANCH TO LOCATION LAB. ; ;SNOOP ; ; SCOPE NOOP INSTRUCTION. ; ;LDA [K1[,K2[,K3[,K4[,K5]]]]] ; ; THIS IS LOAD STATUS REGESTER A, THE PARAMETERS ARE ; FROM 0 TO 5 KEYWORDS IN ANY ORDER, EACH CHOOSEN ; FROM ONE OF THE 5 SETS: ; HALT THIS STOPS THE SCOPE. ; HI NOHI INTERRUPT ON SCOPE HALT IS ENABLED, DISABLED. ; LPY NOLPY THE POINT OF LIGHT PEN INTERACTION IS ; INTENSIFIED, NOT INTENSIFIED ; ITX NOITX CHARACTERS ARE (ARE NOT) ITALICISED. ; SYNC HALT SCOPE AND RESART ON 60 HZ PULSE. ; ;LDB NUM ; ; LOAD STATUS REGESTER B WITH THE 6 BIT POSITIVE ; GRAPHPLOT INCREMENT. ; ; THE FOLLOWING MACROS PRODUCE THE DATA WORDS ; IN THE FOLLOWING, THE PARAMETERS ARE ; X6,Y6 SIGNED 6BIT COORDINATES. ; X10,Y10 SIGNED 10 BIT COORDINATES. ; X10A,Y10A POSITIVE 10 BIT COORDINATES. ; HIDE THIS OPTIONAL KEYWORD SPECIFIES THAT THE ITEM IS ; NOT TO BE INTENSIFIED. ; ;SVEC X6,Y6[,HIDE] SHORT VECTOR MODE ;LVEC X10,Y10[,HIDE] LONG VECTOR MODE ;PNT X10A,Y10A[,HIDE] POINT MODE ;RPNT X6,Y6[,HIDE] RELATIVE POINT MODE ;GRFX Y10A GRAPH PLOT X ;GRFY X10A GRAPH PLOT Y ; ; TO GET CHARACTER DATA, USE THE .ASCII COMMAND. ; SHINT=320 SLPINT=324 STO=330 SPC=172000 SSR=172002 SX=172004 SY=172006 ZCHAR=100000 ZSVEC=104000 ZLVEC=110000 ZPNT=114000 ZRPNT=130000 ZGRFX=120000 ZGRFY=124000 ZLPI=140 ZNOLPI=100 ZBLK=30 ZNOBLK=20 ZSOLID=4 ZLDASH=5 ZSDASH=6 ZDDASH=7 ZHALT=2000 ZHI=1400 ZNOHI=1000 ZLPY=200 ZNOLPY=300 ZITX=60 ZNOITX=40 ZSYNC=4 .MACRO SGM MODE,INTENT,K1,K2,K3 ZT=Z'MODE .IF NB, ZT2=INTENT .IIF LT,INTENT,ZT2=0 .IIF GT,INTENT-7,ZT2=7 ZT=ZT++2000 .ENDC .IIF NB,,ZT=ZT+Z'K1 .IIF NB,,ZT=ZT+Z'K2 .IIF NB,,ZT=ZT+Z'K3 .WORD ZT .ENDM .MACRO SJMP LAB .WORD 160000,LAB .ENDM .MACRO SNOOP .WORD 164000 .ENDM .MACRO LDA K1,K2,K3,K4,K5 ZT=170000 .IRP K, .IIF NB,,ZT=ZT+Z'K .ENDM .WORD ZT .ENDM .MACRO LDB INCR .IF GT,INCR .IF LT,INCR-100 .WORD 174100+INCR .MEXIT .IFF .WORD 174177 .ENDC .IFF .WORD 174100 .ENDC .ERROR INCR;INCREMENT OUT OF RANGE .ENDM .MACRO SVEC X,Y,H CHK6 X,ZT2 CHK6 Y,ZT3 ZT=40000 .IIF IDN,,,ZT=0 .WORD ZT++ZT3 .ENDM .MACRO LVEC X,Y,H CHK10 X,ZT2 ZT=40000 .IIF IDN,,,ZT=0 .WORD ZT+ZT2 CHK10 Y,ZT2 .WORD ZT2 .ENDM .MACRO RPNT X,Y,H SVEC X,Y,H .ENDM .MACRO PNT X,Y,H CHK10A X,ZT2 ZT=40000 .IIF IDN,,,ZT=0 .WORD ZT+ZT2 CHK10A Y,ZT2 .WORD ZT2 .ENDM .MACRO GRFX X CHK10 X,ZT2 .WORD ZT2 .ENDM .MACRO GRFY Y GRFX Y .ENDM .MACRO CHK6 X,Z .IF LT,X Z=100 ZT=-1* .IFF Z=0 ZT=X .ENDC .IF GE,ZT-100 .ERROR X; NUMBER OUT OF RANGE ZT=77 .ENDC Z=Z+ZT .ENDM .MACRO CHK10 X,Z ZT=X Z=0 .IF LT,X Z=20000 ZT=-1* .ENDC .IF GE,ZT-2000 .ERROR X; NUMBER OUT OF RANGE ZT=17777 .ENDC Z=Z+ZT .ENDM .MACRO CHK10A X,Z .IF LT,X .ERROR X; NUMBER < ZERO Z=0 .MEXIT .ENDC CHK10 X,Z .ENDM ;THE FOLLOWING MACROS IMPLEMENT A SET OF EXTENDED SCOPE INSTRUCTIONS ;IF THEY ARE USED, THEN THE PROGRAM MUST BE LOADED WITH GTROS ;(GT/40 TRIVIAL OPERATING SYSTEM). ;SJMPR THIS IS A POSITION INDEPENDENT SCOPE JUMP, THE FINAL R ; STANDS FOR RELATIVE, AND IS AT THE END OF EACH POSSITION ; INDEPENDENT MACRO. ;SJSR THIS ALLOWS ONE SCOPE PROGRAM TO CALL ANOTHER AS A SUBROUTINE ;SJSRR POSSITION INDEPENDENT SJSR ;SRTS RETURN FROM A SCOPE SUBROUTINE ;SINT INTERUPT THE 11/05 AND START EXECUTION AT THE SPECIFIED ; ADDRESS ;SINTR POSSITION INDEPENDENT SINT ;SINTH SINT, AND HALT SCOPE PROGRAM ;SINTHR POSSITION INDEPENDENT SINTH ; .MACRO SJMPR LAB .WORD 173410,-2+LAB-. .ENDM .MACRO SJSR LAB .WORD 173401,LAB .ENDM .MACRO SJSRR LAB .WORD 173411,-2+LAB-. .ENDM .MACRO SRTS .WORD 173400 .ENDM .MACRO SINT LAB .WORD 173402,LAB .ENDM .MACRO SINTR LAB .WORD 173412,-2+LAB-. .ENDM .MACRO SINTH LAB .WORD 173403,LAB .ENDM .MACRO SINTHR LAB .WORD 173413,-2+LAB-. .ENDM ;THE FOLLOWING MACROS ALLOW SIMPLIFYED COMUNICATION BETWEEN THE ;11/05 AND THE GT40, THROUGH THE USE OF GTROS. ;BELL THIS RINGS THE CONSOLE BELL (GTROS NEED NOT BE ; LOADED) ;SEXEC THIS STARTS UP THE GT40 AT THE SPECIFIED ADDRESS ;SREXEC THIS RESTARTS THE SCOPE PROGRAM AT THE POINT IT STOPED AT ; ON A SINTH OR SINTHR ; .MACRO BELL MOV %0,SSR .ENDM .MACRO SEXEC ADDR MOV ADDR,-(%6) JSR %7,@#334 TST (%6)+ .ENDM .MACRO SREXEC JSR %7,@#336 .ENDM .LIST