Google
 

Trailing-Edge - PDP-10 Archives - de-10-omona-v-mc9 - nopag0.mac
There are 7 other files named nopag0.mac in the archive. Click here to see a list.
	TITLE	NOPAG0 - REMOVE REFERENCES TO PAGE 0 FROM SAVE FILE

;***COPYRIGHT 1977, DIGITAL EQUIPMENT CORP., MAYNARD MASS.*****

VNOPG0==1
VWHO==0
VMINOR==0
VEDIT==1

.JBVER==137
	LOC	.JBVER
	BYTE	(3)VWHO(9)VNOPG0(6)VMINOR(18)VEDIT
	RELOC


F=0
T1=1
T2=2
T3=3
T4=4
N=5
W=6
P1=10
P2=11
P3=12
P4=13
P=17

IN==0
OUT==1

;FLAGS IN F
F.DOT==1
F.LBK==2
F.CMA==4


DEFINE ERROR(TEXT)<
	XLIST
	JRST	[OUTSTR [ASCIZ /
?/]
		OUTSTR [ASCIZ /TEXT/]
		OUTSTR [ASCIZ /
/]
		JRST ST]
	LIST
>
ST:	RESET
	MOVE	P,PDL
	OUTSTR	[ASCIZ /
*/]
	MOVEI	P4,OUTBLK
	SETZ	F,
	MOVE	T1,[INIBLK,,OUTBLK]
	BLT	T1,INPPN

PARSE:	PUSHJ	P,REDSIX
	CAIE	T1,":"
	JRST	PARSE1
	MOVEM	W,DEVICE(P4)
	JRST	PARSE
PARSE1:	SKIPN	NAME(P4)
	MOVEM	W,NAME(P4)
	TRZE	F,F.DOT
	HLLM	W,EXT(P4)
	TRZE	F,F.LBK
	HRLM	N,PPN(P4)
	TRZE	F,F.CMA
	HRRM	N,PPN(P4)
	CAIN	T1,"."
	TRO	F,F.DOT
	CAIN	T1,"["
	TRO	F.LBK
	CAIN	T1,","
	TRO	F,F.CMA
	CAIN	T1,"="
	MOVEI	P4,INBLK
	CAIE	T1,15
	JRST	PARSE
DOIT:	OPEN	IN,INBLK
	  ERROR <INPUT OPEN ERROR>
	OPEN	OUT,OUTBLK
	  ERROR	<OUTPUT OPEN ERROR>
	LOOKUP	IN,INNAM
	  ERROR	<LOOKUP ERROR>
	ENTER	OUT,OUTNAM
	  ERROR	<ENTER ERROR>

LOOP:	PUSHJ	P,GETWRD
	JUMPGE	T1,DONE
	MOVE	P1,T1		;IOWD
LOOPS:	HRRZ	T1,P1
	CAIL	T1,777
	JRST	OK
	PUSHJ	P,GETWRD	;IOWD TOO LOW, THROW AWAY 1 WORD
	AOBJN	P1,LOOPS
	JRST	LOOP
OK:	MOVE	T1,P1
	PUSHJ	P,PUTWRD	;STUFF IOWD INTO OUTPUT FILE
	PUSHJ	P,GETWRD	;GET DATA WORD
	PUSHJ	P,PUTWRD
	AOBJN	P1,.-2
	JRST	LOOP

DONE:	SKIPN	OBUF
	ERROR	<PREMATURE EOF (EXE FILE?)>
	PUSHJ	P,PUTWRD	;STORE GOTO WORD
	CLOSE	OUT,
	STATZ	OUT,740000
	  ERROR	<ERROR ON OUTPUT CLOSE>
	JRST	ST		;TRY ANOTHER FILE
GETWRD:	SOSG	IBUF+2
	IN	IN,
	  CAIA
	JRST	INERR
	ILDB	T1,IBUF+1
	POPJ	P,
INERR:	STATZ	IN,20000
	  ERROR	<INPUT FILE PREMATURE EOF>
	ERROR	<INPUT ERROR>

PUTWRD:	SOSG	OBUF+2
	OUT	OUT,
	  CAIA
	ERROR	<OUTPUT ERROR>
	IDPB	T1,OBUF+1
	POPJ	P,

;RETURNS N=OCT NUMBER   W=WORD   T1=BREAK CHAR
REDSIX:	MOVE	P1,[POINT 6,W]
	SETZB	N,W
REDSX1:	INCHWL	T1
	CAIN	T1,32
	EXIT			;^Z
	CAILE	T1,140
	TRZ	T1,40		;LC TO UC
	CAIG	T1,"Z"
	CAIGE	T1,"A"
	CAIA
	JRST	REDLTR
	CAIG	T1,"9"
	CAIGE	T1,"0"
	POPJ	P,
	LSH	N,3
	ADDI	N,-60(T1)
REDLTR:	TRC	T1,40
	TLNE	P1,770000
	IDPB	T1,P1
	JRST	REDSX1
DEVICE==1
NAME==3
EXT==4
PPN==6

OUTBLK:	14
	SIXBIT	/DSK/
	OBUF,,
OUTNAM:	0
	SIXBIT	/SAV/
	0
	0
INBLK:	14
	SIXBIT	/DSK/
	IBUF
INNAM:	0
	SIXBIT	/SAV/
	0
INPPN:	0

INIBLK:	14
	SIXBIT	/DSK/
	OBUF,,
	0
	SIXBIT	/SAV/
	0
	0
	14
	SIXBIT	/DSK/
	IBUF
	0
	SIXBIT	/SAV/
	0
	0
PDL:	-10,,.
	BLOCK	11
IBUF:	BLOCK	3
OBUF:	BLOCK	3
	END	ST