Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-04 - decus/20-0130/macro.scm
There are 2 other files named macro.scm in the archive. Click here to see a list.
File 1)	DSK:MACRO.441	created: 1053 10-JAN-1977
File 2)	DSK:MACRO.MAC	created: 1151 14-JAN-1977

1)1		VCUSTOM==0		;NON-DEC UPDATE LEVEL
1)		LOC	<.JBVER==137>
****
2)1		VCUSTOM==2		;NON-DEC UPDATE LEVEL
2)		LOC	<.JBVER==137>
**************
1)2	IFNDEF PURESW,<PURESW==1>
****
2)2	IFNDEF FT.U01,<FT.U01==1>
2)	IFNDEF PURESW,<PURESW==1>
**************
1)4	;*******************  END OF REVISION HISTORY  *******************
1)5	SUBTTL	OTHER PARAMETERS
1)	.PDP==	^D100		;[270] BASIC PUSH-DOWN POINTER
****
2)4	;
2)	;*****CUSTOMER REVISION HISTORY*****
2)	;1		IMPLEMENT USER PUSHDOWN LIST--FEATURE TEST FT.U01
2)	;2		CLEAR USER PDP ON PRGEND AND END, CHECK FOR STACK UNDERFLOW
2)	;*******************  END OF REVISION HISTORY  *******************
2)5	SUBTTL	OTHER PARAMETERS
2)	IFN FT.U01,<$USRLN==^D50> ;LENGTH OF USER PUSH DOWN LIST
2)	.PDP==	^D100		;[270] BASIC PUSH-DOWN POINTER
**************
1)71	IFN POLISH,<
****
2)71	IFN FT.U01,<
2)		MOVE	V,[IOWD $USRLN,$USSTK] ; RESET USER STACK
2)		MOVEM	V,$USRPD	; SO DO IT
2)	>; END OF FT.U01
2)	IFN POLISH,<
**************
1)77	TAPE0:	PUSHJ	PP,STOUTS	;FINISH THIS LINE
****
2)77	IFN FT.U01,<	;USER PUSH-DOWN LIST
2)	$PDUSR:	PUSH	PP,AC0		;SAVE INSTR FOR LATER
2)		PUSHJ	PP,GETSYM	;GET SIXBIT SYMBOL TO PUSH/POP
2)		 JRST	[TRO	ER,ERRA	;NO SYMBOL--FLAKY STATEMENT
2)			POP	PP,AC0	;KEEP THE STACK HONEST
2)			POPJ	PP,]	;GIVE UP WITH ERROR FLAG SET
2)		PUSHJ	PP,SSRCH	;LOOKUP THE SYMBOL
2)		 JRST	[TRO	ER,ERRU	;SYMBOL MUST BE DEFINED TO PUSH IT
2)			POP	PP,AC0	;CLEAR PDL
2)			POPJ	PP,]	;GIVE UP
2)		POP	PP,AC0		;RESTORE INSTR
2)		TLNN	AC0,(1B7)	; POP?
2)		JRST	$PDUS1		; NOPE, DON'T CHECK FOR UNDERFLOW
2)		HRRZ	AC1,$USRPD	; GET CURRENT STACK POINTER
2)		CAIGE	AC1,$USSTK	; IS THE STACK EMPTY?
2)		JRST	[TRO	ER,ERRA	;YES GIVE AN ERROR
2)			POPJ	PP,]	; GIVE UP WITH AN ERROR
2)	$PDUS1:	MOVE	AC1,$USRPD	;PICK UP USER PDP
2)		TLO	AC0,(<AC1>B12)	;PUT LOCATION OF PDP IN INSTR
2)		HRRI	AC0,V		;SET LOCATION OF DATA
2)		XCT	AC0		;PUSH/POP THE SYMBOL
2)		MOVEM	AC1,$USRPD	;SAVE PDP FOR LATER
File 1)	DSK:MACRO.441	created: 1053 10-JAN-1977
File 2)	DSK:MACRO.MAC	created: 1151 14-JAN-1977

2)		TLNE	AC0,(1B7)	;WAS THIS A PUSH?
2)		 PUSHJ	PP,UPDATE	;NO--RESET VALUE OF SYMBOL
2)		CAIN	C,','		;ANOTHER SYMBOL COMING?
2)		 JRST	$PDUSR		;YES--GO HANDLE IT
2)		POPJ	PP,		;NO--GET NEXT STATEMENT
2)	>;END IFN FT.U01
2)	TAPE0:	PUSHJ	PP,STOUTS	;FINISH THIS LINE
**************
1)152	GETSET:	MOVEI	3,PDPERR
1)		HRRM	3,.JBAPR	;SET TRAP LOCATION
****
2)152	GETSET:
2)	IFN FT.U01,<
2)		MOVE	3,[IOWD $USRLN,$USSTK] ; RESET THE USER PUSH DOWN STACK
2)		MOVEM	3,$USRPD	; SO DO IT
2)	>;END OF FT.U01
2)		MOVEI	3,PDPERR
2)		HRRM	3,.JBAPR	;SET TRAP LOCATION
**************
1)169		MOVE	PP,SAVEPP	;GET A VALID STACK POINTER
****
2)169		MOVE	PP,[IOWD $USRLN,$USSTK] ; RESET BOTH TYPES OF STACKS
2)		MOVEM	PP,$USRPD	; INCLUDING USER TYPE
2)		MOVE	PP,SAVEPP	;GET A VALID STACK POINTER
**************
1)195	X	.ASSIG, 751
****
2)195	IFN FT.U01,<
2)	IFN POLISH,<$BEG==762>
2)	IFE POLISH,<$BEG==760>
2)	X	$POP  , $BEG
2)	X	$PUSH , <$BEG+1>
2)	>;END IFN FT.U01
2)	X	.ASSIG, 751
**************
1)200	OP2TAB:
****
2)199	IFN FT.U01,<
2)		POP	$PDUSR			;$POP
2)		PUSH	$PDUSR			;$PUSH
2)	>;END IFN FT.U01
2)200	OP2TAB:
**************
1)215	IFN TEMP,<TMPFIL: SIXBIT /MAC/
****
2)215	IFN FT.U01,<
2)	$USRPD:	IOWD	$USRLN,$USSTK
2)	>;END IFN FT.U01
2)	IFN TEMP,<TMPFIL: SIXBIT /MAC/
**************
1)217	PASS2I:
****
2)216	IFN FT.U01,<
2)	$USSTK:	BLOCK	$USRLN		;USER PUSH-DOWN STACK
2)	>;END IFN FT.U01
2)217	PASS2I:
File 1)	DSK:MACRO.441	created: 1053 10-JAN-1977
File 2)	DSK:MACRO.MAC	created: 1151 14-JAN-1977

**************