mirror of
https://github.com/PDP-10/its.git
synced 2026-02-28 09:27:41 +00:00
1562 lines
26 KiB
Plaintext
1562 lines
26 KiB
Plaintext
;<DRAW>COM.FAI.132, 15-NOV-75 18:03:32, EDIT BY HELLIWELL
|
||
VERSION(COM,11)
|
||
|
||
GLOBAL DFLT0,DFLTM
|
||
|
||
STRT: MOVE P,[IOWD PDLEN,PDL]
|
||
RESET
|
||
III,< MOVE T,[14,,1]
|
||
SETUUO T, ;Request to run on CPU 0 only
|
||
>;III
|
||
DEC,< PUSHJ P,DECGO
|
||
VB10,< SETZ
|
||
SETUWP ;SET THE HIGH SEG. WRITABLE
|
||
JFCL
|
||
>;VB10
|
||
>;DEC
|
||
SETZM ZLOWBEGIN
|
||
MOVE T,[XWD ZLOWBEGIN,ZLOWBEGIN+1]
|
||
BLT T,ZLOWEND ;SEE THE CODE WE SAVE!
|
||
DEC,< PUSHJ P,CLTIME > ;INITIALIZE TIME CELLS
|
||
LAY,< JSR LINIT ;INIT LAYOUT STUFF>
|
||
STRTL: SETZM ZEROBEGIN
|
||
MOVE T,[ZEROBEGIN,,ZEROBEGIN+1]
|
||
BLT T,ZEROEND
|
||
MOVE P,[IOWD PDLEN,PDL]
|
||
MOVE T,[XWD -MPDLEN,MACPDL-1]
|
||
MOVEM T,MACPNT
|
||
MPC,< MOVEI T,FSTBOD
|
||
MOVEM T,BODPNT ;INITIALIZE STANDARD DIP DEFS
|
||
>;MPC
|
||
SETOM DSKEND ;ALWAYS STARTS WITH EOF
|
||
LAY,<
|
||
MD,< OUTSTR[ASCIZ/LAYOUT, D SIDE!
|
||
/]
|
||
>;MD
|
||
MPC,< OUTSTR[ASCIZ/LAYOUT, PC SIDE!
|
||
/]
|
||
>;MPC
|
||
>;LAY
|
||
|
||
|
||
PUSHJ P,BLKINI ;INITIALIZE BLOCK FREE STORAGE
|
||
|
||
;*** SET DEFAULTS, SETUP DISPLAY ***
|
||
|
||
PUSHJ P,ALLDEF
|
||
PUSHJ P,DCLAIM
|
||
DEC,< PUSHJ P,LOGINI >
|
||
PUSHJ P,NREADY
|
||
JRST MAIN
|
||
|
||
;SETUP DEFAULTS
|
||
ALLDEF:
|
||
ROUTE,<
|
||
MPC,< MOVEI T,3
|
||
MOVEM T,RCODE ;INITIALIZE ROUTE CODE
|
||
FOR I IN (CNR,FED,BAK,SID)
|
||
< MOVEI T,CAT(%,I)
|
||
MOVEM T,CAT(.,I)
|
||
>
|
||
>;MPC
|
||
>;ROUTE
|
||
DEC,<
|
||
MD,< PUSHJ P,SETOUT >
|
||
PUSHJ P,SETCLC ;DEFAULT TO CLOCATE & OUTSIDE
|
||
PUSHJ P,CLRLC ;AND NO LOWER CASE!
|
||
PUSHJ P,CLBOOP ;AND NO BOOPING.
|
||
GT,< SETOM OPTFLG > ;SET FOR OPTIMIZED DISPLAY ROUTINES
|
||
>;DEC
|
||
RSTDEF: PUSHJ P,CLRNOM ;INITIALIZE BOARD TYPE
|
||
MD,< PUSHJ P,CLRWW >
|
||
MOVEI T,DBLARR
|
||
MOVEM T,EOLCHR ;END OF LINE FOR TEXT
|
||
WAG,< MOVE T,[STRTWR] ;FIRST WIRE FILENAME -1
|
||
MOVEM T,LASTWR
|
||
>;WAG
|
||
MD,< DATE T,
|
||
HRLZM T,DRWDAT
|
||
MSTIME T,
|
||
IDIVI T,=1000*=60 ;TO MINUTES
|
||
HRRM T,DRWDAT
|
||
MOVSI T,EXTFIL
|
||
MOVEM T,DRWEXT ;INIT EXTENSION AND CHECKSUM
|
||
SETZB T,DRWNAM
|
||
NODEC,< DSKPPN T, >
|
||
DEC,< GETPPN T, >
|
||
MOVEM T,DRWPPN
|
||
>;MD
|
||
MOVEI T,DFSCL
|
||
MOVEM T,NSCALE
|
||
MD,< MOVEI T,8*2 ;STUB IS 8 STEPS
|
||
MOVEM T,STBSIZ
|
||
>;MD
|
||
MPC,< MOVSI SID,FRONT ;START ON FRONT SIDE
|
||
MOVEI T,=10 ;50 MIL STEPS TO START WITH
|
||
MOVEM T,STPSIZ
|
||
>;MPC
|
||
MOVEI T,BODM
|
||
MOVEM T,MODE
|
||
PUSHJ P,CLRBRT
|
||
MOVE 0,[DFLT0]
|
||
MOVE M,[DFLTM]
|
||
PUSHJ P,CLCBRT
|
||
JRST HOME ;CENTER SCREEN
|
||
;MAIN COMMAND LOOP
|
||
MLOP: XCT T ;XCT THE DISPATCH
|
||
TRNN INMOV ;ARE WE MOVING SOMETHING?
|
||
JRST MAIN0
|
||
PUSHJ P,@MDISP ;YES, MOVE IT
|
||
MOVE TT,CLOSES
|
||
MOVE T,MODE
|
||
CAIE T,PNTM
|
||
CAIN T,TXTM
|
||
MOVEM TT,MOVED
|
||
JRST MAIN
|
||
|
||
MAIN0: SKIPE A,MOVED
|
||
PUSHJ P,STOPM ;STOP MOVING - CHECK FOR OVERLAPPING POINTS
|
||
SETZM MOVED
|
||
MAIN: MOVEM 0,SAVER0 ;SAVE REGISTERS IN CASE OF REENTER
|
||
MOVEM M,SAVERM
|
||
NODEC,<
|
||
NOIII,<
|
||
SKIPE AUTOSM ;AUTO-SAVING?
|
||
SOSE AUTOSN ;YES, TIME TO SAVE?
|
||
CAIA
|
||
PUSHJ P,ESAVE ;DO ESAVE
|
||
>;NOIII
|
||
>;NODEC
|
||
SKIPE AUTOWM
|
||
SOSE AUTOWN
|
||
CAIA
|
||
PUSHJ P,EWRITE
|
||
LAY,< SKIPN C,ODISP ;IS OTHER PROG TRYING TO TELL US SOMETHING?>
|
||
PUSHJ P,GETCHM ;GET THE NEXT CHARACTER (IN C)
|
||
III,< CAIN C,40
|
||
PUSHJ P,LHYRST
|
||
>;III
|
||
LAY,< SETZM ODISP ;ONLY ONCE!>
|
||
TLNN M,DSKACT!MACACT ;DON'T UPDATE CURSOR?
|
||
SKIPN ISDPY
|
||
JRST NOCURS
|
||
TRNN M,CURSOR ;ARE WE CURSING?
|
||
JRST NOCURS
|
||
PUSH P,C
|
||
PUSHJ P,GETPOS ;UPDATE POSITION FROM DISPLAY PROG
|
||
TRNE INMOV ;MAY HAVE TO FIX MOVING
|
||
PUSHJ P,@MDISP
|
||
POP P,C
|
||
NOCURS: LDB A,[POINT 2,C,28] ;GET CONTROL BITS
|
||
MOVEI B,1
|
||
LSH B,(A) ;BITS TO TEST FOR CTRL KEYS
|
||
ANDI C,177 ;CLEAR EXTRA BITS
|
||
SKIPN T,DTAB(C) ;PICK UP TABLE ENTRY. ZERO?
|
||
JRST ERRET ;YES, ILLEGAL CHR.
|
||
MOVEI D,1
|
||
LSH D,@MODE ;GET A BIT TO TEST FOR LEGAL IN THIS MODE
|
||
CAIA
|
||
AOBJN T,.+1
|
||
TDNN D,(T) ;DO BITS MATCH?
|
||
JRST .-2
|
||
JRA T,MLOP ;YES, MATCH, PICK UP DISPATCH INSTR.
|
||
|
||
ERRET: PUSHJ P,PERRET
|
||
JRST MAIN
|
||
|
||
FUCKUP:
|
||
OUTSTR[ASCIZ/Boy, have I screwed up! Get a wizard!!
|
||
CALLED FROM /]
|
||
PUSH P,T
|
||
PUSH P,TT
|
||
HRLO TT,-2(P) ;GET PC
|
||
FCKLOP: SETZ T,
|
||
LSHC T,3
|
||
ADDI T,60
|
||
OUTCHR T
|
||
TRNE TT,777777
|
||
JRST FCKLOP
|
||
OUTSTR[ASCIZ/
|
||
/]
|
||
POP P,TT
|
||
POP P,T
|
||
NODEC,< POP P,.JBOPC ;POP RETURN INTO .JBOPC
|
||
SKIPN .JBDDT
|
||
HALT @.JBOPC
|
||
PUSH P,.JBDDT
|
||
POPJ P,
|
||
>;NODEC
|
||
DEC,< JRST TODDT >
|
||
;0-9 SPC + -
|
||
|
||
.1DNUM:
|
||
ANYALT
|
||
-1
|
||
|
||
.2DNUM: PUSHJ P,ALTNUM
|
||
JRST ERRET
|
||
|
||
SKEY,<
|
||
.1D1: 1PNTM!1TXTM
|
||
ANYALT
|
||
-1
|
||
|
||
.2D1: PUSHJ P,LINUP
|
||
PUSHJ P,ALTNUM
|
||
JRST ERRET
|
||
|
||
.1D2: 1PNTM!1TXTM
|
||
ANYALT
|
||
-1
|
||
|
||
.2D2: PUSHJ P,LINDWN
|
||
PUSHJ P,ALTNUM
|
||
JRST ERRET
|
||
|
||
.1D3: 1PNTM!1TXTM
|
||
ANYALT
|
||
-1
|
||
|
||
.2D3: PUSHJ P,LINLFT
|
||
PUSHJ P,ALTNUM
|
||
JRST ERRET
|
||
|
||
.1D4: 1PNTM!1TXTM
|
||
ANYALT
|
||
-1
|
||
|
||
.2D4: PUSHJ P,LINRT
|
||
PUSHJ P,ALTNUM
|
||
JRST ERRET
|
||
|
||
.1D5: 1BODM
|
||
ANYALT
|
||
-1
|
||
|
||
.2D5: MODISP C1,ASSET
|
||
PUSHJ P,ALTNUM
|
||
JRST ERRET
|
||
|
||
.2D6: PUSHJ P,ALTNUM
|
||
PUSHJ P,MOVLF1
|
||
|
||
.2D7: PUSHJ P,ALTNUM
|
||
PUSHJ P,MOVRT1
|
||
|
||
.2D8: PUSHJ P,ALTNUM
|
||
PUSHJ P,MOVUP1
|
||
|
||
.2D9: PUSHJ P,ALTNUM
|
||
PUSHJ P,MOVDN1
|
||
>;SKEY
|
||
|
||
.1DSPC:
|
||
MD,< 1EDTIM ; SPACE>
|
||
MD,< 1PNTM!1TXTM ;POINT MODE>
|
||
1SETM ;SET MODE
|
||
MD,< 1EDTGM ;GETTING BODY MODE>
|
||
ANYALT
|
||
-1
|
||
.2DSPC:
|
||
MD,< PUSHJ P,EDSPC>
|
||
MD,< PUSHJ P,PNSPC>
|
||
PUSHJ P,SSPACE
|
||
MD,< PUSHJ P,GETYES ;PLANT BODY>
|
||
PUSHJ P,FORWRD
|
||
PUSHJ P,CLRMOV ;STOP MOVING
|
||
|
||
SKEY,<
|
||
.1DCX:
|
||
MD,< 1EDTIM >
|
||
ANYALT
|
||
-1
|
||
|
||
.2DCX:
|
||
MD,< PUSHJ P,EDSPC >
|
||
PUSHJ P,FORWRD
|
||
JRST ERRET
|
||
>;SKEY
|
||
|
||
.1DPLS:
|
||
MD,< 1EDTIM ;+ (EDIT INSERT MODE)>
|
||
1PNTM!1TXTM ;+ IN POINT MODE
|
||
1SETM ;+ IN SET MODE
|
||
ANYALT
|
||
-1
|
||
.2DPLS:
|
||
MD,< PUSHJ P,EDPLUS>
|
||
PUSHJ P,PPLUS
|
||
PUSHJ P,SPLUS
|
||
PUSHJ P,ALTPLS
|
||
JRST ERRET
|
||
|
||
.1DMNS:
|
||
MD,< 1EDTIM ;->
|
||
1PNTM!1TXTM ;POINT MODE
|
||
1SETM ;SET MODE
|
||
ANYALT
|
||
-1
|
||
|
||
.2DMNS:
|
||
MD,< PUSHJ P,EDMINS>
|
||
PUSHJ P,PNMNS
|
||
PUSHJ P,STMNS ;END BOX
|
||
PUSHJ P,ALTMNS ;- IN ALTER MODE
|
||
JRST ERRET
|
||
|
||
MD,<
|
||
.1DNOT: 1PNTM!1TXTM
|
||
-1
|
||
.2DNOT: PUSHJ P,PNOT
|
||
JRST ERRET
|
||
>;MD
|
||
;A-D
|
||
.1DA: 1PNTM!1TXTM
|
||
MD,< 1EDTTM
|
||
1BTXTM
|
||
>;MD
|
||
-1
|
||
.2DA: XCT (A)[JRST ERRET
|
||
PUSHJ P,PATT
|
||
PUSHJ P,LATT
|
||
PUSHJ P,ALTER]
|
||
MD,< MODISP C3,EALTER
|
||
MODISP C3,BTALTR
|
||
>;MD
|
||
JRST ERRET
|
||
|
||
.1DB: MD,<1BTXTM!>1SETM!1BODM
|
||
1PNTM!1TXTM
|
||
1LINM
|
||
-1
|
||
.2DB: MODISP C3,TOP3B
|
||
XCT (A)[JRST ERRET
|
||
MD,< PUSHJ P,BREAKH
|
||
PUSHJ P,BREAKV
|
||
>;MD
|
||
MPC,< JRST ERRET
|
||
JRST ERRET
|
||
>;MPC
|
||
PUSHJ P,TOP3B]
|
||
XCT (A)[JRST ERRET
|
||
MD,< PUSHJ P,BENDL1
|
||
PUSHJ P,BENDL2>
|
||
MPC,< PUSHJ P,BENDL
|
||
JRST ERRET>
|
||
PUSHJ P,TOP3B]
|
||
JRST ERRET
|
||
|
||
.1DC: ANYALT ;SNARF OFF EDIT ALTER MODE HERE
|
||
MD,<ALLEDM!1BTXTM!>1SETM!1BODM!1PNTM!1TXTM!1LINM
|
||
-1
|
||
.2DC: PUSHJ P,ALTC
|
||
XCT(A)[JRST ERRET
|
||
PUSHJ P,CCENTR ;CURSOR TO CENTER OF PIC
|
||
PUSHJ P,PCENTR ;PIC CENTER TO CURSOR POS.
|
||
PUSHJ P,HOME] ;BOTH BACK TO ZERO.
|
||
JRST ERRET
|
||
|
||
.1DD:
|
||
MD,< 1EDTIM ;D IN EDIT INSERT
|
||
1EDTM ;D IN EDIT MODE
|
||
1EDTPM ;CTRL 1 IN EDIT PIN MODE
|
||
>;MD
|
||
1BODM ;CTRL 1 OR 2 IN BODY MODE
|
||
1PNTM!1TXTM ;CTRL 1 IN POINT MODE
|
||
1SETM ;CTRL 1 IN SET MODE
|
||
1LINM ;CTRL 1 IN LINE MODE
|
||
ANYALT
|
||
MD,< 1EDTTM
|
||
1BTXTM
|
||
>;MD
|
||
-1
|
||
.2DD:
|
||
MD,< PUSHJ P,EDDEL ;D IN EDIT INSERT
|
||
PUSHJ P,EDDELE ;D IN EDIT MODE
|
||
MODISP C1,EDPDEL
|
||
>;MD
|
||
XCT (A)[JRST ERRET ;D IN BODY MODE
|
||
PUSHJ P,BODDEL
|
||
PUSHJ P,C2BDEL
|
||
JRST ERRET]
|
||
XCT (A)[JRST ERRET ;Delete in Point mode
|
||
PUSHJ P,PNTDEL
|
||
PUSHJ P,PN2DEL
|
||
JRST ERRET]
|
||
XCT (A)[JRST ERRET ;Set mode
|
||
PUSHJ P,SETDEL
|
||
PUSHJ P,SETKIL
|
||
PUSHJ P,DCOMPL]
|
||
XCT (A)[JRST ERRET ;Line mode
|
||
PUSHJ P,LINDEL ;DELETE LINE
|
||
MPC,< PUSHJ P,LINDL2 ;DELETE WIRE >
|
||
MD,< JRST ERRET >
|
||
JRST ERRET]
|
||
PUSHJ P,DELETE ;ALTER MODE DELETE
|
||
MD,< XCT (A)[JRST ERRET
|
||
PUSHJ P,EDTDEL
|
||
PUSHJ P,EDNPRP
|
||
JRST ERRET]
|
||
XCT (A)[JRST ERRET
|
||
PUSHJ P,BTXDEL
|
||
PUSHJ P,BTNPRP
|
||
JRST ERRET]
|
||
>;MD
|
||
JRST ERRET
|
||
|
||
MD,<
|
||
.1DE: ALLEDM ;<CTRL 1>E IN EDITOR
|
||
1SETM!1PNTM!1TXTM!1LINM ;CTRL 12 E IN TOP MODES
|
||
1BODM
|
||
1BTXTM
|
||
ANYALT
|
||
-1
|
||
|
||
.2DE: MODISP C1,EDITE
|
||
MODISP C3,ENTEDC
|
||
XCT (A)[JRST ERRET
|
||
PUSHJ P,ENTEPN
|
||
JRST ERRET
|
||
PUSHJ P,ENTEDC]
|
||
XCT (A)[JRST ERRET
|
||
PUSHJ P,ENTBTB
|
||
JRST ERRET
|
||
PUSHJ P,ENTEDC]
|
||
PUSHJ P,ELINE
|
||
JRST ERRET
|
||
>;MD
|
||
;E-K
|
||
MPC,<
|
||
.1DE: ANYALT
|
||
ROUTE,< 1PNTM!1TXTM>
|
||
-1
|
||
.2DE: PUSHJ P,ELINE
|
||
ROUTE,< XCT (A)[JRST ERRET
|
||
PUSHJ P,RSET1
|
||
PUSHJ P,RSET2
|
||
PUSHJ P,DOROUTE]
|
||
>;ROUTE
|
||
JRST ERRET
|
||
>;MPC
|
||
MD,<
|
||
.1DF: ANYALT
|
||
1PNTM!1TXTM
|
||
1BODM
|
||
1SETM
|
||
1EDTPM
|
||
1EDTTM
|
||
1BTXTM
|
||
-1
|
||
|
||
.2DF: PUSHJ P,ALTFND ;FIND A SUBSTRING
|
||
XCT(A)[ JRST ERRET ;points
|
||
PUSHJ P,FNEXTP
|
||
PUSHJ P,FNPLOC
|
||
PUSHJ P,FNPTXT]
|
||
XCT(A)[ JRST ERRET ;bodies
|
||
PUSHJ P,FNEXTB
|
||
PUSHJ P,FNBLOC
|
||
PUSHJ P,FNBNAM]
|
||
XCT(A)[ JRST ERRET ;sets
|
||
PUSHJ P,STBFND ;(Not in yet)
|
||
PUSHJ P,STTFND ;(Not in yet)
|
||
JRST ERRET]
|
||
XCT(A)[ JRST ERRET ;edit pin
|
||
PUSHJ P,FIXONE
|
||
JRST ERRET
|
||
PUSHJ P,PALL]
|
||
XCT (A)[JRST ERRET ;edit text
|
||
PUSHJ P,FNEXLT
|
||
PUSHJ P,FNLPRP
|
||
PUSHJ P,FNLTXT]
|
||
XCT (A)[JRST ERRET ;edit body text
|
||
PUSHJ P,FNEXBT
|
||
PUSHJ P,FNBPRP
|
||
PUSHJ P,FNBTXT]
|
||
JRST ERRET
|
||
|
||
.1DG: ALLEDM ;CTRL1 G IN EDIT INSERT AND EDIT MODE
|
||
1PNTM!1TXTM
|
||
-1
|
||
.2DG: MODISP C1,BODGET ;GET A BODY IN THE EDITOR.
|
||
MODISP C1,BJUMP
|
||
JRST ERRET
|
||
>;MD
|
||
MPC,<
|
||
.1DF: 1PNTM!1TXTM
|
||
ANYALT
|
||
1BODM
|
||
1SETM
|
||
-1
|
||
.2DF: XCT(A)[JRST ERRET
|
||
PUSHJ P,FEED
|
||
PUSHJ P,PLANE
|
||
PUSHJ P,NPFEED]
|
||
PUSHJ P,ALTFND
|
||
XCT(A)[ JRST ERRET
|
||
PUSHJ P,FNEXTB
|
||
PUSHJ P,FNBLOC
|
||
PUSHJ P,FNBNAM]
|
||
MODISP C1,STBFND
|
||
JRST ERRET
|
||
|
||
.1DG: 1BODM
|
||
1PNTM!1TXTM
|
||
-1
|
||
|
||
.2DG: XCT (A)[JRST ERRET
|
||
PUSHJ P,REPONE
|
||
PUSHJ P,REPSOME
|
||
PUSHJ P,REPALL]
|
||
MODISP C1,BJUMP
|
||
JRST ERRET
|
||
>;MPC
|
||
|
||
.1DH: -1 ;VARIABLE COMMANDS IN ALL MODES
|
||
|
||
.2DH: XCT (A)[JRST ERRET
|
||
PUSHJ P,VARNXT
|
||
PUSHJ P,VARDEF
|
||
PUSHJ P,VARTYP]
|
||
|
||
.1DI:
|
||
MD,< 1EDTM
|
||
ALLEDM ;<CTRL 1>I IN EDIT MODE AND EDIT TEXT MODE
|
||
1SETM!1PNTM!1TXTM!1BODM!1LINM!1BTXTM
|
||
>;MD
|
||
MPC,< 1SETM!1PNTM!1TXTM!1BODM!1LINM>
|
||
ANYALT
|
||
-1
|
||
.2DI:
|
||
MD,< XCT(A)[ JRST ERRET
|
||
PUSHJ P,EDINS
|
||
PUSHJ P,EDINS2
|
||
JRST ERRET]
|
||
MODISP C1,EDINS
|
||
>;MD
|
||
MODISP C2,DREAD
|
||
PUSHJ P,INSERT ;*I IN ALTER MODE
|
||
JRST ERRET
|
||
|
||
.1DJ: 1PNTM!1TXTM
|
||
MPC,< 1LINM >
|
||
1SETM
|
||
-1
|
||
|
||
.2DJ: PUSHJ P,PJUMP
|
||
MPC,< XCT (A)[JRST ERRET
|
||
PUSHJ P,LJUMP1 ;JUST THIS SEGMENT
|
||
PUSHJ P,LJUMP2 ;WHOLE LINE
|
||
JRST ERRET]
|
||
>;MPC
|
||
MODISP C1,SETJMP
|
||
JRST ERRET
|
||
|
||
.1DK: 1PNTM!1TXTM ;POINT MODE <CTRL 1>
|
||
MD,< 1BTXTM
|
||
1EDTTM ;ANY CTRL IN EDIT TEXT MODE
|
||
>;MD
|
||
1SETM ;2K IN SET MODE
|
||
ANYALT
|
||
-1
|
||
.2DK: MODISP C1,PTKILL
|
||
MD,< XCT (A)[JRST ERRET
|
||
PUSHJ P,BTXKIL
|
||
PUSHJ P,BTXUKL
|
||
JRST ERRET]
|
||
XCT (A)[JRST ERRET
|
||
PUSHJ P,EDTKIL
|
||
PUSHJ P,BTXUKL
|
||
JRST ERRET]
|
||
>;MD
|
||
MODISP C2,STKILT
|
||
PUSHJ P,KILL
|
||
JRST ERRET
|
||
;L-Q
|
||
.1DL: MD,<1BTXTM!>1SETM!1PNTM!1TXTM!1BODM!1LINM
|
||
ANYALT
|
||
-1
|
||
|
||
.2DL: XCT (A)[JRST ERRET
|
||
MD,< PUSHJ P,TTYPE
|
||
PUSHJ P,LTYPE>
|
||
MPC,< JRST ERRET
|
||
JRST ERRET>
|
||
PUSHJ P,TOP3L]
|
||
PUSHJ P,SLINE
|
||
JRST ERRET
|
||
|
||
|
||
.1DM: MD,<1EDTM!1EDTTM!1EDTPM!1BTXTM!>1SETM!1BODM!1PNTM!1TXTM
|
||
-1
|
||
.2DM: XCT (A)[JRST ERRET
|
||
PUSHJ P,PBMOV
|
||
PUSHJ P,TXTMOV
|
||
PUSHJ P,PGRAB]
|
||
JRST ERRET
|
||
|
||
.1DN:
|
||
MD,< 1EDTPM
|
||
1PNTM!1TXTM>
|
||
1BODM
|
||
MD,< 1EDTM >
|
||
ANYALT
|
||
-1
|
||
.2DN:
|
||
MD,< XCT (A)[JRST ERRET
|
||
PUSHJ P,PNUMS
|
||
PUSHJ P,SETORI
|
||
PUSHJ P,XYPOFF]
|
||
XCT (A)[JRST ERRET
|
||
PUSHJ P,SETCPN
|
||
PUSHJ P,PMOVEL ;MOVE LOC
|
||
JRST ERRET]
|
||
>;MD
|
||
XCT (A)[JRST ERRET
|
||
PUSHJ P,BNUMS
|
||
MD,< PUSHJ P,BMOVEL ;MOVE LOC>
|
||
MPC,< JRST ERRET >
|
||
MD,< PUSHJ P,SETSEC >
|
||
MPC,< JRST ERRET > ]
|
||
MD,< MODISP C2,EMOVEL >
|
||
PUSHJ P,ALTN
|
||
JRST ERRET
|
||
|
||
.1DO: 1BODM
|
||
MD,< 1PNTM!1TXTM
|
||
1EDTGM
|
||
>;MD
|
||
MPC,< 1SETM>
|
||
-1
|
||
.2DO: XCT (A)[JRST ERRET
|
||
PUSHJ P,BROT
|
||
MD,< PUSHJ P,STUBB >
|
||
MPC,< JRST ERRET >
|
||
JRST ERRET]
|
||
MD,< XCT (A)[JRST ERRET
|
||
PUSHJ P,STUB
|
||
PUSHJ P,STUBCC
|
||
PUSHJ P,STUBCW]
|
||
MODISP C1,GETSPC
|
||
>;MD
|
||
MPC,< MODISP C1,SROT>
|
||
JRST ERRET
|
||
.1DP:
|
||
MD,< 1EDTPM
|
||
ALLEDM ;P IN EDIT MODE
|
||
>;MD
|
||
MD,<1BTXTM!>1LINM
|
||
1BODM ;P IN BODY MODE
|
||
1PNTM!1TXTM
|
||
1SETM ;CTRL1 P IN SET MODE
|
||
-1
|
||
.2DP:
|
||
MD,< XCT (A)[JRST ERRET
|
||
PUSHJ P,EDITP
|
||
DEC,< PUSHJ P,SETPOL >
|
||
NODEC,< JRST ERRET >
|
||
JFCL ] ;ALREADY IN PIN MODE, NOOP
|
||
XCT (A)[JRST ERRET
|
||
PUSHJ P,EDITP
|
||
JRST ERRET
|
||
PUSHJ P,EDPENT]
|
||
>;MD
|
||
MODISP C3,TOP3P
|
||
XCT (A)[JRST ERRET
|
||
PUSHJ P,BODPLC
|
||
MPC,< JRST ERRET >
|
||
MD,< PUSHJ P,BPINS >
|
||
PUSHJ P,TOP3P]
|
||
XCT (A)[JRST ERRET
|
||
PUSHJ P,PNTPLC
|
||
JRST ERRET
|
||
PUSHJ P,TOP3P]
|
||
XCT (A)[JRST ERRET
|
||
JRST ERRET
|
||
PUSHJ P,SETCOP ;COPY SET THEN MOVE
|
||
PUSHJ P,TOP3P] ;GO TO POINT MODE
|
||
JRST ERRET
|
||
|
||
.1DQ: 1PNTM!1TXTM ;Z IN POINT MODE
|
||
MD,<
|
||
STANFO,<
|
||
1EDTTM ;CTRL1 Z IN EDIT TEXT MODE
|
||
1BTXTM
|
||
>;STANFO
|
||
1BODM
|
||
1EDTM
|
||
>;MD
|
||
-1
|
||
.2DQ:
|
||
NOSTANFO,<
|
||
MD,< XCT (A)[JRST ERRET
|
||
JRST ERRET
|
||
PUSHJ P,UNOFFC
|
||
PUSHJ P,CONOFF]
|
||
>;MD
|
||
MPC,< JRST ERRET >
|
||
>;NOSTANFO
|
||
STANFO,<
|
||
XCT (A)[JRST ERRET
|
||
PUSHJ P,PNTQ
|
||
MD,< PUSHJ P,UNOFFC
|
||
PUSHJ P,CONOFF >
|
||
MPC,< JRST ERRET
|
||
JRST ERRET >]
|
||
MD,< MODISP C1,TPNTQ
|
||
MODISP C1,BTPNTQ
|
||
>;MD
|
||
>;STANFO
|
||
MD,< XCT (A)[JRST ERRET
|
||
JRST ERRET
|
||
PUSHJ P,BLOOFF
|
||
PUSHJ P,BLCOFF]
|
||
MODISP C2,ELCCLR
|
||
>;MD
|
||
JRST ERRET
|
||
;R-V
|
||
MD,<
|
||
.1DR: 1EDTIM ;R IN EDIT INSERT
|
||
1EDTM ; " " MODE
|
||
1BODM
|
||
ANYALT
|
||
-1
|
||
.2DR: PUSHJ P,EDCHNG
|
||
PUSHJ P,EDCHNE
|
||
XCT (A)[JRST ERRET
|
||
PUSHJ P,REPONE
|
||
PUSHJ P,REPSOME
|
||
PUSHJ P,REPALL]
|
||
PUSHJ P,REPLAC
|
||
JRST ERRET
|
||
>;MD
|
||
MPC,<
|
||
.1DR: 1PNTM!1TXTM!1LINM!1SETM!1BODM
|
||
ANYALT
|
||
-1
|
||
.2DR: XCT (A)[JRST ERRET
|
||
PUSHJ P,[TRZ INLIN!INMOV
|
||
SWITCH
|
||
TRO MCHG!NEEDCL
|
||
POPJ P,]
|
||
PUSHJ P,[TRZE BTHSDS
|
||
TRO MCHG
|
||
POPJ P,]
|
||
PUSHJ P,[TRON BTHSDS
|
||
TRO MCHG
|
||
POPJ P,]]
|
||
PUSHJ P,REPLAC
|
||
JRST ERRET
|
||
>;MPC
|
||
.1DS: MD,<1BTXTM!>1TXTM!1PNTM!1SETM!1LINM
|
||
1BODM
|
||
ANYALT
|
||
-1
|
||
.2DS: MODISP C3,TOP3S ;GO TO SET MODE
|
||
XCT (A)[JRST ERRET
|
||
PUSHJ P,PSWAPA
|
||
MD,< PUSHJ P,PSWAPB >
|
||
MPC,< JRST ERRET >
|
||
PUSHJ P,TOP3S]
|
||
PUSHJ P,SEARCH
|
||
JRST ERRET
|
||
.1DT:
|
||
MD,< 1BTXTM
|
||
ALLEDM ;CTRL 1 IN EDIT
|
||
1BODM
|
||
>;MD
|
||
1LINM!1SETM!1BODM
|
||
1PNTM!1TXTM ; " " IN POINT MODE
|
||
-1
|
||
.2DT:
|
||
MD,< XCT (A)[JRST ERRET
|
||
PUSHJ P,BTXPLC
|
||
JRST ERRET
|
||
PUSHJ P,TOP3T]
|
||
XCT (A)[JRST ERRET
|
||
PUSHJ P,EDTXT
|
||
PUSHJ P,EDTENT
|
||
PUSHJ P,EDTENT]
|
||
XCT (A)[JRST ERRET
|
||
PUSHJ P,BTXPLB
|
||
NIL,< PUSHJ P,TRANSPOSE > ;PACKAGE STUFF SUPERCEDES L/R BITS
|
||
JRST ERRET
|
||
PUSHJ P,TOP3T]
|
||
>;MD
|
||
MODISP C3,TOP3T
|
||
XCT (A)[JRST ERRET
|
||
PUSHJ P,PNTTXT
|
||
MPC,< JRST ERRET >
|
||
MD,< PUSHJ P,PNTTX2 >
|
||
PUSHJ P,TOP3T]
|
||
JRST ERRET
|
||
.1DU:
|
||
MPC,< 1PNTM!1TXTM >
|
||
ANYALT
|
||
-1
|
||
.2DU:
|
||
MPC,< XCT(A)[JRST ERRET
|
||
PUSHJ P,UNFEED
|
||
PUSHJ P,UNPLAN
|
||
JRST ERRET]
|
||
>;MPC
|
||
PUSHJ P,ALTU
|
||
JRST ERRET
|
||
.1DV:
|
||
-1
|
||
.2DV:
|
||
LAY,<
|
||
MD,< MODISP C3,GETPC >
|
||
MPC,< MODISP C3,GETD >
|
||
>;LAY
|
||
NOLAY,< JRST ERRET >
|
||
;W-Z
|
||
.1DW: MD,<1BTXTM!>1SETM!1BODM!1PNTM!1TXTM!1LINM
|
||
-1
|
||
.2DW: XCT(A)[JRST ERRET
|
||
PUSHJ P,DWRITE
|
||
PUSHJ P,WIRE
|
||
PUSHJ P,PLOT]
|
||
JRST ERRET
|
||
.1DX: -1
|
||
.2DX: PUSHJ P,DOOX
|
||
|
||
.1DY:
|
||
MD,< ALLEDM
|
||
1BTXTM
|
||
1BODM
|
||
>;MD
|
||
-1
|
||
|
||
.2DY:
|
||
MD,< XCT (A)[JRST ERRET
|
||
PUSHJ P,EDTPRP
|
||
PUSHJ P,EDCPRP
|
||
JRST ERRET]
|
||
XCT (A)[JRST ERRET
|
||
PUSHJ P,BTXPRP
|
||
PUSHJ P,BTCPRP
|
||
JFCL] ;STAY IN BTXTM
|
||
XCT (A)[JRST ERRET
|
||
PUSHJ P,BTXPRB
|
||
PUSHJ P,BTCPRB
|
||
PUSHJ P,ENTBTM]
|
||
>;MD
|
||
JRST ERRET
|
||
|
||
.1DZ: ANYALT
|
||
1PNTM!1TXTM ;CTRL1 Z IN POINT MODE
|
||
MD,< 1EDTTM ;CTRL1 Z IN EDIT TEXT MODE
|
||
1BTXTM
|
||
>;MD
|
||
-1
|
||
.2DZ: PUSHJ P,ALTZAP ;ZAP STRING
|
||
STANFO,<XCT (A)[JRST ERRET
|
||
PUSHJ P,PNTZ
|
||
MD,< PUSHJ P,UNOFFT
|
||
PUSHJ P,PUTOFF >
|
||
MPC,< JRST ERRET
|
||
JRST ERRET >]
|
||
>;STANFO
|
||
NOSTANFO,<
|
||
MPC,< JRST ERRET >
|
||
MD,< XCT (A)[JRST ERRET
|
||
JRST ERRET
|
||
PUSHJ P,UNOFFT
|
||
PUSHJ P,PUTOFF ]
|
||
>;MD
|
||
>;NOSTANFO
|
||
MD,< XCT (A)[JRST ERRET
|
||
STANFO,<PUSHJ P,TPNTZ>
|
||
NOSTANFO,<JRST ERRET>
|
||
JRST ERRET
|
||
PUSHJ P,EDTTZ]
|
||
XCT (A)[JRST ERRET
|
||
STANFO,<PUSHJ P,BTPNTZ >
|
||
NOSTANFO,<JRST ERRET>
|
||
JRST ERRET
|
||
PUSHJ P,BTXTZ]
|
||
>;MD
|
||
JRST ERRET
|
||
;ALT BS . | & #
|
||
.1DALT:
|
||
MD,< 1EDTIM!1EDTTM!1EDTPM ;ALTMODE IN EDIT INSERT
|
||
1BTXTM
|
||
>;MD
|
||
1SETM
|
||
1PNTM!1TXTM ;POINT MODE
|
||
MD,< 1EDTGM ;BODY GETTING MODE>
|
||
1ALTM
|
||
1MALTM
|
||
MD,< 1EDTAM
|
||
1BTALTM
|
||
>;MD
|
||
-1
|
||
.2DALT:
|
||
MD,< PUSHJ P,EDALT
|
||
PUSHJ P,CLRMOV
|
||
>;MD
|
||
PUSHJ P,SETALT
|
||
PUSHJ P,PNALT
|
||
MD,< PUSHJ P,GETALT >
|
||
PUSHJ P,ALTALT
|
||
PUSHJ P,MALTALT
|
||
MD,< PUSHJ P,ELTALT
|
||
PUSHJ P,BTXALT
|
||
>;MD
|
||
JRST ERRET
|
||
.1DBS:
|
||
MD,< 1EDTIM ;BS>
|
||
ANYALT
|
||
-1
|
||
.2DBS:
|
||
MD,< PUSHJ P,EDBS>
|
||
PUSHJ P,BAKWRD
|
||
JRST ERRET
|
||
|
||
.1DPER:
|
||
1PNTM!1TXTM
|
||
-1
|
||
|
||
.2DPER:
|
||
XCT(A) [
|
||
LAY,< PUSHJ P,PLAIN. >
|
||
NOLAY,< JRST ERRET >
|
||
PUSHJ P,CTRL.
|
||
PUSHJ P,META.
|
||
ROUTE,<
|
||
MPC,< PUSHJ P,CTMT. >
|
||
MD,<
|
||
LAY,< PUSHJ P,CTMT. >
|
||
NOLAY,< PRINTX WHAT ARE YOU DOING WITH MD, ROUTE, AND NOLAY?>
|
||
>;MD
|
||
>;ROUTE
|
||
NOROUTE,<JRST ERRET >
|
||
]
|
||
JRST ERRET
|
||
|
||
.1DVBR:
|
||
MPC,< 1PNTM!1TXTM >
|
||
-1
|
||
|
||
.2DVBR:
|
||
MPC,< PUSHJ P,PLFEED > ;**| IN POINT MODE
|
||
JRST ERRET
|
||
|
||
.1DAMP: 1PNTM!1TXTM
|
||
1BODM
|
||
1SETM
|
||
-1
|
||
|
||
.2DAMP: XCT (A)[JRST ERRET ;& POINT MODE
|
||
PUSHJ P,APPPNT
|
||
PUSHJ P,ASSETP
|
||
PUSHJ P,CLRCUR]
|
||
XCT (A)[JRST ERRET ;& BODY MODE
|
||
PUSHJ P,APPBOD
|
||
PUSHJ P,ASSETB
|
||
PUSHJ P,CLRCUR]
|
||
XCT (A)[JRST ERRET ;& SET MODE
|
||
PUSHJ P,APPSET
|
||
PUSHJ P,SETSET
|
||
PUSHJ P,CLRCUR]
|
||
MODISP C3,CLRCUR ;CLEAR CURRENT SET ONLY ()
|
||
|
||
.1DSHRP:1PNTM!1TXTM
|
||
1BODM
|
||
1SETM
|
||
ANYALT
|
||
-1
|
||
|
||
.2DSHRP:XCT (A)[JRST ERRET
|
||
PUSHJ P,XPNT
|
||
PUSHJ P,XPNTA
|
||
JRST ERRET]
|
||
XCT (A)[JRST ERRET
|
||
PUSHJ P,XBOD
|
||
PUSHJ P,XBODA
|
||
JRST ERRET]
|
||
XCT (A)[JRST ERRET
|
||
PUSHJ P,XSET
|
||
PUSHJ P,XSETA
|
||
JRST ERRET]
|
||
PUSHJ P,SPALTN
|
||
JRST ERRET
|
||
|
||
.1DBAR: ; IS SAME AS
|
||
.1DEQV: 1BODM
|
||
-1
|
||
|
||
.2DBAR:
|
||
.2DEQV: MODISP C1,ASSET
|
||
JRST ERRET
|
||
;" ? \ = ^Z ^K
|
||
.1DDBQ: 1PNTM!1TXTM
|
||
1BODM
|
||
MD,< 1EDTM
|
||
1EDTPM
|
||
1EDTTM!1BTXTM
|
||
>;MD
|
||
-1
|
||
|
||
.2DDBQ: XCT (A)[JRST ERRET ;POINT,TEXT MODES
|
||
PUSHJ P,STOTXT
|
||
PUSHJ P,STOCLC
|
||
JRST ERRET]
|
||
XCT (A)[JRST ERRET ;BODY MODE
|
||
PUSHJ P,STONAM
|
||
PUSHJ P,STOBLC
|
||
PUSHJ P,STODIP]
|
||
MD,< XCT (A)[JRST ERRET ;BODY EDIT MODE
|
||
PUSHJ P,STFLNM
|
||
JRST ERRET
|
||
PUSHJ P,STFLDP]
|
||
MODISP C2,STOBPN ;BODY EDIT PIN MODE
|
||
XCT (A)[JRST ERRET ;BODY TEXT MODE
|
||
PUSHJ P,STOBTX
|
||
PUSHJ P,STOBTP
|
||
JRST ERRET]
|
||
>;MD
|
||
JRST ERRET
|
||
|
||
.1DQUES:
|
||
MPC,<SHORT,< -1-ANYALT >>
|
||
UML,<
|
||
MD,< -1-ANYALT-ALLEDM >
|
||
>;UML
|
||
-1
|
||
|
||
.2DQUES:
|
||
MPC,<SHORT,< MODISP C0,SHWERR ;SHOW A SHORTING ERROR>>
|
||
UML,<
|
||
MD,< MODISP C0,SHWERR ;SHOW A SINGLE UNNAMED PIN ERROR>
|
||
>;UML
|
||
JRST ERRET
|
||
|
||
NOSKEY,<
|
||
.1DLBC: 1PNTM!1TXTM
|
||
-1
|
||
|
||
.2DLBC: PUSHJ P,LINLFT
|
||
JRST ERRET
|
||
|
||
.1DRBC: 1PNTM!1TXTM
|
||
-1
|
||
|
||
.2DRBC: PUSHJ P,LINRT
|
||
JRST ERRET
|
||
|
||
.1DUBC: 1PNTM!1TXTM
|
||
-1
|
||
|
||
.2DUBC: PUSHJ P,LINUP
|
||
JRST ERRET
|
||
|
||
.1DDBC: 1PNTM!1TXTM
|
||
-1
|
||
|
||
.2DDBC: PUSHJ P,LINDWN
|
||
JRST ERRET
|
||
>;NOSKEY
|
||
|
||
.1DBSL: MD,<1EDTAM!1BTALTM!>1ALTM ;BACK SLASH
|
||
-1
|
||
|
||
.2DBSL: PUSHJ P,SETSIZ ;SET CHAR SIZE IN ALTER MODE
|
||
PUSHJ P,MOVDN1 ;CURSOR MOVE DOWN SMALL
|
||
|
||
.1DEQU:
|
||
MD,< 1EDTIM >
|
||
1PNTM!1TXTM ;POINT MODE
|
||
1SETM ;SET MODE
|
||
-1
|
||
|
||
.2DEQU:
|
||
MD,< PUSHJ P,EDMINS>
|
||
PUSHJ P,PNMNS
|
||
PUSHJ P,STMNS ;END BOX
|
||
JRST ERRET
|
||
|
||
.1DDCR: ANYALT
|
||
-1
|
||
|
||
.2DDCR: PUSHJ P,SLINE
|
||
JRST ERRET
|
||
|
||
.1DUCR: ANYALT
|
||
-1
|
||
|
||
.2DUCR: PUSHJ P,MSLINE
|
||
JRST ERRET
|
||
SUBTTL Command dispatch table
|
||
|
||
DTAB: 0
|
||
XWD [PUSHJ P,MAKDWN],[-1] ;
|
||
FOR I_2,7<0 ;,,,,,
|
||
>
|
||
SKEY,< XWD .2DBS,.1DBS > ;^H BACKSPACE
|
||
NOSKEY,< 0 > ;LAMBDA
|
||
0 ;TAB
|
||
|
||
NOIII,< XWD [JFCL],[-1] > ;LF IS NOOP
|
||
III,< XWD [PUSHJ P,LHYRST],[-1] > ; LF refreshes Leahy's memory
|
||
|
||
SKEY,< XWD .2DDCR,.1DDCR > ;^K (CURSOR UP)
|
||
NOSKEY,< 0 > ;VERTICAL TAB
|
||
|
||
FOR I_14,""-1<0 ;FF AND CR
|
||
>
|
||
XWD [PUSHJ P,MOVDN2],[-1] ; CURSOR DOWN LARGE
|
||
XWD [PUSHJ P,MOVUP2],[-1] ; CURSOR UP LARGE
|
||
NOSKEY,< XWD .2DUBC,.1DUBC ; 20
|
||
XWD .2DDBC,.1DDBC ; 21
|
||
XWD .2DLBC,.1DLBC ; 22
|
||
XWD .2DRBC,.1DRBC ; 23
|
||
>;NOSKEY
|
||
SKEY,< 0 ;20
|
||
0 ;21
|
||
0 ;22
|
||
0 ;23
|
||
>;SKEY
|
||
0 ; 24
|
||
0 ; 25
|
||
0 ; 26
|
||
XWD .2DBAR,.1DBAR ; 27
|
||
NOSKEY,< 0 > ;_ 30
|
||
SKEY,< XWD .2DCX,.1DCX > ;^X
|
||
XWD [PUSHJ P,MAKRIT],[-1] ;
|
||
SKEY,< XWD .2DUCR,.1DUCR > ;^Z (UP CURSOR)
|
||
NOSKEY,< 0 > ; TILDE 32
|
||
0 ;33
|
||
0 ;
|
||
0 ;
|
||
NOSKEY,<XWD .2DEQV,.1DEQV > ;36
|
||
SKEY,< 0 >
|
||
0
|
||
XWD .2DSPC,.1DSPC ; SPACE
|
||
0 ;EXCLAMATION MARK
|
||
XWD .2DDBQ,.1DDBQ ;DOUBLE QUOTE
|
||
XWD .2DSHRP,.1DSHRP ;#
|
||
0 ;$
|
||
NOSKEY,< 0 ;%
|
||
XWD .2DAMP,.1DAMP ;&
|
||
0 ;'
|
||
XWD [PUSHJ P,MOVLF1],[-1] ;CURSOR LEFT SMALL
|
||
XWD [PUSHJ P,MOVRT1],[-1] ;CURSOR RIGHT SMALL
|
||
>;NOSKEY
|
||
SKEY,< XWD .2DAMP,.1DAMP ;%
|
||
XWD [PUSHJ P,MOVLF2],[-1] ;& CURSOR LEFT LARGE
|
||
XWD [PUSHJ P,MOVRT2],[-1] ;' CURSOR RIGHT LARGE
|
||
XWD [PUSHJ P,MOVUP2],[-1] ;( CURSOR UP LARGE
|
||
XWD [PUSHJ P,MOVDN2],[-1] ;) CURSOR DOWN LARGE
|
||
>;SKEY
|
||
XWD [PUSHJ P,MAKSML],[-1] ;* SHRINK PIC
|
||
XWD .2DPLS,.1DPLS ;+ (EDIT INSERT MODE)
|
||
0 ;,
|
||
XWD .2DMNS,.1DMNS ;-
|
||
XWD .2DPER,.1DPER ;period
|
||
XWD [PUSHJ P,MOVUP1],[-1] ;slash - CURSOR UP SMALL
|
||
|
||
NOIII,< XWD .2DNUM,.1DNUM > ;0
|
||
III,< XWD .2DPLS,.1DPLS > ;make "0" same as "+"
|
||
|
||
FOR @$ I E <12345>
|
||
<
|
||
SKEY,< XWD .2D$I,.1D$I >
|
||
NOSKEY,< XWD .2DNUM,.1DNUM >
|
||
>
|
||
FOR @$ I E <6789>
|
||
<
|
||
SKEY,< XWD .2D$I,.1DNUM >
|
||
NOSKEY,< XWD .2DNUM,.1DNUM >
|
||
>
|
||
0 ;:::
|
||
XWD [PUSHJ P,ITSEM],[-1] ;;;;;;;;
|
||
NOSKEY,< 0
|
||
XWD .2DEQU,.1DEQU ;=
|
||
0
|
||
>;NOSKEY
|
||
SKEY,< XWD [PUSHJ P,MAKLFT],[-1] ;WINDOW LEFT
|
||
XWD .2DEQU,.1DEQU ;=
|
||
XWD [PUSHJ P,MAKRIT],[-1] ;WINDOW RIGHT
|
||
>;SKEY
|
||
XWD .2DQUES,.1DQUES ;?
|
||
XWD [PUSHJ P,DSKIN],[-1] ;@
|
||
FOR @$ I E <ABCDEFGHIJKLMNOPQRSTUVWXYZ>
|
||
< XWD .2D$I,.1D$I
|
||
>
|
||
XWD [PUSHJ P,MOVLF2],[-1] ;CURSOR LEFT LARGE
|
||
XWD .2DBSL,.1DBSL ;CURSOR DOWN SMALL (SET CHAR SIZE IN ALTER MODE)
|
||
NOSKEY,< XWD [PUSHJ P,MOVRT2],[-1] >;CURSOR RIGHT LARGE
|
||
SKEY,< XWD [PUSHJ P,MAKDWN],[-1] >;WINDOW DOWN
|
||
XWD [PUSHJ P,MAKUP],[-1] ;^
|
||
XWD [PUSHJ P,MAKLFT],[-1] ;_
|
||
0 ;140 `
|
||
FOR @$ I E <ABCDEFGHIJKLMNOPQRSTUVWXYZ>
|
||
< XWD .2D$I,.1D$I
|
||
>
|
||
FOR I_"Z"+41,173<0
|
||
>
|
||
0
|
||
0
|
||
0
|
||
XWD .2DBS,.1DBS ;BS
|
||
0
|
||
MD,<
|
||
ORG DTAB+NOT
|
||
XWD .2DNOT,.1DNOT ;
|
||
>
|
||
ORG DTAB+BIGCHR
|
||
XWD [PUSHJ P,MAKBIG],[-1] ;
|
||
ORG DTAB+VRTBAR
|
||
XWD .2DVBR,.1DVBR ;|
|
||
ORG DTAB+ALTMOD
|
||
XWD .2DALT,.1DALT ;ALTMODE
|
||
ORG DTAB+201
|
||
DOOX: TLNN M,DSKACT!MACACT
|
||
OUTSTR [ASCIZ /
|
||
WELL?/]
|
||
SETZ G,
|
||
MOVEI H,G
|
||
GETCM1: PUSHJ P,GETCOM
|
||
JUMPE T,GETCM2
|
||
GETFS(TT)
|
||
MOVEM T,1(TT)
|
||
HRRM TT,(H)
|
||
HRLZM 0,(TT)
|
||
MOVE H,TT
|
||
GETCM2: CAIN C,","
|
||
JRST GETCM1
|
||
CAIE C,12
|
||
JRST ERRX
|
||
JUMPE G,CPOPJ
|
||
GETCM3: PUSH P,G
|
||
MOVE T,1(G)
|
||
HLRZ TT,(G)
|
||
TRZ TFLG
|
||
TRNE TT,TFLG
|
||
TRO TFLG
|
||
PUSHJ P,SRVCOM
|
||
POP P,A
|
||
HRRZ G,(A)
|
||
FSTRET A
|
||
JUMPN G,GETCM3
|
||
POPJ P,
|
||
|
||
SRVCOM: JUMPE T,CPOPJ
|
||
TLNE M,DSKACT!MACACT
|
||
JRST NSRVPN
|
||
TRNE TFLG
|
||
OUTCHR["-"]
|
||
PUSH P,T
|
||
MOVE TT,T
|
||
PUSHJ P,SIXPNT ;PRINT COMMAND WE ARE SERVICING
|
||
POP P,T
|
||
NSRVPN: MOVSI TTT,770000
|
||
SETZ TT, ;CLEAR MASK
|
||
TDNE T,TTT
|
||
TDO TT,TTT
|
||
LSH TTT,-6
|
||
JUMPN TTT,.-3
|
||
SETZ A, ;NO PARTIAL MATCH FOUND YET!
|
||
MOVSI D,-TABLEN ;MAKE AOBJN POINTER
|
||
XLOP: CAMN T,XTAB(D)
|
||
JRST EXACT
|
||
MOVE TTT,TT
|
||
AND TTT,XTAB(D)
|
||
CAMN TTT,T
|
||
JRST [ JUMPN A,XAMBIG ;TOO MANY MATCHES?
|
||
MOVE A,D
|
||
JRST .+1]
|
||
AOBJN D,XLOP
|
||
JUMPE A,PERRET ;ANY MATCH?
|
||
MOVE D,A ;YES, CALL IT
|
||
TLNE M,DSKACT!MACACT
|
||
JRST EXACT
|
||
ANDCA TT,XTAB(D)
|
||
LSH TT,6
|
||
TLNN TT,770000
|
||
JRST .-2
|
||
PUSHJ P,SIXPNT
|
||
EXACT: TRNN TFLG ;IS THIS A NOT
|
||
SKIPA A,XDIS(D) ;NO
|
||
MOVS A,XDIS(D) ;YES
|
||
TRNN A,-1 ;ANY DISPATCH FOR THIS FLAVOR?
|
||
JRST PERRET
|
||
TLNN M,DSKACT!MACACT
|
||
OUTSTR[ASCIZ/
|
||
/]
|
||
JRST (A) ;YES
|
||
|
||
XAMBIG: TLNN M,DSKACT!MACACT
|
||
OUTSTR[ASCIZ/ IS AMBIGUOUS!
|
||
/]
|
||
POPJ P,
|
||
|
||
ERRX: SKIPE B,G
|
||
PUSHJ P,PUTFS
|
||
JRST INNERR
|
||
|
||
GETCOM: PUSHJ P,GETLIN
|
||
TRO TFLG ;ASSUME NOT
|
||
CAIN C,"-"
|
||
JRST GETWRD
|
||
TRZ TFLG ;NOT NOT
|
||
SETZ T,
|
||
MOVE A,[POINT 6,T]
|
||
JRST ISCHRX
|
||
|
||
PNTCOM: MOVSI A,-TABLEN
|
||
MOVEI TTT,8
|
||
TVOFF
|
||
PNTCM1: MOVE TT,XTAB(A)
|
||
PUSHJ P,SIXPNT
|
||
HLRZ TT,XDIS(A)
|
||
SKIPE TT
|
||
OUTCHR["-"]
|
||
SOJLE TTT,[OUTSTR[ASCIZ/
|
||
/]
|
||
MOVEI TTT,8
|
||
JRST PNTCM2]
|
||
OUTCHR[11]
|
||
PNTCM2: AOBJN A,PNTCM1
|
||
OUTSTR[ASCIZ/
|
||
/]
|
||
TVON
|
||
POPJ P,
|
||
SUBTTL Extended Commands
|
||
|
||
DEFINE XARGS
|
||
<
|
||
XMAC HELP,PNTCOM
|
||
XMAC START,STRT
|
||
XMAC EXIT,DOEXIT
|
||
MD,< XMAC SOCKET,STSOC,CLRSOC >
|
||
MD,< XMAC DIPFIL,SETDIP,CLRDPF >
|
||
XMAC BOOP,STBOOP,CLBOOP
|
||
XMAC INIT,STINIT,CLINIT
|
||
XMAC FDIP,FNBDIP
|
||
XMAC EXACT,EXACTS,EXACTC
|
||
XMAC LOWER,SETLC,CLRLC
|
||
XMAC IMACRO,IMACRO
|
||
XMAC WMACRO,WMACRO,WMACRS
|
||
XMAC AMACRO,MALTER
|
||
XMAC SMACRO,SAVMAC,UNSAVM
|
||
XMAC QUIT,MQUIT
|
||
XMAC SPACES,SETSPC,CLRSPC
|
||
XMAC CENTER,SETCNT,CLRCNT
|
||
DEC,< XMAC TIME,STTIME,CLTIME >
|
||
NOIII,<NODEC,< XMAC AUTOSAVE,SETSM,CLRSM >>
|
||
XMAC AUTOWRITE,SETWM,CLRWM
|
||
NOIII,<NODEC,< XMAC ESAVE,ESAVE >>
|
||
XMAC EWRITE,EWRITE
|
||
XMAC ELIST,EWLIST
|
||
XMAC EPLOT,EWPLOT
|
||
XMAC ENAME,CENAME,ZENAME
|
||
MD,< XMAC MAKEWD,MAKWIR >
|
||
MPC,< XMAC MAKWPC,MAKWIR >
|
||
XMAC SAVE,SAVEME
|
||
LAY,< XMAC RESAVE,RSAVEM >
|
||
XMAC SETWRT,SWRITE
|
||
XMAC WRTSET,SWRITE
|
||
XMAC DPY,SETDPY,CLRDPY
|
||
GT,< XMAC OPTIMIZE,SETOPT,CLROPT
|
||
DLX,< XMAC DL10,SETDLX,CLRDLX >
|
||
>;GT
|
||
XMAC MACRO,LMACRO
|
||
XMAC RMACRO,RENMAC
|
||
XMAC DMACRO,DELMAC,DELMCS
|
||
XMAC PMACRO,PMACRO
|
||
XMAC CLEAR,XCLEAR
|
||
XMAC CURSOR,CURSON,CURSOFF
|
||
XMAC DDT,GETDDT
|
||
XMAC BRIGHT,ITBRT,CLRBRT
|
||
XMAC CURBRT,ITCBRT,CLCBRT
|
||
XMAC MOVE,MOVREL
|
||
XMAC SCALE,ITSCAL
|
||
MD,< XMAC STUB,ITSTUB >
|
||
XMAC SIZE,ITSIZE
|
||
XMAC XOFF,SETXOF
|
||
XMAC YOFF,SETYOF
|
||
XMAC TEXT,SETTXT,CLRTXT
|
||
XMAC WINDOW,SETWIN,CLRWIN
|
||
XMAC LWINDOW,SETLWN,CLRLWN
|
||
XMAC DELNUL,DELNUL
|
||
XMAC DANGLE,DANGLE
|
||
DEC,<
|
||
MD,< XMAC CHKPOL,POLCHK
|
||
XMAC POLCHK,POLCHK
|
||
>;MD
|
||
>;DEC
|
||
XMAC DELSET,SBLAST
|
||
XMAC SETCEN,CENALL
|
||
XMAC COUNT,DOCNT
|
||
XMAC DSKIN,DSKIN
|
||
XMAC DSKINH,DSKINH
|
||
XMAC IFLUSH,IFLUSH
|
||
XMAC DSKOUT,PUTDSK
|
||
XMAC CLOSE,DSKCLR
|
||
XMAC NEWID,NEWID
|
||
XMAC PINS,SETPNS,CLRPNS
|
||
XMAC LOCS,STBLCS,CLBLCS
|
||
XMAC CLOCS,STCLCS,CLCLCS
|
||
XMAC CPINS,STCLCS,CLCLCS
|
||
XMAC LINES,STLINS,CLLINS
|
||
XMAC LOCATE,SETLCA,CLRLCA
|
||
XMAC CLOCATE,SETCLC,CLRCLC
|
||
XMAC SETLOC,SETLOC,SETLZ
|
||
XMAC FLASH,LOKSIG,XFLASH
|
||
IFN LAYSW!UMLSW,<XMAC ERROR,SETERR,CLRERR>
|
||
XMAC IDENTS,SIDENT,CIDENT
|
||
XMAC LIBPPN,STLPPN,CLLPPN
|
||
MD,< XMAC BOARD,GETBRD,CLRWW >
|
||
XMAC NOMENCLATURE,GETNOM,CLRNOM
|
||
XMAC AVAILABLE,AVAIL
|
||
UML,< XMAC IWIRES,READW,RELWIR
|
||
XMAC LSIGNALS,LSTSIG
|
||
XMAC NFLASH,LOOKN
|
||
>;UML
|
||
MD,< XMAC LPROPS,LPROPS
|
||
XMAC IDEFS,DREADT
|
||
XMAC RDEFS,DREADR
|
||
XMAC IERRORS,IERRS,RELWIR
|
||
XMAC FIXEM,FIXEM0
|
||
XMAC PTEXT,STPTXT,CLPTXT
|
||
XMAC BTEXT,STBTXT,CLBTXT
|
||
XMAC TMOVE,LOCTM
|
||
XMAC LMOVE,LOCLM
|
||
XMAC TERMRULE,STTRUL,CLTRUL
|
||
XMAC SETPINS,BPINSA,PINZ
|
||
XMAC SLICE,DOSLICE
|
||
XMAC TSLICE,TYPSLC,CLTSLC
|
||
XMAC DELLIB,DELLIB
|
||
XMAC LOCLIB,DELLBS
|
||
XMAC GETLIB,DOLIB
|
||
XMAC TYPLIB,LIBOUT
|
||
XMAC LIBTYP,LIBOUT
|
||
XMAC MODLIB,STMLIB,CLMLIB
|
||
XMAC MAPLIB,SETMAP,CLRMAP
|
||
XMAC LIBMAP,SETMAP,CLRMAP
|
||
XMAC GETBOD,RDBODY
|
||
XMAC RENAME,BODREN
|
||
XMAC TYPDEL,TYPDEL
|
||
XMAC DELTYP,TYPDEL
|
||
XMAC DIAMONDS,SETDMD,CLRDMD
|
||
XMAC PBOX,BOXSIZ
|
||
XMAC SHOWBOX,SHWBOX,NSHOBX
|
||
XMAC PICCEN,PICCEN
|
||
XMAC DEFPINS,SETIDS,CLRIDS
|
||
XMAC RPINID,SETRID,CLRRID
|
||
XMAC UNHIDE,STUNHI,CLUNHI
|
||
XMAC HIDE,CLUNHI,STUNHI
|
||
XMAC FIXALL,FIXALL
|
||
XMAC OUTSIDE,SETOUT,CLROUT
|
||
XMAC TITLE,STITLE,CTITLE
|
||
XMAC SITE,SITE,CSITE
|
||
XMAC AUTHOR,AUTHOR,CAUTHOR
|
||
XMAC REVISION,REVISE,CREVISE
|
||
XMAC MODULE,MODULE,CMODULE
|
||
XMAC VARIABLE,VARIABLE,CVARIABLE
|
||
XMAC PREFIX,PREFIX,CPREFIX
|
||
XMAC NUMBER,SETNUM,CLRNUM
|
||
XMAC PROJECT,PROJECT,CPROJECT
|
||
XMAC PAGE,PAGEOF,CPAGEOF
|
||
DEC,< XMAC SHEET,PAGEOF,CPAGEOF >
|
||
XMAC DCODE,DCODE,CDCODE
|
||
DEC,< XMAC DRAWN,SETDRN,CLRDRN
|
||
XMAC ENGINEER,SETENG,CLRENG
|
||
XMAC NEXTHI,SETNXT,CLRNXT
|
||
>;DEC
|
||
XMAC LTITLE,LTITLE
|
||
NIL,< XMAC TRANSPOSE,TRANALL > ;PACKAGE STUFF DOES AWAY WITH THIS
|
||
XMAC OFFALL,OFFALL
|
||
XMAC OFFRIGHT,OFFRHT,NOFRHT
|
||
XMAC OFFLOC,OFFLOC
|
||
XMAC DISLOC,SETDLC,CLRDLC
|
||
XMAC CHANGE,SIGCHG
|
||
XMAC ICHANGE,ISIGCH
|
||
XMAC ICPINS,ICPNCH
|
||
XMAC UNDERLINE,UNDRLN,NUNDRL
|
||
XMAC CBOX,SETCBX,CLRCBX
|
||
XMAC IPINS,INPINS
|
||
DEC,< XMAC IUML,INUML >
|
||
XMAC CEXCHANGE,UREST
|
||
XMAC MUNG,STRAIGHTEN
|
||
XMAC FSIGNAL,FNPSIG
|
||
XMAC FLNAME,FNLNAM
|
||
XMAC FLDIP,FNLDIP
|
||
XMAC FLNEXT,FNEXTL
|
||
XMAC FLPIN,FNLPN0
|
||
XMAC FLPNEXT,FNEXBP
|
||
XMAC RSPINI,RSPINI
|
||
XMAC INDIP,INDIP
|
||
XMAC APACK,APACK
|
||
>;MD
|
||
MPC,< XMAC WSIG,SIGPLT
|
||
XMAC IPAD,DREADT
|
||
XMAC IROUTE,DREADR
|
||
XMAC SETDIP,SETDIP
|
||
XMAC COMPONENT,STCOMP
|
||
XMAC SOLDER,STSOLD
|
||
XMAC CHANGE,CPADS
|
||
XMAC FEEDTHROUGH,STFEED,CLFEED
|
||
XMAC FINGER,STFING,CLFING
|
||
XMAC CDISP,STCARD,CLCARD
|
||
XMAC CARD,DOCARD
|
||
XMAC FTXT,FNPTXT
|
||
XMAC FCPIN,FNPLOC
|
||
XMAC FIND,FNEXTP
|
||
XMAC INNER,INNER
|
||
XMAC PPLOT,PPLOT
|
||
XMAC FLIP,STFLIP
|
||
XMAC MUNG,MUNG
|
||
XMAC UML,DOUML
|
||
XMAC DIPS,STDIPS,CLDIPS
|
||
XMAC STEP,SETSTP
|
||
XMAC VCC,SETPWR
|
||
XMAC GND,SETGND
|
||
XMAC POSITION,POSIT
|
||
SHORT,< XMAC SHORT,DOSHORT,CSHORT
|
||
XMAC PADDIAMETER,SETDIA
|
||
XMAC WIDTH,SETWID
|
||
XMAC SEPARATION,SETSEP
|
||
XMAC HOLE,SETHOL
|
||
XMAC CONNECTOR,SETCPN
|
||
>;SHORT
|
||
UML,<
|
||
WAG,<
|
||
XMAC WROUTE,WROUTE
|
||
>;WAG
|
||
>;UML
|
||
ROUTE,<
|
||
XMAC ROUTE,SETRTE
|
||
XMAC RDISP,SETRDS,CLRRDS
|
||
XMAC RCODE,SETRCD
|
||
XMAC CNR,SETCNR
|
||
XMAC FED,SETFED
|
||
XMAC BAK,SETBAK
|
||
XMAC SID,SETSID
|
||
>;ROUTE
|
||
>;MPC
|
||
STAN,< XMAC XTHICK,SETTHK,CLRTHK >
|
||
>;XARGS
|
||
|
||
DEFINE XMAC(A,B,C)
|
||
< <SIXBIT/A/>
|
||
>
|
||
|
||
XTAB: XARGS
|
||
|
||
DEFINE XMAC(A,B,C)
|
||
< C,,B
|
||
>
|
||
|
||
XDIS: XARGS
|
||
|
||
TABLEN__.-XDIS
|
||
|
||
PURGE XARGS
|
||
;EXIT ROUTINE
|
||
DOEXIT: EXIT 1,
|
||
POPJ P,
|