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

⟦091dba787⟧ TextFile

    Length: 20992 (0x5200)
    Types: TextFile
    Names: »PAED4«

Derivation

└─⟦78ff92c50⟧ Bits:30001797 SG0017 Floppy
    └─ ⟦this⟧ »/PAED4« 

TextFile

; PL ALMEN FILEDITOR / VERS 1.04 17.4.84 / AFPUDSNING AF 1.03 / PAED5

; PL ALMEN FILEDITOR 1.03 /7-9.4.84/ MEST ELEMENTÆR VERSION
; FØRSTE KØRENDE UDGAVE (UFULDST. & MED FEJL...) 11.4.84 KL 17
; ANDEN UDG. VERS. 1.03 UNDER UDVIKLING (FRA 13.4.84)
; FORTSAT UDVIKL 14.4.84 EFTERM
; 15.4.84 MÅSSKE I OG K FÆRDIG ! FILNAVN NU PAED4 !

	.TITL PEDIT 
	.NREL 
	.RDXO 16 
	.RDX 10 
	.TXTM 1 
	.TXTN 1 
PGDS:	1B0+1B5+1B15	;PROGRAMDESCRIPTOR (7 WORDS) 
	LAB00 
	0 
	PCDS-PGDS 
	.TXT 'FEDIT' 

.NOLOC 1
LAB00:	.TXT "<10><10> GEN. FIL-EDITOR <13><10> PL APRIL 84 / VERS. 1.04<10><10>

<13><10> O: <34>OCTALCOPY<34> KOPIERING UDENOM BUFFER
<13><10> Y: LÆS SIDE TIL BUFFER
<13><10> P: <34>PUT<34> OUTPUT BUFFER TIL NY FIL
<13><10> R: <34>REPEAT<34>: 1)P 2)Y
<13><10> T: <34>TYPE<34> SKRIV SIDEN UD FRA BUFFER TIL SKÆRM
<13><10> .: UDSKRIV 16 TEGN FRA AKTUELLE POSITION
<13><10> M: MOVE ANTAL TEGN * EX: M7, M+7, M-7, MG (MOVE 16 PL.)
<13><10> L: LINEMOVE        * EX: L7, L+7, L-7 (EXACT LODRET!)
<13><10> I: INSERT          * EX: I T E S T0D0A
<13><10> K: KILL ANTAL TEGN * EX: K7, K+7, KG
<13><10> S: SEARCH BYTE     * EX: S0A, S A, S41  (41= A)
<13><10> C: UDSKIFT         * EX: C A_ B
<13><10> H: HOME (& CLOSE)
<13><10><10> KOMMANDOER: O, Y, P, R, T, ., M, L, I, K, S, C, H(INCL CLOSE!)
<13><10> IMPL:       O, Y, P, R, T, ., M, L, I, K,       H<13><10>

 UDOVER KOMMANDOER ER INPUT PR BYTE: HH ELLER <60>SPACE><60>TEGN><0>"

FTXT:	FUT0*2
	FUT1*2
	FUT2*2
	FUT3*2
	FUT4*2
	FUT5*2
FUT0:
FUT1:	.TXT	"<13><10> *** IKKE IMPL ***<13><10><0>"
FUT2:	.TXT	"<13><10> *** BUFFER FULD ***<13><10><0>"
FUT3:
FUT4:
FUT5:	.TXT	"<13><10>ANDEN FEJL<13><10><0>"


TEKST:	LAB00*2
			.NOLOC 0
 ; === FEJL ===
		; CALL: FEJLNR	.	.	(CUR)
FEJL8:	FTXT
FEJL9:	FTXT
FEJL0:	0
SEAR1:
CHAN1:
FEJL1:	INC 0,1
	STA 1,FEJL0
	LDA 3,FEJL8
	STA 3,FEJL9
	ISZ FEJL9
	DSZ FEJL0
	JMP .-2
	LDA 3,CUR
	LDA 0,.3
	GOP
	LDA 0,FEJL9 @
	OUTTEXT
	LDA 1,.32
	OUTEND
	LDA 3,CUR
	OPERA


COUN9: COUN0
BIRTK: 58*256+1
PARAD: 0
BIRTH:			; HER STARTER PROGR.INSTRUKTIONER NÅR PROG. LOADES:
	STA 1,PARAD
	MOV 1,2		;
	LDA 0,5,2
	MOV 0,0,SNR
	JMP  DEAD1	; HVIS DER IKKE ER PARAM I LOADKOMMANDOEN
	LDA 0,7,2
	LDA 3,FIAD
	STA 0,0,3
	LDA 0,8,2
	STA 0,1,3
	LDA 0,9,2
	LDA 1,12,2
	ADD 1,0
	STA 0,2,3
	
	MOV 3,2 ; HUSK AC1=DEVICE
	INITC
	LDA 0,.1
	LDA 1,.0
	CREAT
	LDA 0,.3
	OPEN
	
	LDA 3,PARAD
	LDA 2,INAD
	LDA 0,14,3
	MOV 0,0,SZR
	JMP BI2
	LDA 0,15,3
	STA 0,0,2
	LDA 0,16,3
	STA 0,1,2
	LDA 0,17,3
		LDA 2,BIRTK
		LDA 1,19,3
		SUB 1,2,SZR
		JMP BI2
		LDA 1,20,3
		ADD 1,0
		LDA 2,INAD

	LDA 1,21,3
	MOV 1,1,SNR
	JMP BI2
	LDA 1,23,3
		LDA 2,.1024
		SLE 1,2
		LDA 1,.512
	STA @ 1,COUN9
BI2:	LDA 2,INAD
	STA 0,2,2

	LDA 0,.1
	OPEN
	LDA 2,LPAD ; LPT LOGZONE
	LDA 0,.3
	LDA 3,CUR
	LPD
	OPEN
	LDA 3,CUR
	LDA 0,TEKST
	LPD
	OUTTEXT
	LDA 3,CUR
	LPDW
	LDA 0,.3
	GOP
	LDA 0,TEKST
	OUTTEXT
	LDA 3,CUR
	ONL

OPER1:
	ISZ OPER4
	STA 3,OPER3
	LDA 3,CUR
	INTK
JMP @ 14,1
JMP @ 14,1
	JMP @ 14,1
	JMP @ 14,1
 	JMP @ 14,1 
	JMP @ 14,1
 	JMP @ 14,1
 	JMP @ 14,1
 	JMP @ 14,1
 	JMP @ 14,1
 	JMP @ 14,1
 	JMP @ 14,1
 	JMP @ 14,1
 	JMP @ 14,1
OSID1
YSID1
PSID1
RSID1
TYPE1
TFEM1
MOVE1
LMOV1
INSE1
KILL1
SEAR1
CHAN1
DEAD1
FEJL1
FEJL1
-1
; DER JMP'ES TIL DISSE RUTINER, ALLE ACC UDEF, DER RETURNERES TIL OPER1

OPER3: 0
OPER4: 0
; ***************************************************************
-3
DEAD8: 72
DEAD9: .+1*2
	.TXT "DEAD?<0>"
DEAD1:	LDA 3,CUR
	LDA 0,.3
	GOP
	LDA 0,DEAD9
	OUTTEXT
	LDA 3,CUR
	LDA 0,.1
	GOP
	INCHA
	LDA 0,DEAD8
	SUB # 0,1,SZR
	JMP OPER1
	 JMP DEAD ;
-1
INAD: INZON
FIAD: FIZON
TTAD: TTZON
LPAD: LPZON

-2
DEAD:			; STANDARD-AFSLUTNINGSRUTINE
	STA 0,D0
	STA 1,D1
	STA 2,D2
	STA 3,D3

	LDA 2,TTAD
	CLOSE
	LDA 2,LPAD
	LDA 1,.1
	LDA 3,CUR
	LPD
	CLOSE
	
DEAD2:
	LDA 1,.1	; FLG BRUGES HVIS DER HAR VÆRET ÅBNET FILER
	LDA 2,FIAD
	CLOSE
	LDA 1,.1
	LDA 2,INAD
	CLOSE
DEAD3:
	LDA 1,SLUT1
	LDA 2,SLUT2
	SENDMESSAGE 	;
SLUT:	LDA 2,CUR
	STOPP		;
	JMP .-1

D0:	0	; HER SIKRES INFO OM DEAD (AHT EVT CORE-DUMP)
D1:	1
D2:	2
D3:	3
SLUT1:	.+1
	1B8
	0
	0
	0
SLUT2:	.TXT 'S<0><0><0><0><0>'

;::::::::::::::::::::::::::::::::::::: EDITORFUNKTIONER:
«ff»
; ********************************* EDITOR-FUNKTIONER **********
; ALLE KALD MED UDEF ACC & DERFRA TILBAGE TIL OPER1 MED UDEF ACC

 ; === Y ===

	.NOLOC 1
YSID9: .+1*2
	.TXT "<13><10><10>INPUT - - - -<13><10><10> <0>"
		.NOLOC 0
YSID1:	JSR RESE1
	STA 0,COUN1 ;(NEDTÆLL AF Y)
	STA 0,COUN2 ;(ÆNDR AF I,K,C  NEDTÆLL AF P)
	SUB 0,0
	STA 0,PCC
	STA 1,PCADR ;(ÆNDR AF I,C,S ETC)
	LDA 1,YSID9
	JSR OULK1
		; KOMMANDO UD PÅ LPT HVIS TILSLUTTET
YSID2:	INI
	OUT
	OUL
	MOV 1,0
	LDA 1,ARBA1
	PUTBY
	ISZ ARBA1
	LDA 3,CUR
	DSZ COUN1
	JMP YSID2
	OPERA


 ; === P OG R ===

PSID1: SUB 3,3
	JMP PSID3

RSID1:	JSR PSID3
	JMP YSID1

		.NOLOC 1

PSID8: 128 ; FRA COUN2 - DOWN I P
PSID9: .+1*2
	.TXT "<13><10><10>OUTPUT<13><10><10> <0>"
		.NOLOC 0
PSID0: 0
PSID3:	STA 3,PSID0
	LDA 3,COUN2
	STA 3,PSID8
	JSR RESE1
	LDA 1,PSID9
	JSR OULK1 	; KOMMANDO TIL LPT HVIS OK
PSID2:	LDA 1,ARBA1
	GETBYTE
	ISZ ARBA1
	LDA 3,CUR
	MOV 0,1 
	OUO
	OUL
	OUT
	DSZ PSID8
	JMP PSID2

	LDA 0,PSID0
	MOV # 0,0,SZR
	JMP @ PSID0
	OPERA

	;------------------ALM. SUBRUTINER TIL Y OG P:

; RESET COUNTER OG FORB OUTPUT TIL TTY (MONITORING)
; ****  		; CALL:	.	.	.	CUR
			; RETU:	COUN0	BUADR*2	TTZON	CUR
RESE8: 	RTHFL ; INPUT-KODEFLAG
RESE9:	0
RESE1:	LDA 1,ARBA0
	STA 1,ARBA1
	STA 3,RESE9
		SUB 0,0
		STA 0,RESE8 @ ; IGEN SÆDV. HH / SPACE-TAST -KODE
	LDA 0,.3
	LDA 3,CUR
	GOP
	LDA 0,COUN0
	JMP @ RESE9

; OUTPUT TIL LPT AF KOMMANDOEN (ACC UDEF UNDT. AC1 FØR + AC3=CUR EFTER)
; **         *      *

OULK0: 0
OULK1: STA 3,OULK0
	MOV 1,0
	LDA 3,CUR
	LDA 1,.24 ; LINIELGD, SE OSSE ONL
	LDA 2,TTAD
	STA 1,-2,2
	LDA 2,LPAD
	STA 1,-2,2
	LPD	; HVIS MULIGT:
	OUTTEXT	; KOMMANDOUDSKRIFT
	LDA 3,CUR
	LPDW	; RESET LPTFEJLRUTINE
	JMP @ OULK0

;:::::::::::::
COUN0: 128 ; ORIG DEF I INPUT (EVT)
COUN1: 0   ; DEF I Y,  DOWN I Y
COUN2: 0   ; DEF I Y, ÆNDR V K,I,C,  BRUGES I P,T,F
PCC:    0	; POINTER = 0 - COUN2
PCADR: BUADR*2 ; DEF I Y, REDEF I M,S,C,L,I
PCAD1: BUADR*2 ; DEF I F & T   OG UPDATERET I SAMME
ARBA0: BUADR*2 ; FAST !!!!
ARBA1: BUADR*2 ; DEF I Y OG P  OG UPDATERET I Y OG P
;:::::::::::::
	 ;----------------- SUBRUTINER TIL Y OG P SLUT


«ff»

 ; === . ===  (BRUGES OSSE AF FX. MOVE)

TFEM8: 58 ;:
TFEM9: 5
TFEM0: 0
TFEM1: LDA 0,.3
	LDA 3,CUR
	GOP
	LDA 3,.16
	STA 3,TFEM9
	LDA 1,PCADR
	STA 1,PCAD1
	LDA 3,CUR
	LDA 1,PCC
	MOVS 1,1
	OUTHX
	LDA 1,PCC
	OUTHX
	LDA 1,TFEM8
	OCH
	OSP
	OSP
TFEM2:	LDA 1,PCAD1
		LDA 3,ARBA0
		LDA 2,COUN2
		ADD 3,2
		LDA 3,CUR
		SL 1,2
		OPERA
	GETBY
	MOV 0,1
	LDA 3,CUR
	OUT
	ISZ PCAD1
	DSZ TFEM9
	JMP TFEM2
	OPERA

 ; === M ===

		; COMMAND EX: M7  MB  M+B  M-B (B=11)
MOVE0: 0
MOVE1:	JSR DIPL1 ; HENTE AC0=SIGN AC1=ÆGTEBYTE AC3=CUR
	JSR BYBI1 ; BY TIL BINÆR

MOVE2:	LDA 2,PCC
	ADD 1,2
	MOVZL # 2,2,SZC
	SUB 2,2
	LDA 3,COUN2
	SLE 2,3
	LDA 2,COUN2
	STA 2,PCC
	LDA 3,ARBA0
	ADD 3,2
	STA 2,PCADR
	JMP TFEM1

 ; === L ===

LMOV9: 0
LMOV1: JSR DIPL1 ;NEG & BYTE
	JSR BYBI1 ; NEG $ SIGNED BIT & UNSIGN BIT
	MOV 2,1
	STA 0,LMOV9
	LDA 0,.24
	MULTIPLY
	LDA 0,LMOV9
	SZ 0,0
	NEG 1,1
	JMP MOVE2



;----------------- EGL. SUBR TIL BL. A. MOVE-INPUT-HÅNDTERING:

; SUBR. DIPL1 * HENTE TÆLLEPARAM FRA INPUT I KOMMANDO
	;CALL:	.	.	.	.
	;RETU:	NEG?	ÆGTEBY	%	CUR

DIPL7: 0
DIPL8: 43
DIPL9: 45
DIPL0: 0
DIPL1:	STA 3,DIPL0
	LDA 3,CUR
	INT
	LDA 2,DIPL9
	SUB 0,0
	SUB # 1,2,SNR
	LDA 0,.1
	LDA 2,DIPL8
	MOV 0,0,SNR
	SUB # 1,2,SNR
	INT	; NÆSTE EFTERSOM FØRSTE VAR ET + ELLER -
	STA 1,DIPL7 ; SENERE YDERL. BEHANDL EVT NÆSTE BYTE
	JMP @ DIPL0

; SUBR. BYBI1 * BYTE I AC1 TIL BINÆR VÆRDI, SIGNED & UNSIGNED
	;CALL:	1=NEG	BYTE	.	.
	;RETU:	1=NEG	SIGNED	UNSIGN	CUR
	;		BINVAL	BINVAL
BYBID:	0
BYBI0:	0
BYBI1:	STA 3,BYBI0
	LDA 2,.48
	SUB 2,1
	LDA 3,.10
	LDA 2,.7
	SL 1,3
	SUB 2,1
	MOV 1,2
	MOV 0,0,SZR
	NEG 1,1
	STA 1,BYBID
	LDA 3,CUR
	JMP @ BYBI0

; --------------------- SUBR. SLUT
; COUNT-RANGE LIMIT ^^^^^^^

 ; === T ===

TYP80: 0
TYP90: 0
TYPE1:	LDA 0,COUN2
		LDA 3,CUR
		MOV 0,0,SNR
		OPERA
	STA 0,TYP90
	LDA 0,.3
	LDA 3,CUR
	GOP
	LDA 1,ARBA0
	STA 1,TYP80
TYPE2:	LDA 1,TYP80
	GETBY
	LDA 3,CUR
	MOV 0,1
	OUT
	ISZ TYP80
	DSZ TYP90
	JMP TYPE2
	OPERA

 ; === K ===

	

KILL0:	0
KILL1:	JSR DIPL1
	JSR BYBI1
	MOV 0,0,SZR
	OPERA	; HVIS NEG!!
		LDA 2,COUN2
		LDA 3,PCC
		SUB 3,2
		SG 2,1
		MOV 2,1
		LDA 3,CUR
	LDA 0,.1
	FLYT	; TILVENSTRE
	JMP TFEM1

 ; === I ===

INSE7:	PCADR
INSE8:	0
INSE9:	
INSE0:	0
INSE1:	LDA 3,INSE7 @
	STA 3,INSE8
INSE2:	LDA 3,CUR
	INTHX 	; EVT OPTION INT /AFH AF 1. INPUTTEDE BYTE
	STA 1,INSE0
	MOV 2,2,SNR ; IF NOT CONTROL, FX 13 EL 27 PÅ 1. INDHEX
	OPERA	
	LDA 0,.0
	LDA 1,.1
	FLYT	; 1 TILHØJRE
	LDA 0,INSE0
	LDA 1,INSE8
	ISZ INSE8
	PUTBY
	JMP INSE2

BUADR: .
1
2
3
.BLK 512
4
5
6
-1
-1
-1
 ; === O ===


OSID8: .+1*2
	.TXT "<13><10>KOP.<10><0>"
OSID9: 128
OSID0: COUN0
OSID1: LDA 0,OSID0 @
	STA 0,OSID9
	LDA 3,CUR
	LDA  0,.3
	GOP
OSID2:	INI
	OUO
	OUT
	DSZ OSID9
	JMP OSID2
	LDA 0,OSID8
	OUTTEXT
	LDA 3,CUR
	OPERA

«ff»
; ************** GENERELLE ELEMENTÆRE FUNKTIONER DEF I CUR-TABEL *
; ***** ALLE KALD OG RETURN MED VELDEFINEREDE ACC (SÆDV.UÆNDREDE!)

;---------------------------------

; INTK * INPUT KOMMANDO FRA TTY
		; CALL:	?	?	?	CUR
		; RETU:	0	0	RETURNP	CUR
		; RETURNPOINT DEF IN AC2

		.NOLOC 1
INTK8: .+1*2
	.TXT "<13><10>COMMAND: <0>"
INTK9: .+1
	.TXT "<0>O<0>Y<0>P<0>R<0>T<0>.<0>M<0>L<0>I<0>K<0>S<0>C<0>H<0><0><0><0><0>"

		.NOLOC 0
INTK0: 0
INTK1:	STA 3,INTK0
	LDA 0,.3
	LDA 3,CUR
	GOP
	LDA 0,INTK8
	OUTTEXT
	LDA 1,.32
	OUTEND
	LDA 0,.24
	STA 0,-2,2
	LDA 3,CUR
	LDA 0,.1
	GOP
	INCHA
	LDA 3,INTK9
INTK2:	LDA 0,0,3
	SUB # 0,1,SNR
	JMP INTK4
	MOV # 0,0,SNR
	JMP INTK4
	INC 3,3
	ISZ INTK0
	JMP INTK2
INTK4:	LDA 3,CUR
	LDA 2,INTK0
	SUB 0,0
	SUB 1,1
	JMP @ INTK0
	; RETURNPOINT DEF IN ACC 2
	; SENERE LAVES DETTE SOM JMP @ 0,2

;--------------------------

; GOP *  OPEN FILE TTY (MODE)

	;CALL:	MODE	.	.	CUR
	;RETU:	=	=	TTZON	CUR
OP00:0
OP01:0
OP02:0
OP03:0
OP1:	STA 0,OP00
	STA 1,OP01
	STA 2,OP02
	STA 3,OP03
	LDA 2,TTADR
	LDA 1,.0
	CLOSE
	LDA 0,OP00
	OPEN
	LDA 0,OP00
	LDA 1,OP01
	LDA 3,CUR
	JMP @ OP03


«ff»

;--------------------------

; INTHX * INPUT FRA TTY (HEXKODE)
; INT * INPUT FRA TTY (ASCII-TEGN)
; INI * INPUT FRA INPUTFIL

	;CALL:	.	.	.	CUR
	;RETU:	=	BYTE	ZON/0	CUR

RTH00:0
RTH01:0
RTH02:0
RTH03:0
RTHFL:  0	; SÆTTES VED I_ OG RESETTES VED Y,P,R (SUBR RESE1)
RTHFG:  95	; PIL LEFT
RTHG1: 70
RTHG2: 9
RTHG3: 27
RTHD:  0
RTHC:  3
RTH1:	STA 0,RTH00
	STA 1,RTH01
	STA 2,RTH02
	STA 3,RTH03
	LDA 2,TTADR
	LDA 3,RTHFL
	MOV 3,3,SZR
	JMP RTH4

	LDA 2,.2
	STA 2,RTHC
RTH3:	LDA 2,TTADR
	INCHAR
		LDA 0,.32
		SGE 1,0
		JMP RTH5
		LDA 0,RTHFG
		SUB # 1,0,SZR
		JMP .+3
		ISZ RTHFL
		JMP RTH4
	LDA 0,.48
	LDA 3,RTHG1
	SG 1,3
	SGE 1,0
	JMP RTH4
	SUB 0,1 ; !!
	LDA 3,.9
	LDA 0,.7
	SLE 1,3
	SUB 0,1
	LDA 0,RTHC
	LDA 3,.2
	SNE 0,3
	STA 1,RTHD
	DSZ RTHC
	JMP RTH3

	LDA 0,RTHD
	MOVZL 0,0
	MOVZL 0,0
	MOVZL 0,0
	MOVZL 0,0
	ADD 0,1
RTH2:	LDA 0,RTH00
	LDA 3,CUR
	JMP @ RTH03
RTH4:	LDA 2,TTADR
	INCHA
		LDA 0,RTHG3
		SUB 1,0,SNR
		SUB 2,2
	JMP RTH2
RTH5:	LDA 0,RTH00
	SUB 2,2	; AC2=0 IF CONTROL I 1.HEXTEGN AF BYTE
	LDA 3,CUR
	JMP @ RTH03


RT:	LDA 2,TTADR
	JMP R1
RI:	LDA 2,INADR
	JMP R1
R00:0
R01:0
R02:0
R03:0
R1:	STA 0,R00
	STA 3,R03
	INCHA
	LDA 0,R00
	LDA 3,CUR
	JMP @ R03


;:::::::
INADR: INZON
FIADR: FIZON
TTADR: TTZON
LPADR: LPZON
;:::::::
;---------------------------

; OUTHX * OUTPUT BYTE TIL TTY UDEN TEXTOPTION
; OUT * OUTPUT BYTE TIL TTY
; OUL * OUTPUT BYTE TIL LPT
; OUO * OUTPUT BYTE TIL OUTPUTFIL

	;CALL:	.	BYTE	.	CUR
	;RETU:	=	=	ZON	CUR

WTHX:	STA 0,W00
	STA 1,W01
	STA 2,W02
	STA 3,W03
	LDA 2,TTADR
	LDA 3,.255
	AND 3,1
	JMP W3
WT:	LDA 2,TTADR
	JMP W2
WL:	LDA 2,LPADR
	JMP W2
WO:	LDA 2,FIADR
	JMP W1
W00:0
W01:0
W02:0
W03:0
W93: 93
W1:	STA 0,W00
	STA 1,W01
	STA 2,W02
	STA 3,W03
W21:	OUTCH
W22:	LDA 0,W00	; LPDW SÆTTER LPTDEAD ADR HER
	LDA 1,W01
	LDA 3,CUR
	JMP @ W03

W2:	STA 0,W00
	STA 1,W01
	STA 2,W02
	STA 3,W03
	LDA 3,.255
	AND 3,1
		LDA 3,W93
		LDA 0,.32
		SG 1,3
		SG 1,0
		JMP W3
		LDA 3,CUR
		OSP
		OUTCH
		LDA 3,CUR
		JMP W4
W3:	LDA 3,.15
	MOV 1,0
	AND 3,1
	MOVZR 0,0
	MOVZR 0,0
	MOVZR 0,0
	MOVZR 0,0
	AND 3,0
	LDA 3,CUR
	OH	; AC2=TT EL. LP
	MOV 1,0
	OH
W4:	DSZ -2,2
	JMP .+2
	ONL
	OSP
	JMP W22
;--------------------------

; OH * OUTPUT HEXTEGN

	;CALL:	TGN	.	ZON	CUR
	;RETU:	=	=	=	CUR
H00: 0
H01: 0
H02: 0
H03: 0
H1:	STA 0,H00
	STA 1,H01
	STA 2,H02
	STA 3,H03
		LDA 1,.15
		AND 1,0
	LDA 1,H9
	ADD 0,1
	GETBYTE
	LDA 2,H02
	MOV 0,1
	OUTCHAR
	LDA 0,H00
	LDA 1,H01
	LDA 3,CUR
	JMP @ H03
H9:	.+1*2
	.TXT "0123456789ABCDEFG"

 
;-------------------------

; OSP * OUTPUT SPACE (ZON)
; ONL * OUTPUT NL   (ZON)
; OCH * OUTPUT CHAR (ACC 1 ØDELÆGGES !!!)

	;CALL: .	.	ZON(!)	CUR
	;RETU:	=	=(%)	=	CUR
O00:0
O01:0
O02:0
O03:0
O1:	STA 1,O01
	LDA 1,.32
	JMP O3
O2:	STA 1,O01
	LDA 1,.24
	STA 1,-2,2
	LDA 1,.10
	JMP O3
O3:	STA 0,O00
	STA 2,O02
	STA 3,O03
	LDA 3,CUR
	LPD
	OUTCHAR
	LDA 3,CUR
	LPDW
	LDA 0,O00
	LDA 1,O01
	LDA 3,CUR
	JMP @ O03


;-------------------------

; LPD  * LPT-DEAD POINT DEF = .+2
; LPDW * LPT-DEAD POINT IN OUL-RUTINEN
		; CALL:	.	.	.	CUR
		; RETU:	=	=	=	CUR
LPD03: 0
LPD04: W22
LPD05: LPTD9
LPD1:	STA 3,LPD03
	INC 3,3
LPD11:	STA 3,LPD05 @
	LDA 3,CUR
	JMP @ LPD03
LPDW1:	STA 3,LPD03
	LDA 3,LPD04
	JMP LPD11




«ff»


;-------------------------

; FLYT * FLYTTER BUFFERDATA FRA PCC TIL ENDE ET STYKKE
		;CALL:	0/1	ANTAL	.	CUR
		;RETU:	=	=	=	CUR

FLY70:	ARBA0
FLY80:	COUN2	;SIDESIZE
FLY90:	PCADR	;AKT. PC
FLY92: 	PCC
FLYFN: 0	;  HVIS NED: 0.........FLYTN...FLYFN....FLYTØ...FLYFØ
FLYTN: 0	;  HVIS OP:  0.........FLYFN...FLYTN............FLYFØ...FLYTØ
FLYFO: 0	;            0.........=PCC.....................ARBA0+COUN2
FLYTO: 0

FLY00: 0
FLY01: 0
FLY02: 0
FLY03: 0
FLYT1:	STA 0,FLY00
	STA 1,FLY01
	STA 2,FLY02
	STA 3,FLY03
	LDA 3,FLY80 @
	LDA 2,FLY70 @
	ADD 2,3
	STA 3,FLYFO	; I BEGGE TILF.!!

	MOV 0,0,SNR ; NED HVIS 1
	JMP FLYO1   ; OP  HVIS 0

FLYN1:	LDA 2,FLY90 @
	STA 2,FLYTN	
	ADD 1,2
	STA 2,FLYFN

	LDA 3,FLYFO
	SUB 1,3
	STA 3,FLYTO

	LDA 3,FLY80 @
	SUB 1,3
	STA 3,FLY80 @	; NEDDATERING AF ØVRE GRÆNSE

FLYN2:	LDA 1,FLYFN
	LDA 3,FLYFO
	SLE 1,3
	JMP FLYT4
	GETBY
	ISZ FLYFN
	LDA 1,FLYTN
	PUTBY
	ISZ FLYTN
	JMP FLYN2

FLYO1:	LDA 2,FLY90 @	; PCADR
	STA 2,FLYFN

	LDA 2,FLYFO	; OPDATERING /KONTROL/ AF ØVRE BUFFERGRÆNSE
	ADD 2,1
		LDA 0,.1	; FEJLKODE
		LDA 3,.1024
		LDA 2,FLY70 @	; BUFFER STARTADR
		ADD 3,2
		LDA 3,CUR
		SLE 1,2
		FEJL
	STA 1,FLYTO

	LDA 1,FLY01	; COUN2 (SIZE) OPDATERES
	LDA 2,FLY80 @
	ADD 1,2
	STA 2,FLY80 @

	LDA 2,FLY90 @	; PCADR OPDATERES
	ADD 1,2
	STA 2,FLYTN
	STA 2,FLY90 @

	LDA 2,FLY92 @	; PCC   OPDATERES
	LDA 1,FLY01
	ADD 1,2
	STA 2,FLY92 @ 

FLYO2:	LDA 1,FLYFO
	LDA 3,FLYFN
	SGE 1,3
	JMP FLYT4
	GETBY
	DSZ FLYFO
	LDA 1,FLYTO
	PUTBY
	DSZ FLYTO
	JMP FLYO2

FLYT4:	LDA 0,FLY00
	LDA 1,FLY01
	LDA 2,FLY02
	LDA 3,CUR
	JMP @ FLY03
«ff»

24
0
FIZON:	.TXT 'UDFIL<0>'		;ZNAME
	Z		;SIZE 
	0		;ZMODE 
	1B14+1B13+1B12+1B11	;ZKIND   BLOCK+POSIT+REPEA+CATAL
	65535		;ZMASK 
	DEAD3		;ZGIVE 
	1		;ZFILE 
	1		;ZBLOC 
	0		;ZCONV 
	FIS0		;ZBUFF 
	263		;ZSIZE (72/2+SSIZE) 
	0		;ZLENG 
	0		;ZFIRS 
	FIB0*2		;ZFIRS 
	FIB0*2		;ZTOP 
	FIS0		;ZUSED 
	512		;ZSHAR 
	0		;ZREM 
	.BLK ZAUX		;AUXILIARY WORDS IN ZONE 
	
FIS0:	0		;SOPER 
	0		;SCOUN 
	0		;SADDR 
	0		;SSPEC 
	FIS0		;SNEXT 
	0		;SSTAT 
	FIB0*2		;SFIRS 
FIB0:	.BLK 256		;DATA BUFFER 
	
24
0
TTZON:.TXT 'TTY<0><0><0>'		;ZNAME 
	Z		;SIZE 
	0		;ZMODE 
	1		;ZKIND 
	65535		;ZMASK 
	DEAD2		;GIVE 
	1		;ZFILE 
	1		;ZBLOC 
	0		;ZCONV 
	TTS0		;ZBUFF 
	117		;ZSIZE (132/2+SSIZE) 
	0		;ZFORM 
	0		;ZLENG 
	TTB0*2		;ZFIRS 
	TTB0*2		;ZTOP 
	TTS0		;ZUSED 
	220		;ZSHAR 
	0		;ZREM 
	.BLK ZAUX		;AUXILIARY WORDS IN ZONE 
	
TTS0:	0		;SOPER 
	0		;SCOUN 
	0		;SADDR 
	0		;SSPEC 
	TTS0		;SNEXT 
	0		;SSTAT 
	TTB0*2		;S
 
TTB0:	.BLK 110		;DATA BUFFER 

24
0
INZON:	.TXT 'PLRÅ<0><0>'		;ZNAME
	Z		;SIZE 
	0		;ZMODE 
	1B14+1B13+1B12+1B11	;ZKIND   BLOCK+POSIT+REPEA+CATAL
	65535		;ZMASK 
	DEAD3		;ZGIVE 
	1		;ZFILE 
	1		;ZBLOC 
	0		;ZCONV 
	INS0		;ZBUFF 
	263		;ZSIZE (72/2+SSIZE) 
	0		;ZLENG 
	0		;ZFIRS 
	INB0*2		;ZFIRS 
	INB0*2		;ZTOP 
	INS0		;ZUSED 
	512		;ZSHAR 
	0		;ZREM 
	.BLK ZAUX		;AUXILIARY WORDS IN ZONE 
	
INS0:	0		;SOPER 
	0		;SCOUN 
	0		;SADDR 
	0		;SSPEC 
	INS0		;SNEXT 
	0		;SSTAT 
	INB0*2		;SFIRS 
INB0:	.BLK 256		;DATA BUFFER 
	
24
0
LPZON:.TXT 'LPT<0><0><0>'		;ZNAME 
	Z		;SIZE 
	0		;ZMODE 
	1		;ZKIND 
	65535		;ZMASK 
LPTD9:	DEAD		;GIVE IGNOREOPTION 
	1		;ZFILE 
	1		;ZBLOC 
	0		;ZCONV 
	LPS0		;ZBUFF 
	117		;ZSIZE (132/2+SSIZE) 
	0		;ZFORM 
	0		;ZLENG 
	LPB0*2		;ZFIRS 
	LPB0*2		;ZTOP 
	LPS0		;ZUSED 
	220		;ZSHAR 
	0		;ZREM 
	.BLK ZAUX		;AUXILIARY WORDS IN ZONE 
	
LPS0:	0		;SOPER 
	0		;SCOUN 
	0		;SADDR 
	0		;SSPEC 
	LPS0		;SNEXT 
	0		;SSTAT 
	LPB0*2		;SFIRS 
LPB0:	.BLK 110		;DATA BUFFER 

		; BUFFERE DER ER NØDV NÅR FX. DOMUS-FIL-FUNKTIONER BRUGES!
BUFF1:	.+0 
	.-1 
	BUFF2 
	10 
	PCDS 
	0 
	0 
	0 
	0 
	0 
BUFF2:	.+0 
	.-1 
	BUFF3 
	10 
	PCDS 
	0 
	0 
	0 
	0 
	0 
BUFF3:	.
	.-1
	BUFF4
	10
	PCDS
	0
	0
	0
	0
	0
BUFF4:	.
	.-1
	BUFF5
	10
	PCDS
	0
	0
	0
	0
	0
BUFF5:	.
	.-1
	0
	10
	PCDS
	0
	0
	0
	0
	0
	0
		; PROCES-DESCRIPTOR:
PCDS:	.+0 
	.-1 
	0 
	0 
	.TXT 'FEDIT' 
	.+0 
	.-1 
	BUFF1 
	PGDS 
	0 
	0 
	33 
	DEAD 
	0 
	0 
	0 
	0 
	BIRTH*2 
	0
	1
	2
	3
	4
	5
	6
	7
	8
	9			; RETURNACC:
	
.DUSR GOP  = JSR @ 30,3		; =   =   ZON =
OP1
.DUSR INTHX= JSR @ 31,3		; =   BY  ZON =
RTH1
.DUSR INT  = JSR @ 32,3		; =   BY  ZON =
RT
.DUSR INI  = JSR @ 33,3		; =   BY  ZON =
RI
.DUSR OUT  = JSR @ 34,3		; =   =   ZON =
WT
.DUSR OUL  = JSR @ 35,3		; =   =   ZON =
WL
.DUSR OUO  = JSR @ 36,3		; =   =   ZON =
WO
.DUSR OH   = JSR @ 37,3		; =   =   =   =
H1
.DUSR OSP  = JSR @ 38,3		; =   =   =   =
O1
.DUSR ONL  = JSR @ 39,3		; =   =   =   =
O2
.DUSR OCH  = JSR @ 40,3		; =   %   =   =
O3		
.DUSR INTK = JSR @ 41,3		; %   %   RETP =
INTK1
.DUSR OPERA= JSR @ 42,3		; %   %   %   %
OPER1
.DUSR LPD  = JSR @ 43,3		; =   =   =   =
LPD1
.DUSR LPDW = JSR @ 44,3		; =   =   =   =
LPDW1
.DUSR FEJL = JSR @ 45,3
FEJL1
.DUSR FLYT = JSR @ 46,3		; =   =   =   =
FLYT1
.DUSR OUTHX= JSR @ 47,3		; =   =   ZON =
WTHX

-1
	.END PCDS 
	
«ff»
«nul»