|
|
DataMuseum.dkPresents historical artifacts from the history of: RegneCentralen RC3600/RC7000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RegneCentralen RC3600/RC7000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 43008 (0xa800)
Types: TextFile
Names: »PAM86«
└─⟦7028332c6⟧ Bits:30001795 SG0015 Floppy
└─⟦this⟧ »/PAM86«
; 'PAM86' 20.8.85 SIDSTE RETTELSE
; SIDSTE VERSION AF PAM85:
; 'PAM85' MED AUTOMATISK DISKETTEIDENTIF OG PARAMETEROPTION OG SMAL SKRIFT
; ETABL 20.8.85
; PARAM 0 ELLER 1 GIVER STRAX KORTLÆGN AF DISKETTE I DRIVE $FD1
; (0 HVIS SMALT PAPIR, 1 HVIS BREDT)
; INGEN PARAMETER GIVER MENUVALG HVOR MAN NORMALT BLOT SKAL VÆLGE 'M'
; (HVIS 'M' ER PAPIRBREDDE LÅST FAST EFTER PRG.LOAD)
;====================================================================
; 20.8.85 RETTELSER (BLA UDELADE TTYOUTPUT UNDERVEJS)
; ÆNDRET MED AUTOMAP + JUST 19.8.85
; 'PAM8' FÆRDIGVERSION 15.3.85 (== PAM84)
; KAN NU KLARE FLERE FEJL OG UDSKRIVER OSSE $-ENTRIES
; RETT 15.8.85 (TILFØJ LDA 3,CUR PGA NYE SPRING!)
; RETT 15.8.85
; RETTELSER TIL NY VERSION 'PAM8' UD FRA 'PAM6' PÅBEG 14.8.85
; *************
; 'PAM6':
; 12.6.84 NAT
; 12.6.84 AFTEN IGEN
; 12.6.84 IGEN
; JUSTERINGER TIL NÆSTE VERSION PÅBEG 12.6.84
; FØRSTE FÆRDIGVERSION:
; 7.6.84 IGEN KL 13
; 7.6.84 IGEN
; 7.6.84 IGEN
; 7.6.84 GENINDTASTN AF SIDSTE RETTELSER & RETTELSER IØVR , FORM
; 6.6.84 KL 1530 (LIGNER SIDSTE FEJL RETTES, MEN STADIG UAFPUDSET PRG)
; 6.6.84 KL 1330
; 6.6.84
; 6.6.84 FORM REGN
; 5.6.84 KL 1435
; 5.6.85 KL 14
; 5.6.84 LAYOUT & AUTOMAP ETABL
; 2.6.84 KL 15
; LAYOUTJUSTERING 2.6.84 KL 14
; 2.6.84 KL 13
; 1.6.84
; 1.6.84 KL CA 18 / BEGYNDER AT VIRKE!
; 1.6.84 RETTET
; 1.6.84
; 30.5.84 MINDRE RETTELSE
; 30.5.84 NU MED LOOKUP & TITELBLOCK-UDSKRIFT
; IGEN DD ; 29.5.84 NU BEDRE!! 148/2468
; 28.5.84
; 27.5.84
; 23.5.84 145/2420
; 23.5.84 FORM
; 22.5.84
; RETTELSER PÅBEG 21.5.84
; UDVIKL AF PLMAP-PROGRAM PÅ BASIS AF AED8 (S.D.) PÅBEG 20.5.84
.TITL MAPPG
.MSG SIDE 1 182/3330 MAP8 (CFR FD/AED8)
.NREL
.RDXO 16
.RDX 10
.TXTM 1
.TXTN 1
PGDS: 1B0+1B5+1B15 ;PROGRAMDESCRIPTOR (7 WORDS)
LAB00
0
PCDS-PGDS
.TXT 'FD1MP'
.NOLOC 1
LAB00: .TXT "<12><10>DISKETTE KORTLÆGNINGSPROGRAM<13><10>PL AUG 85 /VERS 8.05<10><10><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> *** GAL SLICE SIZE ***<13><10><0>"
FUT5: .TXT "<13><10> *** NY FEJL ***<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
TEKSM:
.TXT %<13><10>
<13><10> @A: ASCII-FORMAT
<13><10> @B: ASCII-HEX-FORMAT
<13><10> @C: HEX-FORMAT
<13><10> @D: SLICESIZE * EX: @D03
<13><10> @E: KVÆL $LPT-LOGNING
<13><10> @F: START $LPT-LOGNING
<13><10> @G: VÆLG LINIEBREDDE * EX: @G02, @G10, @G18, @G20, @G30
<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: LAV SKRIFT (INDEXSKRIFT)
<13><10> *** BUFFER W-ADR = <0>%
;PAS PÅ SLUTTEGN!
.NOLOC 0
; === FEJL ===
; CALL: FEJLNR . . (CUR)
FEJL8: FTXT
FEJL9: FTXT
FEJL0: 0
CHAN1:
FEJL1: INC 0,1
LDA 3,.10
SL 1,3
MOV 3,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,TEKSH
OUTXT
OPERA
TEKSH: TKSH*2
LPAD2: LPZON
TEKST: LAB00*2
COUN9: COUN0
PARAD: 0
;SIDE 1 SLUT
«ff»
.MSG SIDE 2 210/2864 15.8.85 MAPPRG
BIPA: 0
BUADR:
BIRTH:
MOV 1,2
LDA 1,5,2
STA 1,BIPA
LDA 1,7,2 ; LOAD PARAM ELLER 0 HVIS INGEN
MOV 1,1,SNR
ISZ @ BIVLG ; Ø ISTF O NÅR RUTINE M KØRES
LDA 2,LPAD2 ; LPT LOGZONE
LDA 0,.3
LDA 3,CUR
OPEN
LDA 3,CUR
LDA 0,.3
GOP
LDA 0,TEKST
OUTXT
LDA 0,TEKSH
OUTXT
LDA 2,BILPA
LDA 0,TEKST
OUTXT
;MAPPRG:
LDA 2,SKADR
LDA 0,SKTGN
STA 0,0,2
INC 2,2
DSZ SKS12
JMP .-3
LDA 1,.32
STA 1,SKS12
SUB 1,1
STA 1,0,2
INC 2,2
DSZ SKS11
JMP .-10
LDA 2,BIPA
SZ 2,2
JMP @ BIAU1 ; HVIS LOADPARAMETER
OPERA ; HVIS IKKE LOADPARAMETER
SKADR: PCDS+128
SKTGN: .TXT !. !
SKS11: 157
SKS12: 32
BILPA: LPZON
BIVLG: AUVL3
BIAU1: AUVL1
.NOLOC 1
.TXT "IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII"
.TXT "IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII"
.TXT "IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII"
TKSH: .TXT " ?:
<13><10> M: AUTOMATISK KORTLÆGNING
<13><10> B: RESET SKEMA
<13><10> O: NORMAL AUTO MED LÆSN
<13><10> Ø: NORMAL AUTO UDEN LÆSN
<13><10> X: FØRSTE SECTOR I SYS
<13><10> V: ALLEDERE VALGT SYSSECTOR
<13><10> W: ANAL AF VALG T/S * EX: W0F12 (TTSS)
<13><10> E: ALLE EFTERF. SECTORER OG UDSKRIFT
<13><10> F: EFTERF SECTOR
<13><10> U: UDSKRIFT
<13><10> T: TYPE BUFFER
<13><10> H: HOME
<13><10> HS, HB, HM, HY, HO: SÆDV HARDOPERATIONS
<13><10> BEMÆRK HM NØDV FØR SYS PÅ UNIT 1
<13><10> BEMÆRK HM@ NØDV FØR SYS PÅ UNIT 0/3 (DOG IKKE 1. GANG)
<13><10> I: INIT BIT
<13><10> G: EXEKVER BITUDSKRIFT * EX: G10
<13><10> @@: YDERL. FORKL
<13><10> BREAK MAPPG (FRA S) VIL STOPPE IGANGVÆRENDE KØRSEL
<13><10><0>"
.NOLOC 0
BI5:
OPER1: ISZ OPER4
STA 3,OPER3
LDA 3,CUR
INTK
MAP1
FNR1
FNR
SKUD1
TYPE1
IBIT1
GBIT1
FEJL1 ;HARA1
FEJL1 ;HARS1
FEJL1 ;HARZ1
FNR2
FNR3
DEAD1 ; EVT HMM1 ELLER BLOC1 (SE DEAD1 ELLER HMM1)
MAP2 ; Ø
HELP1
WKTR1 ; 2.03
MRES1
MAP4
AUVL1 ; NY 19.8.85 VERSION 8.05
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
DEAD8: 72
DEAD9: .+1*2
.TXT "DEAD?<0>"
DEAD1: LDA 3,CUR
LDA 0,.3
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
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>'
MRES1: JSR MRE1
OPERA
MRE1: STA 3,SS03
LDA 2,SSADR
LDA 0,SS13
STA 0,SS11
LDA 0,SSTGN
STA 0,0,2
INC 2,2
DSZ SS12
JMP .-3
LDA 1,.32
STA 1,SS12
SUB 1,1
STA 1,0,2
INC 2,2
DSZ SS11
JMP .-10
LDA 3,CUR
SUB 0,0
STA @ 0,SS15
IBIT
JMP @ SS03
SS03:0
SS11:0
SS12: 32
SS13: 157
SS15: FORSK
SSADR: PCDS+128
SSTGN: .TXT !. <0>!
;SIDE 2 SLUT
«ff»
.MSG SIDE 3 130/1539 29.5.84 MAPPRG
; === HY ===
HY98: 89 ; Y
HY1: LDA 2,HY98
SE 1,2
FEJL
HARDY
SUBZL 0,0
TYPE
OPERA
; === HM ===
HMC97: FNRBL
HMC98: 77 ; M
HMCC1: LDA 2,HMC98
SE 1,2
JMP HY1
INT
SUB 0,0
LDA 2,.64
SNE 1,2
LDA 0,BLO97 ; OFFSET 70 FOR DEV 0 ELLER 3
STA 0,BLO01
STA 0,HMC97 @
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
;SIDE 3 SLUT
«ff»
.MSG SIDE 4A 187/2499 19.8.85 MAPPG
; TEKSTER TIL KORTLÆGNINGSRUTINERNE SIDE 4:
; =========================================
.NOLOC 1
FNTXT: .TXT "<13><10>
DISKETTE LOOKUP
<13><10>
ATTR. USED START RES ANT BLOCK ANT BLOCK REV 8.05 /PL
<13><10>
TR SC TR SC TR SC<13><10><10><0>"
SKU91: .TXT "<12> D I S K E T T E C A T A L O G REV 8.05/PL<13><10><10>
SLIC BLOCK TRAC/SECT MAP<13><10>
SS = BB BB = TT SS ! FILALLOCATIONS:<13><10>
----------------------+---------------------<13><10><10><0>"
.NOLOC 0
MAP5:
AUVL1: LDA 1,AUV94
STA @ 1,AUV95
SUBZL 1,1
STA 1,AUVL5
AUVL2: LDA 3,CUR
LDA 0,.6
LDA 1,AUV95 @
ADD 1,0
BLB
HARD
LDA 2,AUV96
LDA 0,0,2
OUTW
SUBZL 1,1 ; SYSSLIZE-ANTAL
SE 0,1
JMP AUVL4
LDA 2,AUV96
LDA 0,2,2
OUTW
LDA 1,.32 ; SYSBLOCKNR
SE 0,1
JMP AUVL4
LDA 0,.8
LDA 1,AUV95 @
ADD 1,0
BLB
HARD
LDA 2,AUV96
LDA 0,1,2
OUTW
LDA 1,.2
LDA 2,.10
SLE 0,1
SL 0,2
JMP AUVL4
; RIMELIG SLIZESIZE
STA @ 0,AUV97
SUB 0,0
AUVL3: JMP @ 1,1 ; EVT JMP @ 2,1
MAP1
MAP2
AUVL4: LDA 3,CUR
DSZ AUVL5
OPERA
SUB 0,0
STA 0,AUV95 @
JMP AUVL2
AUVL5: 1
AUV94: 70
AUV95: FNRBL
AUV96: BUADR
AUV97: SLISI ;SLICESIZE
MRE1I: MRE1
MAP97: SKUFL ; FLAG FOR UDSKRIFT AF SECTORINDH. (FØRSTE)
FNTX: FNTXT*2
FNLP: LPZON
MAP4: SUBZL 0,0
JSR FNR ; 14.8.85
JMP .-1 ; DENNE RUTINE
JMP @ 1,1
SKUD1
MAP2: SUBZL 0,0
MAP1: STA 0,MAP97 @
JSR @ MRE1I
SUBZL 0,0
JSR FNR1
JSR FNR
JMP .-1
JMP @ 1,1
SKUD1
; üüü
EOUD: LDA 1,SPA98 @ ; PWADR (NYT ENTRY 14.8.85)
SUB 0,0 ; 'ENTRY ONLY UDSKRIFT' KONTROLBETINGELSE
LDA 3,CUR ;!
LENTR
; LENTS
LDA 2,FNLP
ONL
JMP @ 1,1
PG4G ; ENTRY IKKE TIL MAPKORT
; --------- SUBR TIL NSLI2:
; SPA1 * LAV <0> TIL <32>
;CALL: 2BY . . .
;RETU: JUST % = (=)
SPA98: PWADR
SPA03: 0
SPA02:0
SPA00:0
SPA1: STA 0,SPA00
STA 2,SPA02
STA 3,SPA03
LDA 3,.255
LDA 1,.32
AND # 3,0,SNR
ADD 1,0
MOVS 3,3
MOVS 1,1
AND # 3,0,SNR
ADD 1,0
LDA 2,SPA02
LDA 3,SPA98 @
JMP @ SPA03
;--------------- SUBR SLUT
FNR2: STA 0,FN000
STA 3,FN003
LDA 3,CUR
; LDA 0,.3
; GOP
LDA 2,PWADJ
STA 2,PWADR
JMP G4G
FNR3: STA 0,FN000
STA 3,FN003
LDA 3,PWADJ
STA 3,PWADR
LDA 3,CUR
INTHX
MOV 1,0
INTHX
HARD
; LDA 0,.3
; GOP
LDA 0,FNTX ; AC 1 ELLER 0 ????
LDA 2,FNLP
OUTXT
JMP G4G
TMAP: 1B0+1B11 ; 80 10
TDOLL: 91*256 ; 0101 1011 (36=0010 0100)
FNRBL: 70 ; ÆNDRES EVT AF HM/HM@
FNR1: STA 0,FN000
STA 3,FN003
LDA 3,PWADJ
STA 3,PWADR
LDA 3,CUR
; LDA 0,.3
; GOP ; DISSE GOP'ER ER SIDSTE DER ER FJERNET 20.8.85
LDA 0,FNTX
; OUTXT
LDA 2,FNLP
OUTXT
LDA 1,FNRBL
LDA 0,.32
ADD 1,0
BLB
SUB 2,2
HARD
JMP G4G
;SIDE 4A SLUT
«ff»
.MSG SIDE 4B * MAPPRG 206/2909 14.8.85 MAPPRG
FNR: STA 0,FN000
STA 3,FN003
LDA 3,CUR
; LDA 0,.3
; GOP
HARDY
; OUTW
; OUTHX
; OSP
; OSP
; LDA 1,.63
; OCH
; OCH
; OCH
LDA 2,PWADJ
LDA 0,0,2
LDA 1,.32
SGE 0,1
SNZ 0,0
JMP .+3
ISZ FN003
JMP FNSLU
STA 2,PWADR
G4G: LDA 2,PWADR
LDA 0,0,2
SNZ 0,0
JMP PG4G
LDA 1,TDOLL
AND 0,1,SNR ; MINDST ET BIT <> 36 I 1. BYTE
JMP EOUD1 @ ; 14.8.85 EOUD ENTRY ONLY UDSKRIFT
LDA 0,8,2
LDA 3,CUR
; OUTW
;000
LDA 1,FNRBL
ADD 1,0
BLB
LDA 2,FN76
SG 0,2
SNZ 1,1 ; RETTET 19.8.85
JMP EOUD1 @ ; EOUD OSSE HER
LDA 2,.0
HARDA
LDA 1,PWADJ
LDA 2,.64 ; IKKE 128!!
INC 2,2
ADD 1,2
STA 2,SLIEN ; ADR PÅ DATA VEDR BLOCKSTRIBE (.+0 .+1)
MOV 2,0
LDA 1,PWADR
LENTR ; UDSKRIFT AF SYSENTRY & TITELBLOCK (AC0, AC1)
LENTS ; UDSKRIFT AF TILSV. TRACK/SECTORS
MOV 1,2
LDA 1,6,2
LDA 3,TMAP
SE 1,3
JMP .+5
LDA 1,7,2 ;!
LDA 3,.2
SNE 1,3
JMP PG4G ; MAPENTRY IKKE TIL BLOCKSKEMA
LDA 3,CUR
MOV 0,2
LDA 0,-1,2
STA 0,FBLAN ; ANTAL BLOCKSTRIBER (NÆPPE NØDV)
;000TESTUDSKR
SNZ 0,0
JMP PG4G ; FEJLSITUATION!!??
JMP FBL2
FN000:0
FN003:0
PWADJ: BUADR ; FAST
PWADR: 0 ;OPDATERET ADR SYSENTRY / .+16
SPA2: SPA1
FN76: 76
EOUD1: EOUD
;******
; UDSKRIFT TIL SKEMA ***
FBL2: LDA 2,SLIEN
LDA 0,0,2
INC 0,0
LDA 1,SLISI
DIVIDE
MOVZR 3,3,SZR
JMP FEJL3
STA 0,SLIAN ; ANTAL SLICES I BLOKRÆKKE
LDA 3,CUR
LDA 2,SLIEN
LDA 0,1,2 ; FØRSTE BLOCK I DO
LDA 1,.32
SUB 1,0 ; !!!!
LDA 1,SLISI
DIVID
LDA 1,.32
INC 1,1
MULTI
LDA 2,SKGR9
SL 1,2
JMP PG4G
LDA 2,SK2DR ; SKEMAADR
ADD 1,2 ; W.ADR FOR NAVN I SKEMA
LDA 1,FORSK
ADD 1,2 ; INDRYKNING !!
STA 2,SKEDR
NSLI2: LDA 3,PWADR ; PCC W.ADR
LDA 0,0,3
JSR SPA2 @ ; SE FORAN
LDA 2,SKEDR
STA 0,0,2
LDA 0,1,3
JSR SPA2 @
STA 0,1,2
LDA 0,2,3
LDA 3,.64
LDA 1,.32
ADD 3,1
ADD 1,0
JSR SPA2 @
STA 0,2,2
LDA 2,SKEDR ; SKEMAADR
LDA 1,.32
INC 1,1
ADD 1,2
STA 2,SKEDR ; OPDATERES
LDA 3,CUR
DSZ SLIAN ; NÆSTE SLICE MRK FOR SAMME BLOCKSTRIBE
JMP NSLI2
ISZ SLIEN
ISZ SLIEN ; NÆSTE BLOCKSTRIBEDATA ADR I BUFFER
LDA 2,SLIEN
LDA 0,1,2
SNZ 0,0 ; FOREG NUL =>
JMP .+3 ; FEJLSITUATION ??!!
DSZ SLINO ; LÆS NÆSTE BLOCKSTRIBEDATA ETC.
JMP FBL2
ISZ FORSK
PG4G: LDA 3,FORSK
LDA 1,.32
SUBZL 0,0
SUB 0,1
SUB 0,1
SUB 0,1
SL 3,1
STA 0,FORSK
LDA 3,PWADR
LDA 1,.16
ADD 3,1
STA 1,PWADR
DSZ G4GA
JMP G4G
LDA 0,.4
STA 0,G4GA
FNSLU: LDA 3,CUR
LDA 0,FN000
SZ 0,0
JMP @ FN003
OPERA
FORSK:0 ; INDRYKNING I SKEMA FOR HVER FIL
G4GA:4
SLIEN:0 ; ADR SLICE ENTRY INFO I TITELBLOCK
SLISI:3 ; FAST, REDEF VED @D, EVT
SLINO:0
SLICO: 12 ; DOWN (OPR= SLISIZE*4)
FBLAN: 0 ; ANTAL BLOCKSTRIBER
SLIAN:0 ; ANTAL SLICES I BLOCKSTRIBE (AKT)
SK2DR: PCDS+128
SKEDR: 0 ; LØBENDE ADR I TITELBLOCK FOR ENTRY
SKLIN: 157
BLONO:0
SKLI1: 0 ; DOWN VED UDSKRIFT
SKLI2: 0
SKU99: FNRBL
SKGR9: SKGR8-PCDS
FEJL4: LDA 0,.2
LDA 3,CUR
FEJL
FEJL3: LDA 3,CUR
LDA 0,.3
FEJL
;SIDE 4B SLUT
«ff»
.MSG SIDE 4C 194/2071 12.6.84
SKUD1: LDA 0,SK2DR
STA 0,SKLI2 ; AKT. LINE W-ADR I OUTPUTSKEMA
LDA 0,SKLIN
STA 0,SKLI1 ; LINE COUNTER I OUTPUTSKEMA
LDA 3,CUR
IBIT ; 14.8.85
; LDA 0,.3
; GOP ; 20.8.85 OSSE FJERNET HER
LDA 1,SLINO
LDA 0,.9
LDA 1,SKU99 @
ADD 1,0
BLB
SUB 2,2
HARD
MOVS 0,0
ADD 1,0
SUBS 1,0 ; ?????? / FLG ER TILFØJET SENERE
LDA 2,SKU96
LDA 0,SKU97
OUTXT
ONL
LDA 1,.1
STA 1,SLINO
LDA 0,.32
STA 0,BLONO
SKUD2:
LDA 1,SLINO
LDA 0,BLONO
OULHX
OSP
OSP
OULW
LDA 1,SKU99 @
ADD 1,0
BLB
OULW
OSP
OULHX
OSP
STA 0,SKTR0
STA 1,SKSC0
LDA 1,.32
INC 1,1
OCH
OSP
OSP
OSP
ISZ SLINO
LDA 0,BLONO
LDA 1,SLISI
ADD 1,0
STA 0,BLONO
; JMP SKUMI
;
LDA 2,SLISI
MOVZL 2,2
MOVZL 2,2
LDA 1,.16
INC 1,1
SLE 2,1
MOV 1,2
STA 2,SLICO
;
; LDA 0,BLONO
; BLB
;
; HARDS ; STATUSUDSKRIFT ONLY
; HARDZ ; - AF FLG REC
; DSZ SLICO
; JMP .-2
SKUMI: GBIT ; UDSKRIFT AF NÆSTE BIT I BUFFER (MAP)
LDA 2,SKU96
OSP
OSP
LDA 0,SKLI2
MOVZL 0,0
OUTXT
;----------
SKU3: SUB 0,0
STA 0,SKUF0
LDA 0,SKTR0
LDA 1,.1B6
ADD 1,0
LDA 1,.1B7
ADD 1,0
DOAS 0,FD1
SKPBZ FD1
JMP .-1
SKU4: LDA 1,SKSC0
DOAS 1,FD1
SKPBZ FD1
JMP .-1
LDA 3,CUR
DIA 0,FD1
DIC 1,FD1
LDA 2,.255
AND 2,1
LDA 2,SKU51
SUB # 2,1,SNR
SZ 0,0
JMP .+2
JMP .+4
OULW ; NU OSSE TEST DIC FOR UREGELMÆSSIGHEDER!
OULHX
JMP SKU4F
LDA 1,SKUF0 ; =0 NØDV UDSKR
LDA 0,SKUFL ; =0 NØDV UDSKR
LDA 2,SKU96
SZ 0,0
SNZ 1,1
JMP .+2
JMP .+7
SKU4F: DIB 1,FD1
OULA
DIB 1,FD1
OULA
DIB 1,FD1
OULA
LDA 1,.32
STA 1,SKUF0
INC 1,1
OCH
ISZ SKSC0
LDA 2,SKT26
LDA 1,SKSC0
SG 1,2
JMP SKU5
SUBZL 1,1
STA 1,SKSC0
ISZ SKTR0
LDA 2,SKT76
LDA 0,SKTR0
SLE 0,2
JMP SKU6
DSZ SSICO @
JMP SKU3
JMP .+3
SKU5: DSZ SSICO @
JMP SKU4
;----------
LDA 2,SKU96
ONL
LDA 0,SKL22 @
LDA 1,.32
INC 1,1
ADD 1,0
STA 0,SKL22 @
DSZ SSLI1 @
JMP SKUD2
OPERA
SSLI1: SKLI1
SSICO: SLICO
SKL22: SKLI2
SKU96: LPZON
SKU97: SKU91*2
SKTR0:0
SKSC0:0
SKT26: 26
SKT76: 76
SKUFL: 0 ; FLAG FOR SECT UDSKRIFT DEF I MAP1/2
; 0 : LÆS ALTID 3 BYTE VED KORTUDSKRIFT
; 1 : LÆS IKKE ALTID DE TRE BYTE
SKUF0:0
SKU51: 251
SKU6: LDA 2,SKU96
ONL
ONL
OPERA
;SIDE 4 SLUT
«ff»
.MSG SIDE 5 200/2315 22.5.84 MAPPRG
; @, OG BUFFERDATA ETC
; ********************************* 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 ; @M SMAL SKRIFT 20.8.85
WWW14
WWW15
WWW16
OUTA1
WT
WTHX
WTD
OULA1 ; OULA (WA)
WL ; OUL (WB)
WLHX ; OULHX(WC)
WLD ; OULD (WD)
.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
OPERA
WWW41: SLISI
WWW4: INTHX
STA 1,WWW41 @
OPERA
LPADW: LPZON
WWW51: 0
WWW5: LDA 1,22,2
STA 1,WWW51
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
WWW13: LDA 2,LPAD9
LDA 0,WW999
LDA 3,CUR
OUTXT
OPERA
WW999: .+1*2
.TXT "<27>3<16><27>S0<0>" ;INDEXSKRIFT+SMAL LINIEAFST
WWW14:
WWW15:
WWW16:
LDA 0,.0
FEJL
;----------------
.NOLOC 1
YSID9: .+1*2
.TXT "<13><10><10>INPUT - - - - <0>"
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 5 SLUT
«ff»
.MSG SIDE 6 70/627 27.5.84 MAPPRG
; === T ===
TYPE1: LDA 3,CUR
INT
LDA 0,.3
GOP
LDA 2,.32
SLE 1,2
SUBZL 0,0
TYPE
OPERA
; === ===
IBIT1: LDA 3,CUR
IBIT
OPERA
GBI11: 16
GBIT1: INTHX
STA 1,GBI11
LDA 0,.3
GOP
GBIT
DSZ GBI11
JMP .-2
OPERA
HARA1: INTW
MOV 0,1
LDA 0,.3
GOP
MOV 1,0
LDA 2,.255
AND 2,1
MOVS 2,2
ANDS 2,0
HARDA
OPERA
HAM00:HM000
HAM01:HM001
HARS1: LDA 0,.3
GOP
LDA 0,HAM00 @
LDA 1,HAM01 @
STA 0,HAS00
STA 1,HAS01
HARDS
OPERA
HAS00: 0
HAS01: 0
; FLG DUR HELT ENKELT IKKE!!!!
HARZ1: LDA 0,.3
GOP
ISZ HAS00
ISZ HAS01
LDA 0,HAS00
LDA 1,HAS01
HARDZ
OPERA
; SIDE 6 SLUT
«ff»
.MSG SIDE 7 88/1272 22.5.84 MAPPRG
; ************** 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 " MAP-COMMAND (M/?): <0>"
INTK9: .+1
.TXT "<0>O<0>X<0>F<0>U<0>T<0>I<0>G<0>A<0>S<0>Z<0>V<0>W<0>H<0>Ø<0>?<0>@<0>B<0>E<0>M<0><0><0><0><0>"
.NOLOC 0
;X FØRSTE, F NÆSTE, U UDSKRIFT
;T TYPE, I INITBIT, G GETBIT
;A HARDA, S HARDS, Z HARDZ
INTK0: 0
INTK1: STA 3,INTK0
INTO2: LDA 0,.3
LDA 3,CUR
GOP
LDA 0,INTK8
OUTTEXT
LDA 1,.32
OUTEND
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 0,.3
GOP ; P Y H ! ! (PROBL DA ØVR GOP BLEV FJERNET, RETTELSE PAM86)
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 0,1
ONL
LDA 1,OP01
JMP @ OP03
;SIDE 7 SLUT
«ff»
.MSG SIDE 8A 322/4204
; 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: 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
SNZ 1,1
JMP W5
JMP W3
WT: LDA 2,TTADR
JMP W2
WL: LDA 2,LPADR
JMP W2
WO: 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
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
W5: LDA 3,CUR
OSP
OSP
JMP W4
; OUTA * OUTPUT TIL TTY SOM ALM ASCIIFIL
; OULA * OUTPUT TIL LPT SOM ALM ASCIIFIL üüüü SPECIALVERSION TIL MAPPRG üüüü
OUA91: 125 ; (LILLE Å)
OUA96: 96
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
LDA 3,CUR
OSP
JMP W21 ; OUTCHAR & RETURN
OUA3: LDA 3,.127
SE 1,0
SNZ 1,1
LDA 1,OUA96 ; TIDL: JMP W22 ; IGN <0> OG <127>
LDA 3,.13
LDA 0,.10
SE 1,0 ;TIDL: SE 1,3
SNE 1,3 ;TIDL: JMP .+4
LDA 1,.32 ;TIDL: 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
LDA 1,.32 ;TIDL: JMP W21 ; <9>, <127>
LDA 3,.12
SNE 1,3
LDA 1,.32 ;TIDL: JMP OUA4 ; SÆRL. <12>
;-------ÆNDRET HELT:
LDA 0,.32
LDA 3,OUA91
SG 1,3
SGE 1,0
JMP .+4
LDA 3,CUR
OSP
JMP W21
LDA 3,.15
MOV 1,0
MOVZR 0,0
MOVZR 0,0
MOVZR 0,0
MOVZR 0,0
AND 3,0
LDA 3,CUR
OH
MOV 1,0
OH
JMP W22
;--------
;---------------------
; 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+9 379/4467 14.8.85 MAPPRG
;----------------------
; GBIT * HENT NÆSTE BIT I BUFFER OG UDSKRIV DET
;CALL: . . . CUR
;RETU: = = = =
GBIN: 1B0 ; BITMASK
GBIA: BUADR ; OPDATERES LØBENDE
GBI00:0
GBI01:0
GBI02:0
GBI03:0
GBI04:0
GBI1: STA 0,GBI00
STA 1,GBI01
STA 2,GBI02
STA 3,GBI03
LDA 3,GBIA
LDA 1,GBIN
MOV 1,1,SZR
JMP .+4
ISZ GBIA
LDA 1,.1B0
STA 1,GBIN
LDA 3,GBIA
LDA 0,0,3
AND 1,0
LDA 1,.48
SZ 0,0
INC 1,1
STA 1,GBI04
; LDA 2,TTAD8
; OUTCH
; LDA 1,GBI04
LDA 2,LPAD8
OUTEND
JMP .+3
INC 1,1
OUL
LDA 0,GBIN
MOVZR 0,0
STA 0,GBIN
LDA 0,GBI00
LDA 1,GBI01
LDA 2,GBI02
LDA 3,CUR
JMP @ GBI03
;--------------------------
; IBIT * INITIER BITRUTINE
;CALL: . . . CUR
;RETU: 1B0 BUADR = CUR
IBIBU: BUADR
IBI03:0
IBI1: LDA 0,.1B0
LDA 1,IBIBU
STA 0,GBIN
STA 1,GBIA
STA 3,IBI03
LDA 3,CUR
JMP @ IBI03
;--------------------------
; 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)
; OCH0 * OUTPUT CHAR DEF I AC0 !!
;CALL: . . ZON(!) CUR
; BY HVIS OCH
; BY HVIS OCH0 (BY EVT TIL SPACE)
;RETU: = = = CUR
O00:0
O01:0
O02:0
O03:0
O2TTA: TTZON
O2LG: 64 ; EVT ÆNRES AF @D
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
OUTEND
LDA 3,CUR
LDA 0,O00
LDA 1,O01
LDA 3,CUR
JMP @ O03
O4: STA 0,O00
STA 1,O01
JMP O3
O5: STA 0,O00
STA 1,O01
LDA 1,.32
SL 0,1 ; ÆNDRE CTRL TIL SPACE
MOV 0,1 ; SPECIAL TIL BRUG VED GETBY/ ETC
JMP O3
.TXT "OCH0"
;-------------------
; 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
OUTTEXT ; !!
LDA 0,OUX00
LDA 1,OUX01
LDA 2,OUX02
LDA 3,CUR
JMP @ OUX03
;SIDE 8B SLUT / SIDE 9 BEG
;------------------
; 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 @
; MOVZL 0,0 ; ??? HVORFOR EVT DETTE? /14.8.85
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
ONL
TYP3: LDA 0,TYP00
LDA 1,TYP01
LDA 2,TYP02
LDA 3,CUR
JMP @ TYP03
;::::::::::::::
LPA99: LPZON
; ------------------------------
; LENTR * LIST ENTRY- & TITELBLOCK
; LENTS * LIST ENTRY- & TITELSECTORNR
;CALL: TITBL SYSENT . CUR AC0=0 : SIDSTE DEL UDELADES!!
; WADR WADR (RETTET 14.8.85)
;RETU: = = = CUR
LEN95: FNRBL
LEN33: 40
LEN00:0
LEN01:0
LE000:0
LE001:0
LEN02:0
LEN03:0
LEN04:0
LEN05:0
LEN1: STA 0,LE000
STA 1,LE001
STA 0,LEN00
STA 1,LEN01
STA 2,LEN02
STA 3,LEN03
MOVZL 1,1
LDA 2,.5
STA 2,LEN05
GETBY
LDA 3,CUR
LDA 2,LPA99
OCH0
INC 1,1
DSZ LEN05
JMP .-6 ; TIL GETBY
OSP
LDA 1,.4
STA 1,LEN05
LDA 2,LEN01
LDA 0,6,2
ISZ LEN01
OULW
DSZ LEN05
JMP .-5
OSP
; 15.8.85 3 FLG:
LDA 0,LEN00
MOV 0,0,SNR
JMP LEN3
LDA 0,LEN33
OCH0
OSP
LDA 2,LEN00
LDA 1,-1,2
OULHX
INC 0,0
OCH0
OSP
LDA 1,.12
LDA 2,LEN00
LDA 1,-1,2
MOVZL 1,1
LDA 2,.10
MOVZL 2,2
SLE 1,2
MOV 2,1
STA 1,LEN05
LDA 2,LEN00
LDA 0,0,2
OULW
ISZ LEN00
DSZ LEN05
JMP .-5
LEN3: LDA 2,LPA99
LDA 3,CUR
ONL
LDA 2,LEN02
LDA 1,LE001
LDA 0,LE000
JMP @ LEN03
LEN2:
STA 0,LE000
STA 0,LEN00
STA 1,LE001
STA 1,LEN01
STA 2,LEN02
STA 3,LEN03
LDA 3,CUR
LDA 1,.15
STA 1,LEN05
LDA 2,LPA99
OSP
DSZ LEN05
JMP .-2
LDA 2,LE001
LDA 0,8,2
LDA 1,LEN95 @
ADD 1,0
BLB
OULW
OULHX
LDA 1,.16
LDA 0,.1
ADD 0,1
STA 1,LEN05
LDA 2,LPA99
OSP
DSZ LEN05
JMP .-2
LDA 2,LEN00
MOV 2,2,SNR
JMP LEN3
LDA 1,-1,2
LDA 2,.10
SLE 1,2
MOV 2,1
STA 1,LEN05
LEN2F: LDA 2,LEN00
LDA 0,1,2
LDA 1,LEN95 @
ADD 1,0
BLB
OULW
OULHX
OSP
OSP
OSP
ISZ LEN00
ISZ LEN00
DSZ LEN05
JMP LEN2F
ONL
JMP LEN3
;SIDE 9 SLUT
«ff»
.MSG SIDE 10 339/4114 5.6.84 MAPPRG
; MEGET KAN EVT FJERNES FRA ASCIIFILEN
; GEN RUTINER FORTSAT (3) HARDRUTINER
; HM4FJ TILFØJET 14.5.85
; HANDS, HARDZ VIRKER IKKE
.TXT " HARD "
;---------------
; HARDS * SECTOR STATUS
; HARDZ * NÆSTE SECTOR STATUS
HST00:0
HST03:0
HST1: DIA 0,FD1
LDA 3,CUR
OULW
OUTW ; VÆK IGEN ; IØVR SKAL TRACK FØRST SELECTES!!
JMP @ HST03
HST5: ; RUTINE IKKE LAVET, MEN JFR HM7
STA 3,HST03
LDA 3,CUR
JMP @ HST03
;----------------------------
; HARD * HARDMODE INPUT ELLER OUTPUT
; HARDA * APPEND SECTOR I BUFFER, BYADR 128-255
;CALL: TRACK SECT 1/0 CUR
;RETU: = = = CUR
HM1A: STA 0,HM00
STA 1,HM01
STA 2,HM02
STA 3,HM03
LDA 0,HM66 @
SUBZL 1,1
STA 1,HMGFL
LDA 1,.128
ADD 1,0
MOVZL 1,1
JMP HM1F
HFLAG: 0 ; HARDMODE FLAG * FILFORBUD PÅ FD1 *
HFLAT: 0
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
LDA 0,HM66 @
SUB 1,1
STA 1,HMGFL
LDA 1,.128
HM1F: STA 0,HM67
STA 1,HM77 @
; 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
; OSP
LDA 2,HM76
SLE 1,2
JMP HM4FJ
; LDA 1,HM88 ; S
; OUL
; OSP
; OUT
LDA 1,HM01
; OUTHX
; ONL
; OSP
; OULHX
; LDA 0,HM72
; OUTXT
; OSP
LDA 0,.6
LDA 2,HM26
SG 1,2
SNZ 1,1
JMP HM4FJ
; 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
;:::
HMGFL: 0 ; 1 IF NOT ACTIV
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 0,.5 ; FEJL
; SUB 1,2,SZR
; FEJL ; BUFFER SIZE
;
; ; OUTPUT TIL HARDBUFFER
;
; 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
;
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
LDA 0,HMGFL
SZ 0,0 ; GEM IF 0
JMP .+5
; 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, HM55 ; DOWN
LDA 1,HM67
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
HM4FJ: MOV 1,0 ; NYT 14.4.85 ISTF FEJL-RUTINEN
OULW
LDA 0,HM4F9
OUTXT
LDA 0,HM00
OULW
LDA 0,HM01
OULW
DSZ HM4F8
JMP HM4
LDA 0,.8
STA 0,HM4F8
OPERA
;------------------
; 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
HM4F8: 10
HM4F9: .+1*2
.TXT "TRACSECTORFEJL <0>"
;-------------------------
; 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 252/2893 7.6.84 MAPPRG
; ZONER, BUFFERE, PRCD OG FKT-TABEL
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 'MAPPG'
.+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
FEJL1
.DUSR LPDW = JSR @ 44,3
FEJL1
.DUSR FEJL = JSR @ 45,3
FEJL1
.DUSR OUTXT= JSR @ 46,3
OUTX1
.DUSR SEBYT= JSR @ 47,3
FEJL1
.DUSR INTFI= JSR @ 48,3
FEJL1
.DUSR OUTFI= JSR @ 49,3
FEJL1
.DUSR OULFI= JSR @ 50,3
FEJL1
.DUSR OUFI = JSR @ 51,3
FEJL1
.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
FEJL1
.DUSR TYPE = JSR @ 58,3
TYP1
.DUSR HARDR= JSR @ 59,3
HM6
.DUSR HARDY=JSR @ 60,3
HM7
.DUSR LMV = JSR @ 61,3
FEJL1
.DUSR INTW = JSR @ 62,3
IW1
.DUSR OUTW = JSR @ 63,3
OUTW1
.DUSR OULW = JSR @ 64,3
OULW1
.DUSR LTL = JSR @ 65,3
FEJL1
.DUSR WHX = JSR @ 66,3
WHX1
.DUSR GBIT = JSR @ 67,3
GBI1
.DUSR IBIT = JSR @ 68,3
IBI1
.DUSR HARDS= JSR @ 69,3
HST1
.DUSR HARDZ= JSR @ 70,3
HST5
.DUSR HARDA= JSR @ 71,3
HM1A
.DUSR OCH0 = JSR @ 72,3
O5
.DUSR LENTR= JSR @ 73,3
LEN1
.DUSR LENTS= JSR @ 74,3
LEN2
.DUSR OULA = JSR @ 75,3
OULA1
.DUSR OUTA = JSR @ 76,3
OUTA1
-1
.BLK 5500
SKGR8: .
.
.
.BLK 128
-1
-1
-1
.END PCDS
;SIDE 11 SLUT / FIL SLUT
«ff»
«nul»