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

⟦c271732a2⟧ TextFile

    Length: 3584 (0xe00)
    Types: TextFile
    Names: »MMTX4«

Derivation

└─⟦cb4367ef8⟧ Bits:30001782 SG0002 Floppy
    └─ ⟦this⟧ »/MMTX4« 

TextFile

		PRDE1				; Program head MM-110981 
							; Følgende call kan benyttes: 
							; CALL"GET",T$,A 
							; T$ = streng dimentioneret > A 
							; A = Antallet af tegn, der skal inputtes i T$. 
		GET00 
		.TXT "GET<0><0><0><0><0>" 
							; Ved call indeholder accumulatorerne følgende værdier 
							; AC0 = ? 
							; AC1 = ? 
							; AC2 = UDA+U.STK = PDTA 
							; AC3 = UDA 
							; 
							; Adresse              Lagerindhold 
							; =======              ============ 
							; USER (page 0)        UDA 
							; UDA+PIO              Adr. af prim. I/O zone 
							; UDA + U.S00          User dataarealler 
							; UDA + U.S20          - 
							; UDA + U.S21          Subrutine tabel  
							; UDA + U.STK		   PDTA 
							; PDTA             0   T$ PDA 
							;                  1   A PDA 
							; PDA T$           2   Adr. af 1. byte. 
							;                  3   Max ant. byte 
							;                  4   Current ant. byte 
							; PDA A            5   1. word 
							;                  6   2. word 
							; Subrutine tabel slut 
		0					;  
		GET00: 2			; To variable 
		STRING+REFERENCE	; T$ 
		REAL				; og A 
		LDA 0,+5,2			; AC0 = 1. WORD AF A 
		LDA 1,+6,2			; AC1 = 2. WORD AF A 
		BCALL FIX			; Hental => Kommatal 
		MOV # 0,0,SZR 
		JMP ERR31			; Index fejl 
		STA 1,U.S01,3		; U.S01 = Antal chr, der skal inputtes. 
		LDA 2,U.STK,3		; AC2=PDTA 
		LDA 1,+2,2			; AC1= WORDADR AF 1. BYTE I T$	
		STA 1,U.S02,3		; U.S02 = Adr. af 1. byte		LDA 2,U.STK,3  
		LDA 1,+3,2			; AC1=Max ant. chr. 
		STA 1,U.S03			; U.S03=AC1 
		LDA 0,U.S01			; AC0=U.S01 
		SUBZL 0,1,SZC		; AC0 > AC1 ? 
		JMP ERR31			; JA => Index fejl. 
GET13:		LDA 2,CUR			; AC2=CUR 
		LDA 3,USER			; AC3=USER 
		LDA 0,PIO,3			; Adr. af primære I/O zone (term.). 
		F.ICHAR				; Hent en carakter 
		JMP ERRUD			; Hvis fejl. Skriv den ud. 
		LDA 0,44			; AC0=32 
		SUBZL 2,2			; AC2=1 
		SUB 2,0				; AC0=31 
		SUB # 1,0,SNR		; CHR > 31 (>='space') 
		JMP GET13			; Nej !! Går tilbage til 'GET13' 
		MOV 1,0				; AC0 = AC1 
		LDA 1,U.S02,3 
		LDA 2,CUR 
		A.PBYTE				; Put chr ud i T$. 
		1					; Hvordan ud!! 
		LDA 1,U.S02,3		; GEM AC1 i U.S02 
		INC 1,1				; AC1=AC1+1 
		STA 1,U.S02,3		; GEM AC1 UD I 'U.S02' 
		LDA 2,U.S01,3		; AC2=U.S01 
		SUB # 1,0,SNR		; Input færdigt!! 
		JMP GET13			; Nej 
		RET1				; Ja 
ERR31:	ERROR 
		31					; Indexfejl (returner til BASIC) !! 
ERRUD:	STA 2,+2,1 
		ERROR	 
		0					; Evt. BCALL IOERR 
							; RET0 
							; 
							; 
							; End of list:«so» MMTXT 
		PRDE2					; PROGRAM SLUT 
▶02◀S▶12◀DEA▶1c◀TALINIW▶01◀D▶03◀TOS!ACES+BCAF▶13◀LO+TP▶16◀TA&IA«ff»
«nul»