|
|
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: 8192 (0x2000)
Types: TextFile
Names: »CAA47«
└─⟦6568bc82f⟧ Bits:30001815 SG0114 Floppy
└─⟦this⟧ »/CAA47«
; PL 18.10.83 MODUL CAA46 / FJERNET 3 STORE RUTINER /
; IDAG-CALL-MODUL
; MED TORBEN TAMBO'S CARDREAD I AKTUEL VERSION *LIDT FARLIG*
; SIDSTE RETTELSE 1.10.81 KL 16
; BUF ÆNDRET SÅ RESCH-KONTROL UDELADES (=> NO LOOP)
; CARDREAD INPUTZONE ØGET TIL 50 ISTF 41 (KORTMARK-FEJL-RISIKO
PRDE1 ; PROCESS HEAD
.RDXO 16
;CDR11 ; ADDRESS OF CARDREAD REV 1.03
;.TXT @CARDREAD@ ; NAME OF -------''-------
FINDT
.TXT "FINDTEGN" ; FRA CAA42, ALLE ØVR FRA CAACF PÅ DISKETTE
; MED FÆRDIGE CALL-RUTINER
; SUBRUTINETABEL
BUF00
.TXT @BUF<0><0><0><0><0>@
GME00 ; GMEM-ADRESSE
.TXT "GMEM<0><0><0><0>" ; NAVN
;FLM00
;.TXT @FLYTMAT<0>@
;
;FIN00
;.TXT @FIND<0><0><0><0>@
;
KSP00
.TXT "KODESPEC"
SME00
.TXT "SMEM<0><0><0><0>"
FIX00
.TXT "FIX<0><0><0><0><0>"
FLO00
.TXT "FLOAT<0><0><0>"
0
0
0
0
0
0
«ff»
GME00: 2
REAL
REAL+REFERENCE
LDA 2,+0,2 ; AC1=A-ADRESSE
EXECUTE
GSM00
RET1
LDA 1,+0,2 ; JA: AC1=INDHOLD AF ADRESSE
BCALL FLOAT ; AC1 -> KOMMATAL
LDA 2,U.STK,3
LDA @ 2,+1,2 ; AC2=B-ADRESSE
STA 2,GME01 ; GEM B-ADRESSE
LDA 2,CUR
A.PDOUBLE ; GEM ADRESSEINDHOLD(A) I B
1
GME01: 0
RET1 ; END GMEM
«ff»
GSM00: LDA 0,+0,2 ; HENT A
LDA 1,+1,2
BCALL FIX ; FIX A
ADCZR 2,2 ; AC2=1B0-1
MOV 0,0,SNR ; 0<=AC1<=1B0-1
SNG 1,2
JMP ERR90 ; NEJ: ERROR UDSKRIV MEDD.
MOV 1,2 ; AC1-->AC2
RET1 ; RETURN
SUB 0,0
STA 0,RESCH ; INDFØJET 01.10.81
ERR90: ERROR
90
ERR91: ERROR
91
KSP00: 0
READS 0
STA 0,KSP01
RET1
KSP01: 0
«ff»
SME00: 2 ; 2 VARIABLE
REAL ; A (=A-ADRESSE)
REAL ; B (=DATA)
LDA 0,KSP01 ; SE GME00
LDA 1,KSP02
SUB 1,0,SZR
JMP ERR90
LDA 2,+1,2 ; AC2(!)=B-ADRESSE
LDA 0,+0,2 ; HENT REAL(!) B
LDA 1,+1,2
BCALL FIX ; FIX B
MOV 0,0,SZR ; 0<=B<=65535 ?
JMP ERR91 ; NEJ ERROR-RETURN
STA 1,U.S00,3 ; GEM AC1(B) I U.S00.USER
LDA@ 2,U.STK,3
EXECUTE ; EXEC GSM00(A-ADRESSE)
GSM00
RET1
LDA 1,U.S00,3 ; AC1=F(UDA+U.S00)=B
STA 1,+0,2 ; AC1-->ADR.AC2
RET1 ; END STOREMEMORY
KSP02: 42798
«ff»
BUF00: 3 ; 3 VARIABLE
REAL ; A
REAL ; OG B
REAL+REFERENCE ; OG C
LDA 1,RESCH ; HENT RESERVATIONSSTATUS (RESCH)
SUBZL 0,0 ; AC0=1
SUB# 1,0 ,SKP ; RESCH=AC0??
JMP .-3 ; JA: PRØV IGEN
STA 0,RESCH ; NEJ: SÆT RESCH=1
LDA @ 1,+2,2 ; AC1=F(F(USER.U.STK)+1)=C-ADRESSE
STA 1,BADRE ; GEM C-ADRESSE
LDA 2,+1,2 ; AC2=B-ADRESSE
LDA 0,+0,2 ; HENT B=VARBUFNR
LDA 1,+1,2
BCALL FIX
SUBC 2,2 ; AC2=0
INCOL 2,2 ; AC2=3
MOV 0,0,SNR ; LIGGER 0<=VARBUFNR<=3 ?
SNG 1,2
JMP ERR90-2 ; NEJ: RETURN MED ERROR 90 ** CB RET
MOVZL 1,1 ; AC1=1
LDA 2,BUFAD ; AC2=BUFFERADRESSE
ADD 2,1 ; AC1=AC1+AC2
STA 1,ADRES ; GEM ADRESSE(VARNR)
SUBZL 0,0 ; AC0=1
LDA @ 2,U.STK,3
LDA 0,+0,2 ; HENT A(1. ORD)
LDA 2,CUR
MOV 0,0,SZR ; A=0???
JMP PART2 ;
LDA 3,ADRES ; HENT BUFADRESSE
LDA 0,+0,3 ; AC0=F(ADRES)
LDA 1,+1,3 ; AC1=F(ADRES+1)
LDA 2,CUR
A.PDOUBLE ; AC'S-->B
1 ; SEGMENT NUMBER
BADRE: 0 ; B-ADRESSE
JMP UD ;
PART2: SUBZL 0,0
LDA 1,BADRE ; NEJ: HENT B-ADRESSE
A.GDOUBLE ; HENT B-->;AC'S
LDA 3,ADRES ; AC3=BUFADRESSE(VARNR)
STA 0,+0,3 ; AC'S-->BUF(VARNR)
STA 1,+1,3
UD: SUB 0,0 ; AC0=0
STA 0,RESCH ; RESCH=0
RET1 ; END BUF
;
RESCH: 0 ; RESERVERINGSSTATUS
BUFAD: BUFTB
BUFTB: .BLK 8 ; VARBUF OMRÅDE
ADRES: 0
«ff»
FIX00: 3
REAL+REFERENCE
REAL+REFERENCE
REAL+REFERENCE
SUBZL 0,0 ; AC0=1
LDA @ 1,+0,2 ; AC1=A-ADRESSE
LDA 2,CUR ; AC2=CUR
A.GDOUBLE ; HENT A
STA 0,U.S00,3 ; GEM ORD 1 AF A
SUBC 0,0 ; AC0=0
BCALL FLOAT ; FLOAT ORD2 AF A
LDA 2,CUR ; AC2=CUR
LDA 3,U.STK,3 ; AC3=F(F(USER)+U.STK)
LDA @ 3,+2,3 ; AC3=C-ADRESSE
STA 3,FIX01 ; GEM C-ADRESSE
A.PDOUBLE ; GEM FLOAT AF ORD2 AF A I B
1
FIX01: 0
LDA 1,U.S00,3 ; HENT ORD1 AF A
SUBC 0,0 ; AC0=0
BCALL FLOAT ; FLOAT ORD1 AF A
LDA 2,CUR ; AC2=CUR
LDA 3,U.STK,3
LDA @ 3,+1,3 ; AC3=B-ADRESSE
STA 3,FIX02 ; GEM B-ADRESSE
A.PDOUBLE ; GEM FLOAT AF ORD2 AF A I C
1
FIX02: 0
RET1 ; END FIX
«ff»
FLO00: 3
REAL
REAL
REAL+REFERENCE
LDA 2,+0,2 ; AC1=A-ADRESSE
EXECUTE ; EXEC FLO02
FLO02
RET0 ; HVIS ERROR
STA 1,U.S00,3 ; GEM DEL 1 AF C
LDA 2,U.STK,3
LDA 2,+1,2 ; AC1=B-ADRESSE
EXECUTE
FLO02
RET0
LDA 0,U.S00,3 ; HENT DEL 1 AF C
LDA 2,U.STK,3
LDA @ 2,+2,2 ; AC2=C-ADRESSE
STA 2,FLO01 ; GEM C-ADRESSE
LDA 2,CUR
A.PDOUBLE ; AC0,AC1-->C
1
FLO01: 0
RET1
FLO02: LDA 0,+0,2
LDA 1,+1,2 ; ** CB RET **
BCALL FIX ; LAV OM TIL HELTAL
MOV 0,0,SNR ; 0=<A/B=<32K ???
RET1 ; JA: RETURN
ERROR ; NEJ: RETURN MED ERROR 90
90.
«ff»
; PHK & PL 10.10.83 FLG SIDE FRA CAA42, FOREG ER FRA CAACF
; TILFØJELSE AF FINDTEGN TIL CA23 - NY FIL CAA41
; CALL"FINDTEGN",S$,TXT$,START,FUNDET
FINDT: 4
STRING
STRING
REAL
REAL+REFER
; PDTA S$ PDA
; TXT$ PDA
; STARTINDEX PDA (REAL)
; FUNDETINDEX PDA (REAL+REFERENCE)
; S$ PDA ADR I DATASEGM
; NO BYTES
; SEGM NO
; TXT$ PDA ADR I DATASEGM
; NO BYTES
; SEGM NO (=1)
; START PDA 1.WORD IN FLOATING REPR
; 2.WORD
; FUNDET PDA ADR I DATASEGM
; 21.9.81 PL ADRESSERING AF DATA ER JUSTERET TIL
; KORREKT FACON DVS FX S$-ADR FINDES VED LDA @ 1,0,2
; ISTF LDA 1,4,2 (SOM FORUDSÆTTER AT PDA FØLGER EXACT EFTER PDT)
; US00 INDEX
; US01 S$(1) TEXT DER SKAL FINDES
; US02 BYTEADR FOR TXT$(INDEX) I DATASEGMENTET
LDA @ 1,0,2 ;HENT S$ WORD ADR.
LDA 2,CUR
LDA 0,80
A.GBYTE
STA 0,U.S01,3 ;FØRSTE CHR. AF S$
LDA 2,U.STK,3
LDA 2,2,2
LDA 0,+0,2 ;HENT START INDEKS
LDA 1,+1,2
BCALL FIX
MOV 0,0,SZR
JMP ERUD1 ;NEGATIV
MOV 1,0
STA 1,U.S00,3
LDA 2,U.STK,3
LDA @ 1,1,2 ; PL 23.9.81
ADD 0,1 ;TXT$(INDEKS) BYTE ADR. I AC1
; PL 20.9.81 RETTELSER:
STA 1,U.S02,3 ; US02=BYTEADR FOR TXT$(INDEX) I DATASEGM
; FLG RUTINE FORUDSÆTTER
; AC0 AC1 AC2 AC3
; ü TXT$(I) PDTA USER
; BY-ADR
LOP1:
LDA 2,1,2 ; ER INDEX<=LEN(TXT$) ? ELLERS
LDA 0,1,2 ; AC0 ØGES MED 1 21.9.81 -23.9
LDA 2,U.S00,3 ; EX:
INC 0,0 ; C=0 AC2=0110 COMPL-> 1001
ADCZ # 2,0,SNC ; AC0=LEN(TXT$)+1 = 0111 => C=1
JMP EJF
LDA 2,CUR ;FLYTTET AF PL
; PL RETT. SLUT
LDA 0,80
A.GBYTE ;HENT BYTE TXT$(INDEKS)
LDA 1,U.S01,3 ; HENT S$
ISZ U.S00,3 ; FORØG INDEX (! INDEN !! EVT UDGANG AF RUTINEN!)
SUB 0,1,SNR ;ENS?
JMP FUNDT ; !!!!!!!!!!!!!!!!!!!! H E R !!!!!!!
ISZ U.S02,3 ;FORØG BYTE ADR.
LDA 1,U.S02,3 ; PL TILFØJELSE SØNDAG 17.9.81
LDA 2,U.STK,3 ; PDTA I AC2 MANGLEDE / PL 23.9.81
JMP LOP1
ERUD1: ERROR ;INDEKSFEJL
31
FUNDT: LDA 1,U.S00,3 ;FUNDET
SUB 0,0 ; STED=INDEKS
NNN: BCALL FLOAT
LDA 3,U.STK,3
LDA @ 3,3,3
STA 3,WADRS
LDA 2,CUR
A.PDOUBLE
1
WADRS: 0
RET1
EJF: ; ADC 1,1 FJERNET PL SØNDAG
ADC 0,0
ADC 1,1 ;IKKE FUNDET STED=-1
JMP NNN
-1
PRDE2 ; DENNE SIDE TILFØJET FRA CAA42 MENS FOREG. SIDER ER FRA CAACF
; PÅ DISKETTEN MED FÆRDIGE CALL-RUTINER
; ETABL PHK $ PL 10.10.83 KL 23 ETC ....
«ff»
«nul»