Google
 

Trailing-Edge - PDP-10 Archives - decuslib10-06 - 43,50366/recsm9.mac
There are no other files named recsm9.mac in the archive.
         REPEAT 0,<LA SUBRUTINA I NOS SIRVE PARA INSERTAR UN TEXTO
                   QUE ESTE EN LA LISTA DE ESPERA>

I:	POP TXPD,QTEXT0
	PUSH TXPD,QTEXT0
	MOVEM TEXT1,TEXT11
	HRRZI AC0,SAC
	BLT AC0,SAC+16
	SETZB AC1,IT1
	MOVE AC7,TEXT3
	ILDB CHREC,QTEXT0
	JUMPE CHREC,.+3
	IBP ,AC7
	AOJA AC1,.-3
	JUMPE AC1,I2
	LDB AC0,[POINT 6,TEXT2,5]
	CAIE AC0,1
	JRST .+4
	ADDI TEXT2,1
	MOVEI AC0,44
	DPB AC0,[POINT 6,TEXT2,5]
	DPB AC0,[POINT 6,IT1,11]
	HRRZ AC6,TEXT2
	IDIVI AC1,5
	IMULI AC2,7
	HRRZ AC3,TEXT3
	SUBI AC3,-1(TEXT2)
	ADD TEXT2,AC1
	HRRZM TEXT2,TEM
	HRRM TEXT2,IT1
	MOVN AC1,AC2
	MOVEM AC7,TEXT3
	HRRZS AC7,AC7
	CAML AC7,LTEXT
	JRST NME
	HLL AC6,[MOVE AC4,(AC3)]
	MOVE AC7,[ROT AC4,-1]
	MOVE FLAG,[ROTC AC4,(AC1)]
	ADD TEM,[MOVEM AC5,1(AC3)]
	MOVE CHREC,[ROTC AC4,-43(AC2)]
	MOVE TEXT2,[JRST I1]
	MOVE TEXT1,.+1
	SOJGE AC3,6
I1:	ROTC AC4,44(AC1)
	DPB AC4,IT1
	HRLZI AC0,SAC
	BLT AC0,16
	MOVE TEXT1,TEXT2
	ILDB CHREC,QTEXT0
	JUMPE CHREC,I2
	IDPB CHREC,TEXT2
	JRST .-3
I2:	POPJ REC,





	REPEAT 0,<SUBRUTINA PARA PONER EL APUNTADOR "1", AL 

		PRINCIPIO DEL TEXTO. >



J:	MOVEM TEXT1,TEXT11
	MOVE TEXT1,TEXT0
	POPJ REC,

	IFE PURE,<

K:	PUSHJ REC,L
	MOVE TEM,JOBFF
	HRRZI AC0,SAC
	BLT AC0,SAC+17
	ILDB CHREC,QTEXT0
	SETOM IV
	CAIE CHREC,"T"
	SETZM IV
	SETOM F4
	MOVE JOBFF0
	MOVEM JOBFF
	JRST RETURN
K.1:	HRRZ AC1,1(16)
	HLL AC1,[POINT 7,,]
	ILDB CHREC,AC1
	JUMPE CHREC,K.3
	SKIPA
	ILDB CHREC,AC1
	IDPB CHREC,TEXT3
	JUMPN CHREC,.-2
K.3:	HRLZI AC0,SAC
	BLT AC0,17
	MOVEM TEM,JOBFF
	SKIPE ,IV
	AOS (REC)
	POPJ REC,
		>

	IFN PURE,<

K:	TTCALL 3,ERF4
	CALL [SIXBIT /EXIT/]
		>






         REPEAT 0,<LA SUBRUTINA L NOS SIRVE PARA  BORRAR UN TEXTO DE
                   LISTA DE ESPERA GENERADA POR G>

L:	POP TXPD,QTEXT0
	HLRZ ,QTEXT0
	CAIN ,440700
	MOVEM QTEXT0,QTEXT
	POPJ REC,


	REPEAT 0,<SUBRUTINA PARA PREGUNTAR SI UN TEXTO ES MENOR  QUE
		 OTRO		>

M:	POP TXPD,QTEXT0
	PUSH TXPD,QTEXT0
	MOVE ,TEXT1
	ILDB CHREC,QTEXT0
	JUMPE CHREC,M.F+11
	OK (,TEXT3,M.F)
	ILDB AC1,
M.1:	CAMLE CHREC,AC1
	JRST M.F
	CAME CHREC,AC1
	JRST M.V
	ILDB CHREC,QTEXT0
	JUMPE CHREC,M.F+11
	OK ( ,TEXT3,M.F)
	ILDB AC1,
	JRST M.1
M.F:	SOS (REC)
	MOVEM TEXT1,TS1
	MOVE TEM,TEXT11
	MOVEM ,TEXT1
	PUSHJ REC,B
	TLN
	MOVE ,TEXT1
	MOVE TEXT1,TS1
	MOVEM TEM,TEXT11
	MOVEM ,TEXT2
	AOS (REC)
	POPJ REC,
M.V:	ILDB CHREC,QTEXT0
	ILDB AC1,
	JUMPE CHREC,M.F+1
	OK ( ,TEXT3,M.F)
	JRST M.V


	REPEAT 0,<SUBRUTINA PARA PONER UNA PAGINA
		EN EL AREA DE TRABAJO>


P:	STATZ INCHN,20000
	POPJ REC,
P.T1:	MOVEI TEM,^D600*5
P1:	PUSHJ REC,REA
	JRST P2
	IDPB CHREC,TEXT3
	CAIN CHREC,14
	JRST P2
	HRRZ ,TEXT3
	CAML ,LTEXT
	JRST NME
	SOJG TEM,P1
	MOVEI TEM,^D132
	HRRZ ,TEXT3
	ADDI ,30
	CAML ,LTEXT
	JRST NME
P3:	PUSHJ REC,REA
	JRST P2
	IDPB CHREC,TEXT3
	CAIE CHREC,12
	SOJG TEM,P3
P2:	AOS (REC)
	POPJ REC,



	REPEAT 0,<SUBRUTINA PARA PONER EN EL PDL, EL TEXTO QUE

		ESTA ENTRE LOS APUNTADORES "1" Y "2". > 

Q:	PUSHJ REC,PREPQ
	MOVE AC1,TEXT1
Q.2:	OK (AC1,TEXT2,Q.3)
	ILDB CHREC,AC1
	IDPB CHREC,QTEXT0
	JRST Q.2
Q.3:	CLEAR CHREC,
	IDPB CHREC,QTEXT0
Q.RET:	ADDI QTEXT0,1
	HLL QTEXT0,[POINT 7,,]
	MOVEM QTEXT0,QTEXT
	POPJ REC,

	REPEAT 0,<SUBRUTINA PARA LEER UN CARACTER Y PONERLO
		 EN EL PUSHDOWN LIST>


R:	PUSHJ REC,REA
	POPJ REC,
	PUSHJ REC,PREPQ
	IDPB CHREC,QTEXT0
	AOS (REC)
	JRST Q.3


	REPEAT 0,<SUBRUTINA PARA ALMACENAR EL TEXTO LIMITADO POR
		LOS APUNTADORES TEXT1 Y TEXT2 EN EL REGISTRO K>


S:	POP TXPD,QTEXT0
	CAIL QTEXT0,0
	CAIL QTEXT0,10
	JRST ERK
	IMULI QTEXT0,21
	ADDI QTEXT0,S0
	HLL QTEXT0,[POINT 7, ,]
	MOVE ,TEXT1
ST1:	OK (0,TEXT2,ST2)
	ILDB CHREC,
	IDPB CHREC,QTEXT0
	JRST ST1
ST2:	MOVEI CHREC,0
	IDPB CHREC,QTEXT0
	POPJ REC,




	REPEAT 0,<SUBRUTINA PARA IMPRIMIR EL ULTIMO
		TEXTO LEIDO>

T:	POP TXPD,QTEXT0
	PUSH TXPD,QTEXT0
	HLRZ ,QTEXT0
	CAIE ,440700
	JRST T.2
	ILDB CHREC,QTEXT0
	JUMPE CHREC,T2
	TTCALL 1,CHREC
	JRST T+5
T2:	POPJ REC,
T.2:	PUSHJ REC,O.NUM0
	CLEAR AC1,
	IDPB AC1,AC2
	MOVE QTEXT0,[POINT 7,NARG,]
	JRST T+5

	REPEAT 0,<SUBRUTINA PARA BUSCAR UN TEXTO Y DEJAR LOS APUNTADORES
		DELIMITANDO EL TEXTO QUE ESTA ANTES DEL TEXTO BUSCADO Y
		LA PENULTIMA BUSCADA.>


U:	MOVEM TEXT1,TS1
	MOVEM TEXT2,TS2
	MOVE TEXT1,TEXT2
	PUSHJ REC,F
	JRST U.1
	MOVE TEXT2,TEXT1
	MOVE TEXT1,TS2
	AOS (REC)
	POPJ REC,
U.1:	MOVE TEXT1,TS1
	MOVE TEXT2,TS2
	POPJ REC,



V:	MOVEM TEXT1,TS1
	MOVEM TEXT2,TS2
	MOVE TEXT1,TEXT2
	PUSHJ REC,F
	JRST V.1
	MOVE TEXT1,TS1
	AOS (REC)
	POPJ REC,
V.1:	MOVE TEXT1,TS1
	MOVE TEXT2,TS2
	POPJ REC,


         REPEAT 0,<ESTA SUBRUTINA ESCRIBE UN TEXTO ALMACENADO
                   ANTERIORMENTE EN LA MEMORIA POR LOS OTROS
                   OPERADORES DE REC MARKOV>

W:	TLNN FLAG,S.W
	JRST ERR4
	OK (TEXT1,TEXT2,WF)
	MOVE ,TEXT1
WT1:	OK (,TEXT2,WF)
	ILDB CHREC,         
	PUSHJ REC,WRI
         JRST WT1            
WF:	POPJ REC,

	REPEAT 0,<SUBRUTINA PAR LEER UN CARACTER DEL TTY>

X:	PUSHJ REC,PREPQ
	TTCALL ,CHREC
	IDPB CHREC,QTEXT0
	JRST Q.3

	REPEAT 0,<SUBRUTINA PARA ESCRIBIR UN CARACTER EN EL TTY>

Y:	MOVE TEXT0
	CAMN ,TEXT3
	POPJ REC,
	OK ( ,TEXT3,Y.1)
	ILDB CHREC,
	TTCALL 1,CHREC
	JRST .-4
Y.1:	POPJ REC,



         REPEAT 0,<LA SUBRUTINA Z NOS SIRVE PARA PONER  LOS
                   APUNTADORES TEXT1 Y TEXT2 A CERO>

Z:	MOVEM TEXT1,TEXT11
	MOVE TEXT1,TEXT3
	MOVE TEXT2,TEXT3
	POPJ REC,

	REPEAT 0,<LA SUBRUTINA Q GENERA UN TEXTO 'XXXX'
		Y LO DEPOSITA EN EL PDL. >

QUOTE:	PUSHJ REC,PREPQ
	HRR ,(REC)
	HLL ,[POINT 7,,]
QU.2:	ILDB CHREC,
	IDPB CHREC,QTEXT0
	JUMPN CHREC,QU.2
	HRRM ,(REC)
	AOS (REC)
	JRST Q.RET


	REPEAT 0,<SUBRUTINA PARA EJECUTAR CONTADOR.>

CONT:	AOS @(REC)
	POP TXPD,AC1
	CAML AC1,@(REC)
	JRST .+4
	SETZM @(REC)
	AOS (REC)
	POPJ REC,
	AOS (REC)
	AOS (REC)
	POPJ REC,


	REPEAT 0,<SUBRUTINA PARA CARGAR EL ACUMULADOR AC1

	CON UN NUMERO ENTERO>

LOADAC:	TLNE FLAG,PDLARG
	JRST .+3
	PUSHJ REC,PREPQ
	POP TXPD,QTEXT0
	MOVE QTEXT0,@(REC)
	PUSH TXPD,QTEXT0
	AOS (REC)
	POPJ REC,

CNA:	PUSHJ REC,L
	MOVE CHREC,QTEXT0
	PUSHJ REC,PREPQ
	IDPB CHREC,QTEXT0
	JRST Q.3

	REPEAT 0,<SUBRUTINA PARA CONVERTIR UN CARACTER ASCII

	A SU EQUIVALENTE DECIMAL.>

CAN:	PUSHJ REC,L
	ILDB CHREC,QTEXT0
	PUSH TXPD,CHREC
	POPJ REC,

SYSF:	PUSHJ REC,L
	CLEAR
	HLLZ AC1,[POINT 7,,]
	ILDB CHREC,QTEXT0
	IDPB CHREC,AC1
	JUMPN CHREC,.-2
	CAMN ,[ASCII "TIME"]
	JRST TIME0
	CAMN , [ASCII "DATE"]
	JRST DATE0
	CAMN , [ASCII "RTIME"]
	JRST RTIME
	CAMN , [ASCII "PPN"]
	JRST PPN
	CAMN , [ASCII "YECHO"]
	JRST YECHO
	CAMN , [ASCII "NECHO"]
	JRST NECHO
	CAMN , [ASCII "READ"]
	JRST OPEN
	CAMN , [ASCII "WRITE"]
	JRST OPEN
	CAMN ,[ASCII "CLOSE"]
	JRST CLOSEF
	CAMN , [ASCII "BACKR"]
	JRST ,BACKR
	CAMN , [ASCII "BACKF"]
	JRST BACKF
	CAMN ,[ASCII "DELET"]
	JRST DELET
	CAMN ,[ASCII "RUN"]
	JRST RUN
	JRST ILF




	REPEAT 0,<SUBRUTINA PARA PREGUNTAR SI EL ULTIMO TEXTO
		LEIDO ES IGUAL AL ARGUMENTO DE LA SUB.>


EQ:	PUSHJ REC,L
	POP TXPD,TEM
	PUSH TXPD,TEM
	CAMN QTEXT0,TEM
	JRST EQUAL2+1
	HLRZ AC2,QTEXT0
	HLRZ AC3,TEM
	CAIE AC2,440700
	POPJ REC,
	CAME AC2,AC3
	POPJ REC,
EQUAL1:	ILDB AC1,TEM
	ILDB ,QTEXT0
	JUMPE AC1,EQUAL2
	CAMN AC1,
	JRST EQUAL1
EQUAL3:	POPJ REC,
EQUAL2:	JUMPN ,.-1
	AOS (REC)
	POPJ REC,


	REPEAT 0,<SUBRUTINA PARA REGRESAR LA CINTA MAGNETICA DE 

		ENTRADA UN FILE.>

BACKR:	MTAPE INCHN,7
	MTAPE INCHN,0
	STATO INCHN,4000
	JRST BACK1
BACK:	MOVEI CHREC,"F"
	PUSHJ REC,PREPQ
	IDPB CHREC,QTEXT0
	JRST Q.3
BACKF:	MTAPE INCHN,17
	MTAPE INCHN,0
	STATZ INCHN,4000
	JRST BACK
	MTAPE INCHN,7
	MTAPE INCHN,0
	STATZ INCHN,4000
	JRST BACK
	MTAPE INCHN,17
	MTAPE INCHN,0
	STATZ INCHN,4000
	JRST BACK
	MTAPE INCHN,16
	MTAPE INCHN,0
	JRST .+3
BACK1:	STATZ INCHN,20000
	JRST .+3
	MOVEI CHREC,"T"
	JRST BACK+1
	MTAPE INCHN,16
	MTAPE INCHN,0
	JRST BACK


REPPDL:	HLRZ ,TXPD
	CAIL ,146
	JRST OVL
	POP TXPD,QTEXT0
	SUBI QTEXT0,1
	JUMPL QTEXT0,ERPDL
	HRRZ AC1,TXPD
	SUB AC1,QTEXT0
	MOVE AC2,(AC1)
	HLRZ ,AC2
	CAIN ,440700
	JRST .+3
	PUSH TXPD,AC2
	POPJ REC,
	PUSHJ REC,PREPQ
	ILDB CHREC,AC2
	IDPB CHREC,QTEXT0
	JUMPE CHREC,Q.RET
	JRST .-3






	REPEAT 0,<SUBRUTINA PARA PREPARAR LOS APUNTADORES DEL
		PUSH DOWN LIST>

PREPQ:	TLNE FLAG,PDLARG
	JRST .+7
	MOVE TXPD,TXPDG
	HRRI QTEXT0,TEXTG
	HLL QTEXT0,[POINT 7,,]
	MOVEM QTEXT0, QTEXT
	SETZM ,TEXTG
	TLO FLAG,PDLARG
	MOVE QTEXT0,QTEXT
	HLRZ ,TXPD
	CAIL ,146
	JRST OVL
	PUSH TXPD,QTEXT
	POPJ REC,


IIIAAAA>>AAA>						AA@@@@IIIA			``