DataMuseum.dk

Presents historical artifacts from the history of:

RegneCentralen RC3600/RC7000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RegneCentralen RC3600/RC7000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦811c8c081⟧ TextFile

    Length: 3072 (0xc00)
    Types: TextFile
    Names: »PH00S«

Derivation

└─⟦45bd0f8dd⟧ Bits:30000464 DOMUS disk image
    └─ ⟦this⟧ »/PH00S« 

TextFile



; $Id: ZA026,v 1.2 2005/02/17 17:33:37 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