mirror of
https://github.com/PDP-10/its.git
synced 2026-03-02 01:50:24 +00:00
264 lines
5.3 KiB
Plaintext
Executable File
264 lines
5.3 KiB
Plaintext
Executable File
.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,<INTENT>
|
||
ZT2=INTENT
|
||
.IIF LT,INTENT,ZT2=0
|
||
.IIF GT,INTENT-7,ZT2=7
|
||
ZT=ZT+<ZT2*200>+2000
|
||
.ENDC
|
||
.IIF NB,<K1>,ZT=ZT+Z'K1
|
||
.IIF NB,<K2>,ZT=ZT+Z'K2
|
||
.IIF NB,<K3>,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,<K1,K2,K3,K4,K5>
|
||
.IIF NB,<K>,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,<H>,<HIDE>,ZT=0
|
||
.WORD ZT+<ZT2*200>+ZT3
|
||
.ENDM
|
||
.MACRO LVEC X,Y,H
|
||
CHK10 X,ZT2
|
||
ZT=40000
|
||
.IIF IDN,<H>,<HIDE>,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,<H>,<HIDE>,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*<X>
|
||
.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*<X>
|
||
.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
|
||
|