mirror of
https://github.com/PDP-10/stacken.git
synced 2026-04-19 00:27:51 +00:00
194 lines
2.8 KiB
Plaintext
194 lines
2.8 KiB
Plaintext
.SBTTL DNDEMO - RDE DEMONSTRATION 5 MAY 76
|
||
|
||
|
||
|
||
;THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED
|
||
; OR COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE.
|
||
;
|
||
;COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION
|
||
; 1976,1977,1978,1979,1980,1981,1984,1988.
|
||
;ALL RIGHTS RESERVED.
|
||
|
||
VRDEMO =1 ;FILE EDIT NUMBER
|
||
|
||
|
||
|
||
.IIF NDF FTDEMO,FTDEMO=0
|
||
.IF EQ FTDEMO
|
||
.MACRO DEMO ARG,ADR
|
||
.ENDM DEMO
|
||
.IFF
|
||
|
||
|
||
.MACRO DEMO ARG,ADR
|
||
.IF IDN <ARG>,<CODE>
|
||
|
||
.MACRO X QBLK,QDDB
|
||
.WORD QBLK ;LINE BLOCK
|
||
.WORD QDDB ;TTY DDB
|
||
.WORD 0 ;START OF MSG UNDER CONSTRUCTION
|
||
.WORD 0 ;NEXT CHAR OF MSG
|
||
.ENDM X
|
||
|
||
DEMO.T:
|
||
;LOCATE THE FIRST TRIBUTARY LINE
|
||
ZLB=LBAMPT
|
||
.IF EQ FTDEMO-1
|
||
.REPT NTRIB
|
||
X ZLB,ADR
|
||
ZLB=ZLB+LB.SIZ
|
||
.ENDR
|
||
.IFF
|
||
ZDDB=T0DDB
|
||
ZN=NTRIB
|
||
.IIF LT TTYN-ZN,ZN=TTYN
|
||
.REPT ZN
|
||
X ZLB,ZDDB
|
||
ZLB=ZLB+LB.SIZ
|
||
ZDDB=ZDDB+DB.TSZ
|
||
.ENDR
|
||
.ENDC
|
||
DEMO.E:
|
||
|
||
DEMO.F: SAVE <J>
|
||
BR DEMO00
|
||
DEMO.O: SAVE <J>
|
||
MOV #DEMO.T,J
|
||
10$: CMP (P),(J)
|
||
BEQ DEMO01
|
||
ADD #10,J
|
||
CMP J,#DEMO.E
|
||
BLO 10$
|
||
DEMO00: JSR PC,FRECKS
|
||
DEMO02: RESTORE <J>
|
||
RTS PC
|
||
DEMO01: MOV 2(J),J
|
||
SAVE <R4,R3,R2,R1,R0,R0>
|
||
MOV CN.LEN(R0),R4
|
||
ADD #CN.NCT,(P)
|
||
10$: MOV (P),R0
|
||
ADVCNK R0,FREE
|
||
MOV R0,(P)
|
||
INC (P)
|
||
MOVB (R0),R0
|
||
JSR PC,QTYCHR
|
||
SOB R4,10$
|
||
MOV (P)+,R0
|
||
BIC #CNKSIZ-1,R0
|
||
BEQ 20$
|
||
JSR PC,FRECKS
|
||
20$: BIT #DS.ACT,(J)
|
||
BNE 30$
|
||
JSR PC,XMTBEG
|
||
30$: RESTORE <R0,R1,R2,R3,R4>
|
||
BR DEMO02
|
||
|
||
DEMO.I:
|
||
MOV #DEMO.T+2,-(P)
|
||
10$: CMP @(P),J
|
||
BEQ 15$
|
||
ADD #10,(P)
|
||
CMP (P),#DEMO.E
|
||
BLO 10$
|
||
27$: MOV #207,R0
|
||
TST (P)+
|
||
80$: JSR PC,QTYCHR
|
||
BIT #DS.ACT,(J)
|
||
BNE 85$
|
||
JSR PC,XMTBEG
|
||
85$: RTS PC
|
||
15$: BIT #DHROVR!DHRFER,R1
|
||
BNE 27$
|
||
MOV R1,-(P)
|
||
MOV R1,R0
|
||
JSR PC,80$
|
||
MOV (P)+,R1
|
||
BIC #177600,R1 ;STRIP PARITY BIT
|
||
MOV (P),R2
|
||
MOV 2(R2),R0
|
||
BNE 20$
|
||
JSR PC,ERSGET
|
||
MOV R0,2(R2)
|
||
MOV R0,4(R2)
|
||
ADD #CN.NCT,4(R2)
|
||
CLR CN.LEN(R0)
|
||
20$: INC CN.LEN(R0)
|
||
MOV 4(R2),R0
|
||
ADVCNK R0,EXTEND
|
||
MOVB R1,(R0)+
|
||
MOV R0,4(R2)
|
||
CMPB R1,#015
|
||
BNE 25$
|
||
MOV #012,R1
|
||
BR 15$
|
||
25$: CMPB R1,#012
|
||
BEQ 26$
|
||
MOV 2(R2),R0
|
||
Z=MSGMAX-30
|
||
.IIF LE Z,Z=1
|
||
CMP #Z,CN.LEN(R0)
|
||
BHI 30$
|
||
26$: MOV J,-(P)
|
||
MOV -2(R2),J
|
||
MOV 2(R2),R0
|
||
CLR 2(R2)
|
||
CLR 4(R2)
|
||
MOV #SOH,R2
|
||
JSR PC,DDQ.01
|
||
MOV (P)+,J
|
||
30$: TST (P)+
|
||
RTS PC
|
||
.ENDC
|
||
.IF IDN <ARG>,<SETUP>
|
||
$110: TST #1
|
||
BEQ $116
|
||
CLR .-4
|
||
MOV #DEMO.T+2,R4
|
||
115$: MOV (R4),R0
|
||
MOV DB.LCB(R0),R0
|
||
MOV #DEMO.I,LC.INS(R0)
|
||
ADD #10,R4
|
||
CMP R4,#DEMO.E
|
||
BLO 115$
|
||
$116:
|
||
.ENDC
|
||
|
||
.IF IDN <ARG>,<KILL>
|
||
.IF NB <ADR>
|
||
CMP J,#LBAMPT
|
||
BLO .+10
|
||
.IFTF
|
||
JSR PC,DEMO.F
|
||
.IFT
|
||
BR ADR
|
||
.ENDC
|
||
.ENDC
|
||
|
||
.IF IDN <ARG>,<DUMP>
|
||
.IF NB <ADR>
|
||
CMP J,#LBAMPT
|
||
BLO .+10
|
||
.IFTF
|
||
JSR PC,DEMO.O
|
||
.IFT
|
||
BR ADR
|
||
.ENDC
|
||
.ENDC
|
||
|
||
.IF IDN <ARG>,<SEND>
|
||
.IF NB <ADR>
|
||
CMP J,#LBAMPT
|
||
BLO .+10
|
||
.IFTF
|
||
JSR PC,DEMO.I
|
||
.IFT
|
||
BR ADR
|
||
.ENDC
|
||
.ENDC
|
||
.ENDM DEMO
|
||
.ENDC ;.IF EQ FTDEMO
|
||
|
||
|
||
.IIF NDF DEMODV,DEMODV=0
|
||
DEMO CODE,DEMODV
|
||
|