|
|
DataMuseum.dkPresents historical artifacts from the history of: RegneCentralen RC3600/RC7000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RegneCentralen RC3600/RC7000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 4608 (0x1200)
Types: TextFile
Names: »PH00S«
└─⟦a2e222af0⟧ Bits:30001626 DOMUS disk image
└─⟦this⟧ »/PH00S«
; $Id: ZA025,v 1.3 2004/07/01 18:06:38 phk Exp $
;
; Poul-Hennings working version of MCPAR
.TITL ZP026
.NREL
.RDXO 10
.RDX 10
.TXTM 1
.TXTN 1
PGDS: 1B0+1B5
LAB00
0
PCDS-PGDS
.TXT .ZP026.
LAB00:
BUFF0: .BLK 256.
BUFF: BUFF0
TTADR: TTZON
WELCO: .+1*2
.TXT .<10><13>BEGIN DISKDUMP<10><13><0>.
DST: .+1
.TXT .DKP0<0><0>. ; Which driver
MYMSG: .+1
256.+5
512.
BUFF0*2
WHERE: 203.*2.*12.
NSEC: 203.*2.*12.
BP: 0
CSUM: 0
BN: 0
ERRN: 0
LAST: 0
BIRTH:
LDA 0,.3 ; Open the TTY
LDA 2,TTADR
OPEN
DIA 0,63. ; Read switches, add to start blockno.
OUTOCT
OUTNL
DIA 0,63.
LDA 1,WHERE
ADDZ 0,1
STA 1,WHERE
LDA 0,WELCO ; Hello world!
OUTTEXT
LOOP:
LDA 0,.0
STA 0,ERRN
STA 0,LAST
LDA 0,WHERE ; Sector number
JSR OUTW
LDA 1,MYMSG ; do read
LDA 2,DST
SENDM
MOVZL # 2,2,SZC
JSR ERR ; ERROR 0
ISZ ERRN
WAITA
STA 1,BN
MOV # 0,0,SZR
JSR ERR ; ERROR 1
ISZ ERRN
LDA 0,BN ; Byte count
MOVZR 0,0,SNR
JSR ERR ; ERROR 2
ISZ ERRN
STA 0,BN
LDA 2,TTADR
JSR OUTW
OUTSP
LDA 0,BUFF
STA 0,BP
LDA 0,.0
STA 0,CSUM
LOOP2:
LDA @ 0,BP ; Update checksum
LDA 1,CSUM
ADDZ 0,1
STA 1,CSUM
LDA 1,LAST
STA 0,LAST
SUBZ# 0,1,SZR
JMP ENC
LDA 1,.48
LDA 2,TTADR
OUTCH
JMP NW
ENC:
JSR OUTW ; Output word
NW:
ISZ BP ; increment pointer
DSZ BN ; until sector done
JMP LOOP2
OUTSP
LDA 0,CSUM ; CHECKSUM
JSR OUTW
OUTNL
ISZ WHERE
DSZ NSEC
JMP LOOP
LDA 0,BYE
OUTTEXT
OUTNL
JMP DEAD
BYE: .+1*2
.TXT .!!!<13><10>END DISKDUMP<0>.
OUTW: ; Output a word as three times six bits
STA 3,OUTWR ; in three characters.
JSR OUTX
MOVZR 0,0
MOVZR 0,0
MOVZR 0,0
MOVZR 0,0
MOVZR 0,0
MOVZR 0,0
JSR OUTX
MOVZR 0,0
MOVZR 0,0
MOVZR 0,0
MOVZR 0,0
MOVZR 0,0
MOVZR 0,0
JSR OUTX
LDA 3,OUTWR
JMP 0,3
OUTWR: 0
OUTX: STA 3,OUTXR ; Output six bits as one char.
STA 0,OUTXT
LDA 1,.63
AND 1,0
ADDZ 0,1 ; offset 63 gives Æ63...126Å
OUTCH
LDA 0,OUTXT
LDA 3,OUTXR
JMP 0,3
OUTXR: 0
OUTXT: 0
ERR:
STA 0,ERR0
STA 1,ERR1
STA 2,ERR2
STA 3,ERR3
LDA 2,TTAD
LDA 0,ERRTXT
OUTTEXT
LDA 0,WHERE
OUTOCT
OUTSP
LDA 0,WHERE
LDA 1,BOFF
SUBZ 1,0
OUTOCT
OUTSP
LDA 0,ERRN
OUTOCT
OUTSP
LDA 0,ERR0
OUTOCT
OUTSP
LDA 0,ERR1
OUTOCT
OUTSP
LDA 0,ERR2
OUTOCT
OUTSP
LDA 0,ERR3
OUTOCT
OUTSP
LDA 0,ERR3
LDA 1,P0
SUB 1,0
OUTOCT
OUTSP
OUTNL
JMP DEAD
P0: PGDS
BOFF: 203.*12.*2
ERRTXT: .+1*2
.TXT .<13><10>ERROR: (BN,BO,ERR,AC0,AC1,AC2,AC3): <0>.
ERR0: 0
ERR1: 0
ERR2: 0
ERR3: 0
TTGIV:
JSR ERR
DEAD:
LDA 2,TTAD
LDA 1,.1
CLOSE
DIEDIEDIE:
LDA 1,DEAD1
LDA 2,DEAD2
SENDM
LDA 2,CUR
STOPP
DEAD1: .+1
1B8
0
0
0
DEAD2: .+1
.TXT "S<0><0><0><0><0>"
TTAD: TTZON
TTZON:
Z.ZON TTY<0><0>,1,3.,512.,U,TTGIV,65533.,0,0
BUFFX:
Z.MBF PCDS,24.
PCDS:
Z.PCD ZP026,BUFFX,PGDS,33,DIEDIEDIE,BIRTH
.END PCDS
.EOT
«nul»