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

⟦9186285ec⟧ TextFile

    Length: 5632 (0x1600)
    Types: TextFile
    Names: »LKANN«

Derivation

└─⟦99bc78d90⟧ Bits:30001771 CALL-RUTINER under DP4-DOMAC
    └─ ⟦this⟧ »/LKANN« 

TextFile

PRDE1 
; «so»Callrutine modul indtastet 26.10.81. 
; PRIMTAL  er anden version den første anvendte IDIV med ringe held 
; DENNE PRIMTAL ANVENDER FORSØGSMÆSSIGT MONITORENS DIVIDE RUTINE 
; NAMECONV ER EN LOOKUP UTILITY PROCEDURE DER KALDES MED  
;  STN  CALL NAMECONV ,A,B,C$ 
; BIT0 TIL BIT31 I A OG BIT0 TIL BIT7 I B OMSÆTTES TIL ET NAVN I C$ 
; GMEM,SMEM OG KODESPEC INDSÆTTES EFTER DENNE BLOK !!!HUSK PRDE2!!! 
 
; DIVIDE ER ET DIVISIONS FORSØG 
; MULTIPLY ET ET MULTIPLIKATIONS FORSØG 
; DIVIMULT ER EN SELVPROGRAMMERENDE KOMBINATION 
; 
NMCON 
.TXT @NAMECONV@ 
PRM00 
.TXT @PRIMTAL@ 
SME00 
.TXT @SMEM<0><0><0><0>@ 
GME00 
.TXT @GMEM<0><0><0><0>@ 
KSP00 
.TXT @KODESPEC@ 
DIVI0 
.TXT @DIVIDE<0><0>@ 
MULT0 
.TXT @MULTIPLY@ 
DIMU0 
.TXT @DIVIMULT@ 
0 
 
PRM00: 1 
       REAL 
       LDA    0,1,2 
       LDA    1,2,2 
       BCALL FIX 
       MOV  # 0,0,SNR 
       MOVR # 1,1,SNC 
       JMP    ERR16 
       STA    1,SAVE0 
       LO     1,1 
LOOPP: INC    1,1 
       LDA    0,SAVE0 
       SNE    0,1 
       RET1 
       DIVIDE 
       SNZ    3,3 
       JMP    LOOPP 
ERR16: ERROR 
       16 
SAVE0: 0 
 
 
 
; «so»Udvidet fix call rutine 
 
NMCON: 3 
       REAL 
       REAL 
       STRING+REFERANDUM 
       LDA    1,82,0                   ; 5 
       LDA    0,8,2  
       SNL    0,1 
       JMP    E31                      ; 'INDEKSFEJL' 
       LDA    1,7,2 
       STA    1,BYTE1 
       LDA    1,9,2 
       STA    1,CONTS                  ; actual number of bytes 
       LDA    1,0,2 
       MOVZL  1,1 
       STA    1,BYTE0 
LOO00: GETBYTE 
       SNZ    0,0                      ; null-byte ? 
       RET1 
       LDA    1,BYTE1  
       A.PBYTE 
       1 
      LDA   1,CONTS
       LO    0,0
       A.GWORD
       LDA    0,82,0                   ; endnu et femtal 
       SNE    0,1                      ; home sweet home 
       RET1 
       INC    0,0
       A.PWORD
       1
       ISZ    BYTE0 
       ISZ    BYTE1 
       LDA    0,82,0 
       JMP    LOO00 
E31:   ERROR 
       31 
BYTE0: 0 
BYTE1: 0 
CONTS: 0 
; U.STK :      +0   REAL ADR. 
;              +1   REAL ADR. 
;              +2   STRING DESCR. ADR. 
;              +3   1.WORD  all bits used 
;              +4   2.WORD  all bits used 
;              +5   1.WORD  8   bits used 
;              +6   2.WORD  no  bits used 
;              +7   address of 1.byte 
;              +8   max. dim. of string 
;              +9   actual no. of bytes 
 
 
; Utility procedurer : FLAPD float and put double 
;           ---------------------------------------------------- 
;           !   AC0    !    AC1     !    AC2       !    AC3    ! 
;           ---------------------------------------------------- 
;           ! 1.word   !  2.word    !  word addr   !   irrel   ! 
;           ---------------------------------------------------- 
; 
FLAPD: STA    2,APD00 
       LDA    3,USER 
       BCALL  FLOAT 
       LDA    2,CUR 
       A.PDOUBLE 
       1 
APD00: 0 
       RET1 
; 
; Utility procedurer : GDFIX get double and fix 
;           ---------------------------------------------------- 
;           !    AC0   !   AC1     !   AC2       !     AC3     ! 
;           ---------------------------------------------------- 
;           ! 1.word   !  2.word   ! undefined   !    USER     ! 
;           ---------------------------------------------------- 
; og dette gælder naturligvis ved return 
; 
GDFIX: LDA   2,CUR 
       LO    0,0 
       A.PDOUBLE 
       BCALL FIX 
       RET1 
; 
; Ved entry AC1=1.word adresse 
; 
 
; UANVENDELIGT FOR TIDEN 
DIVI0: 0 
       RET1 
MULT0: 0 
       RET1 
DIMU0: 0 
       RET1 
«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

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»

PRDE2
; EDITERET SAMMEN DEN 26.10.81 VED TORBEN TAMBO
«ff»
«nul»