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

⟦2d4adbaf0⟧ TextFile

    Length: 44544 (0xae00)
    Types: TextFile
    Names: »AED8«

Derivation

└─⟦403f4c9ff⟧ Bits:30001796 SG0016 Floppy
    └─ ⟦this⟧ »/AED8« 

TextFile

; 15.5.84 FÆRDIGVERSION NR 3, REV NR 2.06 /// FD /// AED8:N, :J
; INAKTIVISERING AF TTYFLAG INTO6 / 2.05 FÆRDIG / 15.5.84
; 14.5. VIRKEDE IKKE, RETTELSER !!
; 14.5.84 AFSLUTN AF VERSION MED NYT ;, =, ELEM @-RUTINER 2.05, AED8, "FDIT!"

; @E, @F RETTET LMV2 PÅBEG 12.5.84
; REV 2.04 11.5.84 (MÅSKE STADIG FEJL I NOGLE @-FKT!)
; @ RETTET AFTEN; TOSSEFEJL RETTET 10.5.84 EFTERM ; 10.5.84 FORMIDDAG
; 9.5.84 EFTERM
; (FORTS); VERSION 2.03 9.5.84 / RETTELSER & FORBEDR (HY, W)
; FÆRDIGVERSION 2.02 MANDAG 7.5.84 KL 17 /AFPRØVET/ FIL AED3:B, N, ...
; BINÆR FIL FDIT / PROCES F
; FILEN ER NETOP AFPRØVET, MEN FEJL KAN FOREKOMME ...?!

; MANDAG I GRÅVEJR & SOMMERKULDE 7.5.84
; SØND MIDDAG (KØLIGT); SØND 6.5.84 KL 830 (DISET VEJR)
; 5.5.84 SEBY1 FORSØG, RETTE HB,HS
; ED7:B
; B: RETTELSER PÅ VERSIONEN FRA N (ONSDAG) NU FRED 4.5.84 EFTERM
; ONSDAG 2.5.84 MINDRE RETTELSER / NYHEDER ER PT UAFPRØVEDE! / :B, KOPIERET TIL :N

; TIRSDAG AFPUDSN
; MANDAG 30.4.84 RETTELSER
; RETABL AF KOMPLET FIL ED3:N
;          ORIG BEATANDDELE: M > O > N (DENNE) OG KOPI TIL L / DOMAC
;	FILNAVNE: PAED8 > ED9 & PM2 > ED2 > ED3 (SIDSTE SIDE MED FRA PAED1)


; **************************************************
; SIDE	INDH
; 1:	TEKSTER, FEJL
; 2:	BIRTH, DEAD
; 3:	HY HR HM HO HB HS
; 4:	@ Y P R
; 5:	B : = . M L T K I O
; 6:	S G
; 7:	GENERELLE RUTINER: INTK, GOP, INTFI, OUTFI, LMV, LTL
; 8:	-"- INTW, INTHX, OUT, OUTW, OH, OSP, LPD, OUTXT  /ETC
; 9:	-"- FLYT, SEBYT, TYPE
; 10:	-"- HARD, BLB   /ETC
; 11:	ZONER, PRCD, TABEL

.MSG  SIDE 1A AF 11	126/4334	15.5.84	AED8



; RETTELSER AF INDTASTN & PÅBEG OVERSÆTTELSE 29.4.84 SØNDAG EFTERM
; FORTS UDVID & RETTE, STADIG IKKE PRØVEKØRT 28.4.84 / PAED7:M (NY DISKETTE)
; UDVIDELSER PÅBEG 27.4.84  / VERS 2.01 / PAED6

; 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 MAJ 84 / VERS. 2.06<10>
<13><10> @@, ?:  HELP 
<13><10> HS: HARDW SELECT TRC/SEC I/O   * EX: HS130B, HS130BO (TRC 19 /SECT 11) (O=OUT)
<13><10> HO: HARDW OUTPUT, SAMME SECTOR * EX: HO      (INGEN PARAM!)
<13><10> HY: HARDW INPUT NÆSTE SECTOR   * EX: HY
<13><10> HR: HARDW REPEAT (LÆS NÆSTE)   * EX: HR      (INGEN PARAM)
<13><10> HM: UNIT BLOCKDISPL. DEF       * EX: HM, HM@ (@=UNIT 0/3)
<13><10> HB: HARDW BLOCK SELECT INPUT   * EX: HB011A  (011A=BLOCK 256+16+10)
<13><10> GI: OPHÆV HARDW SELECT, INIT DEVICE    * EX: GI3, GI0
<13><10> GR, GW, GC, GK, GO: FILOPERATIONER     * EX: GKTESTF, GWTESTF:3
<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> .: AKT. POSITION   :, =: SIDENS ANTAL LINIER OG TEGN
<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 HVIS EJ ASCII)
<13><10> I: INSERT          * EX: I T E S T0D0A,   I_TEST<60>RETURN><60>ESC>
<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   ***((IKKE IMPL))***
<13><10> H: HOME 
<0>
<13><10><10> KOMMANDOER: GW, GR, GC, GK, GI, HS, HB, O, Y, P, R, T, ., M, L, I, K, S, H
<0>"

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> *** FILER ÅBNE ***<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
			.NOLOC 0



«ff»
.MSG  SIDE 1B		31/760		12.5.84

;  @@-HELP


		.NOLOC 1


TEKSM:
.TXT %<13><10> SPECIELLE RUTINER (SE OSSE "?")
<13><10> @A: ASCII-FORMAT
<13><10> @B: ASCII-HEX-FORMAT
<13><10> @C: HEX-FORMAT
<13><10> @D: DISASSEMBLER
<13><10> @E: KVÆL $LPT-LOGNING
<13><10> @F: FORBERED $LPT-LOGNING (SE OSSE @I)
<13><10> @G: VÆLG LINIEBREDDE * EX: @G02, @G10, @G18, @G20, @G30
<13><10> @H: VÆLG BUFFER      * EX: @H0080, @H0400 (MAX!)
<13><10> @I: OPEN $LPT FØR LOGNING
<13><10> @J: JSR TIL ADR.             * EX: @J7005 (FARLIGT!!!)
<13><10> @K: OUTPUT SIDE TIL COREADR  * EX: @K7005 (FARLIGT)
<13><10> @L: LÆS SIDE FRA COREADR     * EX: @L7005
<13><10> @M: KORTLÆGGE $FD1-DISKETTE  * EX: @M
<13><10> *** BUFFER W-ADR = <0>%
		;PAS PÅ SLUTTEGN!

		.NOLOC 0



;SIDE 1B SLUT
«ff»
.MSG  SIDE 1C		83/923		15.5.84



 ; === FEJL ===
		; CALL: FEJLNR	.	.	(CUR)
FEJL8:	FTXT
FEJL9:	FTXT
FEJL0:	0
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


FFEJ8:	FFUT2*2
FFEJ9:	FFUT1*2
FFE00:0
FFE01:0
FFE02:0
FFE03:0
FFEJ1:	STA 0,FFE00
	STA 1,FFE01
	STA 2,FFE02
	STA 3,FFE03
	LDA  0,.3
	LDA 3,CUR
	GOP
	ONL
	LDA 0,FFE02 ; FILZONE!
	MOVZL 0,0
	OUTXT
	LDA 0,FFEJ9
	OUTXT
	LDA 1,FFE01 ; STATUS 
	MOVS 1,1
	OUTHX
	MOVS 1,1
	OUTHX
	OSP
	ONL ;?
	LDA 0,FFEJ8
	OUTXT
	ONL
	OPERA

HELP1:	LDA 0,.3
	LDA 3,CUR
	GOP
	LDA 0,TEKST
	OUTXT
	OPERA

FILFL:	GFK9 		;FLAG FOR ÅBNE FILER
FIAD8: FIZON
TEKST: LAB00*2
COUN9: COUN0
PARAD: 0
BI3:	LDA 1,.6
	SUB 0,1,SZR
	JMP BI5
	LDA 1,7,2
	LDA 2,.1024
	SLE 1,2
	LDA 1,.512
	STA 1,COUN9 @	; BUFFER SIZE DEF
	JMP BI5


; SIDE 1C SLUT / SIDE 1 SLUT (IALT 11 SIDER)
«ff»
.MSG  SIDE 2		140/1626	15.5.84
; BIRTH & DEAD / INGEN FILPARAM I LOAD MERE
; LOGDEFAULTOPTION ER STILLET I BERO


BIRTH:			
	STA 1,PARAD
	MOV 1,2		;
	LDA 0,5,2
	LDA 3,.10
	SUB 0,3,SZR
	JMP  BI3
BI5:	LDA 2,LPAD ; LPT LOGZONE
	LDA 0,.3
	LDA 3,CUR
		LPD
	OPEN
	LDA 3,CUR
		LPDW
	LDA 0,.3
	GOP
	LDA 0,TEKST
	OUTXT

OPER1:
	ISZ OPER4
	STA 3,OPER3
	LDA 3,CUR
	INTK
OSID1
YSID1
PSID1
RSID1
TYPE1
TFEM1
MOVE1
LMOV1
INSE1
KILL1
SEAR1
CHAN1
DEAD1 ; EVT HMM1 ELLER BLOC1 (SE DEAD1 ELLER HMM1)
GFIL1 ;
HELP1 ;
WKTR1 ; 2.03
FEJL1	; A IKKE LAVET
BB1
LS1
LS1	; (BÅDE : OG =)
FEJL1
FEJL1
-1
; DER JMP'ES TIL DISSE RUTINER, ALLE ACC UDEF, DER RETURNERES TIL OPER1

OPER3: 0
OPER4: 0
-3

DEAD5:	HMM1	; HS - HB - RUTINERNE

DEAD6:	GFK9	; FLAG FOR ÅBNE FILER
DEAD7:	GFK8	; FLAG FOR ÅBNE FILER PÅ $FD1
DEAD8: 72
DEAD9: .+1*2
	.TXT "DEAD?<0>"
DEAD1:	LDA 3,CUR
	LDA 0,.3
	LDA 1,DEAD7 @
	SZ 1,1
	FEJL
	INT
	LDA 0,.32
	SLE 1,0
	JMP DEAD5 @ ; HARD SELECT

	LDA 0,.3 ; FEJLNR
	LDA 2,DEAD6 @
	MOV 2,2,SZR
	FEJL

	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
	
	LDA 1,.1	; FLG BRUGES HVIS DER HAR VÆRET ÅBNET FILER
	LDA 2,FIAD
	CLOSE
	LDA 1,.1
	LDA 2,INAD
	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		150/1807	9.5.84


 ; ******************* EDITOR HARD OPERATIONS *********
 ; HARDSELECT-RUTINER HS OG HB; 1) H 2) HS 3) HB 4)FEJL


 ; === HY ===

HY98: 89 ; Y
HY1:	LDA 2,HY98
	SE 1,2
	FEJL
	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		303/3654	15.5.84
; @, 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)
	LMV2
	LMV1
	LMV1
	LMV9

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


WWWBA:	BUADR
WWW0:	LDA 0,.3
	GOP
	LDA 0,TXTMF
	OUTXT
	LDA 0,WWWBA
	OUTW
	OPERA
TXTMF:	TEKSM*2 ;(SIDE 1B)

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
WWW72:	LMO91
WWW7:	INTHX
	STA 1,WWW71 @
	STA 1,WWW72 @
	OPERA

WWW81:	COUN0
WWW8:	INTW
	LDA 1,.1024
	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 0,.0
	FEJL


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

 ; === Y ===

	.NOLOC 1
YSID9: .+1*2
	.TXT "<13><10><10>INPUT - - - - <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

	LDA 0,INAD9
	OULFI
	ONL
	ONL
	OSP
	OUTFI
	ONL

YSID2:		; FIL ÅBEN? / FIL-FEJL FRA DEAD!
	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 <0>"
		.NOLOC 0


PSID0: 0
PSID3: 	STA 3,PSID0
	LDA 3,COUN2
	STA 3,PSID8
	JSR RESE1
	LDA 1,PSID9
	JSR OULK1

	LDA 0,FIAD9
	OULFI
	ONL
	ONL
	OSP
	OUTFI
	ONL
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
RESE9:	0
RESE1:	LDA 1,ARBA0
	STA 1,ARBA1
	STA 3,RESE9
	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 2,LPAD9
	OUTXT
	JMP @ OULK0

;:::::::::::::
INAD9: INZON
FIAD9: FIZON
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		242/3000	15.5.84 
; B : = . M L T K I O            
;
      


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

 ; === L ===

LMOV1:	JSR DIPL1 ;NEG & BYTE
	JSR BYBI1 ; NEG $ SIGNED BIT & UNSIGN BIT
	LMV	; UDSKIFTELIG RUTINE (61)
	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



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


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





;SIDE 5 SLUT
«ff»
.MSG  SIDE 6		173/2150	14.5.84
; S GW GR GC GK GI GO Gü GB   & BUFFER



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

 ; === G === GR GW GC GK GI

GFHAR: HFLAG 	; HARDMODE FLAG : FILER PÅ $FD1 FORBUDT
GF0: 0; COUNTER 0-4
GF9: 0
GF8: .+1
	.TXT "<0>C<0>K<0>R<0>W<0>I<0>O<0>ü<0>B<0><0><0><0>"
GF7: TTZON
GFIL1:	LDA 3,CUR
	LDA 1,GF8
	STA 1,GF9
	INT
	SUB 0,0
	STA 0,GF0
GFIL2:	LDA 2,GF9 @
	MOV 2,2,SNR
	FEJL
	SNE 1,2
	JMP GFIL3
	ISZ GF9
	ISZ GF0
	JMP GFIL2
GFIL3:	LDA 2,GFILT
	LDA 1,GF0
	ADD 1,2
	SUB 0,0
	JMP @ 0,2
GFILT:	.+1
	GCF1
	GKF1
	GRF1
	GWF1
	GI1
	GOF1 
	GCF2  ; LUK INPUTFIL ONLY
	GBF1  ; RESERVERUTINE (ULOVLIG!)
	FEJL1
	FEJL1

;:::
GFILI: INZON
GFILO: FIZON
GFILL: LPZON
;:::

GWF1:	LDA 2,GFILO
	LDA 3,CUR
	INTFI
	MOV 0,0,SZR
	ISZ GFK8 	; FIL PÅ $FD1 FLAG
		LDA 0,.1
		LDA 1,.0
		CREAT
	LDA 0,.3
	OPEN
	ISZ GFK9	; FIL FLAG
	LDA 3,CUR
	OPERA
GRF1:	LDA 2,GFILI
	LDA 3,CUR
	INTFI
	MOV 0,0,SZR
	ISZ GFK8	; FIL PÅ $FD1 FLAG
	LDA 0,.1
	OPEN
	ISZ GFK9	; FIL FLAG
	LDA 3,CUR
	OPERA
GCF1:	SUB 3,3
	STA 3,GFK8
	STA 3,GFK9
	LDA 1,.1
	LDA 2,GFILO
	CLOSE
	SUB 0,0
	STA 0,0,2
GCF2:	LDA 1,.1
	LDA 2,GFILI
	CLOSE
	SUB 0,0
	STA 0,0,2
	LDA 3,CUR
	OPERA

;::::::::::::::::
GFK8: 0		; *** $FD1-FIL-FLAG *** /HS, HB CHECK /GR, GW, GC SET
GFK9: 0		; *** FILFLAG ***   /H, GK CHECK  /GR, GW, GC SET
;::::::::::::::::

GKF1:	LDA 1,GFK9
	LDA 0,.3
	LDA 3,CUR
	MOV 1,1,SZR
	FEJL
	LDA 2,GFILO
	INTFI
	REMOV
	LDA 3, CUR
	OPERA
GI1:	LDA 3,CUR
	LDA 0,.0
	STA 0,GFHAR @ ; OPHÆV HARD MODE
	INT
	LDA 2,GF7
	LDA 0,.48
	SUB 0,1
	INITC ; ?
	LDA 3,CUR
	OPERA


GBF1:	INT
	LDA 2,.2
	SE 1,2
	OPERA
	SUB 0,0
	LDA 2,GFILO
	STA 0,0,2
	LDA 2,GFILI
	STA 0,0,2
	STA 0,GFK8
	STA 0,GFK9
GOF1:	LDA 2,GFILL
	ONL
	LDA 0,GOF91
	OUTXT
	LDA 2,GFILI
	INTFI
	LDA 0,.1
	OPEN
	LDA 3,CUR
	
	INI
			OUL
	OUO
	JMP .-3 	; -2 HVIS OUL VÆK!!!!!!!
GOF91:	.+1*2
	.TXT "<13><10><10>DIREKTE KOPIERING:<13><10><10> <0>"




 .TXT "  BUFFER:  "

		.NOLOC 1
BUADR:
.TXT " . . . . . . . . . . . . . . . . . ."
.BLK 512
.TXT " * * * * * * * * * * * * * * * * * *"

		.NOLOC 0

;SIDE 6 SLUT
«ff»
.MSG  SIDE 7		306/4096	15.5.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
INTK6: HFLAG
INTK7:	.+1*2
	.TXT "<13><10> HARD MODE / <0>"
INTK8: .+1*2
	.TXT " 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>G<0>?<0>@<0>A<0>B<0>:<0>=<0><0><0><0><0>"

		.NOLOC 0
INTK0: 0
INTK1:	STA 3,INTK0
	LDA 0,INTO6
;			SNZ 0,0
;			JMP INTO1	; FLERE KOMMANDOER?!
INTO2:	LDA 0,.3
	LDA 3,CUR
	GOP
	LDA 1,INTK6 @
	LDA 0,INTK7
	MOV 1,1,SZR
	OUTXT
	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,.32
	SG 1,3
	JMP INTO2
	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 3,.2
		SL 1,3
		ISZ INTO6
	LDA 2,OP9
	LDA 1,.0
	CLOSE
	LDA 0,OP00
	OPEN
	LDA 0,OP00
	LDA 3,CUR
	LDA 1,.3
	SNE 0,1
	ONL
	LDA 1,OP01
	JMP @ OP03


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

; INTFI * DEFINER FILZONENAVN OG INIT DEVICE (FIL IKKE ÅBNET)
	;CALL:	.	.	ZON	CUR
	;RETU:	DEVIC	=	=	CUR
RTF98: HFLAG
RTF97: 0
RTF96: INTO6
RTF7:  0
RTF00:0
RTF01:0
RTF02:0
RTF03:0
RTF9: 58 ;:
RTF91: 46 ; FILBOGSTAV LIMIT
RTF8: 0; ZONE BYTEADR!!

RTF1:	STA 0,RTF00
	STA 1,RTF01
	STA 2,RTF02
	STA 3,RTF03
		ISZ @ RTF96 ; TTYFLAG
		ISZ RTF97
	MOVZL 2,3
	STA 3,RTF8
	LDA 1,.1
		LDA 3,RTF97
		SG 3,1
	CLOSE
	SUB 0,0
	STA 0,0,2
	STA 0,1,2
	STA 0,2,2
		STA 0,RTF97
RTF2:	LDA 3,CUR
	INT
	LDA 2,RTF9
	SUB 0,0
	SNE 1,2
	JMP RTF3	 ; DEVICE SELECT
	LDA 0,RTF91	; 46 = . (LOVLIGT FILBOGSTAV)
	SGE 1,0
	JMP RTF4	; SLUT, DEVICE 0 UNDERSFORSTÅET

	MOV 1,0
	LDA 1,RTF8
	PUTBY
	ISZ RTF8
	JMP RTF2
RTF3:	LDA 0,.4
	LDA 1,RTF98 @
	SZ 1,1
	FEJL		;FILFORBUD PÅ DEVICE <> 0	
	INT
	LDA 2,.48
	SUB 2,1
	MOV 1,0
	STA 1,RTF7
	LDA 2,RTF02
	INC 2,2
	INCOL 2,1
	PUTBY ; BYTE 6 I ZONE
	LDA 1,RTF7
	LDA 2,RTF02
	INITC
	LDA 0,RTF7

RTF4:	LDA 1,RTF01
	LDA 2,RTF02
	LDA 3,CUR
	JMP @ RTF03


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


; OUTFI * OUTPUT FILNAVN TIL TTY
; OULFI
; OUFI  (?)
	; CALL:	ZON	.	.	CUR
	; RETU:	=	=	OUZON	CUR

OUF00:0
OUF01:0
OUF02:0
OUF03:0
OUTF1:	LDA 2,TTAD7
	JMP OUF1
OULF1:	LDA 2,LPAD7
	JMP OUF1
OUF1:	STA 0,OUF00
	STA 1,OUF01
	STA 3,OUF03
	LDA 1,.2
	SUBOL 1,0
		LDA 3,CUR
		OUTXT
	LDA 1,OUF01
	LDA 0,OUF00
	JMP @ OUF03

;::::::::::::
TTAD7:	TTZON
LPAD7:	LPZON
;::::::::::::

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


; LMV * LINEMOVE
; ENTRY LMV1 TIL HEXVERSION
; ENTRY LMV2 TIL ASCIIVERSION
; ENTRY LMV9 TIL 2 (DISASS)

LMO91:	24 ;(ÆNDRES EVT VED @)
LMO00:0
LMO01:0
LMO02:0
LMO03:0
LMV1:	STA 0,LMO00
	STA 2,LMO02
	STA 3,LMO03
	MOV 2,1
	LDA 0,LMO91
	MULTIPLY
	LDA 0,LMO00
	SZ 0,0
	NEG 1,1
	LDA 2,LMO02
	LDA 3,CUR
	JMP @ LMO03


	;CALL:	1=NEG	SIGNED	UNS.	CUR
	;		BINVAL	BINVAL
	;RETU:	=	EFF.VAL	=	CUR

LMV2:	STA 0,LMO00
	STA 1,LMO01
	STA 2,LMO02
	STA 3,LMO03
	LDA 3,CUR
	SZ 0,0
	JMP LMV8
	LDA 2,.1
	LTL	;AC1=NYE PCC /OK?
	LDA 0,LMO00
	LDA 2,LMO02
	JMP @ LMO03
LMV8:	LDA 0,.0
	FEJL	; IKKE IMPL


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

; LTL * LINIETÆLLERUTINE
	;CALL:	1=NEG	ANTAL	OPDAT	CUR
	;RETU:	TALT	PCC	PCADR	CUR

LTL00:0
LTL01:0
LTL02:0
LTL03:0
LTL81:	PCC
LTL82:	PCADR
LTL83:	0
LTL84:	0

LTL1:	STA 0,LTL00
	STA 1,LTL01
	STA 2,LTL02
	STA 3,LTL03
	LDA 3,CUR
	LDA 1,.13
	LDA 2,LTL81 @
	STA 2,LTL83
	LDA 2,LTL82 @
	STA 2,LTL84
	SZ 0,0
	JMP LTL2 	; TILBAGE
	SEBYT
	SNZ 2,2
	JMP .+4	; IKKE FUNDET SIDSTE
	INC 0,0
	DSZ LTL01
	JMP .-5
	LDA 1,LTL81 @
	LDA 2,LTL82 @
	LDA 3,LTL02	; OPDATERING? ELLERS GAMLE VÆRD
	SNZ 3,3
	JMP .+5
	LDA 1,LTL83
	STA 1,LTL81 @
	LDA 2,LTL84
	STA 2,LTL82 @
	LDA 3,CUR
	JMP @ LTL03
LTL2:	LDA 1,LTL81 @
	LDA 0,.0
	FEJL
	; IKKE LAVET ENDNU!


;SIDE 7 SLUT
«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
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
;:::::::
;---------------------------

; 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
WO:	LDA 2,FIADR
	JMP W1
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		304/3570	12.5.84
; GEN RUTINER FORTSAT (3) HARDRUTINER
; AFPUDSET D.D. 




.TXT "  HARD  "


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

; HARD * HARDMODE INPUT ELLER OUTPUT

	;CALL:	TRACK	SECT	1/0	CUR 	
	;RETU:	=	=	=	CUR

HFLAG: 0		; HARDMODE FLAG * FILFORBUD PÅ FD1 *
HFLAT: 0
HM666: GFK8		; $FD1-FIL-FLAG * HARDMODE FORBUDT
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
	LDA 0,.3 ; FEJLNR
	LDA 2,HM666 @
	SZ 2,2
	FEJL   ; ÅBEN FIL PÅ $FD1

		;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
		ONL
		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 0,.3
		GOP
	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
		ISZ HFLAG
	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
		LDA 0,HM71
		OUTXT
		ONL
		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
		LDA 0,HM71
		OUTXT
		ONL
		OSP

	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 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
		OSP
		OULHX
		LDA 0,HM71
		OUTXT
		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

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

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


.TXT "TIL "

FIZON:.TXT 'FIL<0><0><0>'	;ZNAME
	Z		;SIZE 
	0		;ZMODE 
	1B14+1B13+1B12+1B11
65535
FFEJ1
1
1
0
FIS0
263
0
0
FIB0*2
FIB0*2
FIS0
512
0
.BLK ZAUX
FIS0: 0
0
0
0
FIS0
0
FIB0*2
FIB0:	.BLK 256



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 

.TXT "FRA "

INZON:	.TXT 'PLRÅ<0><0>'		;ZNAME
	Z		;SIZE 
	0		;ZMODE 
	1B14+1B13+1B12+1B11	;ZKIND   BLOCK+POSIT+REPEA+CATAL
	65535		;ZMASK 
	FFEJ1		;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:	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 'F<0><0><0><0>' 
	.+0 
	.-1 
	BUFF1 
	PGDS 
	0 
	0 
	33 
	BI5 
	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
RI
.DUSR OUT  = JSR @ 34,3
WT
.DUSR OUL  = JSR @ 35,3
WL
.DUSR OUO  = JSR @ 36,3
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
RTF1
.DUSR OUTFI= JSR @ 49,3
OUTF1
.DUSR OULFI= JSR @ 50,3
OULF1
.DUSR OUFI = JSR @ 51,3
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
LMV1
.DUSR INTW = JSR @ 62,3
IW1
.DUSR OUTW = JSR @ 63,3
OUTW1
.DUSR OULW = JSR @ 64,3
OULW1
.DUSR LTL  = JSR @ 65,3
LTL1
.DUSR WHX  = JSR @ 66,3
WHX1



-1
	.END PCDS 
	

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