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

⟦38fecb9fd⟧ TextFile

    Length: 31744 (0x7c00)
    Types: TextFile
    Names: »ARES«

Derivation

└─⟦2c664c89a⟧ Bits:30001805 SG0102 Floppy
    └─⟦this⟧ 
└─⟦96ad21271⟧ Bits:30001767 PL FAERD ASCII NR 12
    └─⟦this⟧ 

TextFile

; 21.6.84 HJFKTVALG FETTES
; 20.6.84 JA NU DEN EGL. AFPUDSNING!!!
; 20.6.84 FEJLEN VAR AT TEXTM /TEXTN IKKE PASSEDE MED ZONENAVNE!!
; 20.6.84 RETTES DER IGEN
.MSG SIDE 1-?		188/2306	RESETPRG
; RETTELSER 16.6.84 LØRDAG FORM
; 15.6.84
; SPECIALPROGRAM TIL AT RESETTE DISKETTE
; LAVET VED BARBERING I AED8 14.6.84

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

		.NOLOC 1

LAB00:
FUT0:
FUT1:	.TXT	"<13><10> *** IKKE IMPL ***<13><10><0>"
FUT2:	.TXT	"<13><10> *** BUFFER FULD ***<13><10><0>"
FUT3:	.TXT	"<13><10> *** IKKE FUNDET ***<13><10><0>"
FUT4:	.TXT	"<13><10> *** FILFEJL ***<13><10><0>"
FUT5:	.TXT	"<13><10> *** HARD MODE ***<13><10><0>"
FUT6:	.TXT	"<13><10> *** ILLEGAL BUFFER SIZE ***<13><10><0>"
FUT7:	.TXT	"<13><10> *** UDEF. TRACK/SECTOR ***<13><10><0>"
FUT8:
FUT9:	.TXT	"<13><10> *** ??? ***<13><10><0>"
FFUT1:	.TXT 	"   *** FILSTATUS = <0>"
FFUT2:	.TXT	"        DI OF BU .  .  .  IL EF BL DL PA EM PO DM TI REJ<10><0>"


FTXT:	FUT0*2
	FUT1*2
	FUT2*2
	FUT3*2
	FUT4*2
	FUT5*2
	FUT6*2
	FUT7*2
	FUT8*2
	FUT9*2
	FUT9*2
		FUT9*2
	FUT9*2
			.NOLOC 0




 ; === FEJL ===
		; CALL: FEJLNR	.	.	(CUR)
FEJL8:	FTXT
FEJL9:	FTXT
FEJL0:	0
CHAN1:
FEJL1:	INC 0,1
		LDA 2,.10
		SL 1,2
		MOV 2,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


FFEJ8:	FFUT2*2
FFEJ9:	FFUT1*2


FFEJ1:	LDA 0,.3
	LDA 3,CUR
	JMP FEJL1

BI00:	BUADR*2
BIRTH:	LDA 2,LPAD
	LDA 0,.3
	LDA 3,CUR
	LPD
	OPEN
	LDA 3,CUR
	LPDW

		LDA 2,TTAD
		LDA 0,.3
		OPEN
		LDA 0,BI00
		LDA 3,CUR
		OUTXT

			

OPER1:
	ISZ OPER4
	STA 3,OPER3
	LDA 3,CUR
	INTK
FEJL1
FEJL1
FEJL1
FEJL1
TYPE1
TFEM1
MOVE1
FEJL1
INSE1
KILL1
SEAR1
CHAN1
DEAD1 ; EVT HMM1 ELLER BLOC1 (SE DEAD1 ELLER HMM1)
FEJL1 ;
FEJL1 ;
WKTR1 ; 2.03
FEJL1	; A IKKE LAVET
BB1
LS1
LS1	; (BÅDE : OG =)
FEJL1
FEJL1
-1

OPER3: 0
OPER4: 0
-3

DEAD5:	HMM1	; HS - HB - RUTINERNE

DEAD8: 72
DEAD9: .+1*2
	.TXT "DEAD?<0>"
DEAD1:	LDA 3,CUR
	INT
	LDA 0,.32
	SLE 1,0
	JMP DEAD5 @ ; HARD SELECT


	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
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
	
	LDA 1,SLUT1
	LDA 2,SLUT2
	SENDMESSAGE 	;
	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:	.+1
	.TXT 'S<0><0><0><0><0>'


;SIDE 2 SLUT
«ff»
.MSG  SIDE 3		166/1929	16.6.84 RESETPRG

 ; === HV ===  EX: HV020517   2 SECTORER, TRACK 5, SECT 23


HV97: 2002
HV98: 86	;V
HV1:	LDA 2,HV98
	SE 1,2
	FEJL
	INTHX
	STA 1,HV97
	INTW
	SUBS 1,0
	LDA 2,.0
	HARD
	HARDR
	DSZ HV97
	JMP .-2
	OPERA

 ; === HJ ===  SPECIALVERSION SOM OSSE HAR ÆNDRET HARDRUTINERNE
 ; RESETRUTINE

HJ96: 2002
HJ97: 2002
HJ98: 74 ;J
HJ1:	LDA 2,HJ98
	SE 1,2
	JMP HV1
	LDA 0,.0
	LDA 1,.1
	LDA 2,.0
	HARD
	HARDR
	DSZ HJ97
	JMP .-2
	LDA 3,HJ96
	STA 3,HJ97
	LDA 3,CUR
	OPERA

 ; === HY ===

HY98: 89 ; Y
HY1:	LDA 2,HY98
	SE 1,2
	JMP  HJ1	; HUSK JMP!!!
	HARDY
	SUBZL 0,0
	TYPE
	OPERA

 ; === HR ===

HR98: 82 ; R
HR1:	LDA 2,HR98
	SE 1,2
	JMP HY1
	HARDR	; TYPE 1. GANG I HARDR!
	SUBZL 0,0
	TYPE
	OPERA



 ; === HM ===

HMC98: 77 ; M
HMCC1:	LDA 2,HMC98
	SE 1,2
	JMP HR1
	INT
	SUB 0,0
	LDA 2,.64
	SNE 1,2
	LDA 0,BLO97 ; OFFSET 70 FOR DEV 0 ELLER 3
	STA 0,BLO01
	OPERA

 ; === HO ===

HOU98: 79 ; O
HOUT1: LDA 2,HOU98
	SE 1,2
	JMP HMCC1
	LDA 3,CUR
	HARDO
	SUBZL 0,0 ; OULREQ
	TYPE
	OPERA


 ; === HB ===

BLO97: 70
BLO98: 66
BLO99: 61
BLO00: 0	; BLOCK
BLO01: 0	; UNIT 0/3 OFFSET
BLO11: 0	; SECTOR
BLO10: 0	; TRACK
BLOC1:	LDA 2,BLO98
	SE 1,2
	JMP HOUT1
	INTHX
	STA 1,BLO00	; BLOCK
		MOV 2,2,SNR
		FEJL ; INGEN PARAM
	INTHX	; EVT 2. BYTE
	MOV 2,2,SNR
	JMP BLOC2
	LDA 0,BLO00
	MOVS 0,0
	ADD 0,1
	STA 1, BLO00	; (PYH)  BLOCK NU MED 2 BYTES

BLOC2:		LDA 0,.3
		GOP
		OSP
		OSP
		OSP
		LDA 1,BLO00	; BLOCK
		MOVS 1,1
		OUTHX
		MOVS 1,1
		OUTHX
		LDA 1,BLO99
		OCH        ; =
		OSP
		OSP
	LDA 0,BLO00
		LDA 1,BLO01 ; OFFSET
		ADD 1,0		; BLOCKFORSKUDT! EVT!
	BLB
	STA 0,BLO10
	STA 1,BLO11 ; P Y H
	SUB 2,2 	; INPUT
	HARD	; AC0=TR AC1=SEC AC2=0 (READ)
	SUBZL 0,0
	TYPE
	OPERA


 ; === HS ===

HMM8: 83 ; S
HMM98: 79 ; O
HMM00:0
HMM01:0
HMM1:	LDA 3,CUR
	LDA 2,HMM8
	SUB 0,0
	SE 1,2
	JMP BLOC1
	LDA 0,.6
	INTHX
	STA 1,HMM00
	MOV 2,2,SNR
	FEJL ; PARAM NØDV. (FEJL 6)

	INTHX
	STA 1,HMM01
	MOV 2,2,SNR
	FEJL ; AC0 = 6
	INT
	LDA 2,HMM98
	SE 1,2
	SUB 2,2,SKP
	SUBZL 2,2
	LDA 0,HMM00
	LDA 1,HMM01
	HARD		; AC0=TR AC1=SECT AC2=I/O=0/1
	SUBZL 0,0
	TYPE		; UDSKRIFTER LAVES I HARD!!
	OPERA


HMM2:	HARDO		; ACC UDEF OK, HENTES FRA SIDST!!
	SUBZL 0,0
	TYPE
	OPERA


;SIDE 3 SLUT
«ff»
.MSG  SIDE 4		198/2354	16.6.84	RESETPRG
; @, Y, P, R


; ********************************* EDITOR-FUNKTIONER **********


 ; === @ === 

WKTR1:	LDA 3,CUR
	INT
	LDA 2,.64
	SUB 2,1
	LDA 2,.16
	SG 1,2
	MOVZL # 1,1,SZC
	FEJL
	INC 1,2
	JSR 1,1
	ADD 3,2
	LDA 3,CUR	; UDGANGSADR (LIGGER I AC2)
	JMP @ 2,2
	WWW0		; @@ => AC2+2 = DENNE ADR 
	WWW1	; @A-ADR
  	WWW1	; @B-ADR
  	WWW1
	WWW4
	WWW5	; @E-ADR = AC2+2  /AC2 PEGER PÅ WWW3 
	WWW5
	WWW7
	WWW8
	WWW9
	WWW10
	WWW11
	WWW12	; @L-ADR  
	WWW13
	WWW14
	WWW15
	WWW16

	OUTA1
	WT
	WTHX
	WTD
	OULA1	; OULA (WA)
	WL	; OUL  (WB)
	WLHX	; OULHX(WC)
	WLD	; OULD (WD)
FEJL1
FEJL1
FEJL1
	LMV9

	.TXT "<0><0>"
	.TXT "LP"	; 5+14


WWWBA:	BUADR
WWW0:	LDA 0,WWWBA
	OUTW
LDA 3,CUR
	OPERA

WWW1:	LDA 0,18,2
	STA 0,34,3	; OUT REDEF
	LDA 0,22,2
	STA 0,35,3	; OUL REDEF
	LDA 0,26,2
	STA 0,61,3	; LMOVESUBR REDEF
	OPERA

LPADW:	LPZON
WWW52:	LPFLG
WWW51: 0
WWW5:	LDA 1,26,2
	STA 1,WWW51
		MOV # 1,1,SNR
		INC 0,0
		STA 0,WWW52 @
	LDA 2,LPADW
	LDA 1,.1
	CLOSE
	LDA 3,CUR ;!!
	LDA 0,WWW51
	STA 0,0,2	; LPTZONENAVN 
	SZ 0,0
	JMP WWW9
	OPERA

WWW71:	O2LG
WWW7:	INTHX
	STA 1,WWW71 @
	OPERA

WWW81:	COUN0
WWW8:	INTW
	LDA 1,.256
	SG 0,1
	STA 0,WWW81 @
	OPERA

WWW9:	LDA 2,LPADW
	LDA 0,.3
	OPEN
	LDA 3,CUR
	OPERA

WWW10:	INTW
	MOV 0,2
	JSR 0,2
	LDA 3,CUR
	OPERA
	;!!??

WW111:	ARBA0
WW222:	COUN0
WW223:	COUN2
WW333: 	0	;DOWN
WWW11:	INTW
	LDA 3,WW111 @
	MOVZR 3,3
	MOV 0,2
	LDA 1,WW223 @
	JMP WWFLT

WWW12:	INTW
	LDA 2,WW111 @
	MOVZR 2,2
	MOV 0,3
	LDA 1,WW222 @
	STA 1,WW223 @

WWFLT:	MOVZR 1,1
	STA 1,WW333
	LDA 0,0,3
	STA 0,0,2
	INC 2,2
	INC 3,3
	DSZ WW333
	JMP .-5
	LDA 3,CUR
	MOVZL 0,0
	TYPE
	OPERA



;----------------
; NOT IMPL:


WTD:
WLD:
LMV9:	.+1

	
WWW4:
WWW13:
WWW14:
WWW15:
WWW16:	LDA 3,CUR

	LDA 0,.0
	FEJL


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

 ; === Y ===

	.NOLOC 1
YSID9: .+1*2
	.TXT "<13><10><10>INPUT - - - - <0>"
		.NOLOC 0
		.NOLOC 1

PSID9: .+1*2
	.TXT "<13><10><10>OUTPUT <0>"
		.NOLOC 0



;:::::::::::::
TTAD9: TTZON
LPAD9: LPZON
;:::::::::::::
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



;SIDE 4 SLUT

«ff»
.MSG   SIDE 5		249/3356	20.6.84 
; B : = . M L T K I             
;
      


 ; === B ===

BB1:	STA 0,PCC
	LDA 0,ARBA0
	STA 0,PCADR
	LDA 3,CUR
	OPERA

 ; === : ===
 ; === = ===

LSPC:0
LSPCA:0
LS1:	LDA 0,.3
	LDA 3,CUR
	GOP
	LDA 1,PC
	STA 1,LSPC
	LDA 1,PCADR
	STA 1,LSPCA
	SUB 0,0
	STA 0,PCC
	LDA 1, ARBA0
	STA 1,PCADR
	SUBZL 2,2
	LDA 3,CUR
	LTL
	OUTW
	OSP
	OSP
	LDA 0,COUN2
	OUTW
	LDA 1,LSPC
	STA 1,PCC
	LDA 1,LSPCA
	STA 1,PCADR
	OPERA


 ; === . ===  (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 0,PCC
	OUTW
	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


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



 ; === T ===

TYPE1:	LDA 3,CUR
	TYPE
	OPERA


 ; === K ===

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

			; RANGE DANGER COUNT/PCC/ ETC

 ; === I ===

INSE5:	INTO6	; TTYFLAG
INSE6: 	RTHFL ; RESETTES EFTER I
INSE7:	PCADR
INSE8:	0
INSE9:	
INSE0:	0
INSE1:	LDA 3,INSE7 @
	STA 3,INSE8
		ISZ  @ INSE5
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
	JMP INSE3	
	LDA 0,.0
	LDA 1,.1
	FLYT	; 1 TILHØJRE
	LDA 0,INSE0
	LDA 1,INSE8
	ISZ INSE8
	PUTBY
	JMP INSE2

INSE3:	SUB 0,0
	STA 0,INSE6 @
	OPERA


;SIDE 5 SLUT (O FJERNET)
.MSG  SIDE 6		173/2150	14.5.84



 ; === S === ; SØG E N K E L T BYTE (PT)

SEA09: TFEM1
SEA03: 0
SEAR1:	STA 3,SEA03
	LDA 3,CUR
	INTHX
	MOV 2,2,SNR
	OPERA
	SEBYT
	LDA 0,.2
	MOV 2,2,SNR
	FEJL
	JMP @ SEA09



		.NOLOC 1


BUADR: .TXT  "<13><10><10>DISKETTE $FD1-RESET-PROGRAM  REV 1.01
<13><10>PL JUNI 1984
<13><10> HJ: AUTO HARD RESET  * INGEN PARAM
<13><10> HV: HARD RESET       * TRE HEXPARAM: ANTAL, TRACK, SECT *EX: HV022117
<13><10>                        2 SECTORER, STARTTRACK 33, STARTSECT 23
<13><10>
<13><10> HM, HB, HS, HO, HR, HY 
<13><10> @A-@L
<13><10> : = . B M K I S T
<13><10>                SOM I PROGRAMMET F
<13><10> ? OG @@ UDELADT
<13><10><0>"

		.NOLOC 0

;SIDE 6 SLUT (G FJERNET)
«ff»
.MSG  SIDE 7		 91/1275	20.6.84
; SPEC CUR-FKT
 

.TXT "  CURFKT  "


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

INTO6: 0	; TTYFLAG
INTK8: .+1*2
	.TXT " DISKETTERESETKOMMANDO HJ:  <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>G<0>?<0>@<0>A<0>B<0>:<0>=<0><0><0><0><0>"

		.NOLOC 0
INTK0: 0
INTK1:	STA 3,INTK0
INTO2:	LDA 0,.3
	LDA 3,CUR
	GOP
	LDA 0,INTK8
	OUTTEXT
	LDA 1,.32
	OUTEND
		SUB 0,0
		STA 0,INTO6
	LDA 3,CUR
	LDA 0,.1
	GOP
INTO1:	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 @ 0,2
	; RETURNPOINT DEF IN ACC 2

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

; GOP *  OPEN FILE TTY (MODE)

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


	LDA 1,.3
	SNE 1,0
	OSP

	LDA 1,OP01
	JMP @ OP03



;SIDE 7 SLUT (SIDETE MESTE FJERNET)
«ff»
.MSG  SIDE 8A		308/4060	14.5.84  
; GEN RUTINER:   NORMAL I/O

; GEN RUTINER FORTSAT


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

; INTW * INPUT WORD FRA TTY I HEXKODE (4 TEGN) (TTY ÅBNET FORUDS)
	;CALL:	.	.	.	CUR
	;RETU:	WORD	HØJRBY	=	CUR

IW02:0
IW03:0
IW1:	STA 2,IW02
	STA 3,IW03
	LDA 3,CUR
	INTHX
	MOVS 1,0
	INTHX
	ADD 1,0
	LDA 2,IW02
	JMP @ IW03


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

; INTHX * INPUT FRA TTY (EVT HEXKODE, EVT SPACETASTKODE, EVT TASTKODE)
; INT * INPUT FRA TTY (TASTKODE)
; INI * INPUT FRA INPUTFIL

	;CALL:	.	.	.	CUR
	;RETU:	=	BYTE	ZON/0	CUR
	;			0 HVIS HX 1.BY < 32 ONLY

RTH00:0
RTH01:0
RTH02:0
RTH03:0
RTHFL:  0	; SÆTTES VED I_ OG RESETTES
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
	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


;:::::::
TTADR: TTZON
LPADR: LPZON
;:::::::
;---------------------------

; OULHX * OUTPUT BYTE TIL LPT UDEN TEXTOPTION
; OUTHX * OUTPUT BYTE TIL TTY UDEN TEXTOPTION
; OUT * OUTPUT BYTE TIL TTY EVT HEXKODE, EVT SPACETASTKODE  "HH ", " A ", "A"
; OUL * OUTPUT BYTE TIL LPT EVT HEXKODE, EVT SPACETASTKODE
; OUO * OUTPUT BYTE TIL OUTPUTFIL
		; OUT & OUL KAN ÆNDRES VED KOMMANDO @A, @C

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

WLHX:	STA 0,W00
	STA 1,W01
	STA 2,W02
	STA 3,W03
	LDA 2,LPADR
	JMP WHX2
WTHX:	STA 0,W00
	STA 1,W01
	STA 2,W02
	STA 3,W03
	LDA 2,TTADR
	JMP WHX2
WHX1:	STA 0,W00
	STA 1,W01
	STA 2,W02
	STA 3,W03
WHX2:	LDA 3,.255
	AND 3,1
	JMP W3
WT:	LDA 2,TTADR
	JMP W2
WL:	LDA 2,LPADR
	JMP W2
W00:0
W01:0
W02:0
W03:0
WLPFL:	LPFLG
W93: 93
W1:	STA 0,W00
	STA 1,W01
	STA 2,W02
	STA 3,W03
W21:	LDA 0,LPADR
	SE 0,2
	JMP .+3
	LDA 0,WLPFL @
	SNZ 0,0	; FLAG FOR LPTFORBUD
	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
		SGE 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


; OUTA * OUTPUT TIL TTY SOM ALM ASCIIFIL
; OUTL * OUTPUT TIL LPT SOM ALM ASCIIFIL

OUA91: 125 ; (LILLE Å)

OUTA1:	LDA 2,TTADR
	JMP .+2
OULA1:	LDA 2,LPADR
	STA 0,W00
	STA 1,W01
	STA 2,W02
	STA 3,W03
	LDA 0,.32
	LDA 3,OUA91 ; (Å)
	SG 1,3
	SGE 1,0
	JMP OUA3
	JMP W21		; OUTCHAR & RETURN
OUA3:	LDA 3,.127
	SE 1,0
	SNZ 1,1
	JMP W22	; IGN <0> OG <127>
	LDA 3,.13
	LDA 0,.10
	SE 1,3
		JMP .+4
		LDA 3,CUR
		OCH	; EVT UDELADES ?!
		MOV 0,1
	SNE 1,0
	JMP W21		; NORMAL NL
	LDA 3,.127
	LDA 0,.9
	SE 1,3		
	SNE 1,0
	JMP W21		; <9>, <127>
	LDA 3,.12
	SNE 1,3
	JMP OUA4	;  SÆRL. <12>
	LDA 1,OUA91
	INC 1,1		; ü
	JMP W21		; ELLERS "ü"

OUA4:	LDA 0,OUA44
	LDA 3,CUR
	OUTXT
	JMP W22

OUA44: .+1*2
	.TXT "<13><10><10>SIDESKIFT<13><10><10><0>"

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

; OUTW * OUTPUT WORD TIL TTY /HEX
; OULW * OUTPUT WORD TIL LPT /HEX
	;CALL:	WORD	.	.	CUR
	;RETU	=	=	ZON	CUR

OWW00:0
OWW01:0
OWW03:0
OUTW1:	LDA 2,TTAD8
	JMP .+2
OULW1:	LDA 2,LPAD8
	STA 0,OWW00
	STA 1,OWW01
	STA 3,OWW03
	LDA 3,.255
	MOVS 0,1
	AND 3,0
	AND 3,1
	LDA 3,CUR
		WHX
	MOV 0,1
		WHX
	LDA 0,OWW00
	LDA 1,OWW01
	LDA 3,CUR
	JMP @ OWW03



;::::::::::::
TTAD8:	TTZON
LPAD8:	LPZON
;::::::::::::

;SIDE 8A SLUT
«ff»
.MSG  SIDE 8B		148/1753	12.5.84
 




;--------------------------
;                FLG. OUTPUTRUTINER FORUDSÆTTER FORUDG. DEF AF ZONE

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

; 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
	LDA 3,CUR
	OCH
	LDA 0,H00
	LDA 1,H01
	JMP @ H03
H9:	.+1*2
	.TXT "0123456789ABCDEFG"

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

; OSP * OUTPUT SPACE (ZON)
; ONL * OUTPUT NL   (ZON)
; OCH * OUTPUT CHAR (ZON)

	;CALL: .	.	ZON(!)	CUR
	;RETU:	=	=	=	CUR
O00:0
O01:0
O02:0
O03:0
O2TTA:	TTZON
O2LG:	24	; EVT ÆNRES AF W
O1:	STA 0,O00
	STA 1,O01
	LDA 1,.32
	JMP O3
O2:	STA 0,O00
	STA 1,O01
	LDA 1,O2LG
		LDA 0,O2TTA
		SE 0,2
		JMP O2F
		LDA 0,.24
		SLE 1,0
		MOVZR 1,1
O2F:	STA 1,-2,2
	LDA 1,.10
	JMP O3
O3:	STA 2,O02
	STA 3,O03
	LDA 3,CUR
	LPD
	OUTEND
	LDA 3,CUR
	LPDW
	LDA 0,O00
	LDA 1,O01
	LDA 3,CUR
	JMP @ O03

O4:	STA 0,O00
	STA 1,O01
	JMP O3


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

; LPD  * LPT-DEAD POINT DEF = .+2
; LPDW * LPT-DEAD POINT IN OUL-RUTINEN
		; CALL:	.	.	.	CUR
		; RETU:	=	=	=	CUR

LPD00:0
LPFLG: 0 	; FORBUDSFLAG (SE @E, @F)
LPD03: 0
LPD04: W22
LPLPA: LPZON
LPD05: LPTD9
LPD1:	STA 3,LPD03
	INC 3,3
	STA 0,LPD00
	LDA 0,LPLPA
	SE 2,0
	JMP LPD11
	LDA 0,LPFLG
	SZ 0,0
	ISZ LPD03
LPD11:	LDA 0,LPD00
	STA 3,LPD05 @
	LDA 3,CUR
	JMP @ LPD03
LPDW1:	STA 0,LPD00
	STA 3,LPD03
	LDA 3,LPD04
	JMP LPD11





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

; OUTXT **** NY

	;CALL:	BYAD	.	ZON	CUR
	;RETU:	=	=	=	CUR
OUX00:0
OUX01:0
OUX02:0
OUX03:0
OUTX1:	STA 0,OUX00
	STA 1,OUX01
	STA 2,OUX02
	STA 3,OUX03
	LDA 3,CUR
	LPD
	OUTTEXT  ; !!
	LDA 3,CUR
	LPDW
	LDA 0,OUX00
	LDA 1,OUX01
	LDA 2,OUX02
	LDA 3,CUR
	JMP @ OUX03


;SIDE 8B SLUT
«ff»
.MSG  SIDE 9		210/3000	7.5.84
; FLYT OG SE(ARCH)BYT(E) OG TYPE
; TYPE NU SOM FKT



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

; 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.........=PCADR...................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


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

; SEBYT * SEARCH BYTE
	;CALL:	.	BYTE	.	CUR
	;RETU:	=	=	0/1	CUR
	;			1=FOUND
	; PCC & PCADR OPDATERES (EVT TIL 0)
SEBY5: ARBA0
SEBY6: PCC
SEBY7: PCADR ; OPDATERES
SEBY8: COUN2
SEBY9: 0 ; DOWNCOUNT
SEB00:0
SEB01:0
SEB02:0
SEB03:0
SEB04:0

SEBY1: 	STA 0,SEB00
	STA 1,SEB01
	STA 2,SEB02
	STA 3,SEB03
		ISZ SEBY6 @	; SØG FRA PCC+1 !!!!
		ISZ SEBY7 @
	LDA 2,SEBY5 @
	LDA 1,SEBY8 @
	ADD 2,1		; ØVRE ADR I BUFFER
	LDA 2,SEBY7 @
	LDA 3,CUR
	SUB 2,1,SZR
	MOVZL # 1,1,SZC ; CARRY!!
	JMP SEBY4	; IKKE FLERE BYTES I BUFFER
	STA 1,SEBY9 ; COUNTER REST AF BUFFER
SEBY2:	LDA 1,SEBY7 @
	GETBY
	LDA 1,SEB01
	SUBZL 2,2 
	SUB # 0,1,SNR
	JMP SEBY3 ; FUNDET
	ISZ SEBY6 @
	ISZ SEBY7 @
	DSZ SEBY9
	JMP SEBY2
	
SEBY4:	SUB 2,2
	STA 2,SEBY6 @
	LDA 1,SEBY5 @
	STA 1,SEBY7 @
SEBY3:	LDA 0,SEB00
	LDA 1,SEB01
	LDA 3,CUR
	JMP @ SEB03


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

 ; TYPE * SKRIV SIDEN TIL TTY/ EVT OSSE LPT
	;CALL:	1=LPT	.	.	CUR
	;RETU:	=	=	=	CUR

TYP91:	COUN2
TYP92:	ARBA0
TYP00:0
TYP01:0
TYP02:0
TYP03:0
TYP70:0
TYP80:0
TYP90:0
TYP1:	STA 0,TYP00
	STA 1,TYP01
	STA 2,TYP02
	STA 3,TYP03
	LDA 0,TYP91 @
	LDA 3,CUR
	MOV 0,0,SNR
	JMP TYP3
	STA 0,TYP90
	LDA 0,.3
	GOP
	LDA 1,TYP92 @
	STA 1,TYP80
TYP2:	LDA 1,TYP80
	GETBY
	LDA 3,CUR
	MOV 0,1
	OUT
	LDA 2,TYP00
	SZ 2,2
	OUL
	ISZ TYP80
	DSZ TYP90
	JMP TYP2
TYP3:	LDA 0,TYP00
	LDA 1,TYP01
	LDA 2,TYP02
	LDA 3,CUR
	JMP @ TYP03



;SIDE 9 SLUT
«ff»
.MSG  SIDE 10		292/3373	20.6.84	RESETPRG
; GEN RUTINER FORTSAT (3) HARDRUTINER
; AFPUDSET D.D. 




.TXT "  HARD  "


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

; HARD * HARDMODE INPUT ELLER OUTPUT

	;CALL:	TRACK	SECT	1/0	CUR 	
	;RETU:	=	=	=	CUR
	;			0 READ 1 WRITE
HM777: LPZON
HM778: YSID9 ; INPUT
HM779: PSID9 ; OUTPUT
HM26:  26
HM76:  76
HM88:  83 ; S

HM1:	STA 0,HM00
	STA 1,HM01
	STA 2,HM02
	STA 3,HM03


					; KONTROL AF PARAM / UDSKRIFTER:
	LDA 3,CUR
		LDA 0,HM778 @
		SZ 2,2
		LDA 0,HM779 @
		LDA 2,HM777
		OUTXT
	LDA 3,CUR

		;KONTROLUDSKRIFTER
		LDA 0,.3
		GOP
		LDA 1,HM88
		INC 1,1
		OUL	; T
		OSP
		OUT
	LDA 0,.6 ; FEJLNR
	LDA 1,HM00
		OULHX
		OSP
		OUTHX
	LDA 2,HM76
	SLE 1,2
	FEJL
		LDA 1,HM88  ; S
		OUL
		OSP
		OUT
	LDA 1,HM01
		OUTHX
		OSP
		OULHX
		LDA 0,HM72
		OUTXT
		OSP
	LDA 2,HM26
	SG 1,2
	SNZ 1,1
	FEJL

					; TRACK SELECT
	.DUSR FD1=52

HM2:		LDA 3,CUR
	LDA 1,.1B6
	DOAS 1,FD1
	LDA 0,HM00
	ADD 1,0
	LDA 1,.1B7
	ADD 1,0
	SKPBZ FD1
	JMP .-1
	DOAS 0,FD1

	SUB 0,0
	LDA 2,HM02
	SNZ 2,2
	JMP HM3 ; INPUT
					; STATUS & RESET FØR OUTPUT

		LDA 1,.63
		OUL
		LDA 1,.63
		OUT
		OSP
	SKPBZ FD1
	JMP .-1
	JMP HM2F
;:::
HM00:0
HM01:0
HM02:0
HM03:0
HM04:0
HM55: 0		; DOWNCOUNT
HM66: ARBA0
HM67: 0 	; LØBENDE ADR
HM77: COUN2	; SIDESTØRR
HM71: FFUT2*2
HM72:	.+1*2
	.TXT "    // STATUS: <0>"
;:::
HM2F:

	DIA 1,FD1 	; FORB. OUTPUT
		LDA 3,CUR
		MOVS 1,1
		OULHX 
		OUTHX	 	; STATUS FØR OUTP
		MOVS 1,1
		OULHX 
		OSP
		OSP
		OUTHX
		OSP
		LDA 1,.120
		OCH
		OSP
	DIC 1,FD1
		MOVS 1,1
		OULHX 
		OUTHX
		MOVS 1,1
		OULHX 
		OSP
		OSP
		OSP
		OUTHX
		LDA 1,.120
		OCH
		OSP

		LDA 1,T251
		DOC 1,FD1
	LDA 2,.128
	LDA 1,HM77 @
	LDA 0,.5 ; FEJL
	SUB 1,2,SZR
	FEJL ; BUFFER SIZE

					; OUTPUT TIL HARDBUFFER
	LDA 1,HM66 @	; BUFFER BYAD
	STA 1,HM67
	LDA 0,.128
	STA 0,HM55
HM25:	LDA 1,HM67
	GETBYTE
	DOB 0,FD1
	ISZ HM67
	DSZ HM55
	JMP HM25
		LDA 1,T251
		DOC 1,FD1
	LDA 0,.1B7
HM3:	LDA 3,CUR
		LDA 1,.64
		OUL
		OSP
		OUT

	LDA 1,HM01			; SECTOR COMMAND & STATUSUDSKRIFT
	ADD 1,0
	SKPBZ FD1
	JMP .-1
	DOAS 0,FD1
	SKPBZ FD1
	JMP .-1
	LDA 3,CUR
	DIA 1,FD1
		MOVS 1,1
		OUTHX
		OULHX
		MOVS 1,1
		OUTHX
			ONL	;SIDSTE
		OSP
		OULHX
			ONL
		OSP
	LDA 1,HM02
	MOV 1,1,SZR
	JMP HM4		; OUT SLUT

					; INPUT FRA HARD BUFFER
	LDA 0,HM00
	STA 0,HM000
	LDA 0,HM01
	STA 0,HM001 	; GEMMES TIL HO ELLER HR
	LDA 0,.128
	STA 0,HM77 @
	STA 0, HM55	; DOWN
	LDA 1,HM66 @
	DIB 0,FD1
	PUTBYTE
	INC 1,1
	DSZ HM55
	JMP .-4
HM4:		LDA 0,HM00
	LDA 1,HM01
	LDA 2,HM02
	LDA 3, CUR
	JMP @ HM03

		T251: 251

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

; HARDO * OUTPUT SAMME SECTOR SOM SIDST ER LÆST
; HARDR * OUTPUT (HARDO) OG INPUT NÆSTE SECTOR
; HARDY * READ   NÆSTE SECTOR
	;CALL:	.	.	.	CUR
	;RETU:	TRACK	SECT	1/0	CUR


HM000:0
HM001:6	;(RET UFARLIGT STED!)
HM600: 0
HM603:	0
HM626:	26
HM222: HM1

HM5:	LDA 0,HM000
	LDA 1,HM001
	LDA 2,.1
	JMP @ HM222

HM6:	STA 3,HM603
	JSR HM5
	STA 0,HM600
	LDA 0,.1
	LDA 3,CUR
;			TYPE
	LDA 0,HM600
HM65:	INC 1,1
	LDA 2,HM626
	SG 1,2
	JMP .+3
	SUBZL 1,1
	INC 0,0
	SUB 2,2
	JSR @ HM222
	JMP @ HM603

HM7:	LDA 0,HM000
	LDA 1,HM001
	STA 3,HM603
	JMP HM65




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

; BLB * BLOCKBEREGNING AF TRACK/SECTOR
	
	;CALL:	BLOCK	.	.	CUR
	;RETU:	TRACK	SECT	=	CUR

BLB00:0
BLB01:0
BLB02:0
BLB03:0
BLB1:	STA 0,BLB00
	STA 1,BLB01
	STA 2,BLB02
	STA 3,BLB03
	LDA 3,CUR 
	MOVZL 0,0
	MOVZL 0,0
	LDA 1,.3
	SUB 1,0
	LDA 1,.25
	INC 1,1
	DIVID
	MOV 3,1
	LDA 2,BLB02
	LDA 3,CUR
	JMP @ BLB03
	

;SIDE 10 SLUT
«ff»
.MSG  SIDE 11		285/3255	15.5.84
; ZONER, BUFFERE, PRCD OG FKT-TABEL
; PROCESNAVN NU 'F'




24
0
TTZON:.TXT 'TTY<0><0><0>'		;ZNAME 
	Z		;SIZE 
	0		;ZMODE 
	1		;ZKIND 
	65535		;ZMASK 
	FFEJ1		;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
LPZON:.TXT 'LPT<0><0><0>'		;ZNAME 
	Z		;SIZE 
	0		;ZMODE 
	1		;ZKIND 
	65535		;ZMASK 
LPTD9:	FFEJ1		;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
	0
	10
	PCDS
	0
	0
	0
	0
	0
	0
		; PROCES-DESCRIPTOR:
PCDS:	.+0 
	.-1 
	0 
	0 
	.TXT 'DRES<0>' 
	.+0 
	.-1 
	BUFF1 
	PGDS 
	0 
	0 
	33 
	OPER1 
	0 
	0 
	0 
	0 
	BIRTH*2 
	0
	1
	2
	3
	4
	5
	6
	7
	8
	9
	
.DUSR GOP  = JSR @ 30,3
OP1
.DUSR INTHX= JSR @ 31,3
RTH1
.DUSR INT  = JSR @ 32,3
RT
.DUSR INI  = JSR @ 33,3
	FEJL1	;	RI
.DUSR OUT  = JSR @ 34,3
WT
.DUSR OUL  = JSR @ 35,3
WL
.DUSR OUO  = JSR @ 36,3
	FEJL1	;WO
.DUSR OH   = JSR @ 37,3
H1
.DUSR OSP  = JSR @ 38,3
O1
.DUSR ONL  = JSR @ 39,3
O2
.DUSR OCH  = JSR @ 40,3
O4
.DUSR INTK = JSR @ 41,3
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 OUTXT= JSR @ 46,3
OUTX1
.DUSR SEBYT= JSR @ 47,3
SEBY1
.DUSR INTFI= JSR @ 48,3
	FEJL1	;RTF1
.DUSR OUTFI= JSR @ 49,3
	FEJL1	;OUTF1
.DUSR OULFI= JSR @ 50,3
	FEJL1	;OULF1
.DUSR OUFI = JSR @ 51,3
	FEJL1	;OUF1
.DUSR BLB  = JSR @ 52,3
BLB1
.DUSR HARD = JSR @ 53,3
HM1
.DUSR HARDO= JSR @ 54,3
HM5
.DUSR OUTHX= JSR @ 55,3
WTHX
.DUSR OULHX= JSR @ 56,3
WLHX
.DUSR FLYT = JSR @ 57,3
FLYT1
.DUSR TYPE = JSR @ 58,3
TYP1
.DUSR HARDR= JSR @ 59,3
HM6
.DUSR HARDY=JSR @ 60,3
HM7
.DUSR LMV  = JSR @ 61,3
	FEJL1	;LMV1
.DUSR INTW = JSR @ 62,3
IW1
.DUSR OUTW = JSR @ 63,3
OUTW1
.DUSR OULW = JSR @ 64,3
OULW1
.DUSR LTL  = JSR @ 65,3
	FEJL1	;LTL1
.DUSR WHX  = JSR @ 66,3
WHX1



-1
	.END PCDS 
	

;SIDE 11 SLUT / FIL SLUT
«ff»
«nul»