%- - - - - - - - - - - - - - - -% 25.01.88 VERSION 88 %- KOHζιηυPATOP υCTPOκCTB -% %- ι OβPAβOTώιK πPEPωBAHικ -% %- - - - - - - - - - - - - - - -% LOCALS LDEVS DATA SCRINI=0 %ζμαη χωδαώι λοξζιηυςαγιι DATA XS DATA CLSNUM DATA TITLE=:TITLE EQUALS QDEVS=5 DATA TICKS=:TICKS ,TEXTS=:TEXTS ,ITREQ=:ITREQ DATA INITS=('REGINI,'STLINI,'COOINI,'COIINI,'FLOPPY) DATA READS=('REG:RD,'STL:RD,'COO:RD,'COI:RD,'DX::RD) DATA WRITES=('REG:WR,'STL:WR,'COO:WR,'COI:WR,'DX::WR) DATA ITINFS=('REG:IT,'STL:IT,'COO:IT,'COI:IT,'DX:INF) DATA INFOS=('REGINF,'STLINF,'COOINF,'COIINF,'DX:TIC) DATA :TICKS =0 .0 .0 .0 .0 DATA :ITREQ =0 .0 .0 .0 .0 DATA :TEXTS =REGTXT .STLTXT .COOTXT .COITXT .DX:TXT BYTES REGTXT="&FF78 PULT SWITCHES".LF.0 BYTES STLTXT="&FFF6...&FFFE CPU REGISTERS".LF.0 BYTES COOTXT="&FF74, &FF76 CONSOLE PRINTER".LF.0 BYTES COITXT="&FF70, &FF72 CONSOLE KEYBOARD".LF.0 BYTES DX:TXT="&FE78, &FE7A DX FLOPPY DISK".LF.0 BYTES :TITLE=ER." ***** EMULATOR CONFIGURATION *****".LF.0 %-- ξαώαμψξαρ ιξιγιαμιϊαγιρ -- % χωϊωχαετσρ πςι ϊαπυσλε ι ισπομξεξιι λοναξδω RESET PROGRAM DEVINI(SCRINI) #TICKFL=0 ; #ITWORD='D:BIT'.CCA..AND.#ITWORD IF SCRINI<> THEN DPC TITLE (XCYCLE(XS) 'QDEVS*2' STEP 2 =^X+TICKS.XAE. %πεςεδαεν υστςοκστχυ αδςεσ εηο τιλα =^X+ITREQ % ι ζμαηα ϊαπςοσα πςεςωχαξιρ =.CLS.0(INITS(/):) %χωδαώα σβςοσα ξα υστςοκστχα IF SCRINI<> THEN DPC TEXTS(XS) XCYCLE) IF SCRINI<> THEN DPI ; DPO 'ER' RETURN , %-- ϊαπςοσ ώτεξιρ -- % INP: ^A-αδςεσ ξα ϋιξε % ^E-ζμαη "βακτ" % OUT: ^CARRY- =1, εσμι OK, πςι οϋιβλε =0 % ^A-πςοώτεξξοε σμοχο PROGRAM DEVRD(AREG) (XCYCLE(XS) 'QDEVS' IF AREG.CLS.0(READS():)= THEN RETURN ^A,,0 XCYCLE) RETURN ,,2 %ξε ξακδεξο υστςοκστχο %-- ϊαπςοσ ϊαπισι -- % INP: ^A-αδςεσ ξα ϋιξε % ^E-ζμαη "βακτ" % ^X-ϊαπισωχαενοε σμοχο % OUT: ^CARRY- =1, εσμι OK, πςι οϋιβλε =0 PROGRAM DEVWR(EREG],,XREG) (XCYCLE(XS) 'QDEVS' CLSNUM=WRITES(): IF EREG],,XREG.CLS.CLSNUM= THEN RETURN ,,0 %OK XCYCLE) RETURN ,,2 %ξε ξακδεξο υστςοκστχο %-- γιλμιώεσλικ οπςοσ -- PROGRAM DEVTST() % - οπςαϋιχαεν τιλι - (IF #TICKFL<> %εστψ ϊαπςοσω ? #TICKFL=0 (XCYCLE(XS) 'QDEVS*2' STEP 2 (IF TICKS()<> %ϊAKAϊAH TιK ? TICKS()=-1 (IF =0 %τιλ λοξώιμσρ ? =.CLS.0(INFOS(/):) %ιξζοςνιςυεν υστςοκστχο ELSE #TICKFL=1 %οπρτψ ξαδο οπςοσιτψ IF) IF) XCYCLE) IF) % - οπςαϋιχεν πςεςωχαξιρ - IF #INPSYM>= THEN CALL COIREQ %BBOδ πςοχεςρεν KAφδωκ PAϊ (IF #ITWORD.AND.'D:BIT'<> AND #PSW.AND.&80= (XCYCLE 'QDEVS*2' STEP 2 (IF ITREQ()<> ITREQ()=0 CALL IT ((=.CLS.0(ITINFS(/):))).XAX. IF) XCYCLE) #ITWORD='D:BIT'.CCA..AND.#ITWORD IF) (IF #ITWORD.AND.'T:BIT'<> %T-πPEPωBAHιE #ITWORD='T:BIT'.CCA..AND.#ITWORD CALL IT ,,'BPT' IF) IF #PSW.AND.'TRACE'<> THEN #ITWORD=#ITWORD.IOR.'T:BIT' RETURN ,