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

⟦7ff544588⟧ TextFile

    Length: 8192 (0x2000)
    Types: TextFile
    Names: »CAA47«

Derivation

└─⟦6568bc82f⟧ Bits:30001815 SG0114 Floppy
    └─ ⟦this⟧ »/CAA47« 

TextFile

; 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»