perm filename C[CAR,BGB]1 blob
sn#001298 filedate 1972-11-21 generic text, type T, neo UTF8
00100 ; ALTERNATE PDP-10 MNEMONICS.
00200 OPDEF LIP[HLR]↔ OPDEF LAP[HRR]
00300 OPDEF DIP[HRLM]↔ OPDEF DAP[HRRM]
00400
00500 OPDEF LIPZ [HLRZ]
00600 OPDEF LAPZ [HRRZ]
00700 OPDEF DIPZ [HRLZM]
00800 OPDEF DAPZ [HRRZM]
00900
01000 OPDEF SLIP [HLL]
01100 OPDEF SLAP [HRL]
01200 OPDEF STIP [HLLM]
01300 OPDEF STAP [HLRM]
01400
01500 OPDEF SLIPZ [HLLZ]
01600 OPDEF SLAPZ [HRLZ]
01700 OPDEF STIPZ [HLLZM]
01800 OPDEF STAPZ [HLRZM]
01900
02000 OPDEF ZIP[HRRZS]↔ OPDEF ZAP[HLLZS]
02100 OPDEF WIP[HRROS]↔ OPDEF WAP[HRRZS]
02200
02300 OPDEF NIP [HLRE]
02400 OPDEF NAP [HRRE]
02500 OPDEF NIM [HRREI]
02600 OPDEF LIM [HRRI]
02700 OPDEF SLIM [HRLI]
02800
02900 OPDEF CAR[HLRZ]↔ OPDEF CDR[HRRZ]
03000 OPDEF LAC[MOVE]↔ OPDEF DAC[MOVEM]
03100
03200 OPDEF GO [JRST]
03300 OPDEF LIMZ [MOVEI]
03400 OPDEF SLIMZ [MOVSI]
03500
03600 OPDEF FIXX [FIX 233000]
03700 OPDEF FLOAT [FSC 233]
03800 DEFINE FLIM(AC,R)<HRLEI AC,(<R>)>;FLOATING IMMEDIATE.
03900
04000 OPDEF LACN[MOVN]↔ OPDEF DACN[MOVNM]
04100 OPDEF LACM[MOVM]↔ OPDEF DACM[MOVMM]
04200 OPDEF SAS[CAME]↔ OPDEF SAD[CAMN]
00100 ; SAIL LIKE SUBROUTINE LINKAGE.
00200 ↓P ←← 17
00300 DEFINE SUBR(NAME){INTERN NAME↔↓NAME: ;}
00400 DEFINE CALL(NAME,X1,X2,X3,X4){
00500 IFDIF <> <X1> {PUSH P,X1
00600 IFDIF <> <X2> {PUSH P,X2
00700 IFDIF <> <X3> {PUSH P,X3
00800 IFDIF <> <X4> {PUSH P,X4}}}}
00900 PUSHJ P,NAME}
01000
01100 ;ARGUMENT FETCH.
01200 DEFINE ARG1<-1(17)>
01300 DEFINE ARG2<-2(17)>
01400 DEFINE ARG3<-3(17)>
01500 DEFINE ARG4<-4(17)>
01600
01700 ;CALL AND RETURN VALUE.
01800 DEFINE SETQ (VAR,LIST){
01900 CALL(LIST)
02000 DAC 1,VAR}
02100
02200 ;RETURN FROM AN N-ARGUMENT SUBROUTINE CALL.
02300 DEFINE POP0J <POPJ 17,>
02400 ↓POP1J.: SUB 17,[XWD 2,2]↔GO @2(17)↔ DEFINE POP1J<GO POP1J.>
02500 ↓POP2J.: SUB 17,[XWD 3,3]↔GO @3(17)↔ DEFINE POP2J<GO POP2J.>
02600 ↓POP3J.: SUB 17,[XWD 4,4]↔GO @4(17)↔ DEFINE POP3J<GO POP3J.>
02700 ↓POP4J.: SUB 17,[XWD 5,5]↔GO @5(17)↔ DEFINE POP4J<GO POP4J.>
02800
02900 FOR @$ I←1,4{
03000 DEFINE RET$I(R){IFDIF<><R><LAC 1,R>↔GO RET$I$.}
03100 ↓RET$I$.: SUB P,[XWD I+1,I+1]↔GO @I+1(17)}
03200 DEFINE RET0(R){IFDIF<><R><LAC 1,R>↔POPJ P,}
03300
03400 ;ACCUMULATOR TRANSPARENCY.
03500 FOR @$ I←0,17{↓AC$I: 0↔}
03800 DEFINE SAVAC $(N){LAC[XWD 2,AC2]↔BLT AC$N}
03900 DEFINE GETAC (N){LAC[XWD AC2,2]↔BLT N}
04000
04100 ;MACROS FOR ALLOCATING AND NAMING WORKING SPACE.
04200 DEFINE ACCUMULATORS(LIST){ACPTR←←2
04300 FOR AC⊂(LIST)<AC←ACPTR↔ACPTR←←ACPTR+1↔>}
04400 DEFINE DECLARE (LIST){
04500 FOR VARNAM⊂(LIST)<VARNAM: 0↔>}
04600
04700 ;FATAL ERROR MESSAGE.
04800 DEFINE FATAL(STR){PUSHJ P,FATAL.↔ASCIZ/STR/}
04900 FATAL.: OUTSTR[ASCIZ/
05000 FATAL - /]↔OUTSTR @(17)↔INCHRW↔GO .-1↔LIT