|
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: 20992 (0x5200) Types: TextFile Names: »PAED4«
└─⟦2d999d709⟧ Bits:30001813 SG0112 Floppy └─⟦this⟧
; PL ALMEN FILEDITOR 1.03 /7-9.4.84/ MEST ELEMENTÆR VERSION ; FØRSTE KØRENDE UDGAVE (UFULDST. & MED FEJL...) 11.4.84 KL 17 ; ANDEN UDG. VERS. 1.03 UNDER UDVIKLING (FRA 13.4.84) ; FORTSAT UDVIKL 14.4.84 EFTERM ; 15.4.84 MÅSSKE I OG K FÆRDIG ! FILNAVN NU PAED4 ! .TITL PEDIT .NREL .RDXO 16 .RDX 10 .TXTM 1 .TXTN 1 PGDS: 1B0+1B5+1B15 ;PROGRAMDESCRIPTOR (7 WORDS) LAB00 0 PCDS-PGDS .TXT 'FEDIT' .NOLOC 1 LAB00: .TXT "<10><10> GEN. FIL-EDITOR <13><10> PL APRIL 84 / VERS. 1.03<10><10> <13><10> O: <34>OCTALCOPY<34> KOPIERING UDENOM BUFFER <13><10> Y: LÆS SIDE TIL BUFFER <13><10> P: <34>PUT<34> OUTPUT BUFFER TIL NY FIL <13><10> R: <34>REPEAT<34>: 1)P 2)Y <13><10> T: <34>TYPE<34> SKRIV SIDEN UD FRA BUFFER TIL SKÆRM <13><10> .: UDSKRIV 16 TEGN FRA AKTUELLE POSITION <13><10> M: MOVE ANTAL TEGN * EX: M7, M+7, M-7, MG (MOVE 16 PL.) <13><10> L: LINEMOVE * EX: L7, L+7, L-7 (EXACT LODRET!) <13><10> I: INSERT * EX: I T E S T0D0A <13><10> K: KILL ANTAL TEGN * EX: K7, K+7, KG <13><10> S: SEARCH BYTE * EX: S0A, S A, S41 (41= A) <13><10> C: UDSKIFT * EX: C A_ B <13><10> H: HOME (& CLOSE) <13><10><10> KOMMANDOER: O, Y, P, R, T, ., M, L, I, K, S, C, H(INCL CLOSE!) <13><10> IMPL: O, Y, P, R, T, ., M, L, I, K, H<13><10> UDOVER KOMMANDOER ER INPUT PR BYTE: HH ELLER <60>SPACE><60>TEGN><0>" FTXT: FUT0*2 FUT1*2 FUT2*2 FUT3*2 FUT4*2 FUT5*2 FUT0: FUT1: .TXT "<13><10> *** IKKE IMPL ***<13><10><0>" FUT2: .TXT "<13><10> *** BUFFER FULD ***<13><10><0>" FUT3: FUT4: FUT5: .TXT "<13><10>ANDEN FEJL<13><10><0>" TEKST: LAB00*2 .NOLOC 0 ; === FEJL === ; CALL: FEJLNR . . (CUR) FEJL8: FTXT FEJL9: FTXT FEJL0: 0 SEAR1: CHAN1: FEJL1: INC 0,1 STA 1,FEJL0 LDA 3,FEJL8 STA 3,FEJL9 ISZ FEJL9 DSZ FEJL0 JMP .-2 LDA 3,CUR LDA 0,.3 GOP LDA 0,FEJL9 @ OUTTEXT LDA 1,.32 OUTEND LDA 3,CUR OPERA COUN9: COUN0 BIRTK: 58*256+1 PARAD: 0 BIRTH: ; HER STARTER PROGR.INSTRUKTIONER NÅR PROG. LOADES: STA 1,PARAD MOV 1,2 ; LDA 0,5,2 MOV 0,0,SNR JMP DEAD1 ; HVIS DER IKKE ER PARAM I LOADKOMMANDOEN LDA 0,7,2 LDA 3,FIAD STA 0,0,3 LDA 0,8,2 STA 0,1,3 LDA 0,9,2 LDA 1,12,2 ADD 1,0 STA 0,2,3 MOV 3,2 ; HUSK AC1=DEVICE INITC LDA 0,.1 LDA 1,.0 CREAT LDA 0,.3 OPEN LDA 3,PARAD LDA 2,INAD LDA 0,14,3 MOV 0,0,SZR JMP BI2 LDA 0,15,3 STA 0,0,2 LDA 0,16,3 STA 0,1,2 LDA 0,17,3 LDA 2,BIRTK LDA 1,19,3 SUB 1,2,SZR JMP BI2 LDA 1,20,3 ADD 1,0 LDA 2,INAD LDA 1,21,3 MOV 1,1,SNR JMP .+3 LDA 1,23,3 STA @ 1,COUN9 BI2: LDA 2,INAD STA 0,2,2 LDA 0,.1 OPEN LDA 2,LPAD ; LPT LOGZONE LDA 0,.3 LDA 3,CUR LPD OPEN LDA 3,CUR LDA 0,TEKST LPD OUTTEXT LDA 3,CUR LPDW LDA 0,.3 GOP LDA 0,TEKST OUTTEXT LDA 3,CUR ONL OPER1: ISZ OPER4 STA 3,OPER3 LDA 3,CUR INTK JMP @ 14,1 JMP @ 14,1 JMP @ 14,1 JMP @ 14,1 JMP @ 14,1 JMP @ 14,1 JMP @ 14,1 JMP @ 14,1 JMP @ 14,1 JMP @ 14,1 JMP @ 14,1 JMP @ 14,1 JMP @ 14,1 JMP @ 14,1 OSID1 YSID1 PSID1 RSID1 TYPE1 TFEM1 MOVE1 LMOV1 INSE1 KILL1 SEAR1 CHAN1 DEAD1 FEJL1 FEJL1 -1 ; DER JMP'ES TIL DISSE RUTINER, ALLE ACC UDEF, DER RETURNERES TIL OPER1 OPER3: 0 OPER4: 0 ; *************************************************************** -3 DEAD8: 72 DEAD9: .+1*2 .TXT "DEAD?<0>" DEAD1: LDA 3,CUR LDA 0,.3 GOP LDA 0,DEAD9 OUTTEXT LDA 3,CUR LDA 0,.1 GOP INCHA LDA 0,DEAD8 SUB # 0,1,SZR JMP OPER1 JMP DEAD ; -1 INAD: INZON FIAD: FIZON TTAD: TTZON LPAD: LPZON -2 DEAD: ; STANDARD-AFSLUTNINGSRUTINE STA 0,D0 STA 1,D1 STA 2,D2 STA 3,D3 LDA 2,TTAD CLOSE LDA 2,LPAD LDA 1,.1 LDA 3,CUR LPD CLOSE DEAD2: LDA 1,.1 ; FLG BRUGES HVIS DER HAR VÆRET ÅBNET FILER LDA 2,FIAD CLOSE LDA 1,.1 LDA 2,INAD CLOSE DEAD3: JMP SLUT ; HVIS PROCESSEN SKAL BLIVE I CORE LDA 1,SLUT1 LDA 2,SLUT2 SENDMESSAGE ; TIL S OM AT FJERNE DENNE PROC FRA CORE SLUT: LDA 2,CUR STOPP ; PROCESSEN STOPPES MEN FJERNES IKKE FRA CORE JMP .-1 D0: 0 ; HER SIKRES INFO OM DEAD (AHT EVT CORE-DUMP) D1: 1 D2: 2 D3: 3 SLUT1: .+1 1B8 0 0 0 SLUT2: .TXT 'S<0><0><0><0><0>' ;::::::::::::::::::::::::::::::::::::: EDITORFUNKTIONER: «ff» ; ********************************* EDITOR-FUNKTIONER ********** ; ALLE KALD MED UDEF ACC & DERFRA TILBAGE TIL OPER1 MED UDEF ACC ; === Y === .NOLOC 1 YSID9: .+1*2 .TXT "<13><10><10>INPUT - - - -<13><10><10> <0>" .NOLOC 0 YSID1: JSR RESE1 STA 0,COUN1 ;(NEDTÆLL AF Y) STA 0,COUN2 ;(ÆNDR AF I,K,C NEDTÆLL AF P) SUB 0,0 STA 0,PCC STA 1,PCADR ;(ÆNDR AF I,C,S ETC) LDA 1,YSID9 JSR OULK1 ; KOMMANDO UD PÅ LPT HVIS TILSLUTTET YSID2: INI OUT OUL MOV 1,0 LDA 1,ARBA1 PUTBY ISZ ARBA1 LDA 3,CUR DSZ COUN1 JMP YSID2 OPERA ; === P OG R === PSID1: SUB 3,3 JMP PSID3 RSID1: JSR PSID3 JMP YSID1 .NOLOC 1 PSID8: 128 ; FRA COUN2 - DOWN I P PSID9: .+1*2 .TXT "<13><10><10>OUTPUT<13><10><10> <0>" .NOLOC 0 PSID0: 0 PSID3: STA 3,PSID0 LDA 3,COUN2 STA 3,PSID8 JSR RESE1 LDA 1,PSID9 JSR OULK1 ; KOMMANDO TIL LPT HVIS OK PSID2: LDA 1,ARBA1 GETBYTE ISZ ARBA1 LDA 3,CUR MOV 0,1 OUO OUL OUT DSZ PSID8 JMP PSID2 LDA 0,PSID0 MOV # 0,0,SZR JMP @ PSID0 OPERA ;------------------ALM. SUBRUTINER TIL Y OG P: ; RESET COUNTER OG FORB OUTPUT TIL TTY (MONITORING) ; **** ; CALL: . . . CUR ; RETU: COUN0 BUADR*2 TTZON CUR 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 1,.24 ; LINIELGD, SE OSSE ONL LDA 2,TTAD STA 1,-2,2 LDA 2,LPAD STA 1,-2,2 LPD ; HVIS MULIGT: OUTTEXT ; KOMMANDOUDSKRIFT LDA 3,CUR LPDW ; RESET LPTFEJLRUTINE JMP @ OULK0 ;::::::::::::: COUN0: 128 ; ORIG DEF I INPUT (EVT) COUN1: 128 ; DEF I Y, DOWN I Y COUN2: 128 ; 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,... 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 ; === F === (BRUGES OSSE AF FX. MOVE) TFEM8: 58 ;: TFEM9: 5 TFEM0: 0 TFEM1: LDA 0,.3 LDA 3,CUR GOP LDA 3,.16 STA 3,TFEM9 LDA 1,PCADR STA 1,PCAD1 LDA 3,CUR LDA 1,PCC MOVS 1,1 OUTHX LDA 1,PCC OUTHX LDA 1,TFEM8 OCH OSP OSP TFEM2: LDA 1,PCAD1 GETBY MOV 0,1 LDA 3,CUR OUT ISZ PCAD1 LDA 0,PCAD1 LDA 3,ARBA0 LDA 2,COUN2 ADD 3,2 LDA 3,CUR SLE 0,2 OPERA DSZ TFEM9 JMP TFEM2 OPERA ; === M === ; COMMAND EX: M7 MB M+B M-B (B=11) MOVE0: 0 MOVE1: JSR DIPL1 ; HENTE AC0=SIGN AC1=ÆGTEBYTE AC3=CUR JSR BYBI1 ; BY TIL BINÆR MOVE2: LDA 2,PCC ADD 1,2 MOVZL # 2,2,SZC SUB 2,2 LDA 3,COUN2 SLE 2,3 LDA 2,COUN2 STA 2,PCC LDA 3,ARBA0 ADD 3,2 STA 2,PCADR JMP TFEM1 ; === L === LMOV9: 0 LMOV1: JSR DIPL1 ;NEG & BYTE JSR BYBI1 ; NEG $ SIGNED BIT & UNSIGN BIT MOV 2,1 STA 0,LMOV9 LDA 0,.24 MULTIPLY LDA 0,LMOV9 SZ 0,0 NEG 1,1 JMP MOVE2 ;----------------- EGL. SUBR TIL BL. A. MOVE-INPUT-HÅNDTERING: ; SUBR. DIPL1 * HENTE TÆLLEPARAM FRA INPUT I KOMMANDO ;CALL: . . . . ;RETU: NEG? ÆGTEBY % CUR DIPL7: 0 DIPL8: 43 DIPL9: 45 DIPL0: 0 DIPL1: STA 3,DIPL0 LDA 3,CUR INT LDA 2,DIPL9 SUB 0,0 SUB # 1,2,SNR LDA 0,.1 LDA 2,DIPL8 MOV 0,0,SNR SUB # 1,2,SNR INT ; NÆSTE EFTERSOM FØRSTE VAR ET + ELLER - STA 1,DIPL7 ; SENERE YDERL. BEHANDL EVT NÆSTE BYTE JMP @ DIPL0 ; SUBR. BYBI1 * BYTE I AC1 TIL BINÆR VÆRDI, SIGNED & UNSIGNED ;CALL: 1=NEG BYTE . . ;RETU: 1=NEG SIGNED UNSIGN CUR ; BINVAL BINVAL BYBID: 0 BYBI0: 0 BYBI1: STA 3,BYBI0 LDA 2,.48 SUB 2,1 LDA 3,.10 LDA 2,.7 SL 1,3 SUB 2,1 MOV 1,2 MOV 0,0,SZR NEG 1,1 STA 1,BYBID LDA 3,CUR JMP @ BYBI0 ; --------------------- SUBR. SLUT ; COUNT-RANGE LIMIT ^^^^^^^ ; === T === TYP80: 0 TYP90: 0 TYPE1: LDA 0,COUN2 STA 0,TYP90 LDA 0,.3 LDA 3,CUR GOP LDA 1,ARBA0 STA 1,TYP80 TYPE2: LDA 1,TYP80 GETBY LDA 3,CUR MOV 0,1 OUT ISZ TYP80 DSZ TYP90 JMP TYPE2 OPERA ; === K === KILL0: 0 KILL1: JSR DIPL1 JSR BYBI1 MOV 0,0,SZR OPERA ; HVIS NEG!! LDA 0,.1 FLYT ; TILVENSTRE JMP TFEM1 ; === I === INSE7: PCADR INSE8: 0 INSE9: INSE0: 0 INSE1: LDA 3,INSE7 @ STA 3,INSE8 INSE2: LDA 3,CUR INTHX ; EVT OPTION INT /AFH AF 1. INPUTTEDE BYTE STA 1,INSE0 MOV 2,2,SNR ; IF NOT CONTROL, FX 13 EL 27 PÅ 1. INDHEX OPERA LDA 0,.0 LDA 1,.1 FLYT ; 1 TILHØJRE LDA 0,INSE9 LDA 1,INSE8 ISZ INSE8 PUTBY JMP INSE2 BUADR: . 1 2 3 .BLK 512 4 5 6 -1 -1 -1 ; === O === OSID8: .+1*2 .TXT "<13><10>KOP.<10><0>" OSID9: 128 OSID0: COUN0 OSID1: LDA 0,OSID0 @ STA 0,OSID9 LDA 3,CUR LDA 0,.3 GOP OSID2: INI OUO OUT DSZ OSID9 JMP OSID2 LDA 0,OSID8 OUTTEXT LDA 3,CUR OPERA «ff» ; ************** GENERELLE ELEMENTÆRE FUNKTIONER DEF I CUR-TABEL * ; ***** ALLE KALD OG RETURN MED VELDEFINEREDE ACC (SÆDV.UÆNDREDE!) ;--------------------------------- ; INTK * INPUT KOMMANDO FRA TTY ; CALL: ? ? ? CUR ; RETU: 0 0 RETURNP CUR ; RETURNPOINT DEF IN AC2 .NOLOC 1 INTK8: .+1*2 .TXT "<13><10>COMMAND: <0>" INTK9: .+1 .TXT "<0>O<0>Y<0>P<0>R<0>T<0>.<0>M<0>L<0>I<0>K<0>S<0>C<0>H<0><0><0><0><0>" .NOLOC 0 INTK0: 0 INTK1: STA 3,INTK0 LDA 0,.3 LDA 3,CUR GOP LDA 0,INTK8 OUTTEXT LDA 1,.32 OUTEND LDA 0,.24 STA 0,-2,2 LDA 3,CUR LDA 0,.1 GOP INCHA LDA 3,INTK9 INTK2: LDA 0,0,3 SUB # 0,1,SNR JMP INTK4 MOV # 0,0,SNR JMP INTK4 INC 3,3 ISZ INTK0 JMP INTK2 INTK4: LDA 3,CUR LDA 2,INTK0 SUB 0,0 SUB 1,1 JMP @ INTK0 ; RETURNPOINT DEF IN ACC 2 ; SENERE LAVES DETTE SOM JMP @ 0,2 ;-------------------------- ; GOP * OPEN FILE TTY (MODE) ;CALL: MODE . . CUR ;RETU: = = TTZON CUR OP00:0 OP01:0 OP02:0 OP03:0 OP1: STA 0,OP00 STA 1,OP01 STA 2,OP02 STA 3,OP03 LDA 2,TTADR LDA 1,.0 CLOSE LDA 0,OP00 OPEN LDA 0,OP00 LDA 1,OP01 LDA 3,CUR JMP @ OP03 «ff» ;-------------------------- ; INTHX * INPUT FRA TTY (HEXKODE) ; INT * INPUT FRA TTY (ASCII-TEGN) ; INI * INPUT FRA INPUTFIL ;CALL: . . . CUR ;RETU: = BYTE ZON/0 CUR RTH00:0 RTH01:0 RTH02:0 RTH03:0 RTHFL: 0 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,▶fb◀CUR MOV 0,1 OUT ISZ TYP80 DSZ TYP90 JMP TYPE2 OPERA ; === K === KILL0: 0 KILL1: JSR DIPL1 : INADR: INZON FIADR: FIZON TTADR: TTZON LPADR: LPZON ;::::::: ;--------------------------- ; OUTHX * OUTPUT BYTE TIL TTY UDEN TEXTOPTION ; OUT * OUTPUT BYTE TIL TTY ; OUL * OUTPUT BYTE TIL LPT ; OUO * OUTPUT BYTE TIL OUTPUTFIL ;CALL: . BYTE . CUR ;RETU: = = ZON CUR WTHX: STA 0,W00 STA 1,W01 STA 2,W02 STA 3,W03 LDA 2,TTADR LDA 3,.255 AND 3,1 JMP W3 WT: LDA 2,TTADR JMP W2 WL: LDA 2,LPADR JMP W2 WO: LDA 2,FIADR JMP W1 W00:0 W01:0 W02:0 W03:0 W93: 93 W1: STA 0,W00 STA 1,W01 STA 2,W02 STA 3,W03 W21: OUTCH W22: LDA 0,W00 ; LPDW SÆTTER LPTDEAD ADR HER LDA 1,W01 LDA 3,CUR JMP @ W03 W2: STA 0,W00 STA 1,W01 STA 2,W02 STA 3,W03 LDA 3,.255 AND 3,1 LDA 3,W93 LDA 0,.32 SG 1,3 SG 1,0 JMP W3 LDA 3,CUR OSP OUTCH LDA 3,CUR JMP W4 W3: LDA 3,.15 MOV 1,0 AND 3,1 MOVZR 0,0 MOVZR 0,0 MOVZR 0,0 MOVZR 0,0 AND 3,0 LDA 3,CUR OH ; AC2=TT EL. LP MOV 1,0 OH W4: DSZ -2,2 JMP .+2 ONL OSP JMP W22 ;-------------------------- ; OH * OUTPUT HEXTEGN ;CALL: TGN . ZON CUR ;RETU: = = = CUR H00: 0 H01: 0 H02: 0 H03: 0 H1: STA 0,H00 STA 1,H01 STA 2,H02 STA 3,H03 LDA 1,.15 AND 1,0 LDA 1,H9 ADD 0,1 GETBYTE LDA 2,H02 MOV 0,1 OUTCHAR LDA 0,H00 LDA 1,H01 LDA 3,CUR JMP @ H03 H9: .+1*2 .TXT "0123456789ABCDEFG" ;------------------------- ; OSP * OUTPUT SPACE (ZON) ; ONL * OUTPUT NL (ZON) ; OCH * OUTPUT CHAR (ACC 1 ØDELÆGGES !!!) ;CALL: . . ZON(!) CUR ;RETU: = =(%) = CUR O00:0 O01:0 O02:0 O03:0 O1: STA 1,O01 LDA 1,.32 JMP O3 O2: STA 1,O01 LDA 1,.24 STA 1,-2,2 LDA 1,.10 JMP O3 O3: STA 0,O00 STA 2,O02 STA 3,O03 LDA 3,CUR LPD OUTCHAR LDA 3,CUR LPDW LDA 0,O00 LDA 1,O01 LDA 3,CUR JMP @ O03 ;------------------------- ; LPD * LPT-DEAD POINT DEF = .+2 ; LPDW * LPT-DEAD POINT IN OUL-RUTINEN ; CALL: . . . CUR ; RETU: = = = CUR LPD03: 0 LPD04: W22 LPD05: LPTD9 LPD1: STA 3,LPD03 INC 3,3 LPD11: STA 3,LPD05 @ LDA 3,CUR JMP @ LPD03 LPDW1: STA 3,LPD03 LDA 3,LPD04 JMP LPD11 «ff» ;------------------------- ; FLYT * FLYTTER BUFFERDATA FRA PCC TIL ENDE ET STYKKE ;CALL: 0/1 ANTAL . CUR ;RETU: = = = CUR FLY70: ARBA0 FLY80: COUN2 ;SIDESIZE FLY90: PCADR ;AKT. PC FLY92: PCC FLYFN: 0 ; HVIS NED: 0.........FLYTN...FLYFN....FLYTØ...FLYFØ FLYTN: 0 ; HVIS OP: 0.........FLYFN...FLYTN............FLYFØ...FLYTØ FLYFO: 0 ; 0.........=PCC.....................ARBA0+COUN2 FLYTO: 0 FLY00: 0 FLY01: 0 FLY02: 0 FLY03: 0 FLYT1: STA 0,FLY00 STA 1,FLY01 STA 2,FLY02 STA 3,FLY03 LDA 3,FLY80 @ LDA 2,FLY70 @ ADD 2,3 STA 3,FLYFO ; I BEGGE TILF.!! MOV 0,0,SNR ; NED HVIS 1 JMP FLYO1 ; OP HVIS 0 FLYN1: LDA 2,FLY90 @ STA 2,FLYTN ADD 1,2 STA 2,FLYFN LDA 3,FLYFO SUB 1,3 STA 3,FLYTO LDA 3,FLY80 @ SUB 1,3 STA 3,FLY80 @ ; NEDDATERING AF ØVRE GRÆNSE FLYN2: LDA 1,FLYFN LDA 3,FLYFO SLE 1,3 JMP FLYT4 GETBY ISZ FLYFN LDA 1,FLYTN PUTBY ISZ FLYTN JMP FLYN2 FLYO1: LDA 2,FLY90 @ ; PCADR STA 2,FLYFN LDA 2,FLYFO ; OPDATERING /KONTROL/ AF ØVRE BUFFERGRÆNSE ADD 2,1 LDA 0,.1 ; FEJLKODE LDA 3,.1024 LDA 2,FLY70 @ ; BUFFER STARTADR ADD 3,2 LDA 3,CUR SLE 1,2 FEJL STA 1,FLYTO LDA 1,FLY01 ; COUN2 (SIZE) OPDATERES LDA 2,FLY80 @ ADD 1,2 STA 2,FLY80 @ LDA 2,FLY90 @ ; PCADR OPDATERES ADD 1,2 STA 2,FLYTN STA 2,FLY90 @ LDA 2,FLY92 @ ; PCC OPDATERES LDA 1,FLY01 ADD 1,2 STA 2,FLY92 @ FLYO2: LDA 1,FLYFO LDA 3,FLYFN SGE 1,3 JMP FLYT4 GETBY DSZ FLYFO LDA 1,FLYTO PUTBY DSZ FLYTO JMP FLYO2 FLYT4: LDA 0,FLY00 LDA 1,FLY01 LDA 2,FLY02 LDA 3,CUR JMP @ FLY03 «ff» 24 0 FIZON: .TXT 'UDFIL<0>' ;ZNAME Z ;SIZE 0 ;ZMODE 1B14+1B13+1B12+1B11 ;ZKIND BLOCK+POSIT+REPEA+CATAL 65535 ;ZMASK DEAD3 ;ZGIVE 1 ;ZFILE 1 ;ZBLOC 0 ;ZCONV FIS0 ;ZBUFF 263 ;ZSIZE (72/2+SSIZE) 0 ;ZLENG 0 ;ZFIRS FIB0*2 ;ZFIRS FIB0*2 ;ZTOP FIS0 ;ZUSED 512 ;ZSHAR 0 ;ZREM .BLK ZAUX ;AUXILIARY WORDS IN ZONE FIS0: 0 ;SOPER 0 ;SCOUN 0 ;SADDR 0 ;SSPEC FIS0 ;SNEXT 0 ;SSTAT FIB0*2 ;SFIRS FIB0: .BLK 256 ;DATA BUFFER 24 0 TTZON:.TXT 'TTY<0><0><0>' ;ZNAME Z ;SIZE 0 ;ZMODE 1 ;ZKIND 65535 ;ZMASK DEAD2 ;GIVE 1 ;ZFILE 1 ;ZBLOC 0 ;ZCONV TTS0 ;ZBUFF 117 ;ZSIZE (132/2+SSIZE) 0 ;ZFORM 0 ;ZLENG TTB0*2 ;ZFIRS TTB0*2 ;ZTOP TTS0 ;ZUSED 220 ;ZSHAR 0 ;ZREM .BLK ZAUX ;AUXILIARY WORDS IN ZONE TTS0: 0 ;SOPER 0 ;SCOUN 0 ;SADDR 0 ;SSPEC TTS0 ;SNEXT 0 ;SSTAT TTB0*2 ;S TTB0: .BLK 110 ;DATA BUFFER 24 0 INZON: .TXT 'PLRÅ<0><0>' ;ZNAME Z ;SIZE 0 ;ZMODE 1B14+1B13+1B12+1B11 ;ZKIND BLOCK+POSIT+REPEA+CATAL 65535 ;ZMASK DEAD3 ;ZGIVE 1 ;ZFILE 1 ;ZBLOC 0 ;ZCONV INS0 ;ZBUFF 263 ;ZSIZE (72/2+SSIZE) 0 ;ZLENG 0 ;ZFIRS INB0*2 ;ZFIRS INB0*2 ;ZTOP INS0 ;ZUSED 512 ;ZSHAR 0 ;ZREM .BLK ZAUX ;AUXILIARY WORDS IN ZONE INS0: 0 ;SOPER 0 ;SCOUN 0 ;SADDR 0 ;SSPEC INS0 ;SNEXT 0 ;SSTAT INB0*2 ;SFIRS INB0: .BLK 256 ;DATA BUFFER 24 0 LPZON:.TXT 'LPT<0><0><0>' ;ZNAME Z ;SIZE 0 ;ZMODE 1 ;ZKIND 65535 ;ZMASK LPTD9: DEAD ;GIVE IGNOREOPTION 1 ;ZFILE 1 ;ZBLOC 0 ;ZCONV LPS0 ;ZBUFF 117 ;ZSIZE (132/2+SSIZE) 0 ;ZFORM 0 ;ZLENG LPB0*2 ;ZFIRS LPB0*2 ;ZTOP LPS0 ;ZUSED 220 ;ZSHAR 0 ;ZREM .BLK ZAUX ;AUXILIARY WORDS IN ZONE LPS0: 0 ;SOPER 0 ;SCOUN 0 ;SADDR 0 ;SSPEC LPS0 ;SNEXT 0 ;SSTAT LPB0*2 ;SFIRS LPB0: .BLK 110 ;DATA BUFFER ; BUFFERE DER ER NØDV NÅR FX. DOMUS-FIL-FUNKTIONER BRUGES! BUFF1: .+0 .-1 BUFF2 10 PCDS 0 0 0 0 0 BUFF2: .+0 .-1 BUFF3 10 PCDS 0 0 0 0 0 BUFF3: . .-1 BUFF4 10 PCDS 0 0 0 0 0 BUFF4: . .-1 BUFF5 10 PCDS 0 0 0 0 0 BUFF5: . .-1 0 10 PCDS 0 0 0 0 0 0 ; PROCES-DESCRIPTOR: PCDS: .+0 .-1 0 0 .TXT 'FEDIT' .+0 .-1 BUFF1 PGDS 0 0 33 DEAD 0 0 0 0 BIRTH*2 0 1 2 3 4 5 6 7 8 9 ; RETURNACC: .DUSR GOP = JSR @ 30,3 ; = = ZON = OP1 .DUSR INTHX= JSR @ 31,3 ; = BY ZON = RTH1 .DUSR INT = JSR @ 32,3 ; = BY ZON = RT .DUSR INI = JSR @ 33,3 ; = BY ZON = RI .DUSR OUT = JSR @ 34,3 ; = = ZON = WT .DUSR OUL = JSR @ 35,3 ; = = ZON = WL .DUSR OUO = JSR @ 36,3 ; = = ZON = WO .DUSR OH = JSR @ 37,3 ; = = = = H1 .DUSR OSP = JSR @ 38,3 ; = = = = O1 .DUSR ONL = JSR @ 39,3 ; = = = = O2 .DUSR OCH = JSR @ 40,3 ; = % = = O3 .DUSR INTK = JSR @ 41,3 ; % % RETP = INTK1 .DUSR OPERA= JSR @ 42,3 ; % % % % OPER1 .DUSR LPD = JSR @ 43,3 ; = = = = LPD1 .DUSR LPDW = JSR @ 44,3 ; = = = = LPDW1 .DUSR FEJL = JSR @ 45,3 FEJL1 .DUSR FLYT = JSR @ 46,3 ; = = = = FLYT1 .DUSR OUTHX= JSR @ 47,3 ; = = ZON = WTHX -1 .END PCDS «ff» «nul»