|
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: 7168 (0x1c00) Types: TextFile Names: »KEMIA«
└─⟦1b01578bf⟧ Bits:30001826 SG0125 Floppy └─⟦this⟧ └─⟦eef5428dd⟧ Bits:30001825 SG0124 Floppy └─⟦this⟧
PRDE1«ff» READ: 6 ; 6 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 ; AH(<VAR>) MODE FOR ENKELT SØGESTRENG 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 BEGIN: 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,+4,2 ; HENT 1.WORDADRESSE AH STA 0,U.S04,3 ; GEM 1.WORDADR I U.S04 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 BEGIN ; JA - HOP TIL BEGIN 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 2,U.S15,3 ; NEJ - HENT NUM SUB 0,0 ; AC0=0 MOV 0,1 ; AC0 -> AC1 ZERO: INC 1,1 ; NULSTIL "SKIP" MARKERING P.G.A. STA 0,DATA,1 ; SIDSTE BYTE I SØGESTRENG SNL 1,2 ; TÆLLEVAR>=NUM ? JMP ZERO ; NEJ - HOP TIL ZERO 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 ; HENT NUM-ADR TIL AC1 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 CURRENT NUM-ADR I U.S05 LDA 1,U.S15,3 ; AC1=NUM LDA 0,U.S02,3 ; HENT AF$ BYTEADR STA 0,U.S19,3 ; GEM U.S02 I U.S19 STA 0,U.S18,3 ; GEM U.S02 I U.S18 LDA 2,.63 ; AC2=63 BCALL IMPYA ; AC0=63*NUM+AF$-BYTEADR STA 0,U.S02,3 ; GEM NEXT AF$-ADR I U.S02 LDA 2,CUR ; AC2=CUR LDA 0,U.UCH,3 ; AC0=ZONEADR TIL 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 0,U.S17,3 ; NEJ - HENT TÆLLEVAR LDA 1,U.S15,3 ; AC1=NUM SNE 0,1 ; TÆLLEVAR=NUM ? JMP PROC1 ; JA - HOP TIL PROC1 INC 0,0 ; NEJ - TÆLLEVAR=TÆLLEVAR+1 STA 0,U.S17,3 ; GEM TÆLLEVAR I U.S17 LDA 0,DATA,0 ; HENT INDIKERING OM CHR(0) I AF$ MOV 0,0 SZR ; AC0=1 ? JMP PROC ; JA - HOP TIL PROC SUBZL 0,0 ; NEJ - SEGMENT NR=1 LDA 1,U.S18,3 ; HENT CUR BYTEADR AF$ A.GBYTE ; HENT AF$ SØGEBYTE TIL AC0 LDA 2,.63 ; AC2=63 ADD 2,1 ; AC1=63+BYTEADR AF$ STA 1,U.S18,3 ; GEM CUR BYTEADR AF$ I U.S18 MOV 0,0 SNR ; AF$-BYTE=CHR(0) ? JMP CHECK ; JA - HOP TIL CHECK LDA 2,CUR ; NEJ - AC2=CUR LDA 1,U.S16,3 ; AC1=LÆST BYTE FRA FIL SNE 0,1 ; AC$<>AF$ ? JMP PROC ; JA - HOP TIL PROC SUBZL 0,0 ; NEJ - AC0=1 STA 0,U.S12,3 ; GEM INDIKATOR=1 I U.S12 JMP NEXTC ; HOP TIL NEXTC PROC1: LDA 0,U.S19,3 ; HENT CUR BYTEADR AF$ INC 0,0 ; BYTEADR=BYTEADR+1 STA 0,U.S18,3 ; GEM BYTEADR AF$ I U.S18 STA 0,U.S19,3 ; GEM BYTEADR AF$ I U.S19 «ff» 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 BEGIN ; JA - HOP TIL BEGIN 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 ; SUBROUTINE 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 ; SUBROUTINE 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 CHECK: SUBZL 0,0 ; AC0=1 LDA 1,U.S17,3 ; HENT TÆLLEVAR TIL AC1 STA 0,DATA,1 ; GEM 1 I DATA,TÆLLEVAR JMP PROC DATA: 0 .BLK 20 «ff» «nul»