|
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: 8192 (0x2000) Types: TextFile Names: »CA018«
└─⟦97a19ae26⟧ Bits:30001812 SG0111 Floppy └─⟦this⟧ └─⟦ab0d9f9c1⟧ Bits:30001776 DOMUS UNIT 0 └─⟦this⟧
KEMI0: 5 ; 5 VARIABLE STRING+ARRAY ; AC$(7,60) DATASTRENGE FRA FIL STRING+ARRAY ; AF$(<VAR>,60) SØGESTRENGE STRING+ARRAY ; AB$(7,10) FØRSTE UDSKRIVNINGSSTRENG STRING+ARRAY ; AG$(7,18) SIDSTE UDSKRIVNINGSSTRENG REAL+ARRAY ; NUM(7) ANTAL SØGESTRENGE PR. LÆST STRENG LDA 1,.3 ; AC1=3 LDA @ 0,+0,2 ; HENT 1. MAX-BYTE ADRESSE AC$ ADD 1,0 ; AC0=3+1.MAX-BYTE ADR AC$=1.BYTEADR AC$ STA 0,U.S10,3 ; GEM 1.BYTEADRESSE I U.S10 LDA @ 0,+2,2 ; HENT 1. MAX-BYTE ADRESSE AB$ ADD 1,0 ; AC0=3+1.MAX-BYTE ADR AB$=1.BYTEADR AB$ STA 0,U.S13,3 ; GEM 1.BYTEADRESSE I U.S13 LDA @ 0,+3,2 ; HENT 1. MAX-BYTE ADRESSE AG$ ADD 1,0 ; AC0=3+1.MAX-BYTE ADR AG$=1.BYTEADR AG$ STA 0,U.S14,3 ; GEM 1.BYTEADRESSE I U.S14 STA 1,U.S15,3 ; GEM NUM=3 I U.S15 BEG00: SUB 0,0 ; AC0=0 STA 0,U.S12,3 ; NULSTIL AC$=/<>AF$ INDIKATOR LDA 2,U.STK,3 ; AC2=U.STK+UDA LDA 1,.3 ; AC1=3 LDA @ 0,+0,2 ; HENT 1. MAX-BYTE ADRESSE AC$ STA 0,U.S00,3 ; GEM 1.MAXBYTE ADR AC$ I U.S00 STA 0,U.S01,3 ; GEM 1.MAXBYTE ADR AC$ I U.S01 LDA @ 0,+1,2 ; HENT 1. MAX-BYTE ADRESSE AF$ ADD 1,0 ; AC0=3+1.MAX-BYTE ADR AF$=1.BYTEADR AF$ STA 0,U.S02,3 ; GEM 1.BYTEADR I U.S02 LDA @ 0,+5,2 ; HENT 1.WORDADRESSE NUM STA 0,U.S05,3 ; GEM 1.WORDADR I U.S05 LDA 2,CUR ; AC2=CUR SUB 0,0 ; AC0=0 STA 0,U.S07,3 ; NULSTIL TÆLLEVARIABEL NEXTS: LDA 0,U.S07,3 ; HENT CURRENT TÆLLEVARIABEL LDA 1,.7 ; AC1=7 SNE 0,1 ; TÆLLEVAR=7 ? JMP BEG00 ; JA - HOP TIL BEG00 INC 0,0 ; NEJ - TÆLLEVAR=TÆLLEVAR+1 STA 0,U.S07,3 ; GEM CUR TÆLLEVAR I U.S07 LDA 0,U.S12,3 ; HENT AC$=/<>AF$ INDIKATOR MOV 0,0 SZR ; INDIKATOR=1 ? JMP NEXTC ; JA - HOP TIL NEXTC LDA 1,U.S15,3 ; NEJ - HENT NUM SUB 0,0 ; AC0=0 MOV 0,2 ; AC0 -> AC2 ZERO: INC 2,2 ; NULSTIL "SKIP" MARKERING P.G.A. STA 0,DATA,2 ; SIDSTE BYTE I SØGESTRENG SNL 2,1 ; TÆLLEVAR>=NUM ? JMP ZERO ; NEJ - HOP TIL ZERO LDA 2,CUR ; AC2=CUR LDA 1,.63 ; JA - AC1=63 LDA 0,U.S01,3 ; HENT CURRENT 1.MAX-BYTEADR AC$ ADD 0,1 ; AC1=1.MAX-BYTEADR+63 STA 1,U.S01,3 ; GEM NÆSTE 1.MAX-BYTEADR AC$ I U.S01 LDA 1,U.S00,3 ; HENT CUR 1.MAX-BYTEADR AC$ LDA 0,.3 ; AC0=3 ADD 1,0 ; AC0=3+1.MAX-BYTEADR «ff» STA 0,U.S00,3 ; GEM 1.BYTEADR AC$ I U.S00 LDA 1,U.S05,3 SUBZL 0,0 ; AC0=SEGMENT NR.=1 A.GWORD ; HENT NUM STA 0,U.S15,3 ; GEM NUM I U.S15 INC 1,1 ; NUM-ADR=NUM-ADR+1 INC 1,1 ; NUM-ADR=NUM-ADR+1 STA 1,U.S05,3 ; GEM CUR NEXT NUM-ADR I U.S05 LDA 1,U.S15,3 ; AC1=NUM LDA 0,.63 ; AC0=63 LDA 2,U.S02,3 ; AC2=CURRENT AF$ 1.BYTEADR SUB 3,3 ; AC3=TÆLLEVAR=0 LOOP: INC 3,3 ; TÆLLEVAR=TÆLLEVAR+1 STA 2,ADR,3 ; GEM AF$ ADR I ADR+TÆLLEVAR ADD 0,2 ; AF$-ADR=AF$-ADR+63 SGR 3,1 ; T$ÆLLEVAR > NUM ? JMP LOOP ; NEJ - HOP TIL LOOP LDA 3,USER ; JA - AC3=USER STA 2,U.S02,3 ; GEM NEXT AF$ ADR I U.S02 LDA 2,CUR ; AC2=CUR LDA 0,U.UCH,3 ; AC0=ZONEADR FILENO=0 SUB 1,1 ; TÆLLEVAR=0 STA 1,U.S17,3 ; GEM TÆLLEVAR I U.S17 NEXTC: F.CHEOF ; END OF FILE ? RET1 ; JA - RETURN TIL BASIC F.ICHAR ; NEJ - LÆS NÆSTE BYTE IND FRA FIL - IOERR ? BCALL IOERR ; JA - RETURN MED RET0 OG IOERRKODE TIL BASIC STA 0,U.S16,3 ; NEJ - GEM LÆST BYTE I U.S16 MOV 0,0 SNR ; LÆST BYTE=CHR(0) ? JMP NULST ; JA - HOP TIL NULST LDA 0,U.S12,3 ; NEJ - HENT AF$=/<>AC$ INDIKATOR MOV 0,0 SZR ; INDIKATOR=1 ? JMP NEXTC ; JA - HOP TIL NEXTC PROC: LDA 2,U.S17,3 ; NEJ - HENT TÆLLEVAR LDA 1,U.S15,3 ; AC1=NUM SNE 2,1 ; TÆLLEVAR=NUM ? JMP PROC1 ; JA - HOP TIL PROC1 INC 2,2 ; NEJ - TÆLLEVAR=TÆLLEVAR+1 STA 2,U.S17,3 ; GEM TÆLLEVAR I U.S17 LDA 1,.63 ; AC1=63 LDA 0,DATA,2 ; HENT INDIKATOR OM CHR(0) I AF$ LDA 2,CUR ; AC2=CUR SNE 0,1 ; INDIKATOR=63 ? JMP PROC ; JA - HOP TIL PROC SUBZL 0,0 ; NEJ - SEGMENT NR=1 LDA 2,U.S17,3 ; AC2=TÆLLEVAR LDA 1,ADR,2 ; AC1=AF$-ADR FRA ADR+TÆLLEVAR LDA 2,CUR ; AC2=CUR A.GBYTE ; HENT AF$-SØGEBYTE TIL AC0 MOV 0,0 SNR ; AF$-BYTE=CHR(0) ? JMP COUNT ; JA - HOP TIL COUNT LDA 1,U.S16,3 ; NEJ - HENT "LÆST BYTE FRA FIL" TIL AC1 SNE 0,1 ; AC$=AF$ ? JMP INCRE ; NEJ - HOP TIL INCRE LDA 2,U.S17,3 ; JA - HENT TÆLLEVAR «ff» PRO1: SUB 0,0 ; AC0=0 STA 0,U.S17,3 ; GEM TÆLLEVAR=0 I U.S17 LDA 1,U.S00,3 ; AC1=CUR BYTEADR AC$ LDA 0,U.S16,3 ; AC0=BYTE LÆST FRA FIL A.PBYTE ; GEM BYTE BORT I 1 ; DATASEGMENT=1 INC 1,1 ; CUR BYTEADR=CUR BYTEADR+1 STA 1,U.S00,3 ; GEM CUR BYTEADR AC$ I U.S00 JMP NEXTC NULST: LDA 0,U.S12,3 ; HENT AF$=/<>AC$ INDIKATOR MOV 0,0 SZR ; INDIKATOR=1 ? JMP NEXTS ; JA - HOP TIL NEXTS LDA 1,U.S00,3 ; NEJ - AC1=NEXT MAX-BYTEADR AC$ SUB 0,0 ; AC0=0 A.PBYTE ; GEM <0> BYTE I DATASEGMENT 1 ; SEGMENT NR=1 LDA 0,U.S01,3 ; HENT NEXT BYTEADR AC$ STA 0,U.S00,3 ; GEM NEXT BYTEADR AC$ I U.S00 LDA 0,U.S07,3 ; HENT TÆLLEVAR TIL AC0 LDA 1,.7 ; AC1=7 SEQ 0,1 ; TÆLLEVAR=7 ? JMP NEXTS ; NEJ - HOP TIL NEXTS SUB 1,1 ; JA - AC1=0 STA 1,U.S11,3 ; GEM TÆLLEVAR=0 I U.S11 LDA 0,U.S10,3 ; HENT AC$ 1.BYTEADR FRA U.S10 STA 0,U.S03,3 ; GEM 1.BYTEADR AC$ I U.S03 LDA 0,U.S13,3 ; HENT AB$ BYTEADR FRA U.S13 STA 0,U.S06,3 ; GEM AB$ BYTEADR I U.S06 LDA 0,U.S14,3 ; HENT AG$ BYTEADR FRA U.S14 STA 0,U.S08,3 ; GEM AG$ BYTEADR I U.S08 OUT: LDA 1,U.S11,3 ; AC1=TÆLLEVAR LDA 0,.7 ; AC0=7 SNE 0,1 ; TÆLLEVAR=7 ? JMP BEG00 ; JA - HOP TIL BEG00 INC 1,1 ; NEJ - TÆLLEVAR=TÆLLEVAR+1 STA 1,U.S11,3 ; GEM TÆLLEVAR I U.S11 LDA 1,U.S06,3 ; HENT BYTEADR AB$ LDA 0,COUT,3 ; AC0=ZONEADR TIL $LPT/USER TERMINAL EXECUTE ; HOP TIL WRITE ; SUBROUTINE WRITE STA 2,U.S06,3 ; GEM NEXT BYTEADR AG$ I U.S06 LDA 1,U.S03,3 ; HENT BYTEADR AC$ EXECUTE ; HOP TIL WRITE STA 2,U.S03,3 ; GEM NEXT BYTEADR AC$ I U.S03 LDA 1,U.S08,3 ; HENT BYTEADR AG$ EXECUTE ; HOP TIL WRITE STA 2,U.S08,3 ; GEM NEXT BYTEADR AG$ I U.S08 JMP OUT ; HOP TIL OUT WRITE: F.OTEXT ; PRINT OUT TEXT - IOERR ? BCALL IOERR ; JA - RETURN TIL BASIC MED RET0 OG IOERRKODE LDA 2,.63 ; NEJ - AC2=63 ADD 1,2 ; AC2=63+BYTEADR RET0 CHECK: SUBZL 0,0 ; AC0=1 LDA 2,U.S17,3 ; HENT TÆLLEVAR TIL AC1 STA 0,DATA,2 ; GEM 1 I DATA+TÆLLEVAR LDA 2,CUR ; AC2=CUR JMP PROC DATA: 0 .BLK 20 «ff» «ff» «nul»