|
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: 31744 (0x7c00) Types: TextFile Names: »ARES«
└─⟦2c664c89a⟧ Bits:30001805 SG0102 Floppy └─⟦this⟧ └─⟦96ad21271⟧ Bits:30001767 PL FAERD ASCII NR 12 └─⟦this⟧
; 21.6.84 HJFKTVALG FETTES ; 20.6.84 JA NU DEN EGL. AFPUDSNING!!! ; 20.6.84 FEJLEN VAR AT TEXTM /TEXTN IKKE PASSEDE MED ZONENAVNE!! ; 20.6.84 RETTES DER IGEN .MSG SIDE 1-? 188/2306 RESETPRG ; RETTELSER 16.6.84 LØRDAG FORM ; 15.6.84 ; SPECIALPROGRAM TIL AT RESETTE DISKETTE ; LAVET VED BARBERING I AED8 14.6.84 .NREL .TITL DRES .RDXO 16 .RDX 10 .TXTM 1 .TXTN 1 ; PYH !!!!! PGDS: 1B0+1B5+1B15 ;PROGRAMDESCRIPTOR (7 WORDS) LAB00 0 PCDS-PGDS .TXT 'FEDIT' .NOLOC 1 LAB00: FUT0: FUT1: .TXT "<13><10> *** IKKE IMPL ***<13><10><0>" FUT2: .TXT "<13><10> *** BUFFER FULD ***<13><10><0>" FUT3: .TXT "<13><10> *** IKKE FUNDET ***<13><10><0>" FUT4: .TXT "<13><10> *** FILFEJL ***<13><10><0>" FUT5: .TXT "<13><10> *** HARD MODE ***<13><10><0>" FUT6: .TXT "<13><10> *** ILLEGAL BUFFER SIZE ***<13><10><0>" FUT7: .TXT "<13><10> *** UDEF. TRACK/SECTOR ***<13><10><0>" FUT8: FUT9: .TXT "<13><10> *** ??? ***<13><10><0>" FFUT1: .TXT " *** FILSTATUS = <0>" FFUT2: .TXT " DI OF BU . . . IL EF BL DL PA EM PO DM TI REJ<10><0>" FTXT: FUT0*2 FUT1*2 FUT2*2 FUT3*2 FUT4*2 FUT5*2 FUT6*2 FUT7*2 FUT8*2 FUT9*2 FUT9*2 FUT9*2 FUT9*2 .NOLOC 0 ; === FEJL === ; CALL: FEJLNR . . (CUR) FEJL8: FTXT FEJL9: FTXT FEJL0: 0 CHAN1: FEJL1: INC 0,1 LDA 2,.10 SL 1,2 MOV 2,1 STA 1,FEJL0 LDA 3,FEJL8 STA 3,FEJL9 ISZ FEJL9 DSZ FEJL0 JMP .-2 LDA 3,CUR LDA 0,.3 GOP LDA 0,FEJL9 @ OUTTEXT LDA 1,.32 OUTEND LDA 3,CUR OPERA FFEJ8: FFUT2*2 FFEJ9: FFUT1*2 FFEJ1: LDA 0,.3 LDA 3,CUR JMP FEJL1 BI00: BUADR*2 BIRTH: LDA 2,LPAD LDA 0,.3 LDA 3,CUR LPD OPEN LDA 3,CUR LPDW LDA 2,TTAD LDA 0,.3 OPEN LDA 0,BI00 LDA 3,CUR OUTXT OPER1: ISZ OPER4 STA 3,OPER3 LDA 3,CUR INTK FEJL1 FEJL1 FEJL1 FEJL1 TYPE1 TFEM1 MOVE1 FEJL1 INSE1 KILL1 SEAR1 CHAN1 DEAD1 ; EVT HMM1 ELLER BLOC1 (SE DEAD1 ELLER HMM1) FEJL1 ; FEJL1 ; WKTR1 ; 2.03 FEJL1 ; A IKKE LAVET BB1 LS1 LS1 ; (BÅDE : OG =) FEJL1 FEJL1 -1 OPER3: 0 OPER4: 0 -3 DEAD5: HMM1 ; HS - HB - RUTINERNE DEAD8: 72 DEAD9: .+1*2 .TXT "DEAD?<0>" DEAD1: LDA 3,CUR INT LDA 0,.32 SLE 1,0 JMP DEAD5 @ ; HARD SELECT LDA 0,.3 GOP LDA 0,DEAD9 OUTTEXT LDA 3,CUR LDA 0,.1 GOP INCHA LDA 0,DEAD8 SUB # 0,1,SZR JMP OPER1 JMP DEAD ; -1 TTAD: TTZON LPAD: LPZON -2 DEAD: ; STANDARD-AFSLUTNINGSRUTINE STA 0,D0 STA 1,D1 STA 2,D2 STA 3,D3 LDA 2,TTAD CLOSE LDA 2,LPAD LDA 1,.1 LDA 3,CUR LPD CLOSE LDA 1,SLUT1 LDA 2,SLUT2 SENDMESSAGE ; LDA 2,CUR STOPP ; JMP .-1 D0: 0 ; HER SIKRES INFO OM DEAD (AHT EVT CORE-DUMP) D1: 1 D2: 2 D3: 3 SLUT1: .+1 1B8 0 0 0 SLUT2: .+1 .TXT 'S<0><0><0><0><0>' ;SIDE 2 SLUT «ff» .MSG SIDE 3 166/1929 16.6.84 RESETPRG ; === HV === EX: HV020517 2 SECTORER, TRACK 5, SECT 23 HV97: 2002 HV98: 86 ;V HV1: LDA 2,HV98 SE 1,2 FEJL INTHX STA 1,HV97 INTW SUBS 1,0 LDA 2,.0 HARD HARDR DSZ HV97 JMP .-2 OPERA ; === HJ === SPECIALVERSION SOM OSSE HAR ÆNDRET HARDRUTINERNE ; RESETRUTINE HJ96: 2002 HJ97: 2002 HJ98: 74 ;J HJ1: LDA 2,HJ98 SE 1,2 JMP HV1 LDA 0,.0 LDA 1,.1 LDA 2,.0 HARD HARDR DSZ HJ97 JMP .-2 LDA 3,HJ96 STA 3,HJ97 LDA 3,CUR OPERA ; === HY === HY98: 89 ; Y HY1: LDA 2,HY98 SE 1,2 JMP HJ1 ; HUSK JMP!!! HARDY SUBZL 0,0 TYPE OPERA ; === HR === HR98: 82 ; R HR1: LDA 2,HR98 SE 1,2 JMP HY1 HARDR ; TYPE 1. GANG I HARDR! SUBZL 0,0 TYPE OPERA ; === HM === HMC98: 77 ; M HMCC1: LDA 2,HMC98 SE 1,2 JMP HR1 INT SUB 0,0 LDA 2,.64 SNE 1,2 LDA 0,BLO97 ; OFFSET 70 FOR DEV 0 ELLER 3 STA 0,BLO01 OPERA ; === HO === HOU98: 79 ; O HOUT1: LDA 2,HOU98 SE 1,2 JMP HMCC1 LDA 3,CUR HARDO SUBZL 0,0 ; OULREQ TYPE OPERA ; === HB === BLO97: 70 BLO98: 66 BLO99: 61 BLO00: 0 ; BLOCK BLO01: 0 ; UNIT 0/3 OFFSET BLO11: 0 ; SECTOR BLO10: 0 ; TRACK BLOC1: LDA 2,BLO98 SE 1,2 JMP HOUT1 INTHX STA 1,BLO00 ; BLOCK MOV 2,2,SNR FEJL ; INGEN PARAM INTHX ; EVT 2. BYTE MOV 2,2,SNR JMP BLOC2 LDA 0,BLO00 MOVS 0,0 ADD 0,1 STA 1, BLO00 ; (PYH) BLOCK NU MED 2 BYTES BLOC2: LDA 0,.3 GOP OSP OSP OSP LDA 1,BLO00 ; BLOCK MOVS 1,1 OUTHX MOVS 1,1 OUTHX LDA 1,BLO99 OCH ; = OSP OSP LDA 0,BLO00 LDA 1,BLO01 ; OFFSET ADD 1,0 ; BLOCKFORSKUDT! EVT! BLB STA 0,BLO10 STA 1,BLO11 ; P Y H SUB 2,2 ; INPUT HARD ; AC0=TR AC1=SEC AC2=0 (READ) SUBZL 0,0 TYPE OPERA ; === HS === HMM8: 83 ; S HMM98: 79 ; O HMM00:0 HMM01:0 HMM1: LDA 3,CUR LDA 2,HMM8 SUB 0,0 SE 1,2 JMP BLOC1 LDA 0,.6 INTHX STA 1,HMM00 MOV 2,2,SNR FEJL ; PARAM NØDV. (FEJL 6) INTHX STA 1,HMM01 MOV 2,2,SNR FEJL ; AC0 = 6 INT LDA 2,HMM98 SE 1,2 SUB 2,2,SKP SUBZL 2,2 LDA 0,HMM00 LDA 1,HMM01 HARD ; AC0=TR AC1=SECT AC2=I/O=0/1 SUBZL 0,0 TYPE ; UDSKRIFTER LAVES I HARD!! OPERA HMM2: HARDO ; ACC UDEF OK, HENTES FRA SIDST!! SUBZL 0,0 TYPE OPERA ;SIDE 3 SLUT «ff» .MSG SIDE 4 198/2354 16.6.84 RESETPRG ; @, Y, P, R ; ********************************* EDITOR-FUNKTIONER ********** ; === @ === WKTR1: LDA 3,CUR INT LDA 2,.64 SUB 2,1 LDA 2,.16 SG 1,2 MOVZL # 1,1,SZC FEJL INC 1,2 JSR 1,1 ADD 3,2 LDA 3,CUR ; UDGANGSADR (LIGGER I AC2) JMP @ 2,2 WWW0 ; @@ => AC2+2 = DENNE ADR WWW1 ; @A-ADR WWW1 ; @B-ADR WWW1 WWW4 WWW5 ; @E-ADR = AC2+2 /AC2 PEGER PÅ WWW3 WWW5 WWW7 WWW8 WWW9 WWW10 WWW11 WWW12 ; @L-ADR WWW13 WWW14 WWW15 WWW16 OUTA1 WT WTHX WTD OULA1 ; OULA (WA) WL ; OUL (WB) WLHX ; OULHX(WC) WLD ; OULD (WD) FEJL1 FEJL1 FEJL1 LMV9 .TXT "<0><0>" .TXT "LP" ; 5+14 WWWBA: BUADR WWW0: LDA 0,WWWBA OUTW LDA 3,CUR OPERA WWW1: LDA 0,18,2 STA 0,34,3 ; OUT REDEF LDA 0,22,2 STA 0,35,3 ; OUL REDEF LDA 0,26,2 STA 0,61,3 ; LMOVESUBR REDEF OPERA LPADW: LPZON WWW52: LPFLG WWW51: 0 WWW5: LDA 1,26,2 STA 1,WWW51 MOV # 1,1,SNR INC 0,0 STA 0,WWW52 @ LDA 2,LPADW LDA 1,.1 CLOSE LDA 3,CUR ;!! LDA 0,WWW51 STA 0,0,2 ; LPTZONENAVN SZ 0,0 JMP WWW9 OPERA WWW71: O2LG WWW7: INTHX STA 1,WWW71 @ OPERA WWW81: COUN0 WWW8: INTW LDA 1,.256 SG 0,1 STA 0,WWW81 @ OPERA WWW9: LDA 2,LPADW LDA 0,.3 OPEN LDA 3,CUR OPERA WWW10: INTW MOV 0,2 JSR 0,2 LDA 3,CUR OPERA ;!!?? WW111: ARBA0 WW222: COUN0 WW223: COUN2 WW333: 0 ;DOWN WWW11: INTW LDA 3,WW111 @ MOVZR 3,3 MOV 0,2 LDA 1,WW223 @ JMP WWFLT WWW12: INTW LDA 2,WW111 @ MOVZR 2,2 MOV 0,3 LDA 1,WW222 @ STA 1,WW223 @ WWFLT: MOVZR 1,1 STA 1,WW333 LDA 0,0,3 STA 0,0,2 INC 2,2 INC 3,3 DSZ WW333 JMP .-5 LDA 3,CUR MOVZL 0,0 TYPE OPERA ;---------------- ; NOT IMPL: WTD: WLD: LMV9: .+1 WWW4: WWW13: WWW14: WWW15: WWW16: LDA 3,CUR LDA 0,.0 FEJL ;---------------- ; === Y === .NOLOC 1 YSID9: .+1*2 .TXT "<13><10><10>INPUT - - - - <0>" .NOLOC 0 .NOLOC 1 PSID9: .+1*2 .TXT "<13><10><10>OUTPUT <0>" .NOLOC 0 ;::::::::::::: TTAD9: TTZON LPAD9: LPZON ;::::::::::::: COUN0: 128 ; ORIG DEF I INPUT (EVT) COUN1: 0 ; DEF I Y, DOWN I Y COUN2: 0 ; DEF I Y, ÆNDR V K,I,C, BRUGES I P,T,F PCC: 0 ; POINTER = 0 - COUN2 PCADR: BUADR*2 ; DEF I Y, REDEF I M,S,C,L,I PCAD1: BUADR*2 ; DEF I F & T OG UPDATERET I SAMME ARBA0: BUADR*2 ; FAST !!!! ARBA1: BUADR*2 ; DEF I Y OG P OG UPDATERET I Y OG P ;::::::::::::: ;----------------- SUBRUTINER TIL Y OG P SLUT ;SIDE 4 SLUT «ff» .MSG SIDE 5 249/3356 20.6.84 ; B : = . M L T K I ; ; === B === BB1: STA 0,PCC LDA 0,ARBA0 STA 0,PCADR LDA 3,CUR OPERA ; === : === ; === = === LSPC:0 LSPCA:0 LS1: LDA 0,.3 LDA 3,CUR GOP LDA 1,PC STA 1,LSPC LDA 1,PCADR STA 1,LSPCA SUB 0,0 STA 0,PCC LDA 1, ARBA0 STA 1,PCADR SUBZL 2,2 LDA 3,CUR LTL OUTW OSP OSP LDA 0,COUN2 OUTW LDA 1,LSPC STA 1,PCC LDA 1,LSPCA STA 1,PCADR OPERA ; === . === (BRUGES OSSE AF FX. MOVE) TFEM8: 58 ;: TFEM9: 5 TFEM0: 0 TFEM1: LDA 0,.3 LDA 3,CUR GOP LDA 3,.16 STA 3,TFEM9 LDA 1,PCADR STA 1,PCAD1 LDA 3,CUR LDA 0,PCC OUTW LDA 1,TFEM8 OCH OSP OSP TFEM2: LDA 1,PCAD1 LDA 3,ARBA0 LDA 2,COUN2 ADD 3,2 LDA 3,CUR SL 1,2 OPERA GETBY MOV 0,1 LDA 3,CUR OUT ISZ PCAD1 DSZ TFEM9 JMP TFEM2 OPERA ; === M === ; COMMAND EX: M7 MB M+B M-B (B=11) MOVE0: 0 MOVE1: JSR DIPL1 ; HENTE AC0=SIGN AC1=ÆGTEBYTE AC3=CUR JSR BYBI1 ; BY TIL BINÆR MOVE2: LDA 2,PCC ADD 1,2 MOVZL # 2,2,SZC SUB 2,2 LDA 3,COUN2 SLE 2,3 LDA 2,COUN2 STA 2,PCC LDA 3,ARBA0 ADD 3,2 STA 2,PCADR JMP TFEM1 ;----------------- EGL. SUBR TIL BL. A. MOVE-INPUT-HÅNDTERING: ; SUBR. DIPL1 * HENTE TÆLLEPARAM FRA INPUT I KOMMANDO ;CALL: . . . . ;RETU: NEG? ÆGTEBY % CUR DIPL7: 0 DIPL8: 43 DIPL9: 45 DIPL0: 0 DIPL1: STA 3,DIPL0 LDA 3,CUR INT LDA 2,DIPL9 SUB 0,0 SUB # 1,2,SNR LDA 0,.1 LDA 2,DIPL8 MOV 0,0,SNR SUB # 1,2,SNR INT ; NÆSTE EFTERSOM FØRSTE VAR ET + ELLER - STA 1,DIPL7 ; SENERE YDERL. BEHANDL EVT NÆSTE BYTE JMP @ DIPL0 ; SUBR. BYBI1 * BYTE I AC1 TIL BINÆR VÆRDI, SIGNED & UNSIGNED ;CALL: 1=NEG BYTE . . ;RETU: 1=NEG SIGNED UNSIGN CUR ; BINVAL BINVAL BYBID: 0 BYBI0: 0 BYBI1: STA 3,BYBI0 LDA 2,.48 SUB 2,1 LDA 3,.10 LDA 2,.7 SL 1,3 SUB 2,1 MOV 1,2 MOV 0,0,SZR NEG 1,1 STA 1,BYBID LDA 3,CUR JMP @ BYBI0 ; --------------------- SUBR. SLUT ; === T === TYPE1: LDA 3,CUR TYPE OPERA ; === K === KILL0: 0 KIL90: COUN2 KIL91: PCC KIL92: TFEM1 KILL1: JSR DIPL1 JSR BYBI1 MOV 0,0,SZR OPERA ; HVIS NEG!! LDA 2,KIL90 @ LDA 3,KIL91 @ SUB 3,2 SG 2,1 MOV 2,1 LDA 3,CUR LDA 0,.1 FLYT ; TILVENSTRE JMP @ KIL92 ; RANGE DANGER COUNT/PCC/ ETC ; === I === INSE5: INTO6 ; TTYFLAG INSE6: RTHFL ; RESETTES EFTER I INSE7: PCADR INSE8: 0 INSE9: INSE0: 0 INSE1: LDA 3,INSE7 @ STA 3,INSE8 ISZ @ INSE5 INSE2: LDA 3,CUR INTHX ; EVT OPTION INT /AFH AF 1. INPUTTEDE BYTE STA 1,INSE0 MOV 2,2,SNR ; IF NOT CONTROL, FX 13 EL 27 PÅ 1. INDHEX JMP INSE3 LDA 0,.0 LDA 1,.1 FLYT ; 1 TILHØJRE LDA 0,INSE0 LDA 1,INSE8 ISZ INSE8 PUTBY JMP INSE2 INSE3: SUB 0,0 STA 0,INSE6 @ OPERA ;SIDE 5 SLUT (O FJERNET) .MSG SIDE 6 173/2150 14.5.84 ; === S === ; SØG E N K E L T BYTE (PT) SEA09: TFEM1 SEA03: 0 SEAR1: STA 3,SEA03 LDA 3,CUR INTHX MOV 2,2,SNR OPERA SEBYT LDA 0,.2 MOV 2,2,SNR FEJL JMP @ SEA09 .NOLOC 1 BUADR: .TXT "<13><10><10>DISKETTE $FD1-RESET-PROGRAM REV 1.01 <13><10>PL JUNI 1984 <13><10> HJ: AUTO HARD RESET * INGEN PARAM <13><10> HV: HARD RESET * TRE HEXPARAM: ANTAL, TRACK, SECT *EX: HV022117 <13><10> 2 SECTORER, STARTTRACK 33, STARTSECT 23 <13><10> <13><10> HM, HB, HS, HO, HR, HY <13><10> @A-@L <13><10> : = . B M K I S T <13><10> SOM I PROGRAMMET F <13><10> ? OG @@ UDELADT <13><10><0>" .NOLOC 0 ;SIDE 6 SLUT (G FJERNET) «ff» .MSG SIDE 7 91/1275 20.6.84 ; SPEC CUR-FKT .TXT " CURFKT " ; ************** GENERELLE ELEMENTÆRE FUNKTIONER DEF I CUR-TABEL * ; ***** ALLE KALD OG RETURN MED VELDEFINEREDE ACC (SÆDV.UÆNDREDE!) ;--------------------------------- ; INTK * INPUT KOMMANDO FRA TTY ; CALL: ? ? ? CUR ; RETU: 0 0 RETURNP CUR ; RETURNPOINT DEF IN AC2 .NOLOC 1 INTO6: 0 ; TTYFLAG INTK8: .+1*2 .TXT " DISKETTERESETKOMMANDO HJ: <0>" INTK9: .+1 .TXT "<0>O<0>Y<0>P<0>R<0>T<0>.<0>M<0>L<0>I<0>K<0>S<0>C<0>H<0>G<0>?<0>@<0>A<0>B<0>:<0>=<0><0><0><0><0>" .NOLOC 0 INTK0: 0 INTK1: STA 3,INTK0 INTO2: LDA 0,.3 LDA 3,CUR GOP LDA 0,INTK8 OUTTEXT LDA 1,.32 OUTEND SUB 0,0 STA 0,INTO6 LDA 3,CUR LDA 0,.1 GOP INTO1: INCHA LDA 3,INTK9 INTK2: LDA 0,0,3 SUB # 0,1,SNR JMP INTK4 MOV # 0,0,SNR JMP INTK4 INC 3,3 ISZ INTK0 JMP INTK2 INTK4: LDA 3,CUR LDA 2,INTK0 SUB 0,0 SUB 1,1 JMP @ 0,2 ; RETURNPOINT DEF IN ACC 2 ;-------------------------- ; GOP * OPEN FILE TTY (MODE) ;CALL: MODE . . CUR ;RETU: = = TTZON CUR OP00:0 OP01:0 OP02:0 OP03:0 OP9: TTZON OP1: STA 0,OP00 STA 1,OP01 STA 2,OP02 STA 3,OP03 LDA 2,OP9 LDA 1,.0 CLOSE LDA 0,OP00 OPEN LDA 0,OP00 LDA 3,CUR LDA 1,.3 SNE 1,0 OSP LDA 1,OP01 JMP @ OP03 ;SIDE 7 SLUT (SIDETE MESTE FJERNET) «ff» .MSG SIDE 8A 308/4060 14.5.84 ; GEN RUTINER: NORMAL I/O ; GEN RUTINER FORTSAT ;-------------------------- ; INTW * INPUT WORD FRA TTY I HEXKODE (4 TEGN) (TTY ÅBNET FORUDS) ;CALL: . . . CUR ;RETU: WORD HØJRBY = CUR IW02:0 IW03:0 IW1: STA 2,IW02 STA 3,IW03 LDA 3,CUR INTHX MOVS 1,0 INTHX ADD 1,0 LDA 2,IW02 JMP @ IW03 ;-------------------------- ; INTHX * INPUT FRA TTY (EVT HEXKODE, EVT SPACETASTKODE, EVT TASTKODE) ; INT * INPUT FRA TTY (TASTKODE) ; INI * INPUT FRA INPUTFIL ;CALL: . . . CUR ;RETU: = BYTE ZON/0 CUR ; 0 HVIS HX 1.BY < 32 ONLY RTH00:0 RTH01:0 RTH02:0 RTH03:0 RTHFL: 0 ; SÆTTES VED I_ OG RESETTES RTHFG: 95 ; PIL LEFT RTHG1: 70 RTHG2: 9 RTHG3: 27 RTHD: 0 RTHC: 3 RTH1: STA 0,RTH00 STA 1,RTH01 STA 2,RTH02 STA 3,RTH03 LDA 2,TTADR LDA 3,RTHFL MOV 3,3,SZR JMP RTH4 LDA 2,.2 STA 2,RTHC RTH3: LDA 2,TTADR INCHAR LDA 0,.32 SGE 1,0 JMP RTH5 LDA 0,RTHFG SUB # 1,0,SZR JMP .+3 ISZ RTHFL JMP RTH4 LDA 0,.48 LDA 3,RTHG1 SG 1,3 SGE 1,0 JMP RTH4 SUB 0,1 ; !! LDA 3,.9 LDA 0,.7 SLE 1,3 SUB 0,1 LDA 0,RTHC LDA 3,.2 SNE 0,3 STA 1,RTHD DSZ RTHC JMP RTH3 LDA 0,RTHD MOVZL 0,0 MOVZL 0,0 MOVZL 0,0 MOVZL 0,0 ADD 0,1 RTH2: LDA 0,RTH00 LDA 3,CUR JMP @ RTH03 RTH4: LDA 2,TTADR INCHA LDA 0,RTHG3 SUB 1,0,SNR SUB 2,2 JMP RTH2 RTH5: LDA 0,RTH00 SUB 2,2 ; AC2=0 IF CONTROL I 1.HEXTEGN AF BYTE LDA 3,CUR JMP @ RTH03 RT: LDA 2,TTADR JMP R1 JMP R1 R00:0 R01:0 R02:0 R03:0 R1: STA 0,R00 STA 3,R03 INCHA LDA 0,R00 LDA 3,CUR JMP @ R03 ;::::::: TTADR: TTZON LPADR: LPZON ;::::::: ;--------------------------- ; OULHX * OUTPUT BYTE TIL LPT UDEN TEXTOPTION ; OUTHX * OUTPUT BYTE TIL TTY UDEN TEXTOPTION ; OUT * OUTPUT BYTE TIL TTY EVT HEXKODE, EVT SPACETASTKODE "HH ", " A ", "A" ; OUL * OUTPUT BYTE TIL LPT EVT HEXKODE, EVT SPACETASTKODE ; OUO * OUTPUT BYTE TIL OUTPUTFIL ; OUT & OUL KAN ÆNDRES VED KOMMANDO @A, @C ;CALL: . BYTE . CUR ;RETU: = = ZON CUR WLHX: STA 0,W00 STA 1,W01 STA 2,W02 STA 3,W03 LDA 2,LPADR JMP WHX2 WTHX: STA 0,W00 STA 1,W01 STA 2,W02 STA 3,W03 LDA 2,TTADR JMP WHX2 WHX1: STA 0,W00 STA 1,W01 STA 2,W02 STA 3,W03 WHX2: LDA 3,.255 AND 3,1 JMP W3 WT: LDA 2,TTADR JMP W2 WL: LDA 2,LPADR JMP W2 W00:0 W01:0 W02:0 W03:0 WLPFL: LPFLG W93: 93 W1: STA 0,W00 STA 1,W01 STA 2,W02 STA 3,W03 W21: LDA 0,LPADR SE 0,2 JMP .+3 LDA 0,WLPFL @ SNZ 0,0 ; FLAG FOR LPTFORBUD OUTCH W22: LDA 0,W00 ; LPDW SÆTTER LPTDEAD ADR HER LDA 1,W01 LDA 3,CUR JMP @ W03 W2: STA 0,W00 STA 1,W01 STA 2,W02 STA 3,W03 LDA 3,.255 AND 3,1 LDA 3,W93 LDA 0,.32 SG 1,3 SGE 1,0 JMP W3 LDA 3,CUR OSP OUTCH LDA 3,CUR JMP W4 W3: LDA 3,.15 MOV 1,0 AND 3,1 MOVZR 0,0 MOVZR 0,0 MOVZR 0,0 MOVZR 0,0 AND 3,0 LDA 3,CUR OH ; AC2=TT EL. LP MOV 1,0 OH W4: DSZ -2,2 JMP .+2 ONL OSP JMP W22 ; OUTA * OUTPUT TIL TTY SOM ALM ASCIIFIL ; OUTL * OUTPUT TIL LPT SOM ALM ASCIIFIL OUA91: 125 ; (LILLE Å) OUTA1: LDA 2,TTADR JMP .+2 OULA1: LDA 2,LPADR STA 0,W00 STA 1,W01 STA 2,W02 STA 3,W03 LDA 0,.32 LDA 3,OUA91 ; (Å) SG 1,3 SGE 1,0 JMP OUA3 JMP W21 ; OUTCHAR & RETURN OUA3: LDA 3,.127 SE 1,0 SNZ 1,1 JMP W22 ; IGN <0> OG <127> LDA 3,.13 LDA 0,.10 SE 1,3 JMP .+4 LDA 3,CUR OCH ; EVT UDELADES ?! MOV 0,1 SNE 1,0 JMP W21 ; NORMAL NL LDA 3,.127 LDA 0,.9 SE 1,3 SNE 1,0 JMP W21 ; <9>, <127> LDA 3,.12 SNE 1,3 JMP OUA4 ; SÆRL. <12> LDA 1,OUA91 INC 1,1 ; ü JMP W21 ; ELLERS "ü" OUA4: LDA 0,OUA44 LDA 3,CUR OUTXT JMP W22 OUA44: .+1*2 .TXT "<13><10><10>SIDESKIFT<13><10><10><0>" ;--------------------- ; OUTW * OUTPUT WORD TIL TTY /HEX ; OULW * OUTPUT WORD TIL LPT /HEX ;CALL: WORD . . CUR ;RETU = = ZON CUR OWW00:0 OWW01:0 OWW03:0 OUTW1: LDA 2,TTAD8 JMP .+2 OULW1: LDA 2,LPAD8 STA 0,OWW00 STA 1,OWW01 STA 3,OWW03 LDA 3,.255 MOVS 0,1 AND 3,0 AND 3,1 LDA 3,CUR WHX MOV 0,1 WHX LDA 0,OWW00 LDA 1,OWW01 LDA 3,CUR JMP @ OWW03 ;:::::::::::: TTAD8: TTZON LPAD8: LPZON ;:::::::::::: ;SIDE 8A SLUT «ff» .MSG SIDE 8B 148/1753 12.5.84 ;-------------------------- ; FLG. OUTPUTRUTINER FORUDSÆTTER FORUDG. DEF AF ZONE ;-------------------------- ; OH * OUTPUT HEXTEGN ;CALL: TGN . ZON CUR ;RETU: = = = CUR H00: 0 H01: 0 H02: 0 H03: 0 H1: STA 0,H00 STA 1,H01 STA 2,H02 STA 3,H03 LDA 1,.15 AND 1,0 LDA 1,H9 ADD 0,1 GETBYTE LDA 2,H02 MOV 0,1 LDA 3,CUR OCH LDA 0,H00 LDA 1,H01 JMP @ H03 H9: .+1*2 .TXT "0123456789ABCDEFG" ;------------------------- ; OSP * OUTPUT SPACE (ZON) ; ONL * OUTPUT NL (ZON) ; OCH * OUTPUT CHAR (ZON) ;CALL: . . ZON(!) CUR ;RETU: = = = CUR O00:0 O01:0 O02:0 O03:0 O2TTA: TTZON O2LG: 24 ; EVT ÆNRES AF W O1: STA 0,O00 STA 1,O01 LDA 1,.32 JMP O3 O2: STA 0,O00 STA 1,O01 LDA 1,O2LG LDA 0,O2TTA SE 0,2 JMP O2F LDA 0,.24 SLE 1,0 MOVZR 1,1 O2F: STA 1,-2,2 LDA 1,.10 JMP O3 O3: STA 2,O02 STA 3,O03 LDA 3,CUR LPD OUTEND LDA 3,CUR LPDW LDA 0,O00 LDA 1,O01 LDA 3,CUR JMP @ O03 O4: STA 0,O00 STA 1,O01 JMP O3 ;------------------------- ; LPD * LPT-DEAD POINT DEF = .+2 ; LPDW * LPT-DEAD POINT IN OUL-RUTINEN ; CALL: . . . CUR ; RETU: = = = CUR LPD00:0 LPFLG: 0 ; FORBUDSFLAG (SE @E, @F) LPD03: 0 LPD04: W22 LPLPA: LPZON LPD05: LPTD9 LPD1: STA 3,LPD03 INC 3,3 STA 0,LPD00 LDA 0,LPLPA SE 2,0 JMP LPD11 LDA 0,LPFLG SZ 0,0 ISZ LPD03 LPD11: LDA 0,LPD00 STA 3,LPD05 @ LDA 3,CUR JMP @ LPD03 LPDW1: STA 0,LPD00 STA 3,LPD03 LDA 3,LPD04 JMP LPD11 ;------------------- ; OUTXT **** NY ;CALL: BYAD . ZON CUR ;RETU: = = = CUR OUX00:0 OUX01:0 OUX02:0 OUX03:0 OUTX1: STA 0,OUX00 STA 1,OUX01 STA 2,OUX02 STA 3,OUX03 LDA 3,CUR LPD OUTTEXT ; !! LDA 3,CUR LPDW LDA 0,OUX00 LDA 1,OUX01 LDA 2,OUX02 LDA 3,CUR JMP @ OUX03 ;SIDE 8B SLUT «ff» .MSG SIDE 9 210/3000 7.5.84 ; FLYT OG SE(ARCH)BYT(E) OG TYPE ; TYPE NU SOM FKT ;------------------------- ; FLYT * FLYTTER BUFFERDATA FRA PCC TIL ENDE ET STYKKE ;CALL: 0/1 ANTAL . CUR ;RETU: = = = CUR FLY70: ARBA0 FLY80: COUN2 ;SIDESIZE FLY90: PCADR ;AKT. PC FLY92: PCC FLYFN: 0 ; HVIS NED: 0.........FLYTN...FLYFN....FLYTØ...FLYFØ FLYTN: 0 ; HVIS OP: 0.........FLYFN...FLYTN............FLYFØ...FLYTØ FLYFO: 0 ; 0.........=PCADR...................ARBA0+COUN2 FLYTO: 0 FLY00: 0 FLY01: 0 FLY02: 0 FLY03: 0 FLYT1: STA 0,FLY00 STA 1,FLY01 STA 2,FLY02 STA 3,FLY03 LDA 3,FLY80 @ LDA 2,FLY70 @ ADD 2,3 STA 3,FLYFO ; I BEGGE TILF.!! MOV 0,0,SNR ; NED HVIS 1 JMP FLYO1 ; OP HVIS 0 FLYN1: LDA 2,FLY90 @ STA 2,FLYTN ADD 1,2 STA 2,FLYFN LDA 3,FLYFO SUB 1,3 STA 3,FLYTO LDA 3,FLY80 @ SUB 1,3 STA 3,FLY80 @ ; NEDDATERING AF ØVRE GRÆNSE FLYN2: LDA 1,FLYFN LDA 3,FLYFO SLE 1,3 JMP FLYT4 GETBY ISZ FLYFN LDA 1,FLYTN PUTBY ISZ FLYTN JMP FLYN2 FLYO1: LDA 2,FLY90 @ ; PCADR STA 2,FLYFN LDA 2,FLYFO ; OPDATERING /KONTROL/ AF ØVRE BUFFERGRÆNSE ADD 2,1 LDA 0,.1 ; FEJLKODE LDA 3,.1024 LDA 2,FLY70 @ ; BUFFER STARTADR ADD 3,2 LDA 3,CUR SLE 1,2 FEJL STA 1,FLYTO LDA 1,FLY01 ; COUN2 (SIZE) OPDATERES LDA 2,FLY80 @ ADD 1,2 STA 2,FLY80 @ LDA 2,FLY90 @ ; PCADR OPDATERES ADD 1,2 STA 2,FLYTN STA 2,FLY90 @ LDA 2,FLY92 @ ; PCC OPDATERES LDA 1,FLY01 ADD 1,2 STA 2,FLY92 @ FLYO2: LDA 1,FLYFO LDA 3,FLYFN SGE 1,3 JMP FLYT4 GETBY DSZ FLYFO LDA 1,FLYTO PUTBY DSZ FLYTO JMP FLYO2 FLYT4: LDA 0,FLY00 LDA 1,FLY01 LDA 2,FLY02 LDA 3,CUR JMP @ FLY03 ; ------------------------ ; SEBYT * SEARCH BYTE ;CALL: . BYTE . CUR ;RETU: = = 0/1 CUR ; 1=FOUND ; PCC & PCADR OPDATERES (EVT TIL 0) SEBY5: ARBA0 SEBY6: PCC SEBY7: PCADR ; OPDATERES SEBY8: COUN2 SEBY9: 0 ; DOWNCOUNT SEB00:0 SEB01:0 SEB02:0 SEB03:0 SEB04:0 SEBY1: STA 0,SEB00 STA 1,SEB01 STA 2,SEB02 STA 3,SEB03 ISZ SEBY6 @ ; SØG FRA PCC+1 !!!! ISZ SEBY7 @ LDA 2,SEBY5 @ LDA 1,SEBY8 @ ADD 2,1 ; ØVRE ADR I BUFFER LDA 2,SEBY7 @ LDA 3,CUR SUB 2,1,SZR MOVZL # 1,1,SZC ; CARRY!! JMP SEBY4 ; IKKE FLERE BYTES I BUFFER STA 1,SEBY9 ; COUNTER REST AF BUFFER SEBY2: LDA 1,SEBY7 @ GETBY LDA 1,SEB01 SUBZL 2,2 SUB # 0,1,SNR JMP SEBY3 ; FUNDET ISZ SEBY6 @ ISZ SEBY7 @ DSZ SEBY9 JMP SEBY2 SEBY4: SUB 2,2 STA 2,SEBY6 @ LDA 1,SEBY5 @ STA 1,SEBY7 @ SEBY3: LDA 0,SEB00 LDA 1,SEB01 LDA 3,CUR JMP @ SEB03 ;------------------ ; TYPE * SKRIV SIDEN TIL TTY/ EVT OSSE LPT ;CALL: 1=LPT . . CUR ;RETU: = = = CUR TYP91: COUN2 TYP92: ARBA0 TYP00:0 TYP01:0 TYP02:0 TYP03:0 TYP70:0 TYP80:0 TYP90:0 TYP1: STA 0,TYP00 STA 1,TYP01 STA 2,TYP02 STA 3,TYP03 LDA 0,TYP91 @ LDA 3,CUR MOV 0,0,SNR JMP TYP3 STA 0,TYP90 LDA 0,.3 GOP LDA 1,TYP92 @ STA 1,TYP80 TYP2: LDA 1,TYP80 GETBY LDA 3,CUR MOV 0,1 OUT LDA 2,TYP00 SZ 2,2 OUL ISZ TYP80 DSZ TYP90 JMP TYP2 TYP3: LDA 0,TYP00 LDA 1,TYP01 LDA 2,TYP02 LDA 3,CUR JMP @ TYP03 ;SIDE 9 SLUT «ff» .MSG SIDE 10 292/3373 20.6.84 RESETPRG ; GEN RUTINER FORTSAT (3) HARDRUTINER ; AFPUDSET D.D. .TXT " HARD " ;---------------------------- ; HARD * HARDMODE INPUT ELLER OUTPUT ;CALL: TRACK SECT 1/0 CUR ;RETU: = = = CUR ; 0 READ 1 WRITE HM777: LPZON HM778: YSID9 ; INPUT HM779: PSID9 ; OUTPUT HM26: 26 HM76: 76 HM88: 83 ; S HM1: STA 0,HM00 STA 1,HM01 STA 2,HM02 STA 3,HM03 ; KONTROL AF PARAM / UDSKRIFTER: LDA 3,CUR LDA 0,HM778 @ SZ 2,2 LDA 0,HM779 @ LDA 2,HM777 OUTXT LDA 3,CUR ;KONTROLUDSKRIFTER LDA 0,.3 GOP LDA 1,HM88 INC 1,1 OUL ; T OSP OUT LDA 0,.6 ; FEJLNR LDA 1,HM00 OULHX OSP OUTHX LDA 2,HM76 SLE 1,2 FEJL LDA 1,HM88 ; S OUL OSP OUT LDA 1,HM01 OUTHX OSP OULHX LDA 0,HM72 OUTXT OSP LDA 2,HM26 SG 1,2 SNZ 1,1 FEJL ; TRACK SELECT .DUSR FD1=52 HM2: LDA 3,CUR LDA 1,.1B6 DOAS 1,FD1 LDA 0,HM00 ADD 1,0 LDA 1,.1B7 ADD 1,0 SKPBZ FD1 JMP .-1 DOAS 0,FD1 SUB 0,0 LDA 2,HM02 SNZ 2,2 JMP HM3 ; INPUT ; STATUS & RESET FØR OUTPUT LDA 1,.63 OUL LDA 1,.63 OUT OSP SKPBZ FD1 JMP .-1 JMP HM2F ;::: HM00:0 HM01:0 HM02:0 HM03:0 HM04:0 HM55: 0 ; DOWNCOUNT HM66: ARBA0 HM67: 0 ; LØBENDE ADR HM77: COUN2 ; SIDESTØRR HM71: FFUT2*2 HM72: .+1*2 .TXT " // STATUS: <0>" ;::: HM2F: DIA 1,FD1 ; FORB. OUTPUT LDA 3,CUR MOVS 1,1 OULHX OUTHX ; STATUS FØR OUTP MOVS 1,1 OULHX OSP OSP OUTHX OSP LDA 1,.120 OCH OSP DIC 1,FD1 MOVS 1,1 OULHX OUTHX MOVS 1,1 OULHX OSP OSP OSP OUTHX LDA 1,.120 OCH OSP LDA 1,T251 DOC 1,FD1 LDA 2,.128 LDA 1,HM77 @ LDA 0,.5 ; FEJL SUB 1,2,SZR FEJL ; BUFFER SIZE ; OUTPUT TIL HARDBUFFER LDA 1,HM66 @ ; BUFFER BYAD STA 1,HM67 LDA 0,.128 STA 0,HM55 HM25: LDA 1,HM67 GETBYTE DOB 0,FD1 ISZ HM67 DSZ HM55 JMP HM25 LDA 1,T251 DOC 1,FD1 LDA 0,.1B7 HM3: LDA 3,CUR LDA 1,.64 OUL OSP OUT LDA 1,HM01 ; SECTOR COMMAND & STATUSUDSKRIFT ADD 1,0 SKPBZ FD1 JMP .-1 DOAS 0,FD1 SKPBZ FD1 JMP .-1 LDA 3,CUR DIA 1,FD1 MOVS 1,1 OUTHX OULHX MOVS 1,1 OUTHX ONL ;SIDSTE OSP OULHX ONL OSP LDA 1,HM02 MOV 1,1,SZR JMP HM4 ; OUT SLUT ; INPUT FRA HARD BUFFER LDA 0,HM00 STA 0,HM000 LDA 0,HM01 STA 0,HM001 ; GEMMES TIL HO ELLER HR LDA 0,.128 STA 0,HM77 @ STA 0, HM55 ; DOWN LDA 1,HM66 @ DIB 0,FD1 PUTBYTE INC 1,1 DSZ HM55 JMP .-4 HM4: LDA 0,HM00 LDA 1,HM01 LDA 2,HM02 LDA 3, CUR JMP @ HM03 T251: 251 ;------------------ ; HARDO * OUTPUT SAMME SECTOR SOM SIDST ER LÆST ; HARDR * OUTPUT (HARDO) OG INPUT NÆSTE SECTOR ; HARDY * READ NÆSTE SECTOR ;CALL: . . . CUR ;RETU: TRACK SECT 1/0 CUR HM000:0 HM001:6 ;(RET UFARLIGT STED!) HM600: 0 HM603: 0 HM626: 26 HM222: HM1 HM5: LDA 0,HM000 LDA 1,HM001 LDA 2,.1 JMP @ HM222 HM6: STA 3,HM603 JSR HM5 STA 0,HM600 LDA 0,.1 LDA 3,CUR ; TYPE LDA 0,HM600 HM65: INC 1,1 LDA 2,HM626 SG 1,2 JMP .+3 SUBZL 1,1 INC 0,0 SUB 2,2 JSR @ HM222 JMP @ HM603 HM7: LDA 0,HM000 LDA 1,HM001 STA 3,HM603 JMP HM65 ;------------------------- ; BLB * BLOCKBEREGNING AF TRACK/SECTOR ;CALL: BLOCK . . CUR ;RETU: TRACK SECT = CUR BLB00:0 BLB01:0 BLB02:0 BLB03:0 BLB1: STA 0,BLB00 STA 1,BLB01 STA 2,BLB02 STA 3,BLB03 LDA 3,CUR MOVZL 0,0 MOVZL 0,0 LDA 1,.3 SUB 1,0 LDA 1,.25 INC 1,1 DIVID MOV 3,1 LDA 2,BLB02 LDA 3,CUR JMP @ BLB03 ;SIDE 10 SLUT «ff» .MSG SIDE 11 285/3255 15.5.84 ; ZONER, BUFFERE, PRCD OG FKT-TABEL ; PROCESNAVN NU 'F' 24 0 TTZON:.TXT 'TTY<0><0><0>' ;ZNAME Z ;SIZE 0 ;ZMODE 1 ;ZKIND 65535 ;ZMASK FFEJ1 ;GIVE 1 ;ZFILE 1 ;ZBLOC 0 ;ZCONV TTS0 ;ZBUFF 117 ;ZSIZE (132/2+SSIZE) 0 ;ZFORM 0 ;ZLENG TTB0*2 ;ZFIRS TTB0*2 ;ZTOP TTS0 ;ZUSED 220 ;ZSHAR 0 ;ZREM .BLK ZAUX ;AUXILIARY WORDS IN ZONE TTS0: 0 ;SOPER 0 ;SCOUN 0 ;SADDR 0 ;SSPEC TTS0 ;SNEXT 0 ;SSTAT TTB0*2 ;S TTB0: .BLK 110 ;DATA BUFFER 24 0 LPZON:.TXT 'LPT<0><0><0>' ;ZNAME Z ;SIZE 0 ;ZMODE 1 ;ZKIND 65535 ;ZMASK LPTD9: FFEJ1 ;GIVE IGNOREOPTION 1 ;ZFILE 1 ;ZBLOC 0 ;ZCONV LPS0 ;ZBUFF 117 ;ZSIZE (132/2+SSIZE) 0 ;ZFORM 0 ;ZLENG LPB0*2 ;ZFIRS LPB0*2 ;ZTOP LPS0 ;ZUSED 220 ;ZSHAR 0 ;ZREM .BLK ZAUX ;AUXILIARY WORDS IN ZONE LPS0: 0 ;SOPER 0 ;SCOUN 0 ;SADDR 0 ;SSPEC LPS0 ;SNEXT 0 ;SSTAT LPB0*2 ;SFIRS LPB0: .BLK 110 ;DATA BUFFER ; BUFFERE DER ER NØDV NÅR FX. DOMUS-FIL-FUNKTIONER BRUGES! BUFF1: .+0 .-1 BUFF2 10 PCDS 0 0 0 0 0 BUFF2: .+0 .-1 BUFF3 10 PCDS 0 0 0 0 0 BUFF3: . .-1 BUFF4 10 PCDS 0 0 0 0 0 BUFF4: . .-1 0 10 PCDS 0 0 0 0 0 0 ; PROCES-DESCRIPTOR: PCDS: .+0 .-1 0 0 .TXT 'DRES<0>' .+0 .-1 BUFF1 PGDS 0 0 33 OPER1 0 0 0 0 BIRTH*2 0 1 2 3 4 5 6 7 8 9 .DUSR GOP = JSR @ 30,3 OP1 .DUSR INTHX= JSR @ 31,3 RTH1 .DUSR INT = JSR @ 32,3 RT .DUSR INI = JSR @ 33,3 FEJL1 ; RI .DUSR OUT = JSR @ 34,3 WT .DUSR OUL = JSR @ 35,3 WL .DUSR OUO = JSR @ 36,3 FEJL1 ;WO .DUSR OH = JSR @ 37,3 H1 .DUSR OSP = JSR @ 38,3 O1 .DUSR ONL = JSR @ 39,3 O2 .DUSR OCH = JSR @ 40,3 O4 .DUSR INTK = JSR @ 41,3 INTK1 .DUSR OPERA= JSR @ 42,3 OPER1 .DUSR LPD = JSR @ 43,3 LPD1 .DUSR LPDW = JSR @ 44,3 LPDW1 .DUSR FEJL = JSR @ 45,3 FEJL1 .DUSR OUTXT= JSR @ 46,3 OUTX1 .DUSR SEBYT= JSR @ 47,3 SEBY1 .DUSR INTFI= JSR @ 48,3 FEJL1 ;RTF1 .DUSR OUTFI= JSR @ 49,3 FEJL1 ;OUTF1 .DUSR OULFI= JSR @ 50,3 FEJL1 ;OULF1 .DUSR OUFI = JSR @ 51,3 FEJL1 ;OUF1 .DUSR BLB = JSR @ 52,3 BLB1 .DUSR HARD = JSR @ 53,3 HM1 .DUSR HARDO= JSR @ 54,3 HM5 .DUSR OUTHX= JSR @ 55,3 WTHX .DUSR OULHX= JSR @ 56,3 WLHX .DUSR FLYT = JSR @ 57,3 FLYT1 .DUSR TYPE = JSR @ 58,3 TYP1 .DUSR HARDR= JSR @ 59,3 HM6 .DUSR HARDY=JSR @ 60,3 HM7 .DUSR LMV = JSR @ 61,3 FEJL1 ;LMV1 .DUSR INTW = JSR @ 62,3 IW1 .DUSR OUTW = JSR @ 63,3 OUTW1 .DUSR OULW = JSR @ 64,3 OULW1 .DUSR LTL = JSR @ 65,3 FEJL1 ;LTL1 .DUSR WHX = JSR @ 66,3 WHX1 -1 .END PCDS ;SIDE 11 SLUT / FIL SLUT «ff» «nul»