% TAB M RFIL=176730; PFIL=176731; DFIL=176732; MFIL=176733; IFIL=176734 RBLK=170000; PBLK=171000; DBLK=172000; MBLK=173000; IBLK=174000 XPBLK=175000 CPLR=176735; PORT=176736; MESAD=176737; SPILL=177000; TTY=176744 TSAVE=176740; QSAVE=176741; ZSAVE=176742; XSAVE=176743; L2INT=176745 26000/ RDROM, STA BLOCK COPY ST DA % KOLLA OM AREAN SKALL RESERVERAS JAZ RDR % NIX LDA (RDRP % RESRV MON 122 RDR, LDT I (RFIL % FIL# LDX (RBLK % BUF JMP LL RDATA, STZ BLOCK COPY ST DA % KOLLA OM AREAN SKALL RESERVERAS JAZ RDA % NIX LDA (RDAP % RESRV MON 122 RDA, LDT I (DFIL % FIL# LDX (DBLK % BUF JMP LL RDPLR, STA BLOCK COPY ST DA JAZ RDP LDA (RDP MON 122 % RESRV RDP, LDT I (PFIL LDX (PBLK LL, LDA BLOCK MON 7 MON 64 EXIT WTROM, STA BLOCK LDA (RDRP MON 123 % RELES LDT I (RFIL LDX (RBLK JMP WW WDATA, STZ BLOCK LDA (RDAP MON 123 % RELES LDT I (DFIL LDX (DBLK JMP WW WTPLR, STA BLOCK LDA (RDPP MON 123 % RELES LDT I (PFIL LDX (PBLK WW, LDA BLOCK MON 10 MON 64 EXIT BLOCK, 0 RLINE, LDT I (MFIL LDX (MBLK JMP LL1 WLINE, LDT I (MFIL LDX (MBLK JMP WW1 RITEM, LDT I (IFIL LDX (IBLK LL1, MON 7 MON 64 EXIT WITEM, LDT I (IFIL LDX (IBLK WW1, MON 10 MON 64 EXIT & REST, LDX (LF MON 32 SAA 0 MON 3 EXIT & RDRP, (11; (0; (0 RDPP, (45; (0; (0 RDAP, (201; (0; (0 PAR, (10; (1 BSTP, 4040; 4047 QM, '$?' RETUR, 0 BUF, 0 DEV, 0 NUM, 0 INBAZ, STT DEV % BAZE SAT 1 STT BUF STZ NUM COPY SL DX STX RETUR X1, LDT (SPILL LDX (QM JPL I (INPUT STX I (XSAVE CALC, JXZ IEND X2, AAX -1 LDT (SPILL LBYT AAA -60 JAN IERR SUB DEV JAP IERR ADD DEV MPY BUF ADD NUM STA NUM LDA BUF MPY DEV STA BUF JXZ IEND JMP X2 IEND, LDA NUM QWEDS, LDX I (XSAVE LDT RETUR COPY ST DP IERR, SAA 0 JMP QWEDS & STR1, 0 STR2, 0 LIKA, 0 CHAR, 0 CMPST, STA STR1 AND (37 STX STR2 STX LIKA SAX 0 LP, LDT STR1 LBYT STA CHAR LDT STR2 LBYT SUB CHAR AND (37 JAZ NXT STZ LIKA JMP L2 NXT, LDT STR1 LBYT AAX 1 SUB (47 JAF LP L2, LDA LIKA EXIT MOVST, STA STR1 STX STR2 SAX 0 LZ, LDT STR1 LBYT LDT STR2 SBYT AAX 1 SUB (47 JAF LZ EXIT & COUNT, 0 ADDPL, LDX (RBLK+325 % ADDERA SPELARE T TILL RUM MIN I (RBLK+261 SAA 40 % MAX 32 SPELARE STA COUNT LOOP1, LDA ,X JAZ OK1 AAX 1 LDA COUNT AAA -1 STA COUNT JAZ DNE JMP LOOP1 OK1, STT ,X DNE, EXIT AD, 0; 0 % EXTRA NOLLA TAS BORT N[R JAG ORKAR... REMPL, STT AD % TA BORT SPELARE T FR]N RUM SAA 40 % MAX 32 SPELARE I ETT RUM STA COUNT LDX (RBLK+325 % PL BUFF LOOP2, LDA ,X % PL # I BUFF AND (377 SUB AD % - CPLR ELLER SPELARE SOM SKA AVL[GSNAS JAF OK2 % INTE SAMMA % TA BORT SPELAREN LDA I (RBLK+261 % ANTAL SPELARE I RUMMET AAA -1 % - 1 STA I (RBLK+261 STZ ,X OK2, AAX 1 LDA COUNT AAA -1 STA COUNT JAF LOOP2 EXIT & LEN, 0 R, 0 S, 0 LDIR, STT LEN STA S STX R LZP, LDX S LDA ,X LDX R STA ,X MIN S MIN R LDA LEN AAA -1 STA LEN JAF LZP EXIT & HBUF, 0; 0; 0; 0 % PARAMETRAR TILL AHAPP, RHAPP: % A - ACTION, T - D1, X - D2 PLAYER,0 % EVENTUELLT D - ROOM (RHAPP) AHAPP, STZ R % ROOM = 0 STA HBUF % ACTION JMP HP1 RHAPP, STA HBUF % ACTION COPY SD DA % ROOM STA R % SPARA ROOM HP1, STT HBUF+2 % PARAMETER 1 STX HBUF+3 % PARAMETER 2 COPY SL DX STX HRET LDA I (CPLR STA HBUF+1 % SKICKANDE SPELAREN SAT 0 JPL I (RDATA % L[S IN MAGIC NUMBER LIST LDA R JAZ AHP % ROOM 0: TILL AHAPP SAT 0 % DETTA [R RHAPP: JPL I (RDROM % L[S IN RBLK LDA I (RBLK+261 % ANTAL SPELARE JAZ HEND % ANTAL SPELARE = 0 (MED CPLR) VANLIGT FEL AAA -1 % DRA FR]N CPLR JAZ HEND % INGEN SPELARE ATT HAPPA TILL STA HANTAL % ANTAL SPELARE LDX (RBLK+325 % PLBUFF I RBLK STX HADDR HP2, LDX HADDR LDA ,X JAZ RHNXT % INGEN SPELARE AND (377 SUB I (CPLR JAZ RHNXT % CPLR LDA ,X SHA ZIN SHR 10 % 0 F\R ATT SLIPPA [NDRA ADDR I C-MAIN, FIXA! JAZ RHN % SOVER - PORT# = 0, MEN SPELARE [NDOCK, JU LDX HADDR LDA ,X % OBEHANDLAT PORT# FR]N PLAYERBUFF SHA ZIN SHR 10 % PORT# AAA -1 % - 1 SHA ZIN 1 % * 2 ADD (DBLK+10 % I DBLK P] R[TT ST[LLE COPY SA DX % X - ADDR TILL SPELARENS MAG NO JPL SEND RHN, LDA HANTAL AAA -1 STA HANTAL RHNXT, MIN HADDR LDA HANTAL JAF HP2 HEND, LDA HRET COPY SA DP & HANTAL,0 HADDR, 0 HRET, 0 MNAD, 0 AHP, LDX (DBLK+10 % START P] MAG NO-LISTAN STX HADDR SAA 40 % 32 PORTAR STA HANTAL HP3, LDX HADDR COPY SX DA SUB (DBLK+10 SHA ZIN SHR 1 AAA 1 SUB I (PORT JAZ AHNXT % MIN PORT LDD ,X JAZ AHNXT % INGET MAG NO LDX HADDR JPL SEND % D[R X PEKAR P] MAGNO AHNXT, MIN HADDR MIN HADDR LDA HANTAL AAA -1 STA HANTAL JAF HP3 % FLER JMP HEND SEND, STX MNAD % ADDRESS TILL MAGIC NUMBER SAT 2 % XFGET SAA 10 % 8 BYTES MON 200 SKP DT GRE JPL I (XERR SAT 7 % XFWRI SAA 10 % NO OF BYTES COPY SA DD LDA (HBUF % HAPP SAX 0 % DISPLACEMENT MON 200 % XMSG CALL SKP DT GRE JPL I (XERR SAT 14 % XFSND LDX MNAD % PEKAREN I MAG NO-LISTAN LDD ,X % AD - MAGNO LDX I (PORT % S[NDANDE PORT MON 200 % SKICKA MESSAGE SKP DT GRE JPL I (XERR EXIT & LF, '$' DRT2, '>Du sl{pper ' DRT3, '.$' RETT, 0 DROPL, COPY SL DX STX RETT STA I (QSAVE % SL[PP SPELARE #A STZ I (PBLK+76 LDA I (CPLR JPL I (WTPLR % SKRIV TILLBAKA SL[PPANDE SPELAREN LDA I (PBLK+74 % RUM # SAT 1 JPL I (RDROM LDT I (QSAVE % SL[PPTA SPELAREN JPL I (ADDPL % L[GG TILL SPELAREN LDA I (PBLK+74 JPL I (WTROM % SKRIV TILLBAKA RUM LDA I (PBLK+74 % RUM # STA I (TSAVE LDA I (QSAVE % L[S IN SL[PPTA SPELAREN SAT 1 JPL I (RDPLR LDA I (TSAVE % NYA RUMMET STA I (PBLK+74 LDA I (QSAVE % SPARA JPL I (WTPLR LDX (DRT2 MON 32 LDX (PBLK MON 32 LDX (DRT3 MON 32 LDA RETT COPY SA DP & PSW, 0 PSWIN, SAA 0 MON 4 SAA -1 MON 3 % ECHOM, NO ECHO SAA 1 LPD, STA PSW SAT 1 MON 1 MON 65 AND (177 AAA -15 JAZ OUTT AAA 15 ORA (340 MPY PSW SHA ROT 2 JMP LPD OUTT, SAA 0 MON 3 LDA PSW LDX (LF MON 32 EXIT & CLINE, LDA I (TTY LDX (TVCLR AAA -4 JAZ CLRS % VISUAL LDX (TTCLR CLRS, MON 32 EXIT TTCLR, 2047 TVCLR, 15513; 23400 & ADDL, RADD ST DA % AD = AD + TX RADD SX DD ADC % A & T - LSW, D & X - MSW EXIT SUBL, SKP IF ST GRE DA RINC DX RSUB ST DA % A = A - T RSUB SX DD % D = D - X EXIT & TAB, [0 TLEN, 0 PRIDE, STA REGA COPY SD DA STA REGD STX TLEN JAZ XS31 % AD ETT TAL MELLAN 0 - 65535 LDF (0 XS2, FAD (65536 LDX REGD AAX -1 STX REGD JXZ XS3 JMP XS2 XS31, LDF (0 XS3, STF TW LDA REGA NLZ+20 FAD TW LDX TLEN PRIFP, STX TLEN % SKRIV UT ETT FP# STF TW % FP# LDX TLEN % BER[KNA F\RSTA I TAB LDF (1 LPPP, AAX -1 JXZ LPP1 FMU (10 JMP LPPP LPP1, STF TAB LDX TLEN JMP XS TW, 0; 0; 0 TW2, 0; 0; 0 REGA, 0 REGD, 0 XS, LDF TW FDV TAB DNZ-20 AAA 60 SAT 1 MON 2 % SKRIV UT SIFFRA MON 65 AAA -60 CT, NLZ+20 FMU TAB STF TW2 LDF TW FSB TW2 STF TW LDF TAB FDV (10 STF TAB AAX -1 JXZ XEND JMP XS XEND, EXIT & T1, '$*- XMSG error code:' T2, '$XROUT fatal error:' HDPAR, (1; (4 XMERR, SKP DT LST EXIT XERR, COPY ST DA LDX (T1 ERR, SAT 12 MON 32 MON 35 MON 0 & IRET, 0 UADD, 502; 10; 177406; 25130; 41517 ZZ, 'VA' XINIT, COPY SL DX STX IRET SAT 12 % XFOPN MON 200 JPL I (XMERR STA I (PORT SAT 2 % XFGET SAA 100 MON 200 JPL I (XMERR STA I (MESAD NAME, SAT 7 % XFWRI SAA 14 COPY SA DD LDA (UADD SAX 0 MON 200 JPL I (XMERR LDT (2000 % XFROU AAT 14 % XFSND LDX I (PORT SAA 0 COPY SA DD MON 200 JPL I (XMERR LOOP, LDT (100015 % XFRCV BONE XFWTF LDA I (PORT MON 200 JPL I (XMERR COPY SD DA % MESAD STA I (MESAD COPY ST DA % MESSAGE TYPE JAZ LOOP % MESSAGE TYPE = 0, ?NO MESSAGE READ, SAT 6 % XFREA COPY SX DD LDA (UBUF SAX 0 MON 200 JPL I (XMERR LDA I (UBUF % BYTE 0 & 1 AND (377 % ERRCODE IF T <> 0 JAZ END % OK AAA -3 % ANOTHER PORT ALREADY HAS THIS NAME JAZ NYNAM % ERROR 3 V[NTAT LDX (T2 % XROUT FATAL ERROR JMP I (ERR NYNAM, MIN ZZ % \KA SISTA BOKSTAVEN I NAMNET JMP NAME % TESTA NYTT NAMN END, SAT 3 % XFREL LDA I (MESAD MON 200 JPL I (XMERR SAT 27 % XFP2M LDA I (PORT MON 200 JPL I (XMERR LDA I (IRET % RET ADD COPY SA DP & COMP, STA I (STR1 STX I (STR2 STZ I (LIKA SAX 0 LOP, LDT I (STR1 LBYT STA I (CHAR AAA -47 JAZ OKCMP LDT I (STR2 LBYT SUB I (CHAR AND (37 JAF IND AAX 1 JMP LOP OKCMP, STT I (LIKA IND, LDA I (LIKA EXIT & TGN1, 'Tvetydigt namn, f|rs|k igen!$' TGN2, 'Namnet finns inte.$' HITT, 0 GRET, 0 GETNA, COPY SL DX STX GRET LDA I (CPLR % L[S IN PBLK F\R ATT H[MTA RUMSNUMRET SAT 0 JPL I (RDPLR LDA I (PBLK+74 % RUMS# SAT 0 JPL I (RDROM % # RDROM LDA I (RBLK+261 % ANTAL SPELARE STA I (ANTAL % SPARA ANTAL SPELARE I RPLBUFF LDX (RBLK+325 % RPLBUFF STX I (ADDR % ADDRESS TILL RPLBUFF STZ HITT % NOLLST[LL ANTAL HITTADE SPELARE SAT 0 JPL I (RDATA % # RDATA GETLP, LDX I (ADDR LDA ,X % SPELAR# AND (377 % SKIPPA PORT# JAZ GNEXT % INGEN SPELARE SUB I (CPLR % KOLLA OM = CPLR JAZ GNXT % = CPLR, INTE HITTA SIG SJ[LV, VA? LDA ,X % H[MTA SPELAR# P] NYTT AND (377 % OCH SKIPPA PORT# MPY (20 ADD (100000 COPY SA DX LDA (SPILL JPL I (COMP % J[MF\R MED ZPEC COMPARE JAZ GNXT % INTE HITTAT NAMN MIN HITT % \KA ANTAL HITTADE NAMN LDX I (ADDR LDA ,X AND (377 STA I (ZSAVE % ZSAVE = SIST HITTADE SPELARE GNXT, LDA I (ANTAL % MINSKA ANTAL S\KTA NAMN KVAR AAA -1 STA I (ANTAL GNEXT, LDA I (ANTAL MIN I (ADDR JAF GETLP LDA HITT JAZ NFIND % INTE HITTAT N]GOT NAMN AAA -1 JAZ GOK % HITTAT NAMN, MEN BARA ETT LDX (TGN1 % TVETYDIGT NAMN GPRUT, STZ I (ZSAVE MON 32 GOK, LDA I (ZSAVE % A = 0, INGET HITTAT NAMN, <> 0 HITTAT SPELAR# LDX GRET COPY SX DP NFIND, LDX (TGN2 % INTE HITTAT N]N NAMN JMP GPRUT & RELES, LDA (RDRP MON 123 LDA (RDPP MON 123 LDA (RDAP MON 123 EXIT & TNOPAR,(0; (0; (1 % PARAMETRAR TILL TNOWAI TNPAR2,(0; (0; (0 WTPAR, (2; (4 % PAUS TV] TIMMAR TEBAK, 0 CPOS, 0 IBUF, 0 PR, 0 CONT, LDX CPOS % S[TT EN ' I SLUTET AV INMATAD RAD LDT IBUF SAA 47 SBYT % EN ' JPL I (RELES % RELEASE DEVICE 128 LDX PR % GAMLA PROMPTEN MON 32 LDX IBUF % SKRIVET HITTILLS MON 32 JMP ILOP1 INPUT, STT IBUF % T=BUFFER ADDRESS, OBS! STX PR % PROMPT ADDRESS COPY SL DX STX TEBAK % RETAD JPL I (RELES % RELES DEVICE ISTUP, SAX 0 STX CPOS % NOLLST[LL ANTALET TECKEN I BUFFEN SAA -1 % ECHOM, NO ECHO MON 3 SAA 0 % BREAK ON ALL CHARS MON 4 MON 143 LDX TNOPAR STT ,X LDX TNPAR2 STT ,X LDA (TNOPAR MON 36 % NOWT IST[LLET F\R TNOWAI... JU ILOP1, LDT (70016 % XFPST BONE XFWAK LDA I (PORT % OPEN XMSG PORT # MON 200 % XMSG CALL COPY ST DA % MESSAGE TYPE JAN IQ1 % XMSG ERROR: PORT EJ \PPNAD (CPLR = 0) JAZ IQ1 % NO MESSAGE % MESSAGE RECIEVED, MOT HKOLL: LDX I (L2INT % ADDRESS I HUVUDPROGRAMMET D[R HAPPEN BEHANDLAS JMP ,X % OCH TILLBAKA TILL CONT IQ1, SAT 1 MON 66 % ISIZE MON 64 JAF IQ2 LDA (WTPAR % PAR TILL TMOUT MON 267 % TMOUT JAZ ILOP1 % DEFINED TIME ELAPSED SAT 1 % OM INTE: KOLLA OM TANGENT TRYCKT IQ2, MON 1 JMP ILOP1 % MESSAGE INTERRUPT (ERR 3, EOF) % TECKEN HAR SKRIVITS: AND (177 % SKIPPA H\G BIT LDT IBUF % SPARA TECKNET OSV.. LDX CPOS SBYT AAA -1 % ^A JAZ IDELT AAA -7 % ^H JAZ IDELT AAA -3 % ^K JAZ IADEL AAA -2 % ^M JAZ NOMOR AAA -162 % DEL JAZ IDELT LBYT AAA -40 JAN INXT LDA CPOS AAA -116 JAZ INXT MIN CPOS LBYT SAT 1 MON 2 MON 65 INXT, JMP I (ILOP1 IADEL, LDA CPOS JAZ INXT LDX (BSTP MON 32 AAA -1 STA CPOS JMP IADEL IDELT, LDX CPOS JXZ INXT AAX -1 STX CPOS LDX (BSTP MON 32 JMP INXT NOMOR, SAA 47 SBYT JPL I (REST LDA (TNPAR2 % TILL TNOWAI MON 307 % TNOWAI LDX CPOS LDA TEBAK COPY SA DP & QQ, 0 RDROM: RDPLR: WTROM: WTPLR: RDATA: WDATA: RLINE: WLINE: RITEM: WITEM: INBAZ: CMPST: MOVST: ADDPL: REMPL: LDIR: AHAPP: RHAPP: LF: DROPL: PSWIN: CLINE: INPUT: CONT: ADDL: SUBL: PRIDE: PRIFP: XINIT: COMP: GETNA: QQ: @