|
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 - download
Length: 4608 (0x1200) Types: TextFile Names: »PH00S«
└─⟦a2e222af0⟧ Bits:30001626 DOMUS disk image └─⟦this⟧
; $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»