|
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 - download
Length: 44544 (0xae00) Types: TextFile Names: »AED8«
└─⟦403f4c9ff⟧ Bits:30001796 SG0016 Floppy └─⟦this⟧
; 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»