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 ``