*NAME MACROS *TIME:24.00 *EXPRESS *PAGE:999,LIST *LIBRA:23 *DISC:705/SYSTEM,LCROSS *FILE:LIB,67 *FILE:MEM,30,W *PERSO:67 *TAKE TAPE:67 * *DISC:705/SYSTEM,WORKIN * *FILE:LCROSS - PERSO ACCEMБЛEP+ЗAГPYЗЧИK+ЭMYЛЯTOP * *FILE:ASSEM - OПИCAHИE И TEKCTЫ ACCEMБЛEPA И ЗAГPYЗЧИKA * *FILE:EXMEM - ПAMЯTЬ ДЛЯ MOДYЛEЙ ЗAГPYЗKИ * *FILE:EML - TEKCTЫ ЭMYЛЯTOPA (ЗOHA=1) * *FILE:OS - MAKPOCЫ ( 0 ) И TEKCTЫ O C ( 120 ) *CALL FICMEMOR *CALL LIBINIT:300000,200, O S R E T R O *NO LIST *FTN SUBROUTINE Z DIMENSION M(10) DATA M/10(0)/ CALL EXLIB(300000B) CALL ELNAME(' MACR ') $ CALL ELMOVE(0) CALL ELWRIT(M,10) CALL ELCLOS RETURN END *CALL Z *STAND *CALL ZMACRO:PRINT TEMP1:MACRO ;/ ЗATЫЧKA ДЛЯ ПPOЧИCTKИ CTAPШИX PAЗPЯДOB ;/ CЧAC И ИAOП B ПPEPЫBAHИЯX OT PEЖ.ЭMYЛЯЦИИ XTA REGSCAL JAGE Ь0000END ITA RI AAU @7FFF ATI RI ITA IA AAU @7FFF ATI IA Ь0000END: ENDM TEMP2:MACRO ;/ ЗATЫЧKA ДЛЯ OЖИДAHИЯ KOHЦA ПPИ ЧTEHИИ C ДИCKA ;/ И ПPИ BBOДE C TEPMИHAЛA ЮЗEPA W MSN @400-1 BTA LAST_JOB<<3 +1 ATI J W XTA JOB-1 ASN @400+56 J JMP Ь0000SWC Ь0000SWC:JMP Ь0000END :JAEQ Ь0000END JMP Ь0000END ; UTA 3 :AEU 3 JANE Ь0000END Ь0000WE1: CMON @FFF7F ; CБPOC БBП J VTM 0 Ь0000WEX:W XTA JOB-2 J AAN 64-39 ; ЖДEM KOHЦA J JAEQ Ь0000WEX ; ЧTEHИЯ Ь0000END: ENDM TEMP3:MACRO ;/ BPEMЯHKA : ПPOBEPKA ПPABИЛЬHOCTИ ПPИПИCKИ UTA I VTM 15 :I ATX IFCTIM+@3F0 I VRM * CMON @FFF7F I VTM 513 :I RMOD @400 ASN @400+10 :JAEQ *+3 ATI J J FTA IFCTIM+@3F0 <<6 J SETF IFCTIM+@3F0 <<6 :JAEQ *+1 HLT -2 :I VRM *-4 I VTM @3FD RMOD @7FE ATI IA XTA PCW+@7F JAEQ Ь0000END AOU @3FF WMOD @7FE Ь0000TMP:I QTA TMP<<2 ATI J AAU 3 JANE *+2 I QTA DTMP<<2 ATI J :J MTJ W W MSN @400+4 W HTA TPP<<1 ATI NP ASN @400+16 AEI I JAEQ *+2 :W JMEQ *+1 W HLT :I RMOD @400 ASN @400+10 AEI W JAEQ *+3 :W JMEQ *+2 AEI W JAEQ *+1 I HLT :I VRM Ь0000TMP ITA IA WMOD @7FE Ь0000END: ENDM TEMP4:MACRO ;/ ПPOBEPKA БPEДOBOCTИ HOMEPA ПPOЦECCA / JMLE Ь0000HLT / UTA A-U QPROC JALT Ь0000OKP Ь0000HLT: / HLT -1 Ь0000OKP: ENDM TEMP5:MACRO ;/ ЗAПOMИHAHИE CИTYAЦИИ ПPИ BOЗBPATE B "PЭ" RMOD @1818 ATI NG NG RMOD PPP ASN @403 AAU @3E0 ATI NG NG RMOD CЧAC ATI RI ASN @400+10 AAU @3FF ATI NP NP QTA TMP<<2 ATI J ASN @400+4 ATI PA NP RMOD @400 ATI W PA HTA TPP<<1 ATI PA ENDM NCPU:MACRO ; <<< KAHДИДAT B MИKPOПPOГPAMЫ >>> ;/ ;/ YCTAHOBKA HA CYMMATOP HOMEPA ПPOЦECCOPA = 1,2,... ;/ RMOD @1C1A A+U 1 ENDM ICPU:MACRO ; <<< KAHДИДAT B MИKPOПPOГPAMMЫ >>> ;/ ;/ ПOCЫЛKA ПPEPЫBAHИЯ CPU, HOMEP KOTOPOГO ;/ ЗAДAH COДEPЖИMЫM MOДИФИKATOPA. ;/ KAK ЭTO CДEЛATЬ, EЩE HE ЯCHO. ПPEPЫBAHИE ;/ MOЖET "ПOЙMATЬ" HE TOT ПPOЦECCOP ! ;/ HEOБXOДИMO BПИCATЬ B OБЩYЮ ПAMЯTЬ ДOП.ИHФOP. ;/ / BTA -1 ATX ENDM CPUSH:MACRO WMOD @1C19 ; CБPOC KЭШA ENDM GROUP:MACRO @11:BLOCK PP,PPP ; PEЖИMЫ ,SPRADR ; YK.CTEKA BOЗBP. ,TIMER,CTIME(2) ,ACC(2),PMP(2) ,CЧAC,POП ,PAПY ,GRBOSS ,TAIL ; PEЗEPBHЫЙ ENDM KTOЯ:MACRO ;/ ;/ OПPEДEЛEHИE HOMEPA TEKYЩEГO ПPOЦECCA ;/ RMOD @1819 ; PHП ENDM ГHOM:MACRO ;/ ;/ OПPEДEЛEHИE HOMEPA TEKYЩEЙ ГPYППЫ PEГИCTPOB ;/ RMOD @1818 ; PHГ ENDM YTA64:MACRO UTA AOY ENDM START:MACRO ; <<< MИKPOПPOГPAMMA >>> ;/ ; KOMAHДA "CMEHA ПPOЦECCA". ; NG = HOMEP ГPYППЫ. HOMEP ПPOЦECCA ЗAПИCAH B ; PEГИCTPE GRBOSS ЭTOЙ ГPYППЫ. ECЛИ ИCП.AДPEC=0, TO ; BCE PEГИCTPЫ BOCCTAHABЛИBAЮTCЯ ИЗ ГPYППЫ NG. ; ECЛИ AДPEC ЗAДAH ЯBHO, TO OH ПEPECЫЛAETCЯ B CЧAC ; (ПPOЦECC CTAPTYET C ЗAДAHHOГO AДPECA). B PP ПPИ ; ЭTOM ПPИHYДИTEЛЬHO YCTAHABЛИBAETCЯ OДИH ИЗ ДBYX ; PEЖИMOB: MAT.PEЖИM ПPИ CЧAC > 0 ИЛИ ; ДИCП.PEЖИM ПPИ CЧAC < 0 ;/ P.S. HAДO БЫ EЩE BПИCЫBATЬ HOMEP ПPOЦECCA ;/ B PП(512), ДЛЯ ЧECTHOЙ ПPИПИCKИ ИП. ;/ P.P.S. ЗAПYCKAЮЩИЙ ПPOЦECC PAHEE BЫДABAЛ KOMAHДY ;/ "ЖYЖ.CEMAФOP", ПOЭTOMY ПEPEД BXOДOM B ЗAПY- ;/ CKAEMЫЙ ПPOЦECC HAДO CHЯTЬ CEMAФOP. HO HE ;/ BCEГДA, A TOЛЬKO ECЛИ ЗAПYCKAEMЫЙ HE ПPEPЫ- ;/ BAЛCЯ B KPИT.ИHTEPBAЛE !!! ;/ ENDM BRAN:MACRO ; <<< MИKPOПPOГPAMMA >>> ;/ ; KOMAHДA "BETBЛEHИE" ; ПPOЦECC PAБOTAET HA PEЗEPBHOЙ ГPYППE, ECЛИ OHA ECTЬ, ; ИHAЧE - HA OCHOBHOЙ, ПPEДBAPИTEЛЬHO YПPЯTAB EE B ; CTEK, T.E. TOЧHO TAK ЖE, KAK ECЛИ БЫ ПPOЦECC BЫДAЛ ; ЭKCTPAKOД. ИCП.AДPEC KOMAHДЫ ПEPEДAETCЯ B CЧAC, PP ; YCTAHABЛИBAETCЯ B MAT. ИЛИ ДИCП. PEЖИM B ЗABИCИMO- ; CTИ OT CЧAC. PEГИCTP IA ИЗ 0-Й ГPYППЫ ПEPEДAETCЯ ; B PEГИCTP IA ГPYППЫ NG. ; ENDM BRET:MACRO ; <<< MИKPOПPOГPAMMA >>> ; ; KOMAHДA "BOЗBPAT ИЗ BETBИ" ; ENDM PCW:MACRO QCPU:EQU 2 ; ЧИCЛO ПPOЦECCOPOB ;/ ;/ TAБЛИЦA YПPABЛЯЮЩИX CЛOB ПPOЦECCOB ;/ ================================== ;/ ЗAMEЧAHИE: QPROC ДOЛЖHO БЫTЬ KPATHO 8 ! ;/ QPROC:EQU 128 ; ЧИCЛO ПPOЦECCOB PCW:LCB (QPROC); TAБЛ.ПPOЦECCOB TABPRT:LCB (QPROC);ИX ПPИOPИTETЫ ;/ ;/ PCW(N) - YПPABЛЯЮЩEE CЛOB0 ПPOЦECCA N ;/ 64 48 40 32 1 ;/ :------------------:----:----:-----------: ;/ : П P И З H A K И :NFSW: NS : ADR : ;/ :------------------:----:----:-----------: ;/ ;/ NFSW - HOMEP ФAЙЛA, KYДA YKAЧИBAETCЯ ПPOЦECC. ;/ NS - HOMEP ПPИЧИHЫ HEAKTИBHOCTИ (ECЛИ C0:FF, TO ;/ ЭTO HOMEP CEMAФOPA, K KOEMY CTOИM B OЧEPEДИ) ;/ ADR - ФИЗИЧECKИЙ AДPEC ИП (F=0) ;/ ДЛЯ ПPOЦECCOB-ЮЗEPOB ADR YKAЗЫBAET HA HAЧAЛO ;/ ЛИCTA. Y CИCTEMHЫX ПPOЦECCOB BCE ИП COБPAHЫ ;/ B БЛOKE "IF_DISP". ;/ ;/ K O Д Ы ПPИЧИH HEAKTИBHOCTИ : ;/ 1 - ;/ EVENTS:LCB (QPROC) ; ШKAЛЫ COБЫTИЙ M_EVENTS:LCB (QPROC) ; ИX MACKИ Q_MESS:LCB (QPROC) ; OЧEPEДИ COOБЩ. ; Q3:EQU QPROC>>3 RDQUE_:LCB (Q3) ; OЧEPEДЬ ПPOЦECCOB EX_PRI_:LCB (Q3) ; BHEШH.ПPИOPИTETЫ Q_NORM_:LCB (Q3) ; HOPM.KBAHTЫ NCPU_:LCB (Q3) ; HOMEPA CPU NGROUP_:LCB (Q3) ; HOMEPA ГPYПП RDQUE:EQU RDQUE_<<3 EX_PRI:EQU EX_PRI_<<3 Q_NORM:EQU Q_NORM_<<3 NCPU:EQU NCPU_<<3 NGROUP:EQU NGROUP_<<3 ; ENDM PCBIT:MACRO ; CMЫCЛ БИTOB PCW IF_ABS:EQU 64-64 ; ИП YKAЧAHO IF_FIX:EQU 64-63 ; БЛOK.YKAЧKИ ИП PG_FIX:EQU 64-62 ; БЛOK.YKAЧKИ ЛИCTOB B_BRAN:EQU 64-61 ; БЛOK.BETBЛEHИЯ W_EVEN:EQU 64-60 ; ЖДET COБЫTИЯ W_SWIN:EQU 64-59 ; ЖДET ПOДKAЧKИ W_EXCH:EQU 64-58 ; ЖДET OБMEHA BL_SEL:EQU 64-57 ; БЛOK."SELECT" READY_:EQU 64-56 ; Г O T O B P_SYST:EQU 64-55 ; CИCTEMHЫЙ ПPOЦECC W_AST:EQU 64-54 ; ПPOЦECC HA ПAYЗE W_TERM:EQU 64-53 ; ЖДET TEPM.OБMEHA ENDM SEMAF:MACRO ; BCE, CBЯЗAHHOE C CEMAФOPAMИ ;/ ЧИCЛO CEMAФOPOB - HE БOЛEE 64 ! ; ; HAЗHAЧEHИE CEMAФOPOB : ; ====================== ; 0 - OПEPATOPCKAЯ KOHCOЛЬ ; 1 - ЗAKAЗ ГPYППЫ ФAЙЛOB ; QSEM:EQU 8 ; ЧИCЛO CEMAФOPOB QS3:EQU QSEM>>3 SEMAFOR:LCB SCSEM ; ИX TИПЫ ,SEMBOSS(QS3) ; BЛAДEЛЬЦЫ ,SEMWAIT(QS3) ; OЧEPEДИ ENDM MODIF:MACRO ;/ ;/ ИCПOЛЬЗOBAHИE MOДИФИKATOPOB ПPИ BXOДE ;/ B ПPEPЫBAHИЯ И BXOДE B ЭKCTPAKOДЫ : ;/ ;/ 15. AДPEC HAЧAЛA PAБOЧEГO CTEKA (ДЛИHA=6 CЛOB) ;/ B ИП ПPOЦECCA, ПOДABШEГO ЭKCTPAKOД ;/ ПPИ BXOДE B ПPEPЫBAHИЯ И15 HE ФOPMИPYETCЯ. S:EQU 15 ; CTEK ;/ 14. MAT.AДPEC OПEPAHДA ИЛИ KOMAHДЫ, BЫЗBABШEЙ ;/ ПPEPЫBAHИE. ИЛИ ЖE ИCП.AДPEC ЭKCTPAKOДA. IA:EQU 14 ; ИAOП ;/ 13. MATEM.AДPEC MECTA ПPEPЫBAHИЯ (ЭKCTPAKOДA) RI:EQU 13 ; CЧAC ;/ 12. ФИЗ.AДPEC KOMAHДЫ ИЛИ OПEPAHДA, BЫЗBABШEГO ;/ ПPEPЫBAHИE PA:EQU 12 ; ФИЗ.AДP.ПPEP. ;/ 11. HOMEP ПPEPBAHHOГO ПPOЦECCA ИЛИ HOMEP ПPOЦECCA, ;/ ПOДABШEГO ЭKCTPAKOД. TN:EQU 11 ; PHП ;/ 10. KOПИЯ PEГИCTPA PEЖИMOB : ;/ 1 : БЛOKИPOBKA HOPMAЛИЗAЦИИ БHOP ;/ 2 : БЛOKИPOBKA OKPYГЛEHИЯ БOKP ;/ 3 : ЛOГИЧECKAЯ ГPYППA ГЛ ;/ 4 : ГPYППA YMHOЖEHИЯ ГY ;/ 5 : ГPYППA CЛOЖEHИЯ ГC ;/ 6 : БЛOK.ПPEP.ПPИ ПEPEПOЛHEHИИ БПП ;/ 7 : ИHДИKATOP ПEPEПOЛHEHИЯ ИП ;/ 8 : ИHДИKATOP ПEPEHOCA ИПC ;/ 9 : ИHДИKATOP ЗHAKA ИЗ ;/ 10 : ИHДИKATOP HYЛЯ ИH ;/ 11 : БЛOK.BЫXOДA ЗA ДИAПAЗOH БЭCM-6 ББЧ ;/ 12 : БЛOK.ПPOB.ПEPEП.ПOЛЯ YПPЯT. БППY ;/ 13 : PEЖИM ДИCПETЧEPA PД ;/ 14 : БЛOK.PEAKЦИИ HA ЧYЖOЙ OПEPAHД БЧOП ;/ 15 : БЛOK.ПPOB.TEГA ПPИ ЧTEHИИ БПTЧ ;/ 16 : БЛOK.PEAKЦИИ HA ЧYЖOЙ CYMMATOP БЧC ;/ 17 : БЛOK.ПPOГP.ИHTEPПPETAЦИИ TEГA БПИHT ;/ 18 : БЛOKИPOBKA BHEШHИX ПPEPЫBAHИЙ БBП ;/ 19 : БЛOK.ПPOB.TEГA ПPИ ЗAПИCИ БПTЗ ;/ 20 : PEЖИM ЭMYЛЯЦИИ C B C PЭC ;/ 21 : PEЖИM " Ш A Г " PШ ;/ 22 : ПPИЗHAK OCT.ПO ПPEPЫBAHИЮ ПOП ;/ 23 : БЛOK.ЗAЩ.CTPAHИЦ ПO ЗAПИCИ БЗЗ ;/ 24 : БЛOK.ЗAЩ.CTPAHИЦ ПO OБPAЩEHИЮ БЗO ;/ 25 : PEЖИM OTPИЦATEЛЬHЫX AДPECOB POA ;/ 26 : БЛOK.ПPOB.HOMEPA ПPOЦECCA БПHП ;/ 27 : БЛOKИPOBKA ПPИПИCKИ БП ;/ 28 : ПPИЗHAK ИЗMEHEHИЯ AДPECA ПИA ;/ 29 : ПPИЗHAK ПPABOЙ KOMAHДЫ ППK ;/ 30 : ПPИЗH.KOMAHДЫ ПEPEДAЧИ YПPABЛEHИЯ ППY P1:EQU 10 ; PEГИCTP PEЖИMOB ;/ 9. KOПИЯ PACШИPEHИЯ PEГИCTPA PEЖИMOB : ;/ 1 : ПPИЗHAK KOMAHДЫ ---\ ;/ 2 : PEЖ.ЭMYЛЯЦИИ БЭCM-6 ---\ ;/ 3 : ЗAПPET ЧTEHИЯ OПEPAHДA ---\ ;/ 4 : ЗAПPET ЗAПИCИ OПEPAHДA ---\ T E Г ;/ 5 : ЗAПPET BЫБOPKИ KOMAHДЫ ---/ ;/ 6 : ЗAПPET ПEPEДAЧИ YПPABЛEHИЯ ---/ ;/ 7 : PEЗEPB ---/ ;/ 8 : ПPOГP.ИHTEPПP. TEГA ---/ ;/ 9-16 : HOMEP ПPEДЫДYЩEЙ ГPYППЫ PEГИCTPOB ;/ 17-24 : HOMEP PEЗEPBHOЙ ГPYППЫ PEГИCTPOB P2:EQU 9 ; PPP ;/ 8. HOMEP ГPYППЫ B 6-10 PAЗPЯДAX NG:EQU 8 ; HOMEP ГPYППЫ ;/ 7. KOД OПEPAЦИИ APБИTPA CA:EQU 7 ; KOП APБИTPA CP:EQU 7 ; HOMEP ПPOЦECCOPA ;/ 6-1 : PAБOЧИE PEГИCTPЫ : 1:BLOCK I,J,W,R,NP,RR ENDM RRBIT:MACRO ; --- БИTЫ PEГИCTPA PEЖИMOB --- 11:BLOCK ББЧ,БППY,PД,БЧOП ,БПTЧ,БЧC,БПИHT,БBП,БПTЗ ,PЭC,PШ,ПOП,БЗЗ,БЗO ,POA,БПHП,БП,ПИA,ППK,ППY ENDM ASFT:MACRO / ASN / +@400 ENDM MSFT:MACRO / MSN / +@400 ENDM ASLN:MACRO ;/ ;/ KOMAHДA "OБPATHЫЙ CДBИГ" ;/ ПOKA EЩE HE CДEЛAHA !!! ;/ / ASN / ENDM MULT6:MACRO ;/ BMECTO: A*U 6 ASN @400-1 ; *2 15 ATX ASN @400-1 ; *4 15 A+L ENDM CODE:MACRO ; ; TAБЛИЦЫ ДЛЯ ПEPEKOДИPOBOK CИMBOЛOB: ; CODE:LCB ALTISO(32) ; MKБ ===> ISO ,ISOALT(32) ; ISO ===> MKБ ,GOSTALT(32); GOST ===> MKБ BL:EQU @20 ; ПPOБEЛ CR:EQU @0D ; BOЗBPAT KAPETKИ ETX:EQU @1A ; KOHEЦ TEKCTA LF:EQU @0A ; ПEPEBOД CTPOKИ PLUS:EQU @2B MINUS:EQU @2D MUL:EQU @2A ; "*" DIV:EQU @2F ; "/" COMMA:EQU @2C POIN:EQU @2E ENDM FIRST:MACRO ;/ ;/ N FIRST SCAL - ПOЛYЧEHИE B N HOMEPA ПEPBOЙ "1" ;/ / VTM -1 L VTM -3 :L XTA /+3 JANE *+3 / UTM 64 L VLM *-1 / VTM -1 JMP Ь0000FRT :ANX ATI L / UTC L J+M Ь0000FRT: ENDM CLEAR:MACRO ;/ ;/ N CLEAR SCAL - ГAШEHИE "1" B ШKAЛE SCAL ;/ L VTMF / / UTC L CLRF ENDM IFP:MACRO ;/ ;/ ИHФOPMAЦИOHHOE ПOЛE ПPOЦECCA : ;/ ============================== ;/ 1022 И 1023 MAT.ЛИCTЫ ;/ IF_LIST:EQU @3FE ; ИП=1022 ЛИCT @FF800:BLOCK IFCTIM ; BPEMЯ CЧETA ,IFTIMER ; TAЙMEP+MOД.31 ,ASTECR(0) ;YK.CTEKA BOЗBP. ,ASTEC ; AДPEC ПYПP ,KVANT(0) ; OCTATOK KBAHTA ,NTERM(0) ; HOM.TEPMИHAЛA ,PCNT ; CЧ.CTP. B OЗY ,REGSCAL ; ИHДИBИД.OCOБOCTИ ,TCLOSE ; T.ДEЗAKTИBAЦИИ ,TQUE(6) ; OЧEPEДЬ TAЙMEPOB ,VECTOR(32) ; BEKT.COБЫTИЙ ,TMP(256) ; TAБЛ.MAT.ЛИCTOB ,ASTR(2) ; CTP. BB/BЫB. ,INFERR(0) ; ИHФ.OБ OШИБKAX ,BUF(20) ; БУФEP ВЫВОДА ,BUFIN(20) ; БУФЕР ВВОДА ,FDB(64) ; Ф-ДECKPИПTOPЫ ,PATHNAME(10) ; Ф-ПPEФИKC ,(288) ; РЕЗЕРВ ,RETSTEC(64),SAVREG ;/ ;/ 64 48 32 16 1 ;/ :----------:---------:-----------:------------: ;/ 0: C Ч E T H O E B P E M Я П P O Ц E C C A : ;/ 1: TAЙMEP ПPOЦECCA : PEГИCTP @1F : ;/ 2: YK.CTEKA BOЗBPATOB : KOHEЦ CTEKA YПPЯTЫBAHИЯ: ;/ 3: OCTATOK TEK.KBAHTA : HOM.TEPM. : CTP.B OЗY : ;/ 4: БИTOBAЯ ШKAЛA ИHДИBИДYAЛЬHЫX OCOБEHHOCTEЙ : ;/ 5: ACTPOHOMИЧECKOE BPEMЯ ДEЗAKTИBAЦИИ ПPOЦECCA : ;/ 6: OЧEPEДЬ TAЙMEPOB CЧETHOГO BPEMEHИ (6 CЛOB) : ;/ C: BEKTOP AДPECOB BXOДA ПO COБЫT.(64 ПOЛYCЛOBA): ;/ 2C: TAБЛИЦA MAT.ЛИCTOB (1024 ЧETBEPTYШKИ) : ;/ 12C: ДECKPИПTOPЫ PAЗБOPЩИKA И CБOPЩИKA CTPOK : ;/ 12E: СИСТЕМНЫЕ БYФEPА ВЫХОДНОЙ И ВХОДНОЙ СТРОК : ;/ 156: ДECKPИПTOPЫ ФAЙЛOB 0:63 : ;/ 196: ПOЛHOE ИMЯ TEKYЩEГO ФAЙЛA ИЛИ CПPABOЧHИKA : ;/ 1A0: Р Е З Е Р В : ;/ 2C0: CTEK BOЗBPATOB ДЛЯ KOMAHД: "JMPS" И "RETS" : ;/ 300: CTEK ДЛЯ YПPЯTЫBAHИЯ PEГИCTPOB ПPИ ЭKCTPA- : ;/ : KOДAX И BETBЛEHИЯX. MOЖET ПEPEXOДИTЬ HA : ;/ : CЛEДYЮЩYЮ (1023) CTPAHИЦY. : ;/ :---------------------------------------------: ;/ ;/ IF_DISP - OБЩAЯ CTPAHИЦA ДЛЯ BCEX И П ;/ CИCTEMHЫX ПPOЦECCOB. HAЧAЛO - KAK Y ЮЗEPOB ;/ (CM.BЫШE). ДAЛEE : ;/ :---------------------------------------------: ;/ 1C0: MAГAЗИHЫ ДЛЯ P CPU (ПO 8 CЛOB HA PЫЛO). : ;/ : CTEKИ BOЗBPATOB ДЛЯ P CPU (ПO 8 CЛOB). : ;/ 200: COБCTBEHHO И П ДЛЯ 8 CИCTEMHЫX ПPOЦECCOB : ;/ : P "ЖДY" + "OKHO" + "SWING" + "DRIVER" : ;/ : + "TTANAL" + ... ( ПO 64 CЛOBA HA БPATA) : ;/ :---------------------------------------------: ;/ 0: CЧETHOE BPEMЯ ПPOЦECCA : ;/ 1: TAЙMEP : MOДИФИKATOP @1F : ;/ 2: YK.CTEKA BOЗBPATOB : KOHEЦ CTEKA YПPЯTЫB.: ;/ 3: ПOPT ДЛЯ ПPИEMA ЗAЯBOK OT ДPYГИX ПPOЦECCOB : ;/ 4: CTEK JMPS,RETS-BOЗBPATOB (12 CЛOB) : ;/ 16: CTEK ДЛЯ YПPЯTЫBAHИЯ PEГИCTPOB (3 KBAHTA ПO : ;/ : 16 CЛOB). 11:16 CЛOBA KAЖДOГO KBAHTA ИCПOЛЬ-: ;/ : ЗYЮTCЯ KAK OБЫЧHO B CИCTEME, ПOД MAГAЗИH. : ;/ :---------------------------------------------: ;/ ;/ CTPYKTYPA ЭЛEMEHTA TAБЛИЦЫ MAT.ЛИCTOB: ;/ 16 4 2 1 ;/ :-------------------:----:----: ;/ : N P P : PR : T : ;/ :-------------------:----:----: ;/ PR - COДEPЖИMOE БИTOB ЗAЩИTЫ ДЛЯ MAT.ЛИCTA; ;/ T - TИП MAT.ЛИCTA: 3 - ЛИЧHЫЙ (PRIVATE), ;/ 1 - ЗAГOЛOBOK OБЬEKTA (HEADER), ;/ 2 - БYФEPHЫЙ ЛИCT ФAЙЛA (BUFFER), ;/ 0 - OБЩИЙ (COMMON) ЛИCT. ;/ NPP - ФИЗ.HOMEP ЛИCTA, KYДA ПPИПИCAH MAT.ЛИCT; ;/ ECЛИ ЛИCT YKAЧAH, ПOЛE NPP=0. ;/ ECЛИ ЛИCT HE PAЗPEШEHO ИCПOЛЬЗOBATЬ, BECЬ ЭЛEMEHT ;/ TMP PABEH 0. ЛИCT, EЩE HE БЫBШИЙ B YПOTPEБЛEHИ, ;/ ИMEET PR=1 (ЗAПИCЬ PAЗPEШEHA, OБPAЩEHИE-HET) ;/ BHИMAHИE: ДOCTOBEPHYЮ ИHФOPMAЦИЮ O ПPИПИCKE OБЩИX ;/ ЛИCTOB CЛEДYET БPATЬ ИЗ TMP ДИCПETЧEPA, A HE ЮЗEPA! ;/ ;/ CTPYKTYPA KBAHTA B CTEKE YПPЯTЫBAHИЯ : ;/ ;/ 64 32 24 16 8 1 ;/ :--------------------:-----:-----:-----:------: ;/ 0: И.P.-1 : И.P.-2 : ;/ : ...... : ...... : ;/ 7: И.P.-15 : И.P.-16 : ;/ 8: C Ч A C : P O П : ;/ :--------------------:-----:-----:-----:------: ;/ 9: PEГИCTP PEЖИMOB :XXXXX: ==> : <== : TEГ : ;/ :--------------------:-----:-----:-----:------: ;/ 10: C Y M M A T O P : ;/ 11: PEГИCTP MЛAДШИX PAЗPЯДOB : ;/ :---------------------------------------------: ;/ : 12:15 - PAБOЧИE ЯЧEЙKИ (ДЛЯ ЭKCTPAKOДOB) : ;/ :---------------------------------------------: ;/ ;/ "XXX" - CBOБOДHЫE ПOЛЯ (PEЗEPB). ;/ "==>" И "<==" - HOMEPA CЛEДYЮЩEЙ И ПPEДЫДYЩEЙ ;/ ГPYПП PEГИCTPOB ИЛИ 0, ECЛИ ГPYППЫ HET. B ПOCЛEД- ;/ HEM CЛYЧAE COДEPЖИMOE COOTB.PEГИCTPOB HAXOДИTCЯ B ;/ COCEДHEM KBAHTE CTEKA YПPЯTЫBAHИЯ. ;/ PAПY (KOHEЦ CTEKA YПPЯTЫBAHИЯ) BCEГДA YKAЗЫBAET ;/ HA HAЧAЛO ПEPBOГO CBOБOДHOГO KBAHTA. ;/ HOBЫЙ KBAHT B CTEKE ЗAДEЙCTBYETCЯ B ДBYX CЛYЧAЯX: ;/ A) ПPИ ЭKCTPAKOДAX; Б) ПPИ BETBЛEHИЯX. ;/ B ЭKCTPAKOДAX B KAЧECTBE PAБ.ЯЧEEK MOЖHO ИCПOЛЬ- ;/ ЗOBATЬ HE TOЛЬKO ПOCЛEДHИE 4 CЛOBA KBAHTA, HO И ;/ MECTA XPAHEHИЯ CYMMATOPA И PMP, T.K. OHИ HE BOC- ;/ CTAHABЛИBAЮTCЯ ПPИ BOЗBPATE. ;/ ;/ ЗHAЧEHИЯ PAЗPЯДOB "REGSCAL" : ;/ ----------------------------- ;/ 64 - ПPOЦECC B PEЖИME ЭMYЛЯЦИИ БЭCM-6 ;/ 63 - ЗAKAЗAHA TPACCИPOBKA ЭKCTPAKOДOB ;/ 62 - ПAPAЛЛEЛЬHAЯ BЫДAЧA OT Э064 HA TEPMИHAЛ ;/ 61 - ABTOMATИЧECKAЯ ЗAMEHA "000" HA "075" ;/ 24 - БЛOKИPOBKA TPACCИPOBKИ Э050 ;/ .............. ;/ 1 - БЛOKИPOBKA TPACCИPOBKИ Э077 ;/ ENDM TPP:MACRO ;/ ;/ TAБЛИЦA ФИЗ.CTPAHИЦ ;/ =================== ;/ MAKC.PAЗMEP ПAMЯTИ = 960K, TAK KAK AДPECA ;/ BHEШHИX YCTPOЙCTB BCEГДA ЗAHИMAЮT ПOCЛEДHИE 64K. ;/ B TAБЛИЦE KAЖДЫЙ ЛИCT ПPEДCTABЛEH ПOЛYCЛOBOM : ;/ PAGES:LCB QPAGE ; К-ВО СТРАНИЦ ,BLK_16P ; БЛОК.16-СТР.СЕГМ. ,RES_PAGE ; РЕЗЕРВ. ЛИСТ ,TPP(512) ; ТАБЛ.СТРАНИЦ ;/ ;/ 32 16 15 12 10 8 1 ;/ :--------------:-:-:---:---:----:-------: ;/ : N M P :E:F: : T : PR : NP : ;/ :--------------:-:-:---:---:----:-------: ;/ E - CTPAHИЦA ЗAKPЫTA ПO OБMEHY ;/ F - CTPAHИЦA HE ПOДЛEЖИT YKAЧKE ;/ T - TИП (3-PRIVATE,1-HEADER,2-BUFFER,0-COMMON); ;/ NMP - BИPTYAЛЬHЫЙ HOMEP CTPAHИЦЫ; ;/ PR - ATPИБYTЫ ЗAЩИTЫ ПO OБPAЩEHИЮ И ЗAПИCИ; ;/ NP - HOMEP ПPOЦECCA-BЛAДEЛЬЦA ИЛИ FF ПPИ T=0; ;/ ENDM FATA:MACRO ;/ ФAЙЛOBAЯ TAБЛИЦA FATA:PCB NAMES(2048);ИMEHA ФAЙЛOB ,HNDLSC(4) ,FNPC(32),FPCN(32) ,FBOSS(32);BЛAДEЛЬЦЫ ФАЙЛОВ ,FNUM(32);ЛOГ.HOMEPA Y HИX ,FATR(32);ATPИБYTЫ ФAЙЛOB ,FSTAT(128);CЧ-KИ OБM.И OШ. ,FCOOR(128);TEK.KOOPДИHATЫ ,SFNUM(8);HOMEPA CПEЦФAЙЛOB ,SFATR(8);ИX CTAHД.ATPИБYTЫ ENDM CDEF:MACRO ;/ ;/ OПИCAHИE БЛOKA KOHCTAHT : ;/ ; CONSTANS:SUBP QF ; БЛOK KOHCTAHT : CONSTANS:BLOCK FULWOR ; BCE "1" ,WELL_INT ; ENDM FDEF:MACRO ; ; ИMEHA CИCTEMHЫX ФAЙЛOB : ; (PACШИPEHИEM "**" ПOMEЧEHЫ ЛИЧHЫE ФAЙЛЫ) ; 0 - ДИCПETЧEP, 1 - MOHИT.CИCTEMA ; 2 - ФAЙЛ YKAЧKИ, 3 - ФAЙЛ ЛИCTИHГA ; 4,5 - ФOPTPAHHЫE БИБЛИOTEKИ 01:12 ; MAINFILE:CHARZ "D:\BESM6\RETROS.BIN" :CHARZ "D:\BESM6\MONSYS.9 " :CHARZ "D:\BESM6\MEMORY.** " :CHARZ "D:\BESM6\OUTPUT.** " :CHARZ "D:\BESM6\LIBRAR.12 " :CHARZ "D:\BESM6\LIBRAR.37 " ; ENDM SFATR:MACRO ; ; БAЙTЫ ATPИБYTOB ДЛЯ CИCTEMHЫX ФAЙЛOB: ; SF_ATR:HEX 8685 C2E0 8585 0000 HEX 0 HEX 0 HEX 0 HEX 0 HEX 0 HEX 0 HEX 0102 0304 0403 0201 ; ENDM SETR:MACRO ;/ ;/ KOMAHДЫ ДЛЯ PAБOTЫ C PEГИCTPOM PEЖИMOB (PP). ;/ ============================================ ;/ SETR, CLRR - ПOXOЖИ HA KOMAHДY ,24, ;/ "1" B J-M PAЗPЯДE ИCП.AДPECA YCTAHABЛИBAET/ГACИT ;/ J+10 -Й ПPИЗHAK PP. "0" - HE MEHЯET ПPИЗHAK : ;/ 1 - ББЧ 2 - БППY 3 - PД 4 - БЧOП ;/ 5 - БПTЧ 6 - БЧC 7 - БПИHT 8 - БBП ;/ 9 - БПTЗ 10 - PЭC 11 - PШAГ 12 - ПOП ;/ 13 - БЗЗ 14 - БЗO 15 - POA 16 - БПHП ;/ 17 - БП ;/ CYMMATOP, PMP, ПPИЗHAKИ ГPYПП - HE MEHЯЮTCЯ. ;/ ПPИMEP: SETR @10110 - БЛOK.ПPИПИCKИ И ПPOB.TEГA ;/ CLRR @FFF7F - PAЗPEШ. BHEШH.ПPEPЫBAHИЙ ;/ / SETR / ENDM CLRR:MACRO / CLRR / ENDM SMON:MACRO / SMON / ENDM CMON:MACRO / CMON / ENDM PINT:MACRO ;/ ;/ OPГAHИЗAЦИЯ ПPOГPAMMHO-ИMИTИPOBAHHOГO ПPEPЫBAHИЯ ;/ ЧTO ЭTO TAKOE - CM. П/П "PROGINT". ЗДECЬ OTMETИM ;/ ЧTO ЭTA ШTYKA AHAЛOГИЧHA ЭKCTPAKOДY, ГДE ДOПOЛHИ- ;/ TEЛЬHAЯ ИHФOPMAЦИЯ ЗAДAETCЯ HA CYMMATOPE. ;/ CMON @FFF7F ; CHЯTЬ "БBП" WMOD @1C13 ; ИMИTAЦИЯ ПPEP. ENDM ПPИП:MACRO ; <<< KAHДИДAT B MИKPOПPOГPAMMЫ >>> ;/ ;/ ПPИПИCKA И П ЗAДAHHOГO ПPOЦECCA ;/ K EГO ЗAKOHHOMY MATEM.ЛИCTY. ;/ / XTA PCW AAU @FFC00 ; ПPИПИCKA ИП / AOU @300 ; ПPOЦECCA WMOD @7FE ENDM ПPИП1:MACRO ;/ TO ЖE, ECЛИ PCW YЖE HA CYMMATOPE AAU @FFC00 / AOU @300 ; ПPИПИCKA ИП WMOD @7FE ; ПPOЦECCA ENDM EVENT:MACRO ;* CПИCOK BOЗMOЖHЫX COБЫTИЙ : ;* ========================== ;* 1 - ФATAЛЬHAЯ OШИБKA B ПPOГPAMME ;* 2 - ПPИШЛO COOБЩEHИE OT COCEДHEГO ПPOЦECCA ;* 3 - TAЙMEP ACTPOHOMИЧECKOГO BPEMEHИ ;* 4 - TAЙMEP CЧETHOГO BPEMEHИ ;* 5 - OKOHЧEH OБMEH C BHEШHИM YCTPOЙCTBOM ;* 6 - ПPИШEЛ ЗAПPOC HA YБИEHИE ПPOЦECCA ;* 1:BLOCK E_FAT,E_MESS,E_AST,E_CPT ,E_EXCH,E_STOP ENDM LOG2:MACRO ;/ ;/ ДЛЯ ЗAДAHHOГO HA CYMMATOPE ЦEЛOГO N ;/ BЫЧИCЛЯETCЯ MИHИMAЛЬHOE K, TAKOE, ЧTO ;/ 2**K > N ;/ JAEQ Ь0000ZER ANU U-A 65 Ь0000ZER: ENDM CREL:MACRO ;/ ;/ PAБOTA C ДBYCBЯЗHЫMИ CПИCKAMИ ;/ ============================= ;/ ;/ KAЖДЫЙ ЭЛEMEHT EL CПИCKA ЗAHИMAET 2**K (K=1,2,...) ;/ ПOCЛEДOBATEЛЬHЫX CЛOB ПAMЯTИ. ПPИЧEM ПEPBOE CЛOBO ;/ ИCПOЛЬЗYETCЯ ДЛЯ XPAHEHИЯ ДBYX CCЫЛOK: ;/ 64 32 1 ;/ :---------------------:-----------------------: ;/ : F(EL) : B(EL) : ;/ :---------------------:-----------------------: ;/ F - YKAЗATEЛЬ HA ЭЛEMEHT, ПPEДШECTBYЮЩИЙ EL, ;/ ИЛИ HA ЗAГOЛOBOK H CПИCKA; ;/ B - YKAЗATEЛЬ HA ЭЛEMEHT, CЛEДYЮЩИЙ ЗA EL, ;/ ИЛИ HA ЗAГOЛOBOK H CПИCKA; ;/ CПИCOK "ЗAЦИKЛEH" TAKИM OБPAЗOM, ЧTO F(H) ;/ YKAЗЫBAET HA ПOCЛEДHИЙ ЭЛEMEHT, A B(H) ;/ YKAЗЫBAET HA ПEPBЫЙ ЭЛEMEHT CПИCKA. ECЛИ ;/ CПИCOK ПYCT (COДEPЖИT TOЛЬKO ЗAГOЛOBOK H), ;/ TO F(H) И B(H) YKAЗЫBAЮT HA H. ;/ YKAЗATEЛИ ПOЛYCЛOBHЫE, 32-PAЗPЯДHЫE. CPAЗY ЖE ;/ ДOГOBOPИMCЯ, ЧTO YKAЗATEЛИ HA OБЫЧHЫЙ ЭЛEMEHT ;/ CПИCKA ДOЛЖHЫ БЫTЬ ЧETHЫE, A YKAЗATEЛИ HA ;/ ЗAГOЛOBOK - HEЧETHЫE. ;/ ;/ MAKPOC "/ CREL" CЛYЖИT ДЛЯ ЗABEДEHИЯ ;/ ПEPBOHAЧAЛЬHO ПYCTOГO CПИCKA. PEГИCTP ;/ / COДEPЖИT AДPEC ЗAГOЛOBKA (ПOЛYCЛOBHЫЙ!). ;/ / UTA / ATH / ATH 1 ENDM DELL:MACRO ;/ ;/ MAKPOC "/ DELL" CЛYЖИT ДЛЯ ИCKЛЮЧEHИЯ ИЗ CПИCKA ;/ ЭЛEMEHTA, ЗAДAHHOГO AДPECOM CBOEГO ПEPBOГO ;/ ПOЛYCЛOBA B PEГИCTPE /. ПOPTЯTCЯ : F,B. ;/ ИCKЛЮЧEHИE ИЗ ПYCTOГO CПИCKA HE MEHЯET HИЧEГO. ;/ ЗAMEЧAHИE: "/" HE ДOЛЖHO COBПAДATЬ C F ! ;/ / HTA ATI F / HTS 1 ATI B F STH 1 B ATH ENDM INSL:MACRO ;/ ;/ MAKPOC "/ INSL" CЛYЖИT ДЛЯ BCTABKИ HOBOГO ЭЛ-TA ;/ (ЗAДAETCЯ B PEГИCTPE /) ПOCЛE TEKYЩEГO (PEГ.B) ;/ ПOPTИTCЯ PEГИCTP F. ;/ ITA B / ATH B HTA 1 ATI F / ATH 1 / UTA B ATH 1 F ATH ENDM OБMOЧ:MACRO ;* MAXCHAN:EQU 40 ; KAHAЛЫ MAXJOB:EQU 64 ; ЗAЯBKИ LO:EQU 512 ; PAЗMEP BЫB.БYФ. ;* OБM_OЧ:PCB REFERS(6) ; ПOCT.YKAЗ. ,LAST_JOB ; ПOCЛ.ЗAЯBKA ,PPINF ; CЛOBO ПPEP.ПП ,HEADS(MAXCHAN>>3) ; ГOЛOBЫ ,QUE(MAXJOB>>3) ; CПИCKИ ,JOB(2*MAXJOB) ; ЗAЯBKИ ,CON_IN(16) ;БYФEP BBOДA ,CON_OUT(LO+1);И BЫBOДA ,LAST_OUT(2) ; PAБ.ЯЧ. ,SC_MEM(16) ; ШKAЛA ПAMЯTИ ,BTER(32),BUF71(32) ,DUBJOB(2*MAXJOB) PP_BUF:PCB (1024) ; PP_ADR:PCB (1024-8) ,CLOCK ; ЧACЫ ACTP.BPEMEHИ ,RG1,RG2,ASTIMER ; TAЙMEP ---"--- ,PP_MASK ; MACKA ПYЛЬT-ПPOЦECCOPA ; PP_LIST:EQU @3C0 ; ФИЗ.ЛИCT ДЛЯ ПП BUZY_V:PCB (0) ; HAЧAЛO V-OБЛ. ;* ENDM PSYS:MACRO ; --- HOMEPA CИCTEMHЫX ПPOЦECCOB И ИX ИMEHA --- N_WAIT:EQU QCPU ; ЖДYЩИЙ TECT WAITTEST:SUBP QF ; (ИX QCPU ШTYK!) N_WINDOW:EQU QCPU<<1 ; "OKHO" ;/ NEW_PRT:SUBP QF N_SWING:EQU N_WINDOW+1 ; ПOДKAЧKA SWING:SUBP QF N_DRIV:EQU N_SWING+1 ; ДPAЙBEP ДИCKOB D_DRIVER:SUBP QF N_TTAN:EQU N_DRIV+1 ; "TTANAL" TTANAL:SUBP QF LAST_SYS:EQU N_TTAN ; ПOCЛ.CИCT. ENDM SPORT:MACRO ; ---- BXOДHЫE ПOPTЫ CИCTEMHЫX ПPOЦECCOB ---- IF_DISP:PCB (44),DTMP(256) ,(80*QCPU+39) ,RECALC(QCPU<<6) ; - "OKHO" ,SWPORT(QCPU<<6) ;-ПOДKAЧKA ,DDPORT(QCPU<<6) ;-ДPAЙBEP ENDM VMD:MACRO ; BИPTYAЛЬHAЯ ПAMЯTЬ ДИCПETЧEPA MAIN_SW:SUBP QF ; HAЧAЛO BCEГO DISPAGE0:EQU MAIN_SW>>10 &@3FF S_MEM:EQU MAIN_SW+@40 OSDATE:EQU MAIN_SW+@45 OSFILE:EQU MAIN_SW+@46 OSCSUM:EQU MAIN_SW+@5F NONRSDNT:PCCB (0) ; HEPEЗИДEHTЫ FREE_C:PCCB (0) ; KOHEЦ C-OБЛ. FREE_V:PCB (0) ; KOHEЦ V-OБЛ. LOADLIST:EQU FREE_C ; CПИCOK ЗAГPYЗKИ EXTOLD:EQU LOADLIST+@400 ; ЭK.Б-6 TECTAY:EQU EXTOLD+@800 ; TECT AY/YY ; WMSP - PAБOЧAЯ ПAMЯTЬ CИCTEMHЫX ПPOЦECCOB ; ПO OДHOMY ЛИCTY HA ПPOЦECC. ПO CYЩECTBY, ; ЭTO COГЛAШEHИE O PACПPEДEЛEHИИ PEГ.ПPИПИCKИ. WMSP:EQU TECTAY+@400 ; WSPAG:EQU WMSP>>10 & @3FF BFPOOL:EQU @380 ; БYФEPA ФAЙЛOB ENDM ДД89:MACRO ;/ ;/ CПPABOЧHИK ИHTEPПPETATOPA ДД-89 ;/ LINT:EQU 512 ; ЛИCT ИHTEPПPETATOPA INTERP:EQU LINT<<10 INTERP:BLOCK (@740),T1MT(48),T2MT(48) ,TNAMT(48),I_DNAM(16),I_FATA(32) CAT:EQU 40 ; ЛИCT CПPABOЧHИKA TABS:EQU CAT<<10 ; ШK.S-ФAЙЛOB LT:EQU 511-CAT TABS:BLOCK (1),RETM67,OCT67(3) ,IW70,IW72,WS(15) ,Ю_ЭKCT,Ю_CЧAC,ПEPE74 ,MODEL(8),TABDRU(LT) ENDM CONSTANS:NAME QF ;* ;**** БЛOK KOHCTAHT CИCTEMЫ ******* ;* (MAKPOC "CDEF") ;* CONST WELL_INT:HEX 0000 0180 0000 001E ; CMD ; ПEPBAЯ KOHCTAHTA ЗAПИCAHA KOMAHДOЙ, T.K. ; A.Л.ДABЫДOB HE TEPПИT ПYCTЫX ПPOГPAMM ; :15 REF -1 ; FULWOR 15 REF -1 ; END MAIN_SW:NAME QF ; ;**************************************************** ;* * ;* BXOДЫ B OПEPAЦИOHHYЮ CИCTEMY * ;* И BЫXOДЫ ИЗ HEE * ;* OT ПPEPЫBAHИЙ И ЭKCTPAKOДOB * ;* * ;**************************************************** ;* ;* AДPEC HAЧAЛA ПEPEKЛЮЧATEЛЯ ПPEPЫBAHИЙ ФИKCИPOBAH ;* B COOTBETCTBYЮЩИX MИKPOПPOГPAMMAX. CEЙЧAC OH ;* PABEH FFF8 0800 ( 514-Й MAT.ЛИCT ). ДAЛEE ;* ДAETCЯ PACПPEДEЛEHИE B OTHOCИTEЛЬHЫX AДPECAX : ;* ;* 00:3F - ПPEPЫBAHИЯ 1:64 ;* 40 - ГЛOБAЛЬHЫЙ CEMAФOP ПAMЯTИ ;* 50 - ЭKCTPAKOДЫ HOBOГO PEЖИMA ;* 51 - ЭKCTPAKOДЫ CTAPOГO PEЖИMA (БЭCM-6) ;* 52 - ЭKCTPAKOДЫ И HEKOTOPЫE KOMAHДЫ CBC ;* 53 - ЗAПPEЩEHHЫE KOMAHДЫ (OCH.ФOPMAT) ;* 5F - KOHTPOЛЬHAЯ CYMMA ДИCПETЧEPA ;* 60 - BXOД ПOCЛE OБЩEГO CБPOCA MAШИHЫ ;* ;* ;* K A P T A B И P T Y A Л Ь H O Й П A M Я T И ;* =============================================== ;* ;* AДPEC CTP. HAЗHAЧEHИE ФИЗ. ;* -----:------:--------------------------------: ;* 00000 000 : ПAMЯTЬ БЭCM-ЗAДAЧИ (32K) : ;* 07FFF 01F : : ;* 027 : БЫBШИE ФOPMAЛЬHЫE ЛИCTЫ DD-89 : ;* 028 : KATAЛOГ "БAPAБAHOB" И S-ФAЙЛOB : ;* 029 : ПAMЯTЬ ДЛЯ "MБ" И S-ФAЙЛOB : ;* 7FFFF 1FF : : ;* :--------------------------------: ;* 80000 200 : ПPИHAДЛEЖAЩИЙ ПOЛЬЗOBATEЛЮ : ;* 201 : ЭKЗEMПЛЯP ЭKCTPAKOДOB 50 И 64 : ;* :--------------------------------: ;* 80800 202 : BXOДЫ B CИCTEMY OT ПPEPЫBAHИЙ : 0 ;* : ДAЛEE - PEЗИДEHTHAЯ ЧACTЬ OC : ;* : ( C-OБЛACTЬ ) : ;* : ......... :C-1 ;* :--------------------------------: ;* : БЛOK ИHИЦИAЛИЗAЦИИ CИCTEMЫ :C+V ;* : ДAЛEE - HEPEЗИДEHT OC, CПИCOK : ;* : ЗAГPYЗKИ(1), ЭKCTPAKOДЫ БЭCM(2): ;* : TECTAY(1), ДA MAЛO ЛИ EЩE ЧTO. : ;* : PAБOЧИE ЛИCTЫ CИCT.ПPOЦECCOB : ;* :--------------------------------: ;* E0000 380 : ЛИЧHЫЙ БYФEPHЫЙ ПYЛ ПPOЦECCA : ;* : БYФEPA ДЛЯ PAБOTЫ C ФAЙЛAMИ. : ;* :--------------------------------: ;* F0000 3C0 : ЗOHA CBЯЗИ C ПYЛЬT.ПPOЦECCOPOM :3C0 ;* :--------------------------------: ;* F0C00 3C3 : ПAMЯTЬ ДЛЯ БAЙTOBЫX MACCИBOB : C ;* : ( V-OБЛACTЬ PEЗИДEHTA OC ) :C+V-1 ;* :--------------------------------: ;* FE000 3F8 : ПAMЯTЬ ДЛЯ CYГYБO БИTOBЫX ШKAЛ : ;* : (ИCПOЛЬЗYETCЯ HEPEЗИДEHTAMИ) : ;* :--------------------------------: ;* FF800 3FE : ИHФOPMAЦИOHHOE ПOЛE ПPOЦECCA И : ;* : EГO BOЗMOЖHOE ПPOДOЛЖEHИE : ;* FFFFF 3FF :--------------------------------: ; ; CHEKSUMM:ENTRY QF ; IFP ; ;........ COCTAB PEЗИДEHTA OC : ; ===================== ; CHAЧAЛA OПИCЫBAEM COMMON-БЛOKИ, ЧTOБЫ PAБOЧИE ; ЯЧEЙKИ ПOДПPOГPAMM ПPИXOДИЛИCЬ HA KOHEЦ V-OБЛ. ; COMMON-Ы ГPYЗЯTCЯ HAЧИHAЯ C MAT.AДPECA F0000 И ; B COBOKYПHOCTИ COCTABЛЯЮT V-OБЛACTЬ PEЗИДEHTA. ; ; ЗATEM OПИCЫBAEM ПOДПPOГPAMMЫ, KOTOPЫE COCTABЛЯ- ; ЮT C-OБЛACTЬ. OHИ ГPYЗЯTCЯ C @80800. C METKИ ; "NONRSDNT" HAЧИHAETCЯ HEPEЗИДEHTHAЯ ЧACTЬ. ; ПOCЛEДHИMИ OПИCAHЫ FREE_C - KOHEЦ C-OБЛACTИ ; И FREE_V - KOHEЦ V-OБЛACTИ. ; ЫЫ_ЫЫ:LCB (65000) ; BЫXOД HA F0000 OБMOЧ ; IF_DISP:PCB (1024) INTSTAK:EQU IF_DISP + @1C0 FATA ; PCW SEMAF TPP TIMESTD:LCB (1) ; BPEMЯ ЗAПYCKA ATQUE:LCB (QPROC-QCPU-QCPU) ; OЧ. AB-TAЙMEPOB CODE ; MAINBLCS:SUBP QF ; Я Д P O EXTINTER:SUBP QF ; BHEШ.ПPEP. PROGINT:SUBP QF ; ПPOГP.ПPEP. STEPINT:SUBP QF ; ШAГOBЫE ПPEP. INTERMEM:SUBP QF ; ПPEP: 1:4 INTERTIM:SUBP QF ; ПPEP.ПO TAЙMEPY INT8:SUBP QF INT10:SUBP QF INT11:SUBP QF INT12:SUBP QF INT13:SUBP QF INT15:SUBP QF INT16:SUBP QF INT19:SUBP QF INT20:SUBP QF INT21:SUBP QF INT22:SUBP QF INT23:SUBP QF ERROR:SUBP QF GIVGROUP:SUBP QF OЧEPEДЬ:SUBP QF HEAP:SUBP QF CREVENT:SUBP QF KOHCOЛЬ:SUBP QF TCPQUE:SUBP QF CDEF POPGRUP:SUBP QF SEMDOWN:SUBP QF DATE:SUBP QF DHEX8:SUBP QF WAITTEST:SUBP QF ; "ЖДY" SWING:SUBP QF D_DRIVER:SUBP QF EXTRACOD:SUBP QF ; ЭKCTPAKOДЫ HOBЫE BESMEXTR:SUBP QF ; ЭKCTPAKOДЫ CTAPЫE ERRMACRO:SUBP QF ; ДИAГHOCTИKA RES_END:CCB (0) ; RSDNT2:PCCB (0) STARTER:SUBP QF ; ПYCK ПPOЦECCOPA TTANAL:SUBP QF ; SERVER:SUBP QF NONRSDNT:PCCB (0) ; FREE_C:PCCB (0) ; KOHEЦ C-OБЛ. FREE_V:PCB (0) ; KOHEЦ V-OБЛ. ; GROUP MODIF N:EQU 1 ; HOM.ПPEP. VOL_C:EQU FREE_C-BEGIN>>10 VOL_V:EQU FREE_V-BUZY_V>>10 ; CMD ; ; ; П P E P Ы B A H И Я : ; ********************* ; ; ПPOЦECCOP ПEPEKЛЮЧAETCЯ HA 0-Ю ГPYППY PEГИCTPOB ; ПPEЖHEE COCTOЯHИE ЭTИX PEГИCTPOB HECYЩECTBEHHO. ; YCTAHABЛИBAЮTCЯ: БПHП,БBП,PД,POA,БЗO,БЗЗ,ПOП. ; YCTAHABЛИBAЮTCЯ ЗAHOBO CЛEДYЮЩИE PEГИCTPЫ : ; ; TN - HOMEP ПPEPBAHHOГO ПPOЦECCA ; NG - HOMEP AKTИBHOЙ ГPYППЫ EГO PEГИCTPOB ; P1 - KOПИЯ PEГИCTPA PEЖИMOB ПPEPB.ПPOЦECCA ; P2 - KOПИЯ PACШИPEHИЯ PEГИCTPA PEЖИMOB ; RI - MAT.AДPEC KOMAHДЫ, BЫЗBABШEЙ ПPEPЫBAHИE ; PA - ФИЗ.AДPEC KOMAHДЫ, BЫЗBABШEЙ ПPEPЫBAHИE ; IA - MAT.AДPEC OПEPAHДA, BЫЗBABШEГO ПPEPЫBAHИE ; CA - KOД OПEPAЦИИ APБИTPA ; S - YKAЗATEЛЬ CTEKA B PAБ.ПOЛE ПPEPB.ПPOЦECCA. ; ; HOMEPA И ПPИЧИHЫ ПPEPЫBAHИЙ : ; ============================= ; (*) - ПPEPЫBAHИЯ OTPAБATЫBAЮTCЯ БEЗ BMEШATEЛЬCTBA OC. ; ; 01 (01) - OTCYTCTBYЮЩИЙ БЛOK ПAMЯTИ ; 02 (02) - MHOГOKPATHAЯ OШИБKA ; 03 (03) - TIME-OUT ПPИ OБPAЩEHИИ K OЗY ; 04 (04) - TIME-OUT ПPИ OБPAЩEHИИ K ШИHE ДAHHЫX ; 05 (05) - ПPOГPAMMHOE ПPEPЫBAHИE ; ; 07 (07) - OTCYTCTBYЮЩИЙ AДPEC ПAMЯTИ ; 08 (08) - OTPИЦATEЛЬHЫЙ HOMEP CTPAHИЦЫ Y KOMAHДЫ ; 09 (09) - OTPИЦATEЛЬHЫЙ HOMEP CTPAHИЦЫ Y OПEPAHДA ; 0A (10) - ПPOГPAMMHAЯ ИHTEPПPETAЦИЯ TEГA KOMAHДЫ ; 0B (11) - ПPOГPAMMHAЯ ИHTEPПPETAЦИЯ TEГA OПEPAHДA ; 0C (12) - ЗAЩИTA AДPECA ПPИ ЧTEHИИ ; 0D (13) - KOHTPOЛЬ KOMAHДЫ ; * 0E (14) - MATEMATИЧECKИЙ AДPEC = 0 ; 0F (15) - ЧYЖOЙ PП ПPИ ЧTEHИИ/ЗAПИCИ OПEPAHДA ; 10 (16) - ЧYЖOЙ PП ПPИ BЫБOPKE KOMAHДЫ ; 11 (17) - ЗAЩИTA CTPAHИЦЫ ПO OБPAЩEHИЮ ; 12 (18) - ЗAЩИTA CTPAHИЦЫ ПO ЗAПИCИ ; 13 (19) - ЗAЩИTA BЫБOPKИ KOMAHДЫ ; 14 (20) - ЗAЩИTA ПEPEДAЧИ YПPABЛEHИЯ ; 15 (21) - ЗAЩИTA AДPECA ПPИ ЗAПИCИ ; 16 (22) - ЧYЖOЙ CYMMATOP ; 17 (23) - ЧYЖOЙ OПEPAHД ; * 18 (24) - ЗAПPOC MOДИФИKAЦИИ ПPИOPИTETOB CTPAHИЦ ; * 19 (25) - OCTAHOB ПPИ COBПAДEHИИ AДPECOB (ПП) ; * 1A (26) - TIME-OUT ПPИ БЛOKИPOBKE BHEШ.ПPEPЫBAHИЙ ; 1B (27) - BHEШHИE ПPEPЫBAHИЯ ; * 1C (28) - HALT ПO KOMAHДE ИЛИ ЗAПPOCY OT ПП ; 1D (29) - ШAГOBOE ПPEPЫBAHИE ; * 1E (30) - OБPAЩEHИE БЛOKA CBЯЗИ C ПП ; * 1F (31) - MЛAДШИE PAЗPЯДЫ CB-ЧACOB PABHЫ 0 ; * 20 (32) - MЛAДШИE PAЗPЯДЫ CB-TAЙMEPA PABHЫ 0 ; 21 (33) - ПEPEПOЛHEHИE ; 22 (34) - ПEPEПOЛHEHИE ПOPЯДKA БЭCM-6 ; 23 (35) - ДEЛEHИE HA 0 ; 24 (36) - ПEPEПOЛHEHИE ПOЛЯ YПPЯTЫBAHИЯ ; 25 (37) - HEЗAKOHHЫЙ OПEPAHД ; 26 (38) - BЫБOPKA KOMAHДЫ ПO MAT.AДPECY 0 ; ;MOZY=80800 ; - MAIN_SW ; BEGIN:N VTM 1 JMP INTERMEM :N VTM 2 JMP INTERMEM :N VTM 3 JMP INTERMEM :N VTM 4 JMP INTERMEM :N VTM 5 JMP EXTINTER :HLT 6 ; - PEЗEPB IJP :N VTM 7 JMP ERROR :N VTM 8 JMP INT8 :N VTM 9 JMP ERROR :N VTM 10 JMP INT10 :N VTM 11 JMP INT11 :N VTM 12 JMP INT12 :N VTM 13 JMP INT13 :HLT 14 ; - ПCEBДO IJP :N VTM 15 JMP INT15 :N VTM 16 JMP INT16 :N VTM 17 JMP ERROR :N VTM 18 JMP ERROR :N VTM 19 JMP INT19 :N VTM 20 JMP INT20 :N VTM 21 JMP INT21 :N VTM 22 JMP INT22 :N VTM 23 JMP INT23 :HLT 24 ; - ПCEBДO IJP :HLT 25 ; - ПCEBДO IJP :HLT 26 ; - ПCEBДO IJP :N VTM 27 JMP EXTINTER :HLT 28 IJP :N VTM 29 JMP STEPINT :HLT 30 ; - ПCEBДO IJP :HLT 31 ; - ПCEBДO IJP :HLT 32 ; - ПCEBДO IJP :N VTM 33 JMP ERROR :N VTM 34 JMP ERROR :N VTM 35 JMP ERROR :N VTM 36 JMP ERROR :N VTM 37 JMP ERROR :N VTM 38 JMP ERROR :HLT 39 ; - PEЗEPB :HLT 40 :HLT 41 :HLT 42 :HLT 43 :HLT 44 :HLT 45 :HLT 46 :HLT 47 :HLT 48 :HLT 49 :HLT 50 :HLT 51 :HLT 52 :HLT 53 :HLT 54 :HLT 55 :HLT 56 :HLT 57 :HLT 58 :HLT 59 :HLT 60 :HLT 61 :HLT 62 :HLT 63 :HLT 64 IJP ; S_MEM:ATX ; CEMAФOP ATX ; ПAMЯTИ ; :ATX 0 ATX @A2 ; :ATX 0 ; ДЛИHA PEЗИДEHTA ATX RES_END - BEGIN :ATX 0 ; PAЗMEP C-OБЛ. ATX FREE_C - BEGIN :ATX 0 ; PAЗMEP C+V ATX FREE_V-BUZY_V + FREE_C-BEGIN ; :ATX 0 ; 45 - ДATA OC :ATX 0 ; 46:48 - ПOЛHOE :ATX 0 ; ИMЯ ФAЙЛA :ATX 0 ; C ДИCПETЧEPOM ; :ATX 0 ; 49 - PEЗEPB :ATX 0 ; 4A :ATX 0 ; 4B :ATX 0 ; 4C :ATX 0 ; 4D :ATX 0 ; 4E :ATX 0 ; 4F ; ; ; Э K C T P A K O Д Ы : ; ********************* ; :JMP EXTRACOD ; HOBЫE :JMP BESMEXTR ; CTAPЫE :JMP BESMEXTR ; CBC :JMP BESMEXTR ; ЗAПP.KOM. :ATX ; 54 - PEЗEPB :ATX ; 55 :ATX ; 56 :ATX ; 57 :ATX ; 58 :ATX ; 59 :ATX ; 5A ; CHEKSUMM: UTA 14 VTM FREE_C-BEGIN-1 :14 ARX BEGIN 14 VRM * AEU -1 13 JAEQ HLT -1 13 JMP ; :ATX 0 ; 5F ; - KOHTP.CYMMA ATX 0 ; ; O Б Щ И Й C T A P T C И C T E M Ы : ; ======================================= ; ; ПEPBЫM CTAPTYET ПPOЦECCOP C HOMEPOM N=0. ; OH И ПOДГOTABЛИBAET K PAБOTE BCЮ ПAMЯTЬ. ; OCTAЛЬHЫE ПPOЦECCOPЫ ПPИBOДЯT B ПOPЯДOK ; TOЛЬKO CBOИ COБCTBEHHЫE PEГИCTPЫ. ; ; CTAPTOBЫЙ ПPOЦECC ПOЛYЧAET TOT ЖE HOMEP ; (N+QCPU) И TY ЖE ГPYППY PEГИCTPOB (1-Ю), ; ЧTO И ЖДYЩИЙ TECT HA N-M ПPOЦECCOPE. ; ; :UTA 1<<5 WMOD @1818 ; ГPYППA=1 ATI NG UTA @F1FC ASFT -10 NG WMOD PP SETR PД+БЧOП+БПTЧ+БЧC+БПИHT+БBП+БПTЗ+БЗЗ+БЗO+POA+БПHП CLRR ББЧ+БППY+PШ+ПOП+БП UTA 0 ; TEГ PEЗ-TA NG WMOD PPP RMOD @1C1A ATI CP ; N CPU CP UTA QCPU WMOD @1819 ; ПPOЦECC = N+QCPU NG WMOD GRBOSS ; И B ГPYППY ATI TN UTA PP_LIST<<10 +@3FF WMOD REFERS>>10 & @3FF + @400 UTA -1 ; ПOCЛ."ФИЗ.AДP." WMOD PP_MASK>>10 & @3FF + @400 WMOD @1C15 ; TAЙMEP ASFT 32+3 ; CBOБ.ГPYППЫ: WMOD TAIL ; 3:32 CP MSFT -3 CP UTA INTSTAK ; MAГAЗИH CP MSFT 3 ; ДЛЯ ПPEPЫBAHИЙ WMOD 15 ; A+U QCPU<<3 WMOD SPRADR UTA 14 VTM GRBOSS-TIMER ; MИHИM. :14 WMOD TIMER ; ПOДГOTOBKA 14 VRM * ; 0-Й ГPYППЫ WMOD @1802 ; ГAШ.ГPП CP JMNE ZR ; ; БЛOKИPOBAHИE ПYЛЬT-ПPOЦECCOPA ; ATX PP_MASK ATX HEADS ATX HEADS+1 ATX HEADS+2 ATX HEADS+3 ATX S_MEM ; ; OБHYЛEHИE ГPYПП 2:31, PП, OЗYПC ; ZR:1 VTM 64-@17FF CLRR БBП :1 WMOD @17FF 1 VLM * ; ; ПPИПИCKA PEЗИДEHTA И БЛOKA CBЯЗИ C ПП ; UTA PP_LIST<<10 +@3FF WMOD OБM_OЧ>>10 +@400 A+U @400 WMOD OБM_OЧ>>10 +@401 UTA -1 WMOD OБM_OЧ>>10 +@402 2 VTM 1-VOL_C UTA @2FF ; ЗAПPET ЗAПИCИ :2 WMOD FREE_C>>10 +@3FF A+U @400 2 VLM *-1 2 VTM 1-VOL_V AOU @3FF ; PAЗP.ЗAПИCИ :2 WMOD FREE_V>>10 +@3FF A+U @400 2 VLM *-1 CPUSH 13 VTM STARTER JMP CHEKSUMM ; END STARTER:NAME QF ; PCW NEW_PRT:SUBP QF KOHCOЛЬ:SUBP QF SETQ:SUBP QF ERRMACRO:SUBP QF CHEKSUMM:SUBP QF DATE:SUBP QF TIME:SUBP QF WEEKDAY:SUBP QF VMD OБMOЧ CODE TPP FATA TIMESTD:LCB (1) ; BPEMЯ ЗAПYCKA RES_END:CCB (0) VOL_C:EQU FREE_C-MAIN_SW>>10 VOL_V:EQU FREE_V-BUZY_V>>10 PSYS SPORT IFP GROUP MODIF PCBIT RRBIT ; CONST ; SFATR ; ; TEГИ PEЗYЛЬTATA ДЛЯ CИCT.ПPOЦECCOB: ; TEGS:HEX 0000 0010 2040 0000 ; CTABLES: ; ; ПEPEKOДИPOBOЧHЫE TAБЛИЦЫ : ; ; ПPЯMЫE TAБЛИЦЫ C BXOДOM ПO KOДY ИCXOДHOГO БAЙTA ; HECYЩECTBYЮЩИE CИMBOЛЫ ЗAMEHЯЮTCЯ HA CИMBOЛ "!" ; KOДИPOBKA MKБ COBПAДAET C AЛЬTEPHATИBHЫM ASCII. ; ; I. M K Б ---> I S O ; ================ ; 000-137 (1:1) HEX 0001 0203 0405 0607 HEX 0809 0A0B 0C0D 0E0F HEX 1011 1213 1415 1617 HEX 1819 1A1B 1C1D 1E1F ; HEX 2021 2223 2425 2627 HEX 2829 2A2B 2C2D 2E2F HEX 3031 3233 3435 3637 HEX 3839 3A3B 3C3D 3E3F ; HEX 4041 4243 4445 4647 HEX 4849 4A4B 4C4D 4E4F HEX 5051 5253 5455 5657 HEX 5859 5A5B 5C5D 5E5F ; 140-177 (MAЛЫE ЛAT.) HEX 2741 4243 4445 4647 HEX 4849 4A4B 4C4D 4E4F HEX 5051 5253 5455 5657 HEX 5859 5A5B 3A5D 5E5F ; 200-237 (БOЛЬШИE PYCCKИE) HEX 4162 4267 6445 767A HEX 696A 4B6C 4D48 4F70 HEX 5043 5459 6658 637E HEX 7B7D 7879 787C 6071 ; 240-277 (MAЛЫE PYCCKИE 1) HEX 4162 4267 6445 767A HEX 696A 4B6C 4D48 4F70 HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 ; 300-337 (ПCEBДOГPAФИKA) HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 ; 340-377 (MAЛЫE PYCCKИE 2) HEX 5043 5459 6658 637E HEX 7B7D 7879 787C 6071 HEX 4545 2121 2121 2121 HEX 2121 2121 2121 2121 ; ; II. I S O ---> M K Б ; ================= ; 000-137 (1:1) HEX 0001 0203 0405 0607 HEX 0809 0A0B 0C0D 0E0F HEX 1011 0013 1415 1617 HEX 1819 1A1B 1C1D 1E1F ; HEX 2021 2223 2425 2627 HEX 2829 2A2B 2C2D 2E2F HEX 3031 3233 3435 3637 HEX 3839 3A3B 3C3D 3E3F ; HEX 4041 4243 4445 4647 HEX 4849 4A4B 4C4D 4E4F HEX 5051 5253 5455 5657 HEX 5859 5A5B 5C5D 5E5F ; 140-177 (PYCCKИE-->БOЛЬШИE) HEX 9E41 8196 8445 9483 HEX 5888 894B 8B4D 484F HEX 8F9F 5043 5459 8642 HEX 9C9B 8798 9D99 977F ; 200-377 (OTCYTCTBYЮT) HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 ; HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 ; HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 ; HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 ; ; III. Г O C T ---> M K Б ; ==================== ; 000-037 (ЦИФPЫ И ЗHAKИ) HEX 3031 3233 3435 3637 HEX 3839 2B2D 2F2C 2E20 HEX 4521 2829 2A3D 3B5B HEX 5D2A 2727 233C 3E3A ; 040-077 (PYCCKИE И "D") HEX 4181 4283 8445 8687 HEX 8889 4B8B 4D48 4F8F HEX 5043 5459 9458 9697 HEX 9899 9B9C 9D9E 9F44 ; 100-137 (ЛATЫHЬ И ЗHAKИ) HEX 4647 494A 4C4E 5152 HEX 5355 5657 5A5C 7B7D HEX 225E 29BF 2BDB 2524 HEX B37E 5F21 229A 4027 ; 140-377 (OTCYTCTBYЮЩИE) HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 ; HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 ; HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 ; HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 ; HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 HEX 2121 2121 2121 2121 ; CMD ; ;MOZY=81400 ; - STARTER ; ; OБHYЛEHИE ПAMЯTИ. ЗAOДHO BЫЯCHИM EE PAЗMEP. ; STARTER:CP JMNE READYMEM UTA ATX S_MEM ATX OSCSUM XTA NEWCSUM ; ДЛЯ CYMMИPO- UTY 9 ; BAHИЯ TOЛЬKO TTX CHEKSUMM ; PEЗИДEHTA CPUSH NEWCSUM:UTA 14 VTM RES_END-MAIN_SW-1 :14 ARX MAIN_SW 14 VRM * AEU -1 ATX OSCSUM ; ; HNDLSC1 - ШKAЛA "UN", OCTABШИXCЯ ; OTKPЫTЫMИ ПPИ ПEPEBЫЗOBE CИCTEMЫ. ; 1 VTM VOL_C - 1023+64 2 VTM 3 :XTA SFATR+7 AEX SF_ATR+7 :JANE *+1 ; 1-Й BЫЗOB 2 UTC HNDLSC :XTA 2 ATX HNDLSC1 :2 VRM *-3 2 VTMF TEMPO ; BPEM.ШKAЛA 2 UTM VOL_C UTA NOMEM ; ПEPEXBAT WMOD PAПY ; ПPEP: 1-4 UTA -1 ATX TEMPO LZPAG:1 UTA 1023-64 ASFT -10 AOU @3FF WMOD @401 ; 1 MAT.ЛИCT UTA 14 VTM 1023 :14 ATX 1024 14 VRM * WMOD @401 2 SETF ; ЛИCT ECTЬ ELZPAG:2 UTM 1 1 VLM LZPAG UTA WMOD @401 WMOD PAПY ; ; ИHИЦИAЛИЗAЦИЯ БЛOKA CBЯЗИ C П П : ; 2 VTM 1023 :2 ATX REFERS 2 VRM * 2 VTM 2-MAXJOB 15 VTM REFERS :A+U 1 2 ATB QUE<<3 +MAXJOB-2 2 VLM *-1 UTA HEADS-REFERS UTS QUE-REFERS UTS JOB-REFERS UTS CON_IN-REFERS UTS CON_OUT-REFERS UTS LO UTS ATX ASTIMER ; ; ШKAЛY ПAMЯTИ - HA CBOE MECTO ; 1 VTM 15 MOVSCM:1 XTA TEMPO 1 ATX SC_MEM :JAEQ *+3 2 JMNE *+2 1 MTJ 2 2 MSFT -6 :UTA 1 ATX TEMPO :1 VRM MOVSCM 2 UTA 64 ATX QPAGE ; ЧИСЛО ЛИСТОВ 2 UTA 63 ATX RES_PAGE ; РЕЗЕРВ JMP ITPR ; NOMEM:2 CLRF ; ЛИCTA HET ! UTA NOMEM WMOD PAПY ; ПOДЗAKAЗ JMP ELZPAG ; ; HAЧAЛЬHAЯ TAБЛИЦA ПPИOPИTETOB ПPOЦECCOB : ; (Y ПEPBЫX QCPU ПPOЦECCOB OHИ HYЛEBЫE !) ; ITPR:UTA 1 VTM QPROC-QCPU-1 :A+U @10000 1 ATX TABPRT+QCPU 1 VRM *-1 1 VTM LAST_SYS-N_WINDOW :1 XTA TABPRT+N_WINDOW AON 64-51 ; KЛACC = 4 1 ATX TABPRT+N_WINDOW 1 VRM *-1 ; ; ПPИBЯЗKA ЖДYЩИX TECTOB K ПPOЦECCOPAM : ; 1 VTM QCPU-1 :1 UTA 1 1 ATB NCPU+N_WAIT UTA 1 1 ATB NGROUP+N_WAIT 1 VRM *-2 ; ; ИHИЦИAЛИЗAЦИЯ YПPABЛЯЮЩИX CЛOB : ; 15 VTM PCW 1 VTM QCPU-1 NTA IF_ABS :15 ATX ; ПPOЦECCOPЫ 1 VRM * RMOD IF_DISP>>10 + @400 AAU @7FC00 A+U @200 AON P_SYST AON B_BRAN 1 VTM LAST_SYS-N_WAIT :15 ATX A+U 64 1 VRM *-1 ; ; ИHИЦИAЛИЗAЦИЯ PAБOЧИX OБЛACTEЙ ИП ДИCПETЧEPA ; 1 VTM LAST_SYS-N_WAIT IFINIT:1 XTA PCW+QCPU AAU @3FF A+U IF_DISP ATI 2 UTA -1 2 ATX 1 ; TAЙMEP 2 UTA 32 AAX =H0000 0000 FFFF FFFF 2 ATX 2 ; PAПY 2 UTA 4 ASFT -32 2 AOX 2 2 ATX 2 ; SPRADR 2 UTA 32-6 ASFT -32 2 ATX 16+7 ; И15 NTA 32-PД AON 32-POA 14 VTMB TEGS 1 J+M 14 14 AOB ; + TEГ PEЗ-TA 2 ATX 16+9 ; PP,PPP 1 XTA ADR 2 ATX 16+8 ; CЧAC 1 VRM IFINIT JMP IFINIT1 ; ADR:15 REF WAITTEST :15 REF WAITTEST ; ECЛИ QCPU>2 - ДOБABИTЬ ЗДECЬ ЖДYЩИX TECTOB !!! :15 REF NEW_PRT :15 REF SWING :15 REF D_DRIVER :15 REF TTANAL ; A2S:15 REF RETSTEC 15 REF SAVREG+16 ; ; ; ИHИЦИAЛИЗAЦИЯ OБЩEЙ ЧACTИ IF_DISP: ; IFINIT1: TN ПPИП XTA =HFFFF FFFF 0000 0000 ATX IFTIMER XTA A2S ATX ASTEC XTA =H7FFF FFFF 0000 0000 ATX KVANT UTA ERRMACRO 1 VTM 63 :1 ATH VECTOR<<1 1 VRM * UTA @FFF00 1 VTM -5 :1 ATX TQUE+5 A+U 1 1 VLM *-1 ; ; HAЧ.COCT. TMP,TPP COOTBETCTBYЮT ПPИПИCKE ; 1 VTM @3FF INITMP:1 RMOD @400 ASFT 8 ASFT -2 1 ATQ DTMP<<2 ASFT 4 ATI W A-L QPAGE JAGE EINITMP 1 RMOD @400 AAU @300 ATI NP ITA 1 ASFT -16 NP AOU @FF W ATH TPP<<1 EINITMP:1 VRM INITMP ; HEPEЗИДEHTЫ + LOADLIST + ЭKCTPAKOДЫ БЭCM + TECT UTA 8 NP VTM NONRSDNT>>10 & @3FF 1 VTM WMSP-NONRSDNT>>10 -1 :NP ATQ DTMP<<2 NP UTM 1 1 VRM *-1 ; PAБOЧИE ЛИCTЫ CИCTEMHЫX ПPOЦECCOB UTA @F ; OHИ ЛИЧHЫE! 1 VTM LAST_SYS NP VTM WSPAG :NP ATQ DTMP<<2 NP UTM 1 1 VRM *-1 ; ; HAЧAЛЬHOE COCTOЯHИE OЧEPEДИ ГOTOBЫX ПPOЦECCOB ; UTA N_WAIT ATB RDQUE NP VTM N_SWING+1 RDQ0:NP UTM -1 NP XTA PCW AON READY_ NP ATX PCW I VTM RR VTM RDQ0 ITA NP AEU N_WAIT JANE SETQ ; ; ПEPEПИCЬ TAБЛИЦ KOДИPOBOK : ; 1 VTM 95 :1 XTA CTABLES UTY 8 ; ЗAПPET ЗAПИCИ 1 ATX CODE 1 VRM *-1 ; ; ATPИБYTЫ CПEЦ-ФAЙЛOB : ; 1 VTM 7 :1 XTA SF_ATR 1 ATX SFATR 1 VRM *-1 ; ; GET DATE AND TIME FROM IBM/PC ; RETURN IBM/PC HANDLES 6-11 : ; 1 VTMF HNDLSC1 XTA =H0102 0000 0000 0000 AOU TEMPO-MAIN_SW ATX JOB XTA =H0084 0006 0000 0000 ATX JOB+1 UTA ATX PP_MASK ATB QUE<<3 +2 XTA =Z"CLOCK$" ATX TEMPO XTA MAIN_SW+@1A ATX OLDVECT XTA NEWVECT UTY 9 TTX MAIN_SW+@1A CPUSH UTA 1 13 VJM TODIS UTA 3 13 VJM TODIS BTA JOB<<3 +2 A+I 1 ; ЭTOT ФAЙЛ ATI 13 ; TOЖE OTMETИM 13 SETF ; B HNDLSC ! 13 VTMB TEMPO 13 BTA 4 ATI 3 ; CEKYHДЫ 13 BTA 1 ASFT -8 13 AOB ; ДEHЬ A+U 18993 A*U 24 ATI 14 13 BTA 3 ; ЧACЫ A+I 14 A*U 60 ATI 14 13 BTA 2 ; MИHYTЫ A+I 14 A*U 60 A+I 3 A*L =1000000 ATX TIMESTD AEU -1 ; ПOЛH.ВРЕМЯ ATX CLOCK ; (B MKCEK.) UTA ATX TEMPO ; 2 VTM 255 13 VTM ERHAND RHAND:2 UTC 1 FTA 13 JAEQ 2 UTC 1 CLRF ; - ГAШEHИE ITA 2 ATB JOB<<3 +2 UTA ; TODIS:ATB JOB<<3 +8 ; KOП UTA @80 ATB JOB<<3 +3 ; READY UTA WMOD @1802 14 VTM UTA 1 ATB HEADS<<3 +2 :14 XTA JOB 14 AAN 64-39 14 JAEQ *-1 14 UTA 14 ATB HEADS<<3 +2 14 WMOD @1802 14 ATX PPINF 13 JMP OLDVECT:ATX NEWVECT:UTA JMP *+1 :WMOD @1802 CPUSH IJP ; ERHAND:2 VRM RHAND XTA OLDVECT UTY 9 TTX MAIN_SW+@1A UTA 3 ATB QUE<<3 +2 UTA @E ATX PP_MASK CPUSH ; ; ; CTPYKTYPA CПИCKOB ПPИOPИTETOB ФИЗ.ЛИCTOB: ; ; 1000:13FF 1400:17FF ; OЗYПC-0 OЗYПC-1 ; :-----------:-----------: ; 0 : MINP( L ) : MAXP( F ) : ; :-----------:-----------: ; 1 : NC ( 0 ) : 0 : ; :-----------:-----------: ; : 0 ....... 0 : ; :-----------:-----------: ; F : 0 : F+1 : ; :-----------:-----------: ; F+1: F : F+2 : ; :-----------:-----------: ; F+2: F+1 : F+3 : ; :-----------:----------- ; ........... ; :-----------:-----------: ; L-1: L-2 : L : ; :-----------:-----------: ; L : L-1 : 0 : ; :-----------:-----------: ; ЗДECЬ F - HOMEP ПEPBOГO CBOБOДHOГO ФИЗ.ЛИCTA, ; L - HOMEP ПOCЛEДHEГO CYЩECTBYЮЩEГO ФИЗ.ЛИCTA ; ПPOЧИE CЛOBA OЗYПC ЗAПOЛHEHЫ HYЛЯMИ. ; ; ; ИHИЦИAЛИЗAЦИЯ TAБЛИЦ ФИЗ.ПAMЯTИ ; ЛИCTЫ, ЗAHЯTЫE PEЗИДEHTOM, ИЗЫMAЮTCЯ ИЗ ШKAЛЫ ; READYMEM: 14 VTMF SC_MEM 1 VTM NONRSDNT-MAIN_SW>>10 -1 :1 UTC 14 CLRF 1 VRM *-1 1 VTM VOL_V -1 :1 UTC VOL_C 14 CLRF 1 VRM *-1 14 CLRF PP_LIST 14 CLRF PP_LIST+1 WTC QPAGE 5 VTM -1 2 VTM 3 VTM ; LPAG:14 FTA JANE FREE 3 HTA TPP<<1 :AON 64-15 ; - ФИKCAЦИЯ CP JMEQ *+3 ; БЫЛ "0" 3 AEH TPP<<1 JAEQ ELPAG ; HE ИЗM. 3 HTA TPP<<1 HLT 1 ; :3 ATH TPP<<1 JMP ELPAG ; FREE:ITA 1 ASFT -10 2 WMOD @1000 ; LOW UTA 3 ATH TPP<<1 ITA 3 ASFT -10 2 WMOD @1400 ; HIGH 2 MTJ 1 3 MTJ 2 ELPAG:3 UTM 1 14 UTM 1 5 VRM LPAG ITA 1 ASFT -10 2 WMOD @1000 ITA 2 ASFT -10 WMOD @1000 ; MINP UTA 2 WMOD @1400 WMOD PAПY ; CPUSH TN ПPИП 15 VTM BUF XTA ="'@0A''@0D'OC ДYБ" XTS ="HA OT " XTS OSDATE ITS CP ASFT -16 AOX =". ЦП-0. " XTS ="CEГOДHЯ " UTS -1 RR VJM WEEKDAY UTS -1 RR VJM DATE UTS -1 RR VJM TIME ASFT 8 AAU @F0000 AOX =" '0''0''0''0''0''@0A''@0D'" UTS 15 ATX I VTM BUF J VTM RR VJM KOHCOЛЬ UTA 6 ; YXOД B "ЖДY" PINT ; TEMPO:ATX ; 16*24 = 1024 ATX :ATX ATX :ATX ATX :ATX ATX :ATX ATX :ATX ATX :ATX ATX :ATX ATX :ATX ; 9 ATX :ATX ATX :ATX ATX :ATX ATX :ATX ATX :ATX ATX :ATX ATX :ATX ATX :ATX ATX HNDLSC1:ATX ; 4*64 = 256 ATX :ATX ATX :ATX ATX :ATX ATX ; END INTERTAG:NAME QF ; TEГOBCKИE ПPEPЫBAHИЯ INT10:ENTRY QF INT11:ENTRY QF INT12:ENTRY QF INT13:ENTRY QF INT19:ENTRY QF INT20:ENTRY QF INT21:ENTRY QF INT22:ENTRY QF INT23:ENTRY QF ERROR:SUBP QF ; GROUP MODIF ; IFP ДД89 ; CMD ; ; ПPEPЫBAHИЯ ПPИ ЗAПИCИ B OЗY: ; ============================ ; ; 21 - ЗAЩИTA AДPECA ПPИ ЗAПИCИ. ; BOЗHИKAET ПPИ "0" БПTЗ, ECЛИ ПPИ ЗAПИCИ B ; ПAMЯTЬ CЛOBO ПO ИCП.AДPECY COДEPЖИT "1" B ; 68 PAЗPЯДE TEГA. (CИГHAЛ PWRI ШИHЫ ДAHHЫX). ; ;MOZY=809C2 ; - INTERTAG ; INT21:W VTM 1 JMP PROTECT ; ; ПPEPЫBAHИЯ ПO TEГY: ; =================== ; ; 10 - ПPOГPAMMHAЯ ИHTEPПPETAЦИЯ TEГA KOMAHДЫ. ; ПPOИCXOДИT BO BPEMЯ BЫБOPKИ KOMAHДHOГO CЛOBA ; ИЗ OЗY ПPИ "0" БПИHT И "1" 72 PAЗPЯДA TEГA. ; INT10:RI MTJ IA ; CЧAC => ИAOП JMP ERROR ; ; 11 - ПPOГPAMMHAЯ ИHTEPПPETAЦИЯ TEГA OПEPAHДA. ; ПPOИCXOДИT BO BPEMЯ BЫБOPKИ OПEPAHДA ИЗ OЗY ; ПPИ "0" БПИHT И "1" 72 PAЗPЯДA TEГA OПEPAHДA INT11:JMP ERROR ; ; 22 - ЧYЖOЙ CYMMATOP. BOЗHИKAET B OTCYTCTBИE БЧC ; ПPИ HECOBПAДEHИИ 66 БИTA TEГA TEKYЩEГO KOMA- ; HДHOГO CЛOBA C ПPИЗHAKOM "PЭ" B PP. ; INT22:JMP ERROR ; ; 23 - ЧYЖOЙ OПEPAHД. BOЗHИKAET B OTCYTCTBИE БЧOП ; ПPИ HECOBПAДEHИИ 66 БИTA TEГA OПEPAHДA C ; ПPИЗHAKOM "PЭ" B PP. ; INT23:JMP ERROR ; ; 12 - ЗAЩИTA AДPECA ПPИ ЧTEHИИ. ; INT12:W VTM 2 JMP PROTECT ; ; 13 - KOHTPOЛЬ KOMAHДЫ. ; INT13:JMP ERROR ; ; 19 - ЗAЩИTA BЫБOPKИ KOMAHДЫ. ; INT19:W VTM 0 RI MTJ IA ; CЧAC ===> ИAOП ; PROTECT:XTA REGSCAL JAGE ERROR AAN 64-61 JAEQ CHM67 W JMNE CHM67 ; ; ДЛЯ ПPOГPAMM, ЗAHИMAЮЩИXCЯ CAMOMOДИФИKAЦИEЙ ; ДEЛAETCЯ ЗAMEHA KOMAHДЫ "000" HA "075". ; SETR БЗO+БЗЗ+БПTЗ+БПTЧ+БПИHT IA XTA AAX =H0000 0000 BF00 0000 :JANE *+2 IA XTA AOX =H0000 0000 3D00 0000 IA ATX :IA XTA AAX =H00BF 0000 0000 0000 :JANE *+1 UTC =H003D 0000 0000 0000 :XTA IA AOX UTY 3 IA TTX CPUSH IJP ; ; ПPOЦECC БЫЛ B "PЭ". ПPOБA HA ЭKCTPAKOД-67 ; CHM67: ITA IA ; TKHYЛИCЬ B W AEX OCT67 ; ЗAЩИTY Э67 JANE ERROR ; - HET XTA RETM67 JAEQ ERROR JAGT NOPR67 ; ЗДECЬ - OPГAHИЗAЦИЯ ПEЧATИ HLT @67 ; NOPR67:XTA RETM67 NG WMOD CЧAC NG XTA PP AAX =H0000 0000 E7FF FFFF NG WMOD PP ; ПИA,ППK = 0 IJP ; ; 20 - ЗAЩИTA ПEPEДAЧИ YПPABЛEHИЯ. ; INT20:JMP ERROR ; END INTERMEM:NAME QF ; CБOИ ПAMЯTИ ; ERROR:SUBP QF GROUP MODIF CMD ; ; ПPEPЫBAHИЯ ПPИ OБPAЩEHИИ K OЗY И ШИHE ДAHHЫX ; ============================================ ; ; 2 - MHOГOKPATHAЯ OШИБKA. (CИГHAЛ DERI ШИHЫ). ; 1 - OTCYTCTBYЮЩИЙ БЛOK ПAMЯTИ. (CИГHAЛ AMBI). ; 3 - "TIME-OUT" ПPИ OБPAЩEHИИ K OЗY. ; BЫPAБATЫBAETCЯ ПPИ OTCYTCTBИИ OTBETA OЗY ; B TEЧEHИE 100 MИKPOCEKYHД. ; 4 - "TIME-OUT" ПPИ OБPAЩEHИИ K ШИHE. ; BЫPAБATЫBAETCЯ APБИTPOM ПPИ OTCYTCTBИИ OTBE- ; TA OT ШИHЫ B TEЧEHИE 100 MИKPOCEKYHД. ; ; PEГИCTP "PAПY" 0-Й ГPYППЫ ИCПOЛЬЗYETCЯ KAK AДPEC ; ПEPEXBATA ПPEPЫBAHИЙ ПO OШИБKAM ПAMЯTИ. ; ;MOZY=80981 ; - INTERMEM ; :RMOD PAПY JAEQ ERROR NG WMOD CЧAC ; AДP.ПEPEXBATA NG RMOD PP AAX =H0000 0000 C7FF FFFF NG WMOD PP ; ГAШ. ПИA,ППK,ППY UTA ; OTMEHA CЛEД. WMOD PAПY ; ПEPEXBATA IJP ; END INTERPAG:NAME QF ; CTPAHИЧHЫE ПPEPЫBAHИЯ FIX_PAGE:ENTRY QF ; ФИKCAЦИЯ ЛИCTA GIV_PAGE:ENTRY QF ; ЗAЯBKA K SWING INT8:ENTRY QF INT15:ENTRY QF INT16:ENTRY QF ERROR:ENTRY QF ; PCW MAINBLCS:SUBP QF ACTIVATE:SUBP QF DESACTIV:SUBP QF RETURN:SUBP QF BRANCH1:SUBP QF KOHCOЛЬ:SUBP QF DHEX8:SUBP QF IFP TPP PCBIT PSYS SPORT GROUP EVENT MODIF ; CMD ; ; ; ПPEPЫBAHИЯ ПO ПPИПИCKE: ; ======================= ; ; 15 - ЧYЖOЙ PEГИCTP ПPИПИCKИ ПPИ ЧTEHИИ/ЗAПИCИ. ; BOЗHИKAET ПPИ HECOBПAДEHИИ ПOЛЯ HOMEPA ; ПPOЦECCA B PEГИCTPE ПPИПИCKИ C HOMEPOM ; TEKYЩEГO ПPOЦECCA. (ПPИ ПHП=255 CTPAHИЦA ; ДOCTYПHA BCEM ПPOЦECCAM). ; ; 16 - ЧYЖOЙ PEГИCTP ПPИПИCKИ ПPИ BЫБOPKE KOMAHД. ; AHAЛOГИЧHO ПPEДЫДYЩEMY. ; ;MOZY=80988 ; - INTERPAG ; INT16:RI MTJ IA ; CЧAC => ИAOП INT15: SMON БBП ITA IA ASFT 10 AAU @3FF ATI NP ; MAT.ЛИCT NP QTA TMP<<2 JAEQ ERROR ; ЧYЖOЙ ЛИCT ATI W W MSFT 2 AAU 3 JANE PRIVATE ; ДOCTOBEPHAЯ ИHФOPMAЦИЯ O ПPИПИCKE ; OБЩИX CTPAHИЦ XPAHИTCЯ B DTMP !!! NP QTA DTMP<<2 JAEQ ERROR ; ЧYЖOЙ ЛИCT ASFT 2 AEI W ; ATPИБYTЫ AAU @FFFFC ; ЗAЩИTЫ AEI W ; БEPYTCЯ ATI W ; ИЗ TMP !!! ; PRIVATE:W MTJ J J MSFT 2 J JMEQ GIV_PAGE ; ; ЛИCT B ПAMЯTИ. ЛИБO OH ЗAKPЫT ПO OБMEHY, ; ЛИБO ПPOCTO Y HAC ЗAБИPAЛИ PEГИCTP ПPИПИCKИ. ; J HTA TPP<<1 AAU @8000 JAEQ RESTRP NTA W_EXCH ; ЗAKPЫTИE TN AOX PCW ; "ПO OБMEHY" TN ATX PCW JMP DESACTIV ; RESTRP: W MSFT -8 TN J+M W ITA W NP WMOD @400 CMON -1 IJP ; ; BXOД OT ПPEPЫBAHИЙ: OБPAЩEHИE K ПOДKAЧKE. ; TN - HOMEP ПPOЦECCA, NP - MAT.HOMEP ЛИCTA, ; BOЗMOЖHO YKPAШEHHЫЙ FIX- ИЛИ PUSH-БИTAMИ. ; BHИMAHИE: ПPИ BXOДE OT ЮЗEPA ЧEPEЗ ПPOГPAMMHOE ; ПPEPЫBAHИE-10 BOЗMOЖEH OTЛYП ПO ЗAHЯTOCTИ ; ПOДKAЧKИ. TOГДA ЮЗEP ПOЛYЧAET HA CYMMATOPE 0. ; GIV_PAGE:XTA SWPORT JAEQ FREE_SW R VTM MAINBLCS ITA NP ; OБЫЧHAЯ AAU @FF000 ; ПOДKAЧKA JAEQ BL_USER ; -ДA UTA NG WMOD ACC ; ЮЗEPY-OTЛYП NG WMOD ACC+1 JMP RETURN FREE_SW:ITA TN ASFT -32 ITS NP AAX =H0000 0000 FFFF FFFF 15 AOX ATX SWPORT NP VTM N_SWING R VTM ACTIVATE BL_USER:NTA BL_SEL TN AOX PCW TN ATX PCW R JMP ; ; BXOД OT ИMEHИ ЮЗEPA: ДEPГAHЬE ЛИCTA И ; ФИKCAЦИЯ EГO B "TPP" ИЛИ ЗAKPЫTИE ПO OБMEHY. ; TN - HOMEP ПPOЦECCA ; NP - MATEMATИЧECKИЙ HOMEP ЛИCTA ; IA=0, ECЛИ ЗAKPЫTИE. IA=1, ECЛИ ФИKCAЦИЯ. ; IA=-1, ECЛИ OTKAЗ OT ЛИCTA. ; HA BЫXOДE W=<ФИЗ.HOMEP ЛИCTA> ; ДEPГAEM:ITA NP ASFT -10 EXTF 64-20 ATI W CMON БBП W XTA @3FF ; FIX_PAGE: SMON БBП+БПTЧ+БПИHT CLRR БЗO+БПHП NP QTA TMP<<2 ATI W JAEQ PHYSPAG ; HE ЗAKAЗAH :AAU 3 JANE PHYSPAG ; ЛИЧHЫЙ ЛИCT NP QTA DTMP<<2 ATI W ; OБЩИЙ PHYSPAG:W MSN @400+4 IA JMGE CHFIX W HTA TPP<<1 ; ПEPEД OTKAЗOM AAN 64-16 ; HAДO ЖДATЬ JANE ДEPГAEM ; KOHЦA OБMEHA NP ATQ TMP<<2 W JMEQ RETFIX ; HE ПPИПИCAH W HTA TPP<<1 AEI TN AAU @FF :JANE *+1 W ATH TPP<<1 :QTA PCNT<<2 +3 A-U 1 ATQ PCNT<<2 +3 JMP RETFIX ; CHFIX:W JMEQ ДEPГAEM W HTA TPP<<1 IA AON 64-16 ; + БИT 16 ИЛИ 15 W ATH TPP<<1 ; RETFIX:IA JMGT RET1FIX NP RMOD @400 AEI TN AAU @FF :JANE *+1 NP WMOD @400 ; ГACИM PП RET1FIX: CMON БBП+БПTЧ+БПИHT RETS ; ; BCЯ CTPAHИЧHAЯ ЗAЩИTA B CИCTEME BEДETCЯ ; ПO HOMEPY ПPOЦECCA B PEГИCTPAX ПPИПИCKИ. ; ФAKT ПEPBOГO OБPAЩEHИЯ K CTPAHИЦE PEГИCTPИ- ; PYETCЯ SWING-OM ПO ЗHAЧEHИЮ ATPИБYTA PR=1 ; (ЗAПИCЬ - PAЗPEШEHA, A ЧTEHИE - HET). ; TAK ЧTO BCE OCTAЛЬHЫE CTPAHИЧHЫE ПPEPЫBAHИЯ ; BOЗHИKAЮT B CЛYЧAE OШИБOK. ПPИ OШИБKAX ; OPГAHИЗYETCЯ ПPИHYДИTEЛЬHOE BETBЛEHИE. ; ; 17 - ЗAЩИTA CTPAHИЦЫ ПPИ OБPAЩEHИИ. BOЗHИKAET ; B OTCYTCTBИE БП И БЗO, ECЛИ OПEPAHД KOMAHДЫ ; ЧTEHИЯ/ЗAПИCИ HAXOДИTCЯ B ЗAЩИЩEHHOЙ CTPAHИ- ; ЦE ("0" 10-ГO PAЗPЯДA COOTB. PП). ПPИ ; BЫБOPKE KOMAHДЫ ЭTOГO ПPEPЫBAHИЯ HE БЫBAET. ; ; 18 - ЗAЩИTA CTPAHИЦЫ ПPИ ЗAПИCИ. BOЗHИKAET B ; OTCYTCTBИE БП И БЗЗ И "0" 9-ГO PAЗPЯДA PП. ; ; 8 - OTPИЦATEЛЬHЫЙ HOMEP CTPAHИЦЫ Y KOMAHДЫ. ; БЛOKИPYETCЯ ПPИЗHAKAMИ БП ИЛИ POA. ; INT8:RI MTJ IA ; CЧAC => ИAOП JMP ERROR ; ; 9 - OTPИЦATEЛЬHЫЙ HOMEP CTPAHИЦЫ Y OПEPAHДA. ; ; 7 - OTCYTCTBYЮЩИЙ AДPEC ПAMЯTИ. BOЗHИKAET TOЛЬKO ; B HOBOM PEЖИME ПPИ HECOBПAДEHИИ 21-32 И 20 ; PAЗPЯДOB MATEMATИЧECKOГO (ИЛИ ФИЗИЧECKOГO, ; ECЛИ БП) AДPECA OПEPAHДA. ; ; **** BXOД OT ПPEPЫBAHИЙ: ФATAЛЬHAЯ OШИБKA ; ERROR: ITA IA ; И A O П. ASFT -32 AOI I ; + HOM.OШИБKИ ATX INFERR IA VTM E_FAT TN XTA PCW AAN P_SYST JAEQ BRANCH1 I HLT JMP BRANCH1 ; END INTERTIM:NAME QF ;* ;* OБPAБOTKA ПPEPЫBAHИЯ: "ЛOПHYЛ CB-TAЙMEP" ;* :HLT 63 IJP END STEPINT:NAME QF ;* ;*** 29 - ШAГOBOE ПPEPЫBAHИE ;* :HLT 29 IJP ; END EXTINTER:NAME QF PAUSE:ENTRY QF DELPAUSE:ENTRY QF ; PROGINT:SUBP QF INTERTIM:SUBP QF ACTIVATE:SUBP QF DESACTIV:SUBP QF RETURN:SUBP QF ИЗOЧEP:SUBP QF PCW PCBIT PSYS SPORT ; MODIF ; MIR:EQU @1802 ; Г P П OБMOЧ ATQUE:LCB LTQ,ATQ(2) CDEF ; CMD ; ; 27 - BHEШHИE ПPEPЫBAHИЯ. ; ;MOZY=8090F ; - EXTINTER ; RMOD MIR AAX WELL_INT 15 ATX ANU -1 STI I I AEN WMOD MIR ; ГAШEHИE "1" CPUSH I NTA APX WELL_INT ANU -1 ATI R SMON БBП+БПTЧ R JMP *+2 :JMP RETURN ; BAD INT ; :JMP PROGINT ; :JMP INTERTIM ; :I VTM ; ЛOПHYЛ TAЙMEP JMP ASTIMINT ; ACTP.BPEMEHИ ; :I VTM 4 JMP BHИMAHИE ; ЗAПPOCЫ OT ПП :I VTM 3 JMP BHИMAHИE :I VTM 2 JMP BHИMAHИE ; ASTIMINT:XTA ATQ AAU @FF ATI NP JAEQ RETURN ; DEL2:I XTA ATQ+1 I ATX ATQ I UTM 1 JANE DEL2 XTA LTQ A-U 1 ATX LTQ NP XTA PCW AEN W_AST NP ATX PCW XTA ATQ ATX ASTIMER A-L CLOCK JALT ACTIVATE XTA CLOCK A-U @100 ATX ASTIMER JMP ACTIVATE ; PAUSE:L-A CLOCK AAU @FFF00 AOI TN XTS LTQ ATI I A+U 1 ATX LTQ TN XTA PCW AON W_AST TN ATX PCW ; ATSORT:I XTA ATQ I ATX ATQ+1 15 A-L -1 JALE ATSET I VRM ATSORT I VTM -1 ; ATSET:15 XTA I ATX ATQ+1 XTA ATQ ATX ASTIMER JMP DESACTIV ; DELPAUSE:WTC LTQ I VTM DEL1:I XTA ATQ AEI NP AAU @FF JAEQ DEL2 I VRM DEL1 JMP RETURN ; ; ЗAПPOC OT ПYЛЬTOBOГO ПPOЦECCOPA ; BHИMAHИE: RMOD MIR ; ДO BЫЯCHEHИЯ AAU @FFFF1 ; ГACИM BCE WMOD MIR ; 3 БИTA ; XTA PPINF ASFT 8 JANE NONINPUT ATX PPINF NP VTM N_TTAN ; BBOД C JMP ACTIVATE ; KOHCOЛИ ; NONINPUT:ATI J ; HOM.ЗAЯBKИ ASFT -1 ATI W W XTA JOB-2 W AEX DUBJOB-2 AAX =HFFFF 0000 FFFF FFFF JANE DPMERR W XTA JOB-1 W AEX DUBJOB-1 AAX =HFFFF 0000 FFFF FFFF JANE DPMERR J UTC -1 J XTA JOB-1 ASFT 48 AAU @FF ATI CP ; KAHAЛ OБMEHA A-U 2 CP JALT CHAN01 CP NTA AOX DDPORT ATX DDPORT NP VTM N_DRIV JMP ACTIVATE ; CHAN01:R VTM RETURN ; BЫBOД JMP ИЗOЧEP ; HA KOHCOЛЬ :J UTC -1 J XTA JOB-1 ; Э071 ASFT 56 ATI NP NP XTA PCW AON W_TERM ; "KOHEЦ OБMEHA" AEN W_TERM AON IF_FIX ; PACФИKCAЦИЯ AEN IF_FIX ; И П NP ATX PCW OP_USER:R VTM ACTIVATE JMP ИЗOЧEP ; DPMERR:W XTA DUBJOB-2 W HLT W ATX JOB-2 W XTA DUBJOB-1 W ATX JOB-1 UTA ATX PPINF JMP RETURN END PROGINT:NAME QF ;* ;*** ДЛЯ OPГAHИЗAЦИИ ПPOГPAMMHO-ИMИTИPOBAHHЫX ;* ПPEPЫBAHИЙ ИCПOЛЬЗYETCЯ MAKPOC "PINT" : ;* XTA INF ;* PINT ;* 1:32 PAЗPЯДЫ CYMMATOPA ЗAДAЮT KOД OПEPAЦИИ ;* 33:64 ---"--- И, BOЗMOЖHO, ДPYГИE PEГИCTPЫ ;* ЗAДAЮT ДOПOЛHИTEЛЬHYЮ ИHФOPMAЦИЮ. ;* ;* ПPИ BXOДE PROGINT ЗAXBATЫBAET ГЛOБAЛЬHЫЙ ;* CEMAФOP ПAMЯTИ. BЫXOД ПPOИЗBOДИTCЯ OБЫЧHO ;* HA RETURN, TAM CEMAФOP И OCBOБOЖДAETCЯ. ;* MAINBLCS:SUBP QF RETURN:SUBP QF ACTIVATE:SUBP QF DESACTIV:SUBP QF DDACTIV:SUBP QF SEMDOWN:SUBP QF SEMUP:SUBP QF CREVENT:SUBP QF CLEVENT:SUBP QF RETGROUP:SUBP QF RESGROUP:SUBP QF PUSHGRUP:SUBP QF POPGRUP:SUBP QF PAUSE:SUBP QF DELPAUSE:SUBP QF GIV_PAGE:SUBP QF PCW PCBIT TPP IFP PORT:EQU 3 GROUP RRBIT MODIF ; CMD ; ;MOZY=80954 ; - PROGINT ; :NG RMOD ACC+1 ATI I ; K O П NG RMOD ACC I JMP *+1 ; :JAEQ DESACTIV ; 0-ДEЗAKT.OБЩAЯ JMP DDACTIV ; ИЛИ ПO ДИAЛOГY ; :JAEQ CLEVENT ;1-ЖДY COБЫTИЯ JMP GEN_EV ; ИЛИ ДEЛAЮ EГO ; :ATI NP ; 2-AKTИBИЗAЦИЯ JMP ACTIVATE ; YKAЗ.ПPOЦECCA ; :ATI IA ; 3-ЗAXBAT CEMAФOPA JMP SEMDOWN :ATI IA ; 4-EГO OCBOБOЖДEHИE JMP SEMUP ; :TN XTA PCW ; 5-ЗABEPШEHИE JMP FINISH ; PAБOTЫ ПPOЦECCA ; :ATI J ; 6-ЗAПOЛHEHИE JMP POP ; CBOEЙ ГPYППЫ ; :R VTM RETURN ; 7-ЗAПPOC JMP RESGROUP ; PEЗEPB.ГPYППЫ ; :ASN @400-10 ; 8-CДEЛATЬ JMP PAUSE ; ПAYЗY (MCEK.) ; :ATI NP ; 9-ПPEPBATЬ JMP DELPAUSE ; ПAYЗY ; :ATI NP ; 10-ЗAЯBKA K JMP GIV_PAGE ; SWING-Y ; :NP VTM 1 ; 11-ЗAMEHA JMP PCHANGE ; HOMEPOB CTPAHИЦ ; ; GEN_EV:15 ATX AAU @FF STI NP ; AДPECAT ASFT 8 ATI IA ; HOM.COБЫTИЯ JMP CREVENT ; ; ФИHAЛЬHЫE OПEPAЦИИ ПO ЗABEPШEHИЮ PAБOTЫ ; ПPOЦECCA. OCBOБOЖДEHИE BCEX ГPYПП PEГИCTPOB, ; OTBЯЗKA OT ПPOЦECCOPA, ДEЗAKTИBAЦИЯ. ; ДЛЯ HECИCTEMHЫX ПPOЦECCOB OCBOБOЖДAETCЯ ЛИCT ; C ИП И ГACИTCЯ PCW. ; FINISH:ATI I AAN P_SYST JANE FIN_S TN ATX TABPRT I MSFT 10 I ATH TPP<<1 NTA READY_ TN ATX PCW JMP RETGROUP ; FIN_S:ITA I AAU @3FF ; ECTЬ ЛИ ATI I ; EЩE PAБOTA I XTA IFCTIM+PORT JANE RETURN ; - ДA TN MTJ NP RR VTM RETGROUP JMP PUSHGRUP ; ; ЗAПOЛHEHИE AKTИBHOЙ ГPYППЫ COДEPЖИMЫM ; BEPXYШKИ CTEKA YПPЯTЫBAHИЯ PEГИCTPOB. ; ECЛИ ЗAДAH HEHYЛEBOЙ AДPEC BOЗBPATA, ; OH ПOCЫЛAETCЯ B CЧAC И ДOБABЯTCЯ PД+POA ; POP:TN MTJ NP RR VJM POPGRUP J JMEQ MAINBLCS ITA J NG WMOD CЧAC NG RMOD PP AON 64-PД AON 64-POA NG WMOD PP JMP MAINBLCS ; ; KOП = 11 : ЗAMEHA HOMEPOB CTPAHИЦ ; HOMEPA ЗAДAЮTCЯ B 64:49 И 48:33 PAЗPЯДAX ; PCHANGE:15 ATX AAU @FFFF STI J ASFT 16 ATI I J QTA TMP<<2 ATI P2 I QTA TMP<<2 PC1:J ATQ TMP<<2 ASFT 4 ATI W JAEQ PC2 ITA J ASFT -16 W AEH TPP<<1 AAU @F0000 W AEH TPP<<1 W ATH TPP<<1 AAU @3FF W MSFT -10 PC2:AOI W J WMOD @400 ITA P2 I MCJ J NP VRM PC1 JMP RETURN END EXTRACOD:NAME QF ; KEX:EQU @F ; ЧИCЛO ЭKCTPAKOДOB ; 1:BLOCK B,N,M,A ,E,C,T,I,J ,L,D,R,S,IA IFP ASTR:BLOCK DOUT,DIN FATA CODE PACKDATE:SUBP QF PACKTIME:SUBP QF DATE:SUBP QF TIME:SUBP QF ; CONST C1:HEX 8028 0000 0000 0000 C10:HEX 810A 0000 0000 0000 ZERO:HEX 8640 0000 0000 0000 LETTERS:HEX 0 :HEX 7FFF FFE1 7FFF FFE0 :HEX FFFF FFFF FFFF 0000 :HEX 0000 0000 FFFF C000 ; CMD ;**************************************************** ; ; ЭKCTPAKOДЫ HOBOГO PEЖИMA: ; ========================== ; ; KOД OПEPAЦИИ ЗAДAETCЯ ИCПOЛHИTEЛЬHЫM AДPECOM. ; ДOП.ИHФOPMAЦИЯ HA CYMMATOPE И ECЛИ HAДO, B PMP. ; PEЗYЛЬTAT BOЗBPAЩAETCЯ HA CYMMATOPE И, ECЛИ ; HAДO, B PMP. PEГИCTPЫ HE ПOPTЯTCЯ, B T.Ч. И 14! ; ;**************************************************** ;MOZY=80D8D ; - EXTRACOD ; :IA UTM -KEX IA JMGT BAD_EXTR IA JMP EX_SW + KEX ; ; HECYЩECTBYЮЩИЙ ЭKCTPAKOД: ; BAD_EXTR: HLT @80 ; EX_SW:JMP EX_0 ; :IA VTM JMP INITSTR ; 1 - INITPACK :IA VTM PACKTEXT JMP SETT ; 2 -H :IA VTM PACKCHAR JMP SETT ; 3 - C :IA VTM PACKHEX JMP SETT ; 4 - H . :IA VTM PACKDEC JMP SETT ; 5 - G . :JMP BAD_EXTR ; :IA VTM 2 JMP INITSTR ; 7 - INITUNP :T VTM GETCHAR JMP SETI ; 8 - GET CHAR :T VTM GETIDENT JMP SETI ; 9 - GET IDENT :T VTM GETFILE JMP SETI ; A - GET FILENAME :T VTM GETHEX JMP SETI ; B - GET HEXCODE :B VTM PACKTIME JMP TIMDAT ; C - GET "TIME" :B VTM PACKDATE JMP TIMDAT ; D - GET "DATE" :T VTM GETNUM JMP SETI ; E - GET NUMBER ; :JMP EX_1 :UTC 2-3 :J VTM 3 JMP EXCH :JMP EX_4 :JMP EX_5 ; ; ЭKCTPAKOД-0. BXOД B ИHTEPПPETATOP ДИPEKTИB. ; 1-32 P. CYMMATOPA ЗAДAЮT БAЙTOBЫЙ AДPEC HAЧAЛA ; ДИPEKTИBЫ. KOHEЦ ДИPEKTИBЫ - БAЙT "0". ; EX_0: ; ; 1(7): УСТАНОВКА НАЧАЛА ВЫХОДНОЙ (ВХОДНОЙ) ; СТРОКИ. АДРЕС ПЕРВОГО СЛОВА СТРОКИ ; ЗАДАЕТСЯ В МЛ. РАЗР. СУММАТОРА. ЕСЛИ ; ЗАДАН 0, ИСПОЛЬЗУЕТСЯ СИСТЕМНЫЙ БУФЕР. ; СТРУКТУРА ДЕСКРИПТОРОВ СТРОК DOUT И DIN: ; :--------------------:-------------------: ; : АДРЕС ПЕРВОГО БАЙТА: АДРЕС ТЕКУЩ.БАЙТА : ; :--------------------:-------------------: ; INITSTR:ATI A A MSFT -3 A JMNE INIT1 A VTMB BUF IA JMEQ INIT1 A VTMB BUFIN INIT1:ITA A IA ATH DOUT<<1 IA ATH DOUT<<1 +1 RET ; ; 2-5 : ЭКСТРАКОДЫ ДЛЯ СБОРКИ ТЕКСТОВОЙ СТРОКИ. ; ПАРАМЕТРЫ - НА СУMMАТОРЕ И В Р М Р : ; :---------:---------: ; СУММАТОР : B : N : ; :---------:---------: ; Р М Р : M : A : ; :---------:---------: ; ; B - ЗАДАЕТ РЕЖИМЫ РАБОТЫ СБОРЩИКА СТРОКИ ; 32 РАЗРЯД - НОРМАЛИЗАЦИЯ ФРАГМЕНТА ВЛЕВО ; 31 - ЗАПИСЬ "CR" В ХВОСТ СТРОКИ ; 30 - ЗАПИСЬ "LF" В ХВОСТ СТРОКИ ; 29 - ЗАПИСЬ "0" В ХВОСТ СТРОКИ ; N,M,A - ЗАДАЮТ СЧЕТЧИКИ ПОЗИЦИЙ И АДРЕС ; ИСХОДНОГО ДВОИЧНОГО ФРАГМЕНТА. ; ПРИ ВЫХОДЕ ИЗ ЭТИХ ЭКСТРАКОДОВ СУММАТОР ; СОДЕРЖИТ ТЕКУЩЕЕ ЗНАЧЕНИЕ СЧЕТЧИКА СИМВОЛОВ ; ЗАПИСАННЫХ В ВЫХОДНОЙ БУФЕР. ; ;---------------------------------------------- ; ; SETT:MUNP B ; CM,MP ==> B,N.M,A XTS DOUT ATI T IA JMP ; ; ; 2 - ПЕРЕПИСЬ В ВЫХОДНОЙ БУФЕР N+1 БАЙТ ; ИЗ СТРОКИ, ЗАДАННОЙ СЛОВНЫM АДРЕСОМ А. ; М НЕСУЩЕСТВЕННО. ПРИ N > 255 ПЕРЕПИСЬ ; НЕ БОЛЕЕ 256 БАЙТ СТРОКИ А ДО КОДА В ; 1:8 Р. N ВКЛЮЧИТЕЛЬНО. ; PACKTEXT:C VTM -1 A MSFT -3 ITA N AAU @FFF00 JAEQ TRAN AEI N ATI C N VTM 255 TRAN:A BTA A UTM 1 T ATB T UTM 1 AEI C JAEQ RETPACK N VRM TRAN JMP RETPACK ; ; 3 - ЗАПИСЬ В ВЫХОДНОЙ БУФЕР N+1 СИМВОЛА, ; ЗАДАННОГО В ПОЛЕ А. М НЕСУЩЕСТВЕННО. ; PACKCHAR:N JMLT RETPACK ITA A :T ATB T UTM 1 N VRM *-1 JMP RETPACK ; ; 4 - ВЫДАЧА N МЛАДШИХ 16-РИЧНЫХ ЦИФР КОДА ; ПО АДРЕСУ А СО ВСТАВКОЙ ОДНОГО ПРОБЕЛА ; ПОСЛЕ КАЖДЫХ М ЦИФР. ; ПРИ N=0 ВЫДАЕТСЯ 8-СИМВ.ФРАГМЕНТ "ДАТА", ; ЗАДАННЫЙ ЦЕЛЫМ ЧИСЛОМ А. ПРИ N<0 ВЫДАЕТСЯ ; ФРАГМЕНТ "ВРЕМЯ". ЕСЛИ К ТОМУ ЖЕ А<0, ; ИМЕЮТСЯ В ВИДУ ТЕКУЩИЕ ДАТА ИЛИ ВРЕМЯ. ; DTOUT:L UTC T ATB ASFT 8 L VRM DTOUT T UTM 8 JMP RETPACK ; PACKHEX:L VTM 7 C VTM DTOUT N JMEQ DATE N JMLT TIME N UTM -16 N JMLE PH1 :UTA BL ; LEFT T ATB ; BLANKS T UTM 1 N VRM *-1 PH1:A XTA N MSFT -4 N ASN @400 N MSFT 4 N UTM 15 M MTJ B PH2: ASFT -4 15 ATX YTA A-U 10 :JALT *+1 A+U 7 :A+U 10+@30 T STB B UTM -1 B JMNE PH3 UTS BL T UTM 1 T STB M MTJ B PH3:T UTM 1 N VRM PH2 ; RETPACK:15 XTA ; "B" N VTM -16 WRSPC: ASFT -1 JAGE NOSPC UTS @0A0D N ASFT 16 ; CR,LF,"0" T STB T UTM 1 NOSPC:N UTM 8 N JMLE WRSPC ; RETPACK1:ITA T ATH DOUT<<1 +1 A-H DOUT<<1 RET ; ; 5 - ВЫДАЧА СЛОВА А ПО ФОРМАТУ I (M <=0 ) ; ИЛИ F . ИЛИ E . (M > 0 ) ; PACKDEC:A XTA ; INT==>FLOAT 15 ATX ASFT 52 JAEQ FL1 AEU @FFF JANE FL2 FL1:15 XTA -1 AAX =H001F FFFF FFFF FFFF AOX ZERO 15 ATX -1 ; FL2:T MTJ I ; OLD POINTER 15 XTA -1 AAN 64-53 ; SIGN JAEQ FL3 ; -POZITIVE XTA ZERO 15 A-X ; ABS(A) UTS @2D T ATB ; PUT "-" T UTM 1 N UTM -1 ; FL3:M JMLE IN1 ; I-FORMAT M UTM -15 :M JMLT *+1 M VTM :M UTM 15 N UTA -1 A-I M JALE OVFL ATI IA M MTJ C J VTM ; EXPONENT ; CALC 10**(-M) XTA C10 :A/X C10 C VRM * 15 ATX 1 15 X-A -1 UIA EXNEG XTA C1 :A*X C10 IA VRM * 15 A-X -1 UZA EXPOZ ; CALC INT PART AND MANTISS PD1:NTR 3 15 XTA -1 A+X ZERO AAX =H001F FFFF FFFF FFFF 15 ATX 2 AOX ZERO NTR 6 A+X ZERO 15 X-A -1 15 ATX 3 ; ENCODE INT PART PD2:15 XTA 2 A/U 10 15 ATX 2 YTA AOU @30 ; "0" T ATB T UTM 1 N UTM -1 15 XTA 2 JANE PD2 ; UTA @2E ; "." T ATB T UTM 1 N UTM -1 ; ; ENCODE M MANTIS DIGITS ; M MTJ IA UTA 1 :IA UTM -1 IA JMLE *+2 A*U 10 JMP *-1 :15 ATX -1 ; 10**(M-1) 15 XTA 3 15 A/X 1 NTR 3 A+X ZERO AAX =H001F FFFF FFFF FFFF PD3:M UTM -1 15 A/L -1 AOU @30 T ATB T UTM 1 N UTM -1 15 XTA -1 A/U 10 15 ATX -1 YTA M JMGT PD3 ; ; ENCODE EXPONENT ; J JMEQ PDFIN ITA J JAGT PLEX U-A UTC @2D - @2B PLEX:C VTM @2B ; "+" ATI J J UTM -19 N UTM -4 J JMGE BIGEXP UTS @45 ; "E" T ATB ITA C T STB 1 JMP ENDEXP BIGEXP:ITS C T STB A/U 100 AOU @30 T ATB 1 YTA ENDEXP:A/U 10 AOU @30 T ATB 2 YTA AOU @30 T ATB 3 T UTM 4 ; PDFIN:N JMLE RETPACK T MTJ J N J+M T ; NEW POINTER B JMLT LNORM T MTJ M I J-M M ; ВЫВЕДЕНО ; СДВИГ ВЫВЕДЕННОГО ВПРАВО НА N ПОЗИЦИЙ :J UTM -1 J BTA N UTC J ATB M VRM *-2 I MTJ J ; ВЫДАЧА ОСТАВШИХСЯ N ПРОБЕЛОВ LNORM:UTA BL N UTM -1 :J ATB J UTM 1 N VRM *-1 JMP RETPACK ; ; ВЫВОД ПО ФОРМАТУ I ; IN1:NTR 3 15 XTA A+X ZERO AAX =H001F FFFF FFFF FFFF IN2:N JMLE OVFL A/U 10 15 ATX YTA ; NEXT DIGIT AOU @30 ; "0" T STB T UTM 1 N UTM -1 JANE IN2 JMP PDFIN ; ; NEGATIV EXPONENT ; EXNEG:15 XTA -1 JAEQ PD1 ; ZERO E UTM -1 A*X C10 15 ATX -1 A-X C1 UIA EXNEG JMP EXEX ; ; POZITIV EXPONENT ; EXPOZ:E UTM 1 15 XTA -1 A/X C10 15 ATX -1 A-X C10 UZA EXPOZ EXEX:N UTA -5 A-I M JAGT PD1 ; OVFL:UTA @2A ; "*" T ATB -1 :T ATB N UTM -1 N JMLE RETPACK T VLM *-1 ; ; ;--------------------------------------------------- ; 7-F : ЭКСТРАКОДЫ ДЛЯ ИЗВЛЕЧЕНИЯ ФРАГМЕНТОВ ; ИЗ ВХОДНОЙ ТЕКСТОВОЙ СТОРОКИ. ; НА СУММАТОРЕ ЗАДАЕТСЯ АДРЕС СЛОВА, КУДА ; НАДО ЗАПИСАТЬ ВЫБРАННЫЙ ФРАГМЕНТ (1:32) ; НА ВЫХОД ПОДАЕТСЯ СЛЕДУЮЩАЯ ИНФОРМАЦИЯ: ; :----------:----------: ; СУММАТОР : Е : С : ; :----------:----------: ; Р М Р : Т : I : ; :----------:----------: ; I = АДРЕС ТЕКУЩЕГО БАЙТА ВХОДНОЙ СТРОКИ ; Т = ДОП.ИНФОРМАЦИЯ О ВЫБРАННОМ ФРАГМЕНТЕ ; С = ПОСЛЕДНИЙ ВЫБРАННЫЙ СИМВОЛ (РАЗДЕЛИТЕЛЬ) ; Е = 0, ЕСЛИ ФРАГМЕНТ ВЫБРАН, -1 ПРИ ОШИБКЕ ; ; ПРИ ОШИБКАХ ТЕКУЩИЙ УКАЗАТЕЛЬ ПО ВХОДНОЙ ; СТРОКЕ НЕ ПРОДВИГАЕТСЯ, ЧТО ПОЗВОЛЯЕТ ПО- ; ВТОРИТЬ ВЫБОРКУ С ДРУГИМ ТИПОМ ФРАГМЕНТА. ;--------------------------------------------------- ; SETI:ATI A S VTMF LETTERS WTC DIN I VTM T MTJ D T MTJ L L UTM 1 R VTM BLEFT ; ; BЫБOPKA ИЗ BXOДHOЙ CTPOKИ OЧEPEДHOГO CИMBOЛA ; НА РЕГИСТР С. ВЫХОД ПО D(ЦИФРА), L(БУКВА), ; R(РАЗДЕЛИТЕЛЬ). CHAR:I BTA ATI C :JAEQ *+1 ; END STRING I UTM 1 :A-U @30 R JALT ; A-U 9 D JALE ; S UTC C FTA L JANE ; R JMP BLEFT:ITA C AEU BL JAEQ CHAR ; LEFT BLANKS T JMP 2 ; ; ; 8 - ВЫБОРКА ОДИНОЧНОГО СИМВОЛА В ПОЛЕ С. ; ПОЛЕ Т = 0(РАЗДЕЛИТЕЛЬ), 1(ЦИФРА), 2(БУКВА) ; GETCHAR:T VTM 1 JMP OKRET :T VTM 2 JMP OKRET :T VTM 0 JMP OKRET ; ; ; 9 - ВЫБОРКА ИДЕНТИФИКАТОРА, ДОПОЛНЕНИЕ ПРОБЕЛАМИ ; ДО ГРАНИЦЫ СЛОВА. Т = <ДЛИНА ИДЕНТИФИКАТОРА> ; GETIDENT:JMP ERROR ; 1-ST DIGIT ! :A MSN @400-3 JMP GID1 :JMP ERROR GID1:L VTM GID2 D VTM GID2 GID2:ITA C A ATB A UTM 1 R VJM CHAR ITA I A-H DIN<<1 +1 ATI T ; LENGTH UTA BL ; SETTAIL:ITS A AAU 7 UZAS OKRET A ATB A VLM SETTAIL ; ; ; A - ВЫБОРКА СПЕЦИФИКАЦИИ ФАЙЛА, ПРИСОЕДИНЕНИЕ ; K PATHNAME, ДОПОЛНЕНИЕ "0" ДО КРАЯ СЛОВА. ; ВХОДНОЙ СУММАТОР НЕСУЩЕСТВЕН. НА ВЫХОДЕ ; Т = РАСШИРЕНИЕ ИМЕНИ ФАЙЛА. ; GETFILE:JMP ERROR ; 1-ST DIGIT! :A VTMB PATHNAME JMP GF2 :ITA C AEU @5C ; "\" JANE ERROR A VTM PATHNAME<<3 +2 ; ROOT DIR ; GF1:L VTM GF12 D VTM GF12 GF12:ITA C A ATB A UTM 1 R VJM CHAR ITA C AEU @5C ; "\" JAEQ GF1 AEU @72 ; "." JAEQ GF1 R VTM -3 :ASN @400-8 R UTC -1 A AOB R VLM *-1 ATI T UTA A ATB A VLM SETTAIL ; GF2:I BTA ; 2-ND CHAR AEU @3A ; ":" JAEQ GF1 ; FULL PATH A MTJ B GF3:B BTA JAEQ GF1 B UTM 1 AEU @5C ; "\" JANE GF3 B MTJ A JMP GF3 ; ; ; B - ВЫБОРКА 16-РИЧНОГО ЧИСЛА. ДОПУСКАЕТСЯ ; ПРЕФИКС "@" И ВНУТРЕННИЕ ПРОБЕЛЫ. ; НА ВЫХОДЕ Т = ЧИСЛО ПРИНЯТЫХ ЦИФР. ; GETHEX:C UTM -@30 -15 JMP GH1 :C UTM -@46 ; "F" C JMLE GH1 :ITA C AEU @40 ; "@" JAEQ CHAR JMP ERROR ; GH1:C UTA 15 A ATX L VTM GH2 D VTM GH3 T VTM -15 R VJM CHAR ITA C AEU BL JAEQ CHAR T UTM 15 ; OKRET:ITA I ATH DIN<<1 +1 E VTM MPAC E RET ; GH3:C UTM -@46 C JMGT ERROR C UTM @30+15 GH2:A XTA ASFT -4 C AOU -@30 A ATX T VLM CHAR ; ERROR:E VTM -1 MPAC E RET ; ; ; C,D - ВЫБОРКА ЛЕКСЕМ "ВРЕМЯ" И "ДАТА" ; РЕЗУЛЬТАТ В ПОЛЕ "Т". ; TIMDAT:WTC DIN IA VTM -1 :IA UTM 1 IA BTA AEU BL JAEQ *-1 B UTC C VJM ; PACKTIME/DATE IA MTJ I ATI T I BTA ATI C T JMEQ ERROR I VLM OKRET ; ; ; Е - ВЫБОРКА ДЕСЯТИЧНОГО ЧИСЛА В I,F,E-ФОРМАТЕ ; НА ВЫХОДЕ Т = 0-I, 1-F, 2-E ФОРМАТ ; GETNUM:I VRM POZ ; "+" :JMP ERROR ; 1-ST LETTER :ITA C AEU @2B ; "+" JAEQ POZ AEU 6 ; "-" JANE ERROR UTC 1 POZ:B VTM ; -SIGN UTA 15 ATX 1 ; INT PART 15 ATX 2 ; MANTISSA 15 ATX 3 ; EXPONENT T VTM L VTM CHEXP R VTM CHPOIN ; GINT:N VTM -16 ; MAX N DIGITS D VJM CHAR ; ПРИЕМ ОЧЕРЕДНОЙ ЦИФРЫ :T UTC 15 XTA 1 A*U 10 C A+U -@30 T UTC 15 ATX 1 N VLM CHAR JMP ERROR ; ПРИШЕЛ РАЗДЕЛИТЕЛЬ CHPOIN:ITA C AEU @2E ; "." T JANE NUMEND T JMNE ERROR T VTM 1 JMP GINT ; ВЫБОРКА ЭКСПОНЕНТЫ CHEXP:ITA C AEU @45 ; "E" JANE ERROR L VTM ERROR N MTJ M N UTM 16 N JMNE CHSEXP T JMNE CHSEXP XTA C1 ; +-E... 15 ATX 1 CHSEXP:T VTM 3 N VTM -3 J VTM 1 I BTA AEU @2D ; "-" I UTM 1 JAEQ CHAR AEU 6 ; "+" J VTM JAEQ CHAR I VRM CHAR ; ; СБОРКА ЧИСЛА ИЗ 3-Х КОМПОНЕНТ ; NUMEND:15 XTA 1 JMP INTEGER :N MTJ M N VTM :N UTM 3 N JMEQ ERROR 15 WTC 3 N VTM -301 N JMGT ERROR ; TOO BIG EXP N UTM 300 XTA C1 N JMLT REXP :A*X C10 N VRM * J JMEQ REXP XTS C1 15 A/X REXP:15 ATX 3 M UTM 16-1 15 XTA 1 AOX ZERO 15 ATX 1 15 XTA 2 AOX ZERO M JMLT RMANT :A/X C10 M VRM * RMANT:15 A+X 1 15 A*X 3 B JMEQ RNUM X-A ZERO RNUM:A ATX JMP OKRET INTEGER:B JMEQ *+1 U-A :A ATX JMP OKRET ; ; ; ЭKCTPAKOДЫ ДЛЯ PAБOTЫ C ФAЙЛAMИ. ; ; :-----:----------------:------------------: ; EXCH : N : L : A : ; :-----:----------:--:--:------------------: ; MOVE : N : :T :D : A : ; :-----:----------:--:--:------------------: ; 64 56 40 36 32 1 ; ; ; 1 - ПOЗИЦИOHИPOBAHИE ПO ФAЙЛY. ; N : ЛOГИЧECKИЙ HOMEP ФAЙЛA ; T : TИП ЭЛEMEHTA (БAЙT, 1/4, ... ,CTPOKA) ; D : TИП CMEЩEHИЯ ( 0 - OT TEKYЩEГO YKAЗATEЛЯ ; 1 - OT HAЧAЛA, 2 - OT KOHЦA ФAЙЛA ). ; A : BEЛИЧИHA CMEЩEHИЯ B ЭЛEMEHTAX. ; PEЗYЛЬTAT: CYMMATOP=<БИTOBЫЙ TEK.YKAЗATEЛЬ ПO ; ФAЙЛY> ИЛИ -1, ECЛИ OШИБKA. ; EX_1: ; ; 2 - ЗAПИCЬ ИЗ OЗY B ФAЙЛ ; 3 - ЧTEHИE ИЗ ФAЙЛA B OЗY ; N : ЛOГИЧECKИЙ HOMEP ФAЙЛA ; L : KOЛИЧECTBO ПEPEПИCЫBAEMЫX ЭЛEMEHTOB ; A : HAЧAЛЬHЫЙ AДPEC B OЗY ; EXCH: ; ; 4 - ЗAПPOC PEЖИMA YCTPOЙCTBA, ГДE HAXOДИTCЯ ФAЙЛ ; 5 - ИЗMEHEHИE PEЖИMA ; N : ЛOГИЧECKИЙ HOMEP ФAЙЛA ; A : AДPEC MACCИBA ИHФOPMAЦИИ B OЗY ; EX_4: EX_5: ; END HEAP:NAME QF GIVBLOCK:ENTRY QF RETBLOCK:ENTRY QF ;* ;*************************************************** ;* * ;* ДИHAMИЧECKOE PACПPEДEЛEHИE ПAMЯTИ * ;* БЛOKAMИ ДЛИHOЙ 2**K CЛOB (K=1,2,...,MAX) * ;* ИCПOЛЬЗYETCЯ METOД "БЛИЗHEЦOB", KOTOPЫЙ * ;* ЛYЧШE BCEГO OПИCAH B KHИГE Д.KHYTA. * ;* * ;*************************************************** ;* 6.7.88. A.П.CAПOЖHИKOB ; 1:BLOCK K,L,F,B,E,R,H ; CMD ; ; CTPYKTYPA ДECKPИПTOPA KYЧИ : ; ; 64 32 1 ; :-------------:---------------: ; 0 : MAX : AHEAP : ; :-------------:---------------: ; 1 : : F(1) : ; :-------------:---------------: ; 2 : B(1) : F(2) : ; :-------------:---------------: ; 3 : B(2) : ... : ; :-------------:---------------: ; ....... ; :-------------:---------------: ; MAX : B(MAX-1) : F(MAX) : ; :-------------:---------------: ; MAX+1: B(MAX) : 0 : ; :-------------:---------------: ; ; MAX - MAKCИMAЛЬHAЯ PAЗMEPHOCTЬ KYЧИ ; AHEAP - AДPEC HAЧAЛA KYЧИ ДЛИHOЙ 2**MAX CЛOB. ; [ F(K),B(K) ] - ЗAГOЛOBOK CПИCKA CBOБOДHЫX ; БЛOKOB ДЛИHOЙ 2**K ; ; B HAЧAЛЬHЫЙ MOMEHT KYЧA COДEPЖИT POBHO OДИH ; CBOБOДHЫЙ БЛOK ДЛИHOЙ 2**MAX CЛOB. B KAЖДOM ; CBOБOДHOM БЛOKE ПEPBOE CЛOBO COДEPЖИT F- И ; B-YKAЗATEЛИ. BTOPOE CЛOBO COДEPЖИT B MЛAД- ; ШИX PAЗPЯДAX ДBOИЧHЫЙ ЛOГAPИФM ДЛИHЫ БЛOKA. ; ЗAMEЧAHИE: "0" B 64-9 PAЗPЯДAX 2-ГO CЛOBA ЛЮБOГO ; БЛOKA ИCПOЛЬЗYETCЯ KAK ПPИЗHAK, ЧTO БЛOK ; CBOБOДEH. ПOMHИTE OБ ЭTOM, PAБOTAЯ C KYЧEЙ !!! ; ; 1. ИHИЦИИPYЮЩEE OБPAЩEHИE: R VJM HEAP ; ПPИ ЭTOM H = ; ПOPTЯTCЯ: L,F,B,E. ; ;MOZY=80A35 ; - HEAP ; HEAP: H XTS ATI E ASFT 32 ATI L E ATX 1 H MTJ B B MSFT -1 B UTM 1 ; ДЛЯ HEЧETA L UTM -1 E MSFT -1 LCR:B UTM 2 B CREL L VRM LCR E INSL UTA B STH 2 R JMP ; ; ; 2. ЗAПPOC БЛOKA ДЛИHOЙ 2**K CЛOB ИЗ KYЧИ H. ; ПOPTЯTCЯ: F,B,E,L. BЫXOД: R. ПPИ ЭTOM ; L COДEPЖИT AДPEC ПEPBOГO CЛOBA БЛOKA. ; GIVBLOCK:H MTJ E K J+M E E MSFT -1 E UTM -1 GB1:E UTM 2 E HTA ATI L AAU 1 JANE GB1 ; - CПИCOK ПYCT L JMEQ NOMEMOR L DELL L MSFT 1 L XTA 1 GB2:ATI B AEI K ; CBOЙ PAЗMEP JAEQ GRET ; - ДA ; PACЩEПЛEHИE. BTOPYЮ ПOЛOBИHY BHECEM ; B CПИCOK CBOБOДHЫX. ПEPBYЮ БEPEM CEБE, ; HO BOЗMOЖHO, EЩE PACЩEПAEM. B UTM -1 B NTA @400-1 A+I L ASFT -1 ATI F ; 2-Я ПOЛOBИHA ASFT -1 E ATH -1 ; B-CПИCOK E ATH -2 ; БЫЛ ПYCT ! E UTM -2 ITA E ASFT -32 E AOU F ATX ITA B F ATX 1 JMP GB2 ; NOMEMOR:HLT GRET:L ATX 1 R JMP ; ; ; 3. BOЗBPAT B KYЧY H БЛOKA L ДЛИHOЙ 2**K ; ПOPTЯTCЯ: CYMMATOP, K,L,F,B,E. BЫXOД: R. ; RETBLOCK:H WTC E VTM ; RB1:E J-M L ITA L K AEN @400 ATI B ; БЛИЗHEЦ E J+M B E J+M L ITA K B AEX 1 ; CBOБOДEH JANE RB2 ; - HET ITA K A-U 10 ; ЦEЛЫE ЛИCTЫ YЖE JAGE RB2 ; HE OБЬEДИHЯEM ! ; CЛИЯHИE БЛOKOB-БЛИЗHEЦOB ITA L A-I B :JALE *+1 B MTJ L :B MSFT -1 B DELL K VLM RB1 ; RB2: ITA K L ATX 1 L MSFT -1 K UTC H XTA ATI B L INSL R JMP END MAINBLCS:NAME QF NEW_PRT:ENTRY QF ; ПEPECЧET ПPИOPИTETOB ACTIVATE:ENTRY QF ; AKTИBИЗAЦИЯ ПPOЦECCA DESACTIV:ENTRY QF ; ДEЗAKTИBAЦИЯ ПPOЦECCA DDACTIV:ENTRY QF ; ДEЗAKT.ДИAЛ.ПPOЦECCA RETURN:ENTRY QF ; BOЗBPAT ИЗ ПPEPЫBAHИЯ SETQ:ENTRY QF ; ПOCTAHOBKA B OЧEPEДЬ DELQ:ENTRY QF ; ИЗЬЯTИE ИЗ OЧEPEДИ ACTIV1:ENTRY QF ; ПOБYДKA ПPOЦECCOPA ;* ;**************************************************** ;* * ;* ПPOЦECCЫ. CЧETHЫE KAHAЛЫ. * ;* PAЗДEЛEHИE BPEMEHИ. * ;* * ;**************************************************** ;* ;* ПYCTЬ N - ЧИCЛO ПPOЦECCOPOB. OHИ HYMEPYЮTCЯ ;* OT 0 ДO N-1. ;* ;* B CИCTEME CYЩECTBYET 255 CЧETHЫX KAHAЛOB, ПPOHY- ;* MEPOBAHHЫX OT 0 ДO 254. KAЖДЫЙ ИЗ KAHAЛOB MOЖET ;* БЫTЬ ЛИБO CBOБOДEH, ЛИБO ЗAHЯT ПPOЦECCOM. ПPOЦECC ;* ЗAHИMAET POBHO OДИH KAHAЛ, ПOЭTOMY B ДAЛЬHEЙШEM ;* MЫ ЧACTO БYДEM OTOЖДECTBЛЯTЬ ЭTИ ДBA ПOHЯTИЯ. ;* ;* KAHAЛЫ 0:N-1 OTBEДEHЫ ДЛЯ ПPOЦECCOB OБPAБOTKИ ;* ПPEPЫBAHИЙ HA ПPOЦECCOPAX C HOMEPAMИ 0:N-1. ;* ЭTИ ПPOЦECCЫ ИMEЮT AБCOЛЮTHO BЫCШИЙ ПPИOPИTET, ;* T.K. ЗAПYCKAЮTCЯ AППAPATHO. BCE OCTAЛЬHЫE ;* ПPOЦECCЫ ЗAПYCKAЮTCЯ ПPOГPAMMHO, ИX ПPИOPИTETЫ ;* BЫЧИCЛЯЮTCЯ ДИHAMИЧECKИ И ПOЧTИ HE ЗABИCЯT OT ;* HOMEPA KAHAЛA (ПPИ ПPOЧИX PABHЫX YCЛOBИЯX ПPEД- ;* ПOЧTEHИE OTДAETCЯ KAHAЛY C MEHЬШИM HOMEPOM). ;* ;* KAHAЛЫ N:2N-1 ЗAKPEПЛEHЫ ЗA T.H. "ЖДYЩИM TECTOM". ;* ЭTИ ПPOЦECCЫ XAPAKTEPHЫ TEM, ЧTO HИKOГДA HE ДEЗ- ;* AKTИBИPYЮTCЯ И BCEГДA ГOTOBЫ "ПOДXBATИTЬ" ;* ПPOCTAИBAЮЩИЙ ПPOЦECCOP. ;* ;* KAHAЛ 2N ЗAKPEПЛEH ЗA ПPOЦECCOM ПEPECЧETA ПPИOPИ- ;* TETOB (YCЛOBHOE ИMЯ - NEWPRT). ЭTOT ПPOЦECC ;* AKTИBИЗИPYETCЯ ПPИ ИCЧEPПAHИИ YЧETHOГO KBAHTA ;* ЛЮБЫM ПPOЦECCOM, YЧACTBYЮЩИM B PAЗДEЛEHИИ BPEMEHИ. ;* ;* KAHAЛ 2N+1 ЗAKPEПЛEH ЗA ПPOЦECCOM YПPABЛEHИЯ ;* ПAMЯTЬЮ (YCЛOBHOE ИMЯ - SWING ИЛИ ПOДKAЧKA). ЭTOT ;* ПPOЦECC AKTИBИЗИPYETCЯ ПPИ CTPAHИЧHЫX ПPEPЫBAHИЯX ;* ИЛИ ПO CПEЦИAЛЬHЫM ЗAПPOCAM OT ДPYГИX ПPOЦECCOB. ;* ;* KAHAЛ 2N+2 ЗAKPEПЛEH ЗA ПPOЦECCOM YПPABЛEHИЯ ;* ДИCKAMИ (YCЛOBHOE ИMЯ - D_DRIVER). OH AKTИBИЗИ- ;* PYETCЯ ПO ЗAПPOCAM ПPOЦECCOB-ПOЛЬЗOBATEЛEЙ И OT ;* ПPEPЫBAHИЙ ПO KOHЦY ДИCKOBЫX OБMEHOB. ;* ;* KAHAЛ 2N+3 ЗAKPEПЛEH ЗA ПPOЦECCOM AHAЛИЗA CИCTEM- ;* HЫX COOБЩEHИЙ C OПEPATOPCKOЙ KOHCOЛИ (YCЛOBHOE ;* ИMЯ - TTANAL). ЭTOT ПPOЦECC, И BOOБЩE BCE C ПPИO- ;* PИTETOM HИЖE D_DRIVER, MOГYT БЫTЬ HEPEЗИДEHTAMИ. ;* ;* ФAKTИЧECKИ, BЫШE MЫ ПEPEЧИCЛИЛИ BCE ПOCTOЯHHO ;* ЖИBYЩИE B CИCTEME ПPOЦECCЫ, T.H. CИCTEMHHЫE. ;* BCE OCTAЛЬHЫE ПPOЦECCЫ - CMEPTHЫ. ЗAPOЖДAЯCЬ, ;* ПPOЦECC ЗAXBATЫBAET ПEPBЫЙ CBOБOДHЫЙ KAHAЛ, A ПO ;* OKOHЧAHИИ - OCBOБOЖДAET EГO. TAKИM OБPAЗOM, ПPO- ;* ЦECC OДHOЗHAЧHO ИДEHTИФИЦИPYETCЯ B CИCTEME PAЗДE- ;* ЛEHИЯ BPEMEHИ HOMEPOM CBOEГO KAHAЛA. ;* ;* HEMHOГO TEPMИHOЛOГИИ ;* ==================== ;* ;* ПPOЦECC CЧИTAETCЯ AKTИBHЫM, ECЛИ HET ПPИЧИH, ;* (KPOME HAЛИЧИЯ БOЛEE ПPИOPИTETHЫX KOHKYPEHTOB) ;* MEШAЮЩИX EMY ЗAXBATИTЬ ПPOЦECCOP. TAKИM OБPAЗOM, ;* ЛЮБOЙ ПPOЦECCOP B CИCTEME BCEГДA ЗAHЯT OДHИM ИЗ ;* AKTИBHЫX B ДAHHЫЙ MOMEHT ПPOЦECCOB. MHOЖECTBO ;* AKTИBHЫX ПPOЦECCOB OБPAЗYET OЧEPEДЬ, YПOPЯДOЧEHHYЮ ;* ПO YБЫBAHИЮ ПPИOPИTETOB. ;* ;* AKTИBИЗAЦИЯ ПPOЦECCA - BHECEHИE B OЧEPEДЬ. ECЛИ ;* HEAKTИBHOCTЬ БЫЛA "ПO BИHE CAMOГO ПPOЦECCA", ;* TO OHA BЛИЯET HA BEЛИЧИHY EГO ПPИOPИTETA. ;* ;* ДEЗAKTИBAЦИЯ ПPOЦECCA - ИЗЬЯTИE ИЗ OЧEPEДИ. ЭTИM ;* ЗAHИMAETCЯ БЛOK PEAKЦИИ HA ПPEPЫBAHИE, OБЫЧHO ;* ПO ИHИЦИATИBE CAMOГO ПPOЦECCA. ;* ;* CMEHA ПPOЦECCOB HA ПPOЦECCOPE - MEPOПPИЯTИE, HE ;* CBЯЗAHHOE C MOДИФИKAЦИEЙ OЧEPEДИ AKTИBHЫX ПPO- ;* ЦECCOB. TEKYЩИЙ ПPOЦECC ЛИБO YЖE БЫЛ ПPEPBAH ;* (BHEШHEE ПPEPЫBAHИE), ЛИБO CAM ИHИЦИИPOBAЛ ;* ПPOГPAMMHOE ПPEPЫBAHИE, B PEЗYЛЬTATE ЧEГO ;* ПPOЦECCOP ДOCTAЛCЯ БЛOKY OБPAБOTKИ ПPEPЫBAHИЯ. ;* ПOCЛEДHИЙ MOЖET ПPИHЯTЬ PEШEHИE OTДATЬ ПPOЦEC- ;* COP HAИБOЛEE ПPИOPИTETHOMY ИЗ OЧEPEДИ AKTИBHЫX ;* ПPOЦECCOB (B ЧACTHOCTИ, TOMY ЖE CAMOMY). ;* ;* ;* ПAPAMETPЫ CИCTEMЫ PAЗДEЛEHИЯ BPEMEHИ. ;* ===================================== ;* ;* ГЛOБAЛЬHЫM ПAPAMETPOM CИCTEMЫ ЯBЛЯETCЯ E - ;* MИHИMAЛЬHЫЙ KBAHT. OH PABEH BPEMEHИ ПOДKAЧKИ OДHOЙ ;* CTPAHИЦЫ, OKPYГЛEHHOMY ДO БЛИЖAЙШEЙ CTEПEHИ 2. ;* EДИHИЦЫ ИЗMEPEHИЯ ДЛЯ E, TAK ЖE KAK И ДЛЯ ПPOЧИX ;* ПAPAMETPOB, ИЗOБPAЖAЮЩИX BPEMЯ, COBПAДAЮT C EДИHИ- ;* ЦAMИ PAБOTЫ CИCTEMHOГO TAЙMEPA ( 1 MKCEK.). ;* ;* ПPOЦECCЫ ДEЛЯTCЯ HA KЛACCЫ, TAK ЧTO ПPEДCTABИTEЛЬ ;* KЛACCA C БOЛЬШИM HOMEPOM БEЗYCЛOBHO ПPИOPИTETHEE ;* ПPEДCTABИTEЛЯ KЛACCA C MEHЬШИM HOMEPOM. HAПPИMEP ;* ;* 0 - ЖДYЩИЙ TECT, 1 - PEЗEPBHЫE ЗAДAЧИ, ;* 2 - ЗAДAЧИ ЮЗEPOB, 3 - CЛYЖEБHЫE, ;* 4 - ДИCПETЧEPCKИE. ;* ;* KAЖДOMY KЛACCY K COOTBETCTBYET CBOЯ BEЛИЧИHA ;* YЧETHOГO KBAHTA NK, HE ИЗMEHЯЮЩAЯCЯ BO BPEMЯ ;* PAБOTЫ OПEPAЦИOHHOЙ CИCTEMЫ. ;* ;* ПAPAMETPЫ OДHOГO ПPOЦECCA. ;* ========================== ;* ;* P - BHEШHИЙ ПPИOPИTET. MEHЯETCЯ OПEPATOPOM ИЛИ ;* ПЛAHИPOBЩИKOM BЫCOKOГO YPOBHЯ. BPEMЯ ДEЛИTCЯ ;* MEЖДY ПPOЦECCAMИ ПPЯMO ПPOПOPЦИOHAЛЬHO ИX ;* BHEШHИM ПPИOPИTETAM. ;* ;* Q - HOPMИPOBAHHЫЙ KBAHT. YCTAHABЛИBAETCЯ ПPИ CAMOЙ ;* ПEPBOЙ AKTИBИЗAЦИИ ПPOЦECCA (POЖДEHИE ПPOЦECCA) ;* A TAKЖE ПPИ BXOДE B ДИAЛOГ C ДEЗAKTИBAЦИEЙ. ;* MOЖET ИЗMEHИTЬCЯ B MOMEHT ЗAXBATA ПPOЦECCOPA. ;* ;* T = P*Q*E - AБCOЛЮTHAЯ BEЛИЧИHA KBAHTA. OПPEДE- ;* ЛЯET HAЧAЛЬHOE ЗHAЧEHИE TAЙMEPA, YПPABЛЯЮЩEГO ;* PAЗДEЛEHИEM BPEMEHИ. MEHЯETCЯ ПPИ ИЗMEHEHИЯX ;* P ИЛИ Q. ;* ;* C - CЧETЧИK BPEMEHИ, OCTABШEГOCЯ ДO KOHЦA KBAHTA. ;* ПOKA ПPOЦECC PAБOTAET HA ПPOЦECCOPE, CЧETЧИK ;* COOTBETCTBYET TAЙMEPY. B ПEPИOД HEAKTИBHOCTИ ;* C MOГYT YMEHЬШИTЬ (ШTPAФ ЗA ПPOCTOЙ PECYPCOB). ;* ;* N - ДИHAMИЧECKAЯ XAPAKTEPИCTИKA ИCПOЛЬЗOBAHИЯ BPE- ;* MEHИ. CЮДA ДOБABЛЯETCЯ Q ИЛИ EГO ДOЛЯ, ECЛИ ;* KBAHT ИCПOЛЬЗOBAH HE ПOЛHOCTЬЮ. B CИTYAЦИИ ;* N => NK N-XAPAKTEPИCTИKИ ПEPECЧИTЫBAЮTCЯ Y ;* BCEX ПPOЦECCOB ДAHHOГO KЛACCA K. ;* ;* DP = [ (NK-N)/Q ] - ДИHAMИЧECKИЙ ПPИOPИTET ПPO- ;* ЦECCA. ПPOЦECCOP ПPEДOCTABЛЯETCЯ AKTИBHOMY ;* ПPOЦECCY C MAKCИMAЛЬHЫM DP. ;* ;* TD - ACTPOHOMИЧECKOE BPEMЯ ДEЗAKTИBAЦИИ ПPOЦECCA. ;* AT - TEKYЩEE ACTPOHOMИЧECKOE BPEMЯ. ;* ;* PCW PCBIT TCPQUE:SUBP QF GIVGROUP:SUBP QF EXTINTER:SUBP QF BRANCH:SUBP QF CDEF ; TPP PP_ADR:LCB (1024-8),CLOCK ; ЧACЫ ; PSYS SPORT IFP ; GROUP ; ; TEKYЩEE ЗHAЧEHИE TAЙMEPA PAЗДEЛEHИЯ BPEMEHИ ; ДЛЯ KAЖДOГO ПPOЦECCOPA XPAHИTCЯ B PEГИCTPE ; "TIMER" 0-Й ГPYППЫ PEГИCTPOB ЭTOГO ПPOЦECCOPA ; MODIF ; P:EQU P1 ; ЛOГ.BHEШ.ПPИOP. Q:EQU P2 ; ЛOГ.HOPM.KBAHTA T:EQU NP ; AБC.BEЛ.KBAHTA C:EQU RI ; OCTATOK KBAHTA N:EQU PA ; XAPAKTEPИCTИKA K:EQU IA ; KЛACC ПPOЦECCA ; MAX_CL:EQU 8 ; ЧИCЛO KЛACCOB EMIN:EQU @80000 ; MИH.KBAHT ELOG:EQU 19 ; EГO ЛOГAPИФM CONST ; ; YЧETHЫE KBAHTЫ ДЛЯ MAX_CL KЛACCOB ; ; NK:INTQ @8000,@4000,@2000,@1000,@800,@400,@200,@100 ; DPMASK:HEX 0000 00FF FF00 FFFF ; CMD ; ;MOZY=80881 ; - MAINBLCS ;* ;* TEKYЩИЙ ПPOЦECC CЛEЗAET C ПPOЦECCOPA ;* ==================================== ;* MAINBLCS: CMEHA: NCPU ATI CP ITA NG ; ЗAПOMHИM HOMEP ASFT 5 ; ПOCЛ.ГPYППЫ TN ATB NGROUP JAEQ REFCPU ITA CP REFCPU:TN ATB NCPU TN VTM JAEQ SELECT RMOD TIMER JAEQ SELECT ; ПOBTOPHO ATI T NG RMOD TIMER ; KOPPEKЦИЯ A+H KVANT<<1 ; OCTATKA KBAHTA: A-I T ATH KVANT<<1 ; C = C - (T1-T2) UTA WMOD TIMER ;* ;* ;* BЫБOP ПPOЦECCA HA ПPOЦECCOP. ;* ============================ ;* ;* PAБOTA ПPOИЗBOДИTCЯ OT ИMEHИ БЛOKA PEAKЦИИ HA ПPE- ;* PЫBAHИE. ПOCЛEДOBATEЛЬHO CKAHИPYETCЯ OБЩAЯ OЧEPEДЬ ;* AKTИBHЫX ПPOЦECCOB RDQUE. ПPИ ЭTOM HE ПOДЛEЖAT ;* PACCMOTPEHИЮ ПPOЦECCЫ : ;* - ПPИBЯЗAHHЫE K ЧYЖOMY ПPOЦECCOPY ; ;* - ЖДYЩИE ПOДKAЧKИ, ECЛИ SWING B ЭTO BPEMЯ ЗAHЯT; ;* Y BЫБPAHHOГO ПPOЦECCA PACCMOTPИM CЧETЧИK C BPE- ;* MEHИ, OCTABШEГOCЯ ДO KOHЦA KBAHTA. ;* ;* S1. ECЛИ C > 0, TO ПPOЦECC ИMEET ПPABO ДEPЖATЬ ПPO- ;* ЦECCOP EЩE C EДИHИЦ BPEMEHИ. KOHEЦ PAБOTЫ БЛOKA. ;* S2. C <= 0, Q < NK/4. (KBAHT ЛOПHYЛ). YДBAИBAEM ;* KBAHT: C=C+T; T=2*T; Q=2*Q И CHOBA HA S1. ;* S3. C <= 0, Q => NK/4. (БOЛЬШOЙ ПEPEPACXOД BPEMEHИ). ;* HEOБXOДИM ПEPECЧET DP : C=C+T; N=N+Q; ;* DP=[(NK-N)/Q]. ПPOДOЛЖAEM S3, ПOKA C <= 0 . ;* S4. ECЛИ B ИTOГE ПOЛYЧИЛOCЬ N => NK , YЙДEM HA S5. ;* ИHAЧE ПEPECTABИM HAШ ПPOЦECC B RDQUE COOTBETCT- ;* BEHHO EГO HOBOMY DP И BEPHEMCЯ B HAЧAЛO БЛOKA ;* BЫБOPA ПPOЦECCA. ;* S5. ЗAПYCK CПEЦ.ПPOЦECCA ПEPECЧETA ПPИOPИTETOB. ;* ПPOCTABИM B ШKAЛY RECALC "1", COOTBETCTBYЮЩYЮ ;* KЛACCY K. ECЛИ NEWPRT HEAKTИBEH, BHECEM EГO B ;* RDQUE И BEPHEMCЯ B HAЧAЛO БЛOKA BЫБOPA ПPOЦECCA. ;* ECЛИ NEWPRT AKTИBEH (HAПPИMEP, HA COCEДHEM ПPO- ;* ЦECCOPE) - KOHEЦ PAБOTЫ БЛOKA. ;* ;* ЗAMEЧAHИE: BEЛИЧИHЫ P И Q ПPEДCTABЛEHЫ CBOИMИ ;* ДBOИЧHЫMИ ЛOГAPИФMAMИ И ЗAHИMAЮT ПO 1 БAЙTY, ;* ACCOЦИИPOBAHHOMY C HOMEPOM ПPOЦECCA. ;* ;* SELECT:TN BTA RDQUE ATI TN ; CЛEД.ЭЛ-T XTA SWPORT JAEQ SEL20 ; FREE SWING TN XTA PCW AAN BL_SEL JANE SELECT ; ЖДET ПOДKAЧKИ ; SEL20:TN BTA NCPU JAEQ SEL30 ; HE ПPИBЯЗAH AEI CP JANE SELECT ; ЧYЖOЙ CPU ; SEL30:TN XTA PCW JALT IFABS ; - HET ИП TN ПPИП1 R VJM GIVGROUP ; ЗA ГPYППOЙ NG JMEQ SELECT ; - HE ДAЛИ HTA KVANT<<1 ATI C C JMGT RETURN ; - HE ЛOПHYЛ ; TN BTA EX_PRI ATI P TN BTA Q_NORM ATI Q TN XTA TABPRT ATI N ASFT 48 AAU @FF ATI K ITA N AAU @FFFF ATI N P UTC ELOG-1 Q NTA @400 ATI T R VTM RETURN ; ; SEL40:K QTA NK SEL40:K NTA 64-16 Q ASFT 2 JAEQ SEL50 ; Q=> NK/4 T J+M C T MSFT -1 Q UTM 1 C JMLE SEL40 JMP CALCPRT1 ; SEL50:Q NTA @400 A+I N ATI N T J+M C C JMLE SEL50 ; CALCPRT1: TN BTA RDQUE ATI NP ; K QTA NK K NTA 64-16 A-I N :JAGT *+1 R VTM INITCALC ; N => NK :Q ASN @400-24 AOI N TN AEX TABPRT AAX DPMASK TN AEX TABPRT TN ATX TABPRT ; HE CЛИШKOM ЛИ NP A-L TABPRT ; CИЛЬHO ПOHИЗИЛИ :JAGE *+1 R VTM INITCALC :ITA Q ; ЗAПИCЬ TN ATB Q_NORM ; ИЗMEHИBШИXCЯ ITA C ; Q И C ATH KVANT<<1 ; HA CBOE MECTO I VTM ; OCBEЖИM TAЙMEP JMPS TCPQUE ;PAЗДEЛEHИЯ BPEMEHИ :WMOD TIMER ; ЗACEЧKA R JMP ; ; И П BЫБPAHHOГO ПPOЦECCA OTKAЧAHO. ; ЗAПYCTИM, ECЛИ MOЖHO, ПOДKAЧKY. ; IFABS:AON BL_SEL TN ATX PCW XTA SWPORT JANE SELECT ; SWING ЗAHЯT ITA TN ASFT -32 AOU IF_LIST ATX SWPORT NP VTM N_SWING JMP ACTIVATE ; INITCALC: K NTA AOX RECALC ATX RECALC UTA WMOD TIMER NP VTM N_WINDOW ;* ;* AKTИBИЗAЦИЯ ПPOЦECCA NP. ;* ========================= ;* ;* ПPOЦECC NP BHOCИTCЯ B CПИCOK ГOTOBЫX. OCTATOK EГO ;* KBAHTA C YMEHЬШAETCЯ ПPOПOPЦИOHAЛЬHO ACTP.BPEMEHИ ;* HEAKTИBHOCTИ И ЧИCЛY CTPAHИЦ B OЗY. ;* ПOPTЯTCЯ: I,J,RR. BЫXOД HA SELECT ИЛИ RETURN. ;* ACTIVATE: NP TEMP4 RR VTM ACTIV1 NP XTA PCW JALT SETRDQ ; HET ИП AAN P_SYST JANE SETRDQ ; CИCTEMHЫЙ NP ПPИП QTA PCNT<<2 +3 ; CTP.B OЗY XTS TCLOSE ; BPEMЯ A-L CLOCK ; HEAKTИBHOCTИ 15 A*L ; YMHOЖAEM HA A/L QPAGE ; ПPOЦ.CTPAHИЦ H-A KVANT<<1 ATH KVANT<<1 TN ПPИП ; ; BHECEHИE ПPOЦECCA NP B CПИCOK ГOTOBЫX: ; SETRDQ:NP XTA PCW AAN READY_ RR JANE ; YЖE БЫЛ ГOTOB NP XTA PCW AON READY_ NP ATX PCW I VTM ; SETQ: I MTJ J J BTA RDQUE ATI I I XTA TABPRT NP A-L TABPRT JAGT SETQ ITA NP J ATB RDQUE ITA I NP ATB RDQUE RR JMP ; ; ; ECЛИ ПPOЦECC NP ПPИBЯЗAH K ЧYЖOMY ПPOЦECCOPY, ; TOMY ПOCЫЛAETCЯ ПPEPЫBAHИE "CMEHИ ПPOЦECC". ; ECЛИ NP ПPИOPИTETHEE, ЧEM TN, CMEHA ПPOЦECCA ; YЧИHЯETCЯ HA HAШEM ПPOЦECCOPE. ; ACTIV1: NCPU ATI CP TN XTA TABPRT NP A-L TABPRT JAGE LOW NP BTA NCPU JAEQ CMEHA AEI CP JAEQ CMEHA LOW:NP BTA NCPU AEI CP JAEQ RETURN ; ; ЗДECЬ HAДO ПOCЛATЬ ДPYГИM ЦП ; ПPEPЫBAHИE: "ECTЬ KЛИEHT" ; KAK ЭTO ДEЛATЬ - ПOKA HEЯCHO ; ;* ;*** BOЗBPAT ИЗ ПPEPЫBAHИЯ ;* RETURN: CMON -1 RMOD @1802 ; Г P П AAX WELL_INT WMOD @1802 JANE EXTINTER R VJM BRANCH ; HA BETBЛEHИE NG IJP ; B ПPOЦECC ;* ;* ДEЗAKTИBAЦИЯ TEKYЩEГO ПPOЦECCA ;* (CПEЦИAЛЬHЫЙ CЛYЧAЙ: ДИAЛOГ) ;* ============================== ;* DDACTIV: JMP DESACTIV ; - BPEMEHHO ДO BЫЯCHEHИЯ TN BTA EX_PRI ATI P ; ПPИOP. TN XTA TABPRT ASFT 48 AAU @FF ATI K ; KЛACC TN XTA TABPRT AAU @FFFF ATI N ; K QTA NK K NTA 64-16 ASFT 2 ATI Q ; NK/4 A*U 3 A-I N :JALE QLOG ; N=>3*NK/4 QTA PCNT<<2 +3 ATI Q QLOG:ITA Q ; ПEPEXOД K LOG2 ; ДBOИЧH.ЛOГAPИФMY ATI Q NG RMOD TIMER ATI R RMOD TIMER A-I R P ASFT ELOG A+I N ; ДOЛЯ Q ATI N R VTM CMEHA UTC CALCPRT1-CMEHA ;* ;* OБЫЧHЫЙ BAPИAHT ДEЗAKTИBAЦИИ ;* ============================ ;* DESACTIV:RR VTM CMEHA TN MTJ NP XTA CLOCK ATX TCLOSE ; DELRDQ:NP XTA PCW AAN READY_ RR JAEQ NP AEX PCW NP ATX PCW I VTM ; DELQ: I MTJ J J BTA RDQUE ATI I RR JAEQ AEI NP JANE DELQ NP BTA RDQUE J ATB RDQUE UTA NP ATB RDQUE RR JMP ;* ;* ;* OБЩИЙ ПEPECЧET ПPИOPИTETOB ;* ========================== ;* ;* ЭTO ДИCПETЧEPCKИЙ ПPOЦECC, PAБOTAЮЩИЙ HA KAHAЛE 1. ;* EГO ИHФOPMAЦИOHHAЯ БAЗA COCTOИT ИЗ ДBYX OБЬEKTOB: ;* 1. RECALC - ШKAЛA KЛACCOB, TPEБYЮЩИX ПEPECЧETA; ;* 2. TABPRT - TAБЛИЦA ПPИOPИTETOB ПPOЦECCOB; ;* 64 56 48 40 24 16 1 ;* :----:----:----:--------:----:--------: ;* : C1 : K : C2 : DP : P1 : N : ;* :----:----:----:--------:----:--------: ;* ;* KAЖДOMY ПPOЦECCY OTBOДИTCЯ OДHO CЛOBO TABPRT. ;* K - KЛACC ПPOЦECCA; DP - EГO ДИHAM.ПPИOPИTET; ;* N - XAPAKTEPИCTИKA ИCПOЛЬЗOBAHИЯ BPEMEHИ; ;* P1=256- . ЭTO ПOЛE BBOДИTCЯ ДЛЯ ;* TOГO, ЧTOБЫ ПPИ ПPOЧИX PABHЫX YCЛOBИЯX ПPEДПO- ;* ЧTEHИE OTДABAЛOCЬ ПPOЦECCY C MEHЬШИM HOMEPOM. ;* C1,C2 - CЧETЧИKИ BЛOЖEHHЫX KPИT.ИHTEPBAЛOB. ;* ПPИ BXOДE (BЫXOДE) B KPИT.ИHTEPBAЛ ПPOЦECC ;* YBEЛИЧИBAET (YMEHЬШAET) HA 1 ЛИБO C1, ЛИБO C2, ;* B ЗABИCИMOCTИ OT TИПA COOTBETCTBYЮЩEГO CEMAФOPA. ;* ;* S1. ECЛИ RECALC ПYCTA - ДEЗAKTИBИPYEMCЯ. ИHAЧE ;* ПOЛOЖИM K = HOM.KЛACCA, COOTB. CTAPШEЙ "1". ;* S2. ПOИCK B TABPRT OЧEPEДHOЙ CTPOKИ KЛACCA K. ;* ECЛИ BCЯ TAБЛИЦA ПPOCMOTPEHA - ПOГACИM "1" B ;* RECALC И BEPHEMCЯ K S1. ;* S3. ЗAKPЫTЬ ПPEPЫBAHИЯ. ДЛЯ BЫБPAHHOГO ПPOЦECCA ;* ПOBTOPЯTЬ N=N-NK/4, ПOKA N => NK . ;* S4. BЫЧИCЛИTЬ DP=[(NK-N)/Q]. ПEPECTABИTЬ ПPOЦECC ;* B RDQUE, ECЛИ OH БЫЛ AKTИBEH. OTKPЫTЬ ПPEPЫBA- ;* HИЯ И BEPHYTЬCЯ K S2. ;* ;* ; ЧTOБЫ HE MYЧИTЬCЯ C YKAЗAHИEM TOЧKИ BXOДA ПPИ ; AKTИBИЗAЦИИ ПPOЦECCA, ПPИMEM CЛEДYЮЩИE COГЛAШEHИЯ: ; 1. ПPИ ИHИЦИAЛИЗAЦИИ CИCTEMЫ BCE CИCTEMHЫE ПPOЦECCЫ ; ЯBЛЯЮTCЯ AKTИBHЫMИ. TOЧKOЙ BXOДA ЯBЛЯETCЯ ПEPBAЯ ; KOMAHДA ПPOЦECCA. ; 2. ЖEЛAЯ ДEЗAKTИBИPOBATЬCЯ, ПPOЦECC OPГAHИЗYET ПPO- ; ГPAMMHOE ПPEPЫBAHИE (MAKPOC "PINT"). ПOCЛEДYЮЩAЯ ; AKTИBИЗAЦИЯ BOЗOБHOBЛЯET ПPOЦECC C ПPEPBAHHOГO ; MECTA. ; PRT_FIN: UTA 5 PINT NEW_PRT: SMON БBП XTA RECALC JAEQ PRT_FIN ANU -1 ATI K K NTA AEX RECALC ATX RECALC ; K QTA NK K NTA 64-16 ATI P ASFT 2 ATI T ; NK/4 NP VTM QPROC-1 ; S_CLASS:NP XTA TABPRT CMON БBП ASFT 48 AAU @FF AEI K JANE ES_CLASS NP BTA Q_NORM ATI Q NP XTA TABPRT AAU @FFFF ATI N CALC1:T J-M N ; N=N-NK/4 ITA P A-I N JALE CALC1 SMON БBП Q ASFT 24 AOI N NP AEX TABPRT AAX DPMASK NP AEX TABPRT NP ATX TABPRT RR VJM DELRDQ ; ИЗЫMEM И BCTABИM JAEQ ES_CLASS ; BHOBЬ COГЛACHO RR VJM SETRDQ ; HOBOMY ПPИOPИTETY ; ES_CLASS:TN VRM S_CLASS JMP NEW_PRT ; ; END GIVGROUP:NAME QF RETGROUP:ENTRY QF RESGROUP:ENTRY QF ;* ;*************************************************** ;* * ;* PACПPEДEЛEHИE ГPYПП PEГИCTPOB ПPOЦECCOPA * ;* * ;*************************************************** ;* 6.06.88. A.П.CAПOЖHИKOB ;* POPGRUP:SUBP QF PUSHGRUP:SUBP QF DESACTIV:SUBP QF PCW PCBIT GROUP MODIF ; ; ШKAЛA CBOБOДHЫX ГPYПП PEГИCTPOB ПPOЦECCOPA ; XPAHИTCЯ B ПOCЛEДHEM PEГИCTPE 0-Й ГPYППЫ. ; EE HAЧAЛЬHOE COCTOЯHИE = 1FFF FFFF ; ; ГPYППA 0 ПPИHAДЛEЖИT ПPOЦECCY OБPAБOTKИ ПPEPЫBAHИЙ ; ГPYППA 1 ПPИHAДЛEЖИT ПPOЦECCY "ЖДYЩИЙ TECT" ; ГPYППA 2 ИCПOЛЬЗYETCЯ, ECЛИ HET CBOБOДHЫX, HO ЛИШЬ ; CИCTEMHЫMИ ПPOЦECCAMИ. ПPEЖHИЙ EE BЛAДE- ; TEЛЬ ПPИ ЭTOM BЫTAЛKИBAETCЯ B ИП. ; FRG_SC:EQU @1F ; ;MOZY=809E2 ; - GIVGROUP ; GIVGROUP: TN BTA NGROUP ATI NG ; ГPYППA ECTЬ NG MSFT -5 NG RMOD GRBOSS AEI TN R JAEQ ; - ДA ; RMOD FRG_SC JAEQ EXPROP ANU -33 ATI NG RMOD FRG_SC NG AEN 32 WMOD FRG_SC NG MSFT -5 JMP POP ; ; ECЛИ HET CBOБOДHЫX ГPYПП, OГPAБИM BЛAДEЛЬЦA ; 2-Й, OTOБPAB ПOCЛEДHЮЮ ГPYППY B EГO ЦEПOЧKE. ; EXPROP:NG VTM 2<<5 NG RMOD GRBOSS JAEQ POP ; OHA CBOБOДHA ATI NP ; EE BЛAДEЛEЦ NP BTA NGROUP ASFT -5 JANE S_LAST HLT 1 ; KAPAYЛ ! S_LAST:ATI NG NG RMOD PPP ASFT 16-5 AAU @3E0 JANE S_LAST TN XTA PCW AAN P_SYST AOI NG AEU 2<<5 JANE EXPROP1 NG VTM ; - OTЛYП ! R JMP ; ; ГACИM CCЫЛKY HA "NG" B ПPEДЫДYЩEЙ ГPYППE ; ПPOЦECCA "NP". ; EXPROP1:NG RMOD PPP ASFT 8-5 AAU @3E0 ATI W W RMOD PPP AAU @FFFF W WMOD PPP NP BTA NGROUP ASFT -5 AEI NG JANE POP ; PEЗEPBHAЯ NP ATB NGROUP W JMNE PUSH NP ATB NCPU ; OTBЯЗKA OT ЦП ; PUSH: RR VJM PUSHGRUP ; ; ПPИBЯЗKA K ПPOЦECCOPY И ЗAПOЛHEHИE AKTИBHOЙ ; ГPYППЫ PEГИCTPOB ИЗ ИHФ.ПOЛЯ ПPOЦECCA. ; POP:ITA NG ASFT 5 TN ATB NGROUP ITA CP TN ATB NCPU TN MTJ NP R MTJ RR JMP POPGRUP ; ; BOЗBPAT BCEЙ ЦEПOЧKИ ГPYПП PEГИCTPOB. ; (ПEPEД ЗABEPШEHИEM ЖИЗHИ ПPOЦECCA). ; RETGROUP: NG MSFT 5 RMOD FRG_SC NG AON 32 WMOD FRG_SC NG MSFT -5 UTA NG WMOD GRBOSS NG RMOD PPP ASFT 8-5 AAU @3E0 ATI NG JANE RETGROUP JMP DESACTIV ; ; ЗAПPOC ПPOЦECCOM ДЛЯ CEБЯ PEЗEPBHOЙ ГPYППЫ ; PEГИCTPOB. OTBET HA CYMMATOPE: ; 0 - ГPYППY HE ДAЛИ, HET CBOБOДHЫX. ; ИHAЧE - HOMEP ГPYППЫ B 6:10 PAЗPЯДAX ; PEЗEPBHAЯ ГPYППA OTMEЧAETCЯ B PPP ПPOЦECCA ; RESGROUP:NG RMOD PPP ASFT 16-5 AAU @3E0 R JANE ; YЖE ECTЬ ! RMOD FRG_SC R JAEQ ; HET CBOБ. ANU -33 ATI W RMOD FRG_SC W AEN 32 WMOD FRG_SC W MSFT -16 NG RMOD PPP AOI W AON 64-22 NG WMOD PPP W MSFT 16-5 AAU @FF ; TEГ NG MSFT 5-8 AOI NG NG MSFT 8-5 AON 64-14 W WMOD PPP ITA TN W WMOD GRBOSS ITA W R JMP ; END POPGRUP:NAME QF PUSHGRUP:ENTRY QF ;* ;*** OБMEH ИHФOPMAЦИEЙ MEЖДY ИHФOPMAЦИOHHЫM ПOЛEM ;* ПPOЦECCA NP И ГPYППOЙ EГO PEГИCTPOB NG . ;* ;* :-------------------------: ;* 0 : BPEMЯ CЧETA : ;* 1 : TAЙMEP : PEЗEPB : ;* 2 : P A B : P A П Y :===\ ;* :-------------------------: I ;* ................. I ;* :-------------------------: I ;* PAПY-16 : И 1 : И2 : I ;* : ......... : I ;* -9 : И 1 5 : И 1 6 : I ;* -8 : C Ч A C : P O П : I ;* -7 : P P : P P P : I ;* -6 : CYMMATOP : I ;* -5 : P M P : I ;* -4:-1 : PAБOЧИE ЯЧEЙKИ : I ;* :-------------------------: I ;* PAПY : HAЧAЛO HOBOГO KBAHTA :<==/ ;* PCW:LCB (0) IFP GROUP MODIF ; CMD ; ;MOZY=80AD0 ; - POPGRUP ; POPGRUP: NP ПPИП NP XTA PCW AAU @3FF ATI W W XTA IFCTIM ; BPEMЯ CЧETA NG WMOD CTIME+1 ASFT 32 NG WMOD CTIME W XTA IFTIMER ; TAЙMEP NG WMOD TAIL ASFT 32 NG WMOD TIMER W XTA ASTEC ; PAB,PAПY ATI W ASFT 32 NG WMOD SPRADR W XTA -5 ; PMP NG WMOD PMP+1 ASFT 32 NG WMOD PMP W XTA -6 ; CYMMATOP NG WMOD ACC+1 ASFT 32 NG WMOD ACC W XTA -7 ; PP,PPP NG WMOD PPP ASFT 32 NG WMOD PP W XTA -8 ; CЧAC,POП NG WMOD POП ASFT 32 NG WMOD CЧAC W XTA -9 ; И15,И16 NG WMOD 16 ASFT 32 NG WMOD 15 W XTA -10 ; И13,И14 NG WMOD 14 ASFT 32 NG WMOD 13 W XTA -11 NG WMOD 12 ASFT 32 NG WMOD 11 W XTA -12 NG WMOD 10 ASFT 32 NG WMOD 9 W XTA -13 NG WMOD 8 ASFT 32 NG WMOD 7 W XTA -14 NG WMOD 6 ASFT 32 NG WMOD 5 W XTA -15 NG WMOD 4 ASFT 32 NG WMOD 3 W XTA -16 NG WMOD 2 ASFT 32 NG WMOD 1 ITA TN NG WMOD GRBOSS W UTA -16 NG WMOD PAПY RR JMP ; ; PUSHGRUP: NP ПPИП NP XTA PCW AAU @3FF A+U IFCTIM ATI W W MSFT -1 NG RMOD CTIME W ATH NG RMOD CTIME+1 W ATH 1 NG RMOD TIMER W ATH 2 NG RMOD TAIL W ATH 3 NG RMOD SPRADR W ATH 4 NG RMOD PAПY A+U 16 W ATH 5 A-U 16 ATI W W MSFT -1 NG RMOD 1 W ATH NG RMOD 2 W ATH 1 NG RMOD 3 W ATH 2 NG RMOD 4 W ATH 3 NG RMOD 5 W ATH 4 NG RMOD 6 W ATH 5 NG RMOD 7 W ATH 6 NG RMOD 8 W ATH 7 NG RMOD 9 W ATH 8 NG RMOD 10 W ATH 9 NG RMOD 11 W ATH 10 NG RMOD 12 W ATH 11 NG RMOD 13 W ATH 12 NG RMOD 14 W ATH 13 NG RMOD 15 W ATH 14 NG RMOD 16 W ATH 15 NG RMOD CЧAC W ATH 16 NG RMOD POП W ATH 17 NG RMOD PP W ATH 18 NG RMOD PPP W ATH 19 NG RMOD ACC W ATH 20 NG RMOD ACC+1 W ATH 21 NG RMOD PMP W ATH 22 NG RMOD PMP+1 W ATH 23 UTA NG WMOD GRBOSS RR JMP ; END SEMDOWN:NAME QF SEMUP:ENTRY QF ;* ;* Y CEMAФOPA ;* Я И MOЯ MAШA ... ;* (HAPOДHAЯ ПECHЯ) ;* ;************************************************** ;* * ;* O Ч E P E Д И П P O Ц E C C O B. * ;* C E M A Ф O P Ы . * ;* * ;************************************************** ;* 31.05.88. A.П.CAПOЖHИKOB. ;* ;* MЫ OTKAЗAЛИCЬ OT TPAДИЦИOHHЫX ДЛЯ БЭCM-6 БИTOBЫX ;* ШKAЛ ПPOЦECCOB И HAЧИHAEM ИCПOЛЬЗOBATЬ CПИCOЧHЫE ;* CTPYKTYPЫ. ПPИ ЭTOM HAM БYДET ДOCTATOЧHO ИMETЬ ;* CПИCKИ C OДHOЙ CBЯЗЬЮ. C KAЖДЫM J-M ПPOЦECCOM ;* ACCOЦИИPOBAH БAЙT, COДEPЖAЩИЙ HOMEP N ПPOЦECCA, ;* CЛEДYЮЩEГO ЗA J-M B OЧEPEДИ. ECЛИ N=0, TO ;* J - ПOCЛEДHИЙ B OЧEPEДИ. YKAЗATEЛЬ HAЧAЛA OЧEPE- ;* ДИ XPAHИTCЯ OTДEЛЬHO. B ЧACTHOCTИ, ЭTO MOЖET БЫTЬ ;* БAЙT ПPOЦECCA 0. ;* ;* I. OЧEPEДЬ ГOTOBЫX ПPOЦECCOB RDQUE. ;* ===================================== ;* AHAЛOГ ШKAЛЫ ГOTOBHOCTИ B OC "ДYБHA". HAЧAЛO ;* CПИCKA YKAЗЫBAET БAЙT ПPOЦECCA 0. CПИCOK CTPOИT- ;* CЯ ПO YБЫBAHИЮ ПPИOPИTETOB ПPOЦECCOB. CПИCOK HE ;* ПYCT, T.K. COДEPЖИT ПO KPAЙHEЙ MEPE "ЖДYЩИЙ TECT". ;* ЗAMEЧAHИE: Y ПPOЦECCA-0 "ПPИOPИTET" ДOЛЖEH БЫTЬ 0. ;* ;* ;* II. CEMAФOP ДOCTYПA K OБЩEЙ ПAMЯTИ. ;* =================================== ;* OH ПPEДHAЗHAЧEH ДЛЯ OБECПEЧEHИЯ BOЗMOЖHOCTИ MOHO- ;* ПOЛЬHOЙ PAБOTЫ C ПAMЯTЬЮ B TEЧEHИE KOPOTKOГO ПPO- ;* MEЖYTKA BPEMEHИ. PEAЛИЗYETCЯ CПEЦИAЛЬHЫM OБPAЩE- ;* HИEM K ЯЧEЙKE ПAMЯTИ, AДPEC KOTOPOЙ ИЗBECTEH ;* MИKPOПPOГPAMME. ПOKA MЫ TOЛЬKO OБOЗHAЧAEM MECTA, ;* ГДE ЭTOT CEMAФOP БYДET HEOБXOДИM, MAKPOCAMИ : ;* SMON - "YCTAHOBИTЬ MOHOПOЛИЮ" ;* CMON - "CHЯTЬ MOHOПOЛИЮ" ;* ;* KOMAHДA SMON БЛOKИPYET BHEШHИE ПPEPЫBAHИЯ HA ;* "CBOEM" ПPOЦECCOPE И BXOД B KPИT.ИHTEPBAЛ ДЛЯ ;* "ЧYЖИX" ПPOЦECCOPOB. ПOCЛEДHИE B ЭTOM CЛYЧAE ;* ПPOCTO "ЖYЖЖAT" HA OПPOCE ЗAHЯTOCTИ CEMAФOPA. ;* ;* KOMAHДA CMON PAЗPEШAET BHEШHИE ПPEPЫBAHИЯ HA ;* "CBOEM" ПPOЦECCOPE И OCBOБOЖДAET KPИT.ИHTEPBAЛ ;* ДЛЯ COCEДHИX ПPOЦECCOPOB. ;* ;* ;* III. ПPOЧИE CEMAФOPЫ. ;* ===================== ;* OHИ ПPEДHAЗHAЧEHЫ ДЛЯ OБCЛYЖИBAHИЯ KPИTИЧECKИX ;* ИHTEPBAЛOB, BHYTPИ KOTOPЫX ПPOЦECCЫ ЗAHИMAЮTCЯ ;* ДOCTATOЧHO БOЛЬШOЙ PAБOTOЙ, HAПPИMEP, OБMEHAMИ. ;* ЗДECЬ HE ЖAЛKO ПOЙTИ HA PACXOДЫ ПO OPГAHИЗAЦИИ ;* ПPOГPAMMHO YПPABЛЯEMЫX OЧEPEДEЙ K KPИT.ИHTEPBA- ;* ЛAM. CEMAФOPЫ БЫBAЮT ДBYX TИПOB, OДHИ ПOBЫШAЮT ;* KЛACC ПPOЦECCA, ЗAXBATИBШEГO KPИTИЧ. ИHTEPBAЛ, ;* ДPYГИE HE ПOBЫШAЮT. C KAЖДЫM CEMAФOPOM CBЯЗAHЫ ;* ДBA БAЙTA: ;* BOSS - COДEPЖИT HOMEP ПPOЦECCA, ЗAXBATИBШEГO ;* KPИT.ИHTEPBAЛ, ИЛИ 0. ;* WAIT - COДEPЖИT YKAЗATEЛЬ HAЧAЛA OЧEPEДИ ;* ЖДYЩИX ПPOЦECCOB, ИЛИ 0 ;* ;* ПPOЦECC, ЗAXBATЫBAЮЩИЙ CEMAФOP, PEГИCTPИPYETCЯ ;* B ПOЛE "BOSS", A TAKЖE YBEЛИЧИBAET HA 1 CЧETЧИK ;* C1 ИЛИ C2 B CЛOBE CBOEГO ПPИOPИTETA. ;* ECЛИ ЖE CEMAФOP ЗAHЯT, ПPOЦECC BHOCИTCЯ B OЧEPEДЬ ;* ЖДYЩИX И ИЗЫMAETCЯ ИЗ OЧEPEДИ ГOTOBЫX. ;* TAK KAK ЛЮБOЙ ПPOЦECC MOЖET ЖДATЬ HE БOЛEE ЧEM Y ;* OДHOГO CEMAФOPA, TO OЧEPEДЬ ЖДYЩИX CAM БOГ BEЛEЛ ;* COBMECTИTЬ C RDQUE. ;* ;* ПPИ OCBOБOЖДEHИИ CEMAФOPA OЧEPEДЬ ЖДYЩИX ПPOДBИ- ;* ГAETCЯ, CEMAФOP TYT ЖE OTДAETCЯ ПEPBOMY ИЗ HИX, ;* И ECЛИ ЭTO HEOБXOДИMO, ПPOИЗBOДИTCЯ ПEPECЧET ;* ПPИOPИTETOB ПPOЦECCOB. ;* DESACTIV:SUBP QF ACTIV1:SUBP QF RETURN:SUBP QF SETQ:SUBP QF DELQ:SUBP QF ; PCW PCBIT SEMAF ; MODIF ; CONST CLNS:HEX FFFF FF00 FFFF FFFF ; CMD ;* ;* SEMDOWN - ЗAXBAT CEMAФOPA. HOMEP CEMAФOPA HA ;* PEГИCTPE IA, BOЗBPAT ПO R. ПOPTЯTCЯ: I,J,NP,RR. ;* ;MOZY=80B1A ; - SEMDOWN ; SEMDOWN: TN MTJ NP IA BTA SEMBOSS<<3 JAEQ FREE ; - CBOБOДEH AEI TN JAEQ RETURN ; - CBOЙ IA UTC I VTM SEMWAIT<<3 - RDQUE RR VJM SETQ ; B OЧEPEДЬ ЖДYЩИX IA ITA @C0 ASFT -32 TN AOX PCW ; ЗAПOMHИM TN ATX PCW ; HOMEP CEMAФOPA JMP DESACTIV ; FREE:ITA NP IA ATB SEMBOSS<<3 RR VTM RETURN JMP PRIUP ;* ;* SEMUP - OCBOБOЖДEHИE CEMAФOPA. HOMEP CEMAФOPA ;* HA PEГИCTPE IA, BOЗBPAT ПO R. ПOPTЯTCЯ: I,J,NP,RR. ;* SEMUP: IA BTA SEMBOSS<<3 AEI TN JANE RETURN ; И HE ЗAHИMAЛИ! TN UTC I VTMB TABPRT XTA SCSEM IA AAN :JANE *+1 I UTM 2 :I BTA ; BOCCTAHOBЛEHИE JAEQ NEWBOSS ; CTAPOГO A-U 1 ; ПPИOPИTETA I ATB ; NEWBOSS: IA BTA SEMWAIT<<3 IA ATB SEMBOSS<<3 JAEQ RETURN ; HИKTO HE ЖДET ATI NP NP XTA PCW AAX CLNS NP ATX PCW IA MTJ I I UTM SEMWAIT<<3 - RDQUE RR VJM DELQ ; ИЗ OЧ.ЖДYЩИX I VTM RR VJM SETQ ; B ГOTOBЫE RR VTM ACTIV1 ; PRIUP:XTA SCSEM IA AAN :JANE *+1 UTC 16 :NTA 64-57 ; BPEMEHHOE NP A+L TABPRT ; ПOBЫШEHИE NP ATX TABPRT ; ПPИOPИTETA RR JMP ; END OЧEPEДЬ:NAME QF ;* ;* OЧEPEДЬ - ЭTO ФOPMA CYЩECTBOBAHИЯ ;* ЧEЛOBEKA B COЦИAЛИCTИЧECKOM OБЩE- ;* CTBE. (HAPOДHAЯ MYДPOCTЬ). ;* ;**************************************************** ;* * ;* YПPABЛEHИE OЧEPEДЯMИ ЗAЯBOK HA OБMEHЫ * ;* * ;**************************************************** ;* ИЗOЧEP:ENTRY QF SMEM_UP:ENTRY QF ;* OБMOЧ ;* ;* ПOCTYПAЮЩИE B CИCTEMY ЗAЯBKИ HA OБMEHЫ CKЛAДЫBA- ;* ЮTCЯ B OБЩYЮ KYЧY ЗAЯBOK (JOB), ГДE ПOЛYЧAЮT ;* ИHДEKC J=1,2,...,MAXJOB. C KAЖДЫM KAHAЛOM OБMEHA ;* N=0,1,...,MAXCHAN-1 CBЯЗAHA CBOЯ OЧEPEДЬ ЗAЯBOK. ;* N-Й БAЙT HEADS ЯBЛЯETCЯ "ГOЛOBOЙ" N-Й OЧEPEДИ. ;* PACПPEДEЛEHИE YCTPOЙCTB ПO KAHAЛAM ПOKA HE ;* KOHKPETИЗИPOBAHO. B ЧACTHOCTИ, "KAHAЛOM" MOЖHO ;* CЧИTATЬ И OTДEЛЬHOE YCTPOЙCTBO. ;* ;* KAЖДЫЙ ЭЛEMEHT MACCИBA ЗAЯBOK JOB MOЖET HAXOДИTЬ- ;* CЯ ЛИБO POBHO B OДHOЙ OЧEPEДИ, ЛИБO B CПИCKE CBO- ;* БOДHЫX, ПOЭTOMY BCE OЧEPEДИ И CПИCOK CBOБOДHЫX ;* MOЖHO ДEPЖATЬ B OДHOM MACCИBE QUE (MAXJOB БAЙT). ;* 0-Й БAЙT QUE ЯBЛЯETCЯ ГOЛOBOЙ CПИCKA CBOБOДHЫX. ;* ;* ECЛИ L-Й БAЙT (L=1,2,...) QUE COДEPЖИT KOД J > 0 ;* ЭTO OЗHAЧAET, ЧTO J-Я ЗAЯBKA B JOB CTOИT B CBOEЙ ;* OЧEPEДИ OБMEHOB HEПOCPEДCTBEHHO ЗA L-Й. ;* ECЛИ ЖE L-Й БAЙT QUE COДEPЖИT 0, ЭTO ЗHAЧИT, ЧTO ;* L-Я ЗAЯBKA CTOИT B CBOEЙ OЧEPEДИ ПOCЛEДHEЙ. ;* ;* ФOPMAT ЗAЯBKИ HA OБMEH (2 CЛOBA): ;* ;* 64 56 48 40 32 1 ;* :----:----:----:----:--------------------: ;* 0 : TN : CN : UN : ST : A D R E S S : ;* :----:--------------:--------------------: ;* 1 : ДOП. ИHФOPMAЦИЯ : ;* :----:--------------:--------------------: ;* ;* TN - HOMEP ПPOЦECCA, ЗAKAЗABШEГO OБMEH. ;* CN - HOMEP OБMEHHOГO KAHAЛA; ;* UN - HOMEP YCTPOЙCTBA; ;* ADRESS - ФИЗ.AДPEC БYФEPA B ПAMЯTИ. B HEKOTOPЫX ;* CЛYЧAЯX ЭTO ПOЛE MOЖET ИMETЬ ИHOЙ CMЫCЛ; ;* ST - TEKYЩEE COCTOЯHИE ЗAKAЗA: ;* 8 : "1"-ГOTOB K OБPAБOTKE, "0"-YЖE B PAБOTE; ;* 7 : "1"-OБPAБOTKA OKOHЧEHA, "0"-HE OKOHЧEHA; ;* 6-1: KOД ЗABEPШEHИЯ ИЛИ KOД COCTOЯHИЯ; ;* ;* BTOPOE CЛOBO ЗAЯBKИ MOЖET ИCПOЛЬЗOBATЬCЯ KAK ;* YГOДHO, B ЗABИCИMOCTИ OT TИПA OБMEHHOГO KAHAЛA. ;* ;* ИCПOЛHИTEЛЬ, OБCЛYЖИBAЮЩИЙ K-E YCTPOЙCTBO ;* (K=0,1,...), CKAHИPYET COOTBETCTBYЮЩYЮ OЧEPEДЬ ;* ЗAЯBOK, HAЧИHAЯ C ГOЛOBЫ (K-Й БAЙT HEADS). ;* OБHAPYЖИB ЗAЯBKY, ГOTOBYЮ K OБPAБOTKE, OH OБHY- ;* ЛЯET Y HEE ПOЛE ST И HAЧИHAET TPYДИTЬCЯ. ;* ЗABEPШИB OБCЛYЖИBAHИE, ИCПOЛHИTEЛЬ ЗAПИCЫBAET B ;* ПOЛE ST KOД ЗABEPШEHИЯ И ГEHEPИPYET COБЫTИE ДЛЯ ;* ПPOЦECCA-KЛИEHTA. ECЛИ ИCПOЛHИTEЛEM ЯBЛЯETCЯ ;* ПYЛЬTOBOЙ ПPOЦECCOP, OH ПPOCTO ИHИЦИИPYET ;* BHEШHEE ПPEPЫBAHИE "KOHEЦ OБMEHA". ;* ;* ПOCTAHOBKA HOBOЙ ЗAЯBKИ B CBOЮ OЧEPEДЬ OБMEHA ;* ПPOИЗBOДИTCЯ CAMИM ПPOЦECCOM-KЛИEHTOM. KAK ПPA- ;* BИЛO, ДOБABЛEHИE ПPOИCXOДИT B XBOCT OЧEPEДИ, ;* HO BBИДY MAЛЫX PAЗMEPOB OЧEPEДEЙ HET CMЫCЛA ;* ЗABOДИTЬ YKAЗATEЛИ XBOCTOB. KOHEЦ OЧEPEДИ OПPE- ;* ДEЛЯETCЯ ПPЯMЫM ПOИCKOM. ИЗ CПИCKA CBOБOДHЫX ;* ЭЛEMEHTOB JOB (0-Й БAЙT QUE) OTЩEПЛЯETCЯ OДИH. ;* TYДA ПEPEПИCЫBAETCЯ ЗAЯBKA HA OБMEH, MAPKИPOBAH- ;* HAЯ HOMEPOM ПPOЦECCA-KЛИEHTA. ;* ; MODIF ; CMD ; ; --- 1. R CALL OЧEPEДЬ - ПOCTAHOBKA B OЧEPEДЬ ; J = . ПOPTЯTCЯ:W,J,ACC ; ;MOZY=80A15 ; - OTCHERED ; OЧEPEДЬ: SMON БBП BTA QUE<<3 JAEQ KAPAЧYH ATI W ; CBOБ.ЭЛ-T W BTA QUE<<3 ; ATB QUE<<3 ; CHЯЛИ C ГOЛOBЫ J XTA 1 W UTC -1 W ATX JOB ; 2-E CЛOBO W UTC -1 W ATX DUBJOB J XTA AON 64-40 ; "ГOTOB" W UTC -1 W ATX JOB-1 ; 1-E CЛOBO ATX LAST_JOB W UTC -1 W ATX DUBJOB-1 ASFT 48 AAU @FF ; KAHAЛ A-U MAXCHAN ; ЗAГOЛOBOK :ATI J ; J BTA QUE<<3 ; ПOИCK JANE *-1 ; XBOCTA OЧEPEДИ W ATB QUE<<3 ; W - ПOCЛEДHИЙ ITA W J ATB QUE<<3 ; J - ПEPEД HИM ; ; TEMP2 ; ; ;--- OCBOБOЖДEHИE ГЛOБAЛЬHOГO CEMAФOPA ПAMЯTИ ; SMEM_UP: ГHOM JAEQ UP0 CMON БBП R JMP UP0: CMON -1 R JMP ; KAPAЧYH: HLT @39 ; HET CBOБ. JMP * ; ЭЛEMEHTOB ; ; --- 2. R CALL ИЗOЧEP - ИЗЬЯTИE ; BXOД - TOЛЬKO ПOД CEMAФOPOM !!! ; J = 1,2,... - ИHДEKC ЗAЯBKИ B JOB. ; ПOPTЯTCЯ: W,ACC ; ПPИ BЫXOДE HA CYMMATOPE 0 ИЛИ 1-E CЛOBO ; TOЛЬKO ЧTO ИCKЛЮЧEHHOЙ J-Й ЗAЯBKИ. ; ИЗOЧEP: J UTC -1 J XTA JOB-1 AAN 64-39 JAEQ CLPPINF ; HE OБPAБOTAHA! J UTC -1 J XTA JOB-1 15 ATX ASFT 48 AAU @FF ; KAHAЛ A-U MAXCHAN ; ЗAГOЛOBOK SJ1:ATI W W BTA QUE<<3 JAEQ KAPAЧYH ; HET TAKOГO AEI J JANE SJ2 J BTA QUE<<3 W ATB QUE<<3 ; COMKHEM PЯДЫ BTA QUE<<3 J ATB QUE<<3 ; BEPHEM ITA J ; B ГOЛOBY CПИCKA STB QUE<<3 ; CBOБOДHЫX JMP CLPPINF SJ2:AEI J JMP SJ1 CLPPINF: UTS STX PPINF R JMP ; END KOHCOЛЬ:NAME QF TERMOS:ENTRY QF ;* ;* HA ДBYXKOHCOЛЬHOM ;* KPAHE Я PAБOTAЛ, ;* KOГДA CЛOMAЛACЬ TAM ;* OДHA KOHCOЛЬ ... ;* (CTAPAЯ ПECHЯ). ;* ;**************************************************** ;* * ;* BBOД/BЫBOД CTPOKИ HA OПEPATOPCKYЮ KOHCOЛЬ * ;* * ;**************************************************** ;* OБMOЧ OЧEPEДЬ:SUBP QF LIMIT:EQU LO/12 ; ; ; PEГИCTP I : AДPEC TEKCTA (CЛOBHЫЙ !). MЛAДШИЙ ; БAЙT ПOCЛEДHEГO CЛOBA TEKCTA = 0. ; PEГИCTP J : HOMEP TEPMИHAЛA = 0,1,2,... ; BCE TEPMИHAЛЫ "CИДЯT" HA KAHAЛE 0. ; ГЛABHOЙ KOHCOЛЬЮ ЯBЛЯETCЯ TEPMИHAЛ 0. ; BOЗBPAT : RR. ; ; TEKCT, ПOДЛEЖAЩИЙ BЫДAЧE, ПOCЛOBHO ПEPEПИCЫBAEM B ; KOЛЬЦEBOЙ БYФEP "CON_OUT" BMEЩAЮЩИЙ LO CЛOB. ; B ЗAЯBKE HA OБMEH B ПOЛE AДPECA ИHФOPMAЦИИ ; ПOMEЩAETCЯ OTHOCИTEЛЬHЫЙ HOMEP ПEPBOГO CЛOBA ; TEKCTA ПO OБЛACTИ CBЯЗИ C ПYЛЬT-ПPOЦECCOPOM. ; ; ПPИ PAБOTE OT OБЫЧHOГO ПPOЦECCA ИCПOЛЬЗYETCЯ ; CEMAФOP-0. ПPИ PAБOTE OT ПPEPЫBAHИЙ KPИT.ИHTEPBAЛ ; YЖE БЫЛ ЗAXBAЧEH KOMAHДOЙ "SMON". ; ; ;************************************************** ; ИHФOPMAЦИЯ ДЛЯ И.H.CИЛИHA: ; ; ПOЛE CBЯЗИ MEЖДY ЦП И ПП PAЗMEЩAETCЯ C TOЧKИ ; ЗPEHИЯ ЦП B "ФИЗ.AДPECAX" FFFF 0000 - FFFF 07FF ; И PACПPEДEЛЯETCЯ CЛEДYЮЩИM OБPAЗOM : ; ; 1. CCЫЛKИ HA OTH.AДPECA MACCИBOB : ; ( BCE ИЗMEPЯETCЯ B CЛOBAX БЭCM ) ; 64 1 ; :-----------------------------------------: ; 0 : HAЧAЛO ЗAГOЛOBKOB OЧEPEДEЙ - AH : ; :-----------------------------------------: ; 1 : HAЧAЛO CПИCKOB OЧEPEДEЙ - AQ : ; :-----------------------------------------: ; 2 : HAЧAЛO MACCИBA ЗAЯBOK - AJ : ; :-----------------------------------------: ; 3 : HAЧAЛO БYФEPA BBOДA - ABIN : ; :-----------------------------------------: ; 4 : HAЧAЛO БYФEPA BЫBOДA - ABOUT : ; :-----------------------------------------: ; 5 : ДЛИHA БYФEPA BЫBOДA - LO : ; :-----------------------------------------: ; ; 2. LAST - KOПИЯ ПOCЛEДHEЙ ЗAЯBKИ OT ЦП ; ; 64 56 48 40 32 1 ; :----:----:----:----:---------------------: ; 6 : TN : CN : UN : ST : AДPEC ПO OБM.БYФEPY : ; :----:----:----:----:---------------------: ; ЗДECЬ HAC ИHTEPECYET CN - HOMEP OЧEPEДИ ; ; 3. ДOП ИHФOPMAЦИЯ K ПPEPЫBAHИЮ OT ПП. ; ; :-----------------------------------------: ; 7 : ITYP : ; :-----------------------------------------: ; ; 4. HEADS - ЗAГOЛOBKИ BCEX OЧEPEДEЙ ; ПOKA HAC ИHTEPECYET TOЛЬKO 0-Я ; OЧEPEДЬ (BЫBOД HA KOHCOЛЬ). ; ; 0 1 2 3 4 5 6 7 ; :----:----:----:----:----:----:----:----: ; AH : I : : : : : : : : ; :----:----:----:----:----:----:----:----: ; : : : : ........... : ; :----:----:----:------------------------: ; ; 5. QUE - ПPOШИTЫE CПИCKИ OЧEPEДEЙ ; I L J ; :----:----:----:----:----:----:----:----: ; AQ : : : J : 0 : : : L : : ; :----:----:----:----:----:----:----:----: ; : : : : ........... : ; :----:----:----:------------------------: ; ; 6. JOB - ЗAЯBKИ HA OБMEH OT Ц П ; (OДHA ЗAЯBKA = 2 CЛOBA) ; ; :----:----:----:----:-------------------: ; AJ : TN : CN : UN : ST : A Д P E C : ; :-------------------:-------------------: ; : ДOП.ИHФ. (ПOKA HE ЗAДEЙCTBOBAHO) : ; :---------------------------------------: ; : .................. : ; : TN-HOM.ПPOЦECCA, CN-HOM.OЧEPEДИ : ; : UN-HOM.YCTPOЙCTBA, ST-CTATYC OБMEHA : ; : ................. : ; ; 7. CON_IN - БYФEP BBOДA (16 CЛOB) ; ; 8. CON_OUT - KOЛЬЦEBOЙ БYФEP BЫBOДA ; HA KOHCOЛЬ ( LO CЛOB ). ; ; Ц П ПИШET TOЛЬKO B : LAST,HEADS,QUE,JOB, ; CON_OUT. ; П П ПИШET TOЛЬKO B : ITYP, CON_IN ; ; CKAHИPOBAHИE K-Й OЧEPEДИ HAЧИHAETCЯ ЧTEHИEM K-ГO ; БAЙTA HEADS. ECЛИ TAM 0 - OЧEPEДЬ ПYCTA. ; ИHAЧE TAM I=1,2,3,... - ИHДEKC ПO JOB. ECЛИ I-Я ; ЗAЯBKA B JOB HE ДOЛЖHA CEЙЧAC OБPAБATЫBATЬCЯ, ; ПEPEXOДИM K CЛEДYЮЩEMY ЭЛEMEHTY OЧEPEДИ. ДЛЯ ЭTOГO ; БEPEM J - COДEPЖИMOE I-ГO БAЙTA QUE. ECЛИ J=0, ; OЧEPEДЬ KOHЧИЛACЬ, ИHAЧE БEPEM J-Ю ЗAЯBKY B JOB. ; CЛEД.ЭЛEMEHT L= И T.Д. ; ; ПPИ BЫBOДE HA TEPMИHAЛ ПOЛE AДPECA B ЗAЯBKE ; TPAKTYETCЯ KAK HOMEP CЛOBA = 0,1,2,...,LO-1 ; ПO KOЛЬЦEBOMY БYФEPY CON_OUT. TAM HAЧИHAETCЯ ; TEKCT, ПOДЛEЖAЩИЙ BЫBOДY. OH KOHЧAETCЯ БAЙTOM "0" ; (K ЭTOMY AДPECY ДOГOBOPИЛИCЬ ДOБABЛЯTЬ AДPEC ; CAMOГO БYФEPA OTHOCИTEЛЬHO БЛOKA CBЯЗИ C ПП). ; ; ПOЛE ST B ЗAЯBKE CЛYЖИT ДЛЯ KOHTPOЛЯ ЗA COCTOЯHИEM ; OБMEHA: БИT 8 = "1" - ЗAЯBKA ГOTOBA K OБPAБOTKE; ; БИT 8 = "0" - ЗAЯBKA YЖE B PAБOTE; ; БИT 7 = "1" - OБPAБOTKA ЗAЯBKИ ЗAKOHЧEHA; ; БИT 7 = "0" - EЩE HE ЗAKOHЧEHA. ; ЗAKOHЧИB OБPAБOTKY J-Й ЗAЯBKИ B JOB, ПП ФOPMИPYET ; ITYP = 256*J И ПOCЫЛAET ПPEPЫBAHИE B Ц П. ; ; ПOЛYЧИB C KOHCOЛИ COOБЩEHИE ДЛЯ OПEPAЦИOHHOЙ CИCTE- ; MЫ, ПП ПEPEПИCЫBAET EГO B БYФEP CON_IN, ФOPMИPYET ; ITYP = 1 И ПOCЫЛAET ПPEPЫBAHИE B Ц П. ;************************************************** ;* MODIF IFP ; BUF:BLOCK TJOB(2),TSTRI(16) ; PCW PCBIT ; CMD ; ;MOZY=80A8C ; - CONSOL ; KOHCOЛЬ:15 ATX MPAC I ; J,W,R 15 ATD ; - CПACAEM ITA TN ; N ПPOЦECCA ASFT -16 AOI J ; + N TERM. ASFT -40 ; B ЗAЯBKY AOU CON_OUT-REFERS ; (ПOKA БEЗ 15 ATX ; AДPECA TEKCTA) R VTM -LIMIT J VTM -MAXCHAN ; KAHAЛ=0 ГHOM JAEQ LENQUE UTA 3 ; ЗAXBAT CEMAФOPA-0 PINT LENQUE:J BTA QUE<<3 ATI J ; ПOДCЧET R UTM 1 ; ДЛИHЫ JANE LENQUE ; OЧEPEДИ ; ; ECЛИ ЗAKAЗOB MHOГO - ПPOCTO ПOДMEHИM ; ПOCЛEДHЮЮ CTPOKY, ПOДЛEЖAЩYЮ BЫДAЧE, ; HA TOЛЬKO ЧTO ПPИCЛAHHYЮ. ; ECЛИ ЗAKAЗOB MAЛO - ЧECTHO ДOБABИM HOBЫЙ. ; :R JMGT *+1 UTC 1 ; CBOБ.MECTO :XTA LAST_OUT ; B БYФEPE ATI W ATX LAST_OUT ; ПOCЛ.TEKCT 15 ARX 15 MTJ J ; B ЗAЯBKY - 15 ATX ; AДPEC ПO БYФEPY TRAN:I XTA I UTM 1 ; ПOCЛOBHAЯ W ATX CON_OUT ; ПEPEПИCЬ W UTM 1-LO :W JMLT *+1 W VTM -LO ; KOЛЬЦEBAHИE :W UTM LO AAU @FF JANE TRAN ITA W ; HOBOE CBOБ. STX LAST_OUT+1 ; MECTO ГHOM JAEQ NOSEM UTA 4 ; OCBOБ.CEMAФOPA-0 PINT NOSEM:R JMGT RETTERM R VJM OЧEPEДЬ ; RETTERM:15 DTA MUNP I 15 XTA ; CYMMATOP RR JMP ; HE ПOPTИM ; ; ; ********************************* ; OБMEH CTPOKAMИ C TEPMИHAЛOM ЮЗEPA ; ********************************* ; ; B OTЛИЧИE OT PAБOTЫ C KOHCOЛЬЮ, ПPOBOДИTCЯ ; C ЗAKPЫTИEM ЗAДAЧИ, ПOДABШEЙ OБMEH. ИCПOЛЬ- ; ЗYETCЯ KAHAЛ CN = 1. B ПOЛE "UN" ЗAДAETCЯ ; HOMEP TEPMИHAЛA (1,2,...), BЗЯTЫЙ ИЗ ИП ЮЗEPA, ; ИЛИ 0, ECЛИ B KAЧECTBE TEPMИHAЛA ЮЗEPA ФИГYPИ- ; PYET BCE-TAKИ KOHCOЛЬ. B ПOЛE AДPECA ЗAДAETCЯ ; ПOЛHЫЙ ФИЗ.AДPEC CTPOKИ. KOHEЦ CTPOKИ - БAЙT "0". ; B 64:57 P. 2-ГO CЛOBA ЗAЯBKИ ЗAДAETCЯ K O П : ; 0 - BЫBOД CTPOKИ HA TEPMИHAЛ ; 2 - ПPИEM CTPOKИ C TEPMИHAЛA ; 1 - "BBOД C ПOДCKAЗKOЙ". CHAЧAЛA BЫBOДИTCЯ ; ПOДCKAЗKA, ЗATEM ПPOИCXOДИT BBOД "BCTЫK" ; BЫBEДEHHOMY. TAKИM OБPAЗOM, B БYФEP ЮЗEPA ; ПOПAДET HE TOЛЬKO TO, ЧTO BBEДEHO, HO И ; BЫBEДEHHAЯ ПOДCKAЗKA. ; ; ПPИ OБPAЩEHИИ ЗAДAЮTCЯ : ; ======================== ; I - MAT.AДPEC ПEPBOГO CЛOBA БYФEPA ЮЗEPA ; J - KOД OПEPAЦИИ ( 0, 1 ИЛИ 2 ) ; TN - HOMEP ПPOЦECCA ; TERMOS : OБMEH C TEPMИHAЛOM ЮЗEPA ; +1 : OБMEH C ГЛABHOЙ KOHCOЛЬЮ ; BЫXOД ПO RR. ; TERMOS:UTC NTERM ; - ЮЗEP :XTS ; - KOHCOЛЬ ASFT 16 AAU @FF ; "UN" AOU @100 ; "CN"=1 TN MSFT -16 AOI TN TN MSFT 16 ASFT -8 ATH TJOB<<1 MPAC I 15 ATD ITA I ; ЗAПOMHИM AДPEC AAX =H0000 0000 FFFF FFFF ATX TJOB+1 ; (ДЛЯ BBOДA) ; SMON БBП TN XTA PCW AON IF_FIX ; ФИKCAЦИЯ ИП AON W_TERM TN ATX PCW CMON БBП AAU @FFC00 A+U TSTRI-IFCTIM ATH TJOB<<1 +1 ; ФИЗ.AДPEC ITA J ATB TJOB<<3 +8 ; KOП A-U 2 JAGE INQUE ; - BBOД R VTM TSTRI :I XTA ; ПEPEПИCЬ I UTM 1 ; BЫBOДИMOГO R ATX ; B ИП-БYФEP R UTM 1 AAU @FF JANE *-2 ; INQUE:J VTM TJOB R VJM OЧEPEДЬ NTA ; ЗAKP.ПO ДИAЛOГY PINT ; ; PACФИKCAЦИЮ ИП CДEЛAET "EXTINTER" ; XTA TJOB+1 ATI I ASFT 56 JAEQ RETTERM ; - BЫBOД J VTM TSTRI :J XTA ; ПEPEПИCЬ J UTM 1 ; BBEДEHHOГO I ATX ; B БYФEP AAU @FF ; ЮЗEPA JAEQ RETTERM I VLM *-2 ; END CREVENT:NAME QF CLEVENT:ENTRY QF BRANCH:ENTRY QF BRANCH1:ENTRY QF ;* ;*************************************************** ;* * ;* C O Б Ы T И Я И B E T B Л E H И Я * ;* * ;*************************************************** ;* 6.06.88. A.П.CAПOЖHИKOB. ; PCW PCBIT RRBIT ; IFP ; EVENT ACTIVATE:SUBP QF DESACTIV:SUBP QF DDACTIV:SUBP QF RETURN:SUBP QF RESGROUP:SUBP QF PUSHGRUP:SUBP QF ; GROUP MODIF ; CMD ; ; ГEHEPAЦИЯ ПPOЦECCY NP COБЫTИЯ HOMEP IA. ; ;MOZY=80A6C ; - CREVENT ; CREVENT: NP XTA EVENTS IA AON -1 ; HOBOE COБ. NP ATX EVENTS NP AAX M_EVENTS JAEQ RETURN ; HE PAЗPEШ. NTA B_BRAN NP AAX PCW JANE RETURN ; БЛOK.BETB. NP XTA PCW AAN W_EVEN JAEQ RETURN ; HE ЖДET JMP ACTIVATE ; ; ДEЗAKTИBAЦИЯ ДO HACTYПЛEHИЯ COБЫTИЯ ; CLEVENT: TN XTA PCW AON W_EVEN ; "ЖДEM COБ." AON B_BRAN ; CHИMEM AEN B_BRAN ; БЛOK.BETB. TN ATX PCW TN XTA EVENTS ; MOЖET, YЖE? TN AAX M_EVENTS JAEQ DESACTIV ; - EЩE HET JMP RETURN ; ; БЛOK BOЗBPATA ИЗ ПPEPЫBAHИЯ. ; OPГAHИЗAЦИЯ, ECЛИ HAДO, BETBЛEHИЯ. ; BRANCH: TN XTA PCW AAN B_BRAN R JANE ; -БЛOKИPOBAHO TN XTA EVENTS TN AAX M_EVENTS R JAEQ ANU ATI IA IA NTA -1 TN AEX EVENTS TN ATX EVENTS ; ГAШEHИE TN XTA PCW AAN W_EVEN JAEQ BRANCH1 ; ; ПPOЦECC ЖДAЛ COБЫTИЯ. БYДET BOЗBPAT "ПOД BЫЗOB" ; ПPOГPAMMЫ CLEVENT. ПPИ ЭTOM IA= ; TN AEX PCW TN ATX PCW ITA IA NG WMOD IA R JMP ; ; ACИHXPOHHOE COБЫTИE. OPГAHИЗYEM BETBЛEHИE : ; (HA TOЙ ЖE CAMOЙ ГPYППE PEГИCTPOB !) ; И ПOKA TOЛЬKO ДЛЯ PEЖИMA ДИCПETЧEPA!!! ; BRANCH1: TN MTJ NP RR VJM PUSHGRUP ITA TN NG WMOD GRBOSS TN XTA PCW AON B_BRAN TN ATX PCW IA HTA VECTOR<<1 -1 EXTF 64-20 NG WMOD CЧAC XTA ASTEC NG WMOD 15 ; MAГAЗИH NG RMOD PPP AAU @FFF00 ; ГACИM "PЭ" NG WMOD PPP NTA 64-PД AON 64-POA NG WMOD PP ITA IA NG WMOD IA ; KOД COБЫTИЯ JMP RETURN END TCPQUE:NAME QF ;* ;*************************************************** ;* * ;* BEДEHИE OЧEPEДИ TAЙMEPOB CЧETHOГO BPEMEHИ * ;* * ;*************************************************** ;* 26.5.88 A.П.CAПOЖHИKOB ;* ;* B MAШИHE CYЩECTBYET OДИH 64-PAЗPЯДHЫЙ PEГИCTP ;* CЧETHOГO BPEMEHИ И OДИH 32-PAЗPЯДHЫЙ TAЙMEP ;* CЧETHOГO BPEMEHИ ПPOЦECCA. B TO ЖE BPEMЯ ПPOЦECC ;* ДOЛЖEH ИMETЬ BOЗMOЖHOCTЬ PAБOTATЬ OДHOBPEMEHHO C ;* HECKOЛЬKИMИ TAЙMEPAMИ. BЫXOД COCTOИT B TOM, ЧTO ;* B ИП ПPOЦECCA BEДETCЯ CПИCOK ЗAKAЗOB HA TAЙMEP, ;* YПOPЯДOЧEHHЫЙ ПO BOЗPACTAHИЮ BPEMEH CPAБATЫBAHИЯ. ;* OДИH ЗAKAЗ ЗAHИMAET OДHO 64-PAЗPЯДHOE CЛOBO : ;* 64 8 1 ;* :----------------------------:-----: ;* : BPEMЯ CPAБATЫBAHИЯ TAЙMEPA :HOMEP: ;* :----------------------------:-----: ;* ;* CYMMATOP = OTHOCИT. BPEMЯ CPAБATЫBAHИЯ TAЙMEPA: ;* PEГИCTP I = HOMEP TAЙMEPA : ;* ;* 0 - OЧEPEДHOЙ KBAHT CИCTEMЫ PAЗДEЛEHИЯ BPEMEHИ; ;* 1 - ГЛOБAЛЬHЫЙ TIME-LIMIT ПPOЦECCA; ;* 2:N - TAЙMEPЫ, YCTAHABЛИBAEMЫE ЮЗEPOM. ПPИ CPAБA- ;* TЫBAHИИ TAKOГO TAЙMEPA ПPOЦECCY ГEHEPИPYETCЯ ;* COБЫTИE. ;* ;* HAЧAЛЬHOE COCTOЯHИE CПИCKA ЗAKAЗOB YCTAHABЛИBAETCЯ ;* CИCTEMOЙ ПPИ COЗДAHИИ ПPOЦECCA, ПPИЧEM TAЙMEPЫ 2:N ;* YCTAHABЛИBAЮTCЯ "HA БECKOHEЧHOCTЬ". ;* ПPИ ПOCTYПЛEHИИ HOBOГO ЗAKAЗA ПPEДЫДYЩИЙ TAЙMEP C ;* TEM ЖE HOMEPOM ИЗЫMAETCЯ ИЗ CПИCKA. TAKИM OБPAЗOM ;* HA KAЖДЫЙ TAЙMEP ИMEETCЯ POBHO OДHA ЗAЯBKA. ;* BЫXOД: RETS. ПOPTИTCЯ:J. ;* ; N:EQU 6 ; ЧИCЛO TAЙMEPOB MASK:EQU @FF ; ПOЛE "N" @FF800:BLOCK IFCTIM(6),TQUE GROUP MODIF ; ;MOZY=80AC0 ; - TCPQUE ; TCPQUE: A+L IFCTIM ASFT -8 15 ATX ; ЗAЯBKA J VTM N-1 SEAR:J XTA TQUE ; ПOИCK AAU MASK ; CTAPOЙ AEI I ; ЗAЯBKИ JAEQ TOWN J VRM SEAR HLT ; - EE HET ! ;--- BACK:J XTA TQUE J ATX TQUE+1 ; OЧEPEДЬ TOWN:J VRM BACK ; "ПЯTИTCЯ" J VTM 2-N ;--- SORT:J XTA TQUE+N-1 ; ПOИCK J ATX TQUE+N-2 ; MECTA ДЛЯ 15 A-L -1 ; HOBOЙ JAGT PUT ; ЗAЯBKИ J VLM SORT J VTM 1 ; - B CAMЫЙ ЗAД ;--- PUT:15 XTA ; BCTABЛЯEM AOI I ; HOMEP TAЙMEPA J ATX TQUE+N-2 XTA TQUE ; HAИMEHЬШИЙ ASFT 8 ; ИДET B ДEЛO A-L IFCTIM NG WMOD TIMER RETS END WAITTEST:NAME QF ;* ;* ЧTO ДEЛATЬ, ECЛИ ДEЛATЬ HEЧEГO ;* ;* (COBETCKИЙ COФИЗM). ;* ;*************************************************** ;* * ;* ПPOЦECC - "ЖДYЩИЙ TECT" * ;* * ;*************************************************** ;* MAIN_SW:SUBP QF RES_END:CCB (0) STARTER:SUBP QF IFP ; VAR SUM:HEX 0 ; CMD ; ; YHИЧTOЖEHИE ПOCЛEДHИX CЛEДOB "STARTER" ; ( ECЛИ OH HEPEЗИДEHT, A ПOKA ЭTO HE TAK! ) ; ;MOZY=80BB5 ; - WAITTEST ; UTA 1 VTM STARTER>>10 & @3FF ; 1 WMOD @400 ; EГO ПPИПИCKA 13 VTM ЖДY ; ; ПEPBЫM ДEЛOM BЫЧИCЛИM И ЗAПOMHИM ; KOHTP.CYMMY C-OБЛACTИ PEЗИДEHTA ; A ЗATEM БYДEM EE PEГYЛЯPHO CBEPЯTЬ. ; CALCREZ:UTA 1 VTM @3F ; ДO CEMAФOPA ! :1 ARX MAIN_SW 1 VRM * 1 VTM RES_END-MAIN_SW-@42 :1 ARX MAIN_SW+ @41 ; И ПOCЛE 1 VRM * 13 JMP ; :HLT @111 AEX SUM ; ЖДY:ATX SUM ; 13 VJM CALCREZ ; AEX SUM ; JANE ЖДY-1 ; XTA SUM ; JMP ЖДY ; ЖДY:JMP * ; END D_DRIVER:NAME QF SF_OPEN:ENTRY QF F_OPEN:ENTRY QF F_CREAT:ENTRY QF F_PERM:ENTRY QF F_CLOSE:ENTRY QF F_READ:ENTRY QF F_WRIT:ENTRY QF INQUE:ENTRY QF ; BXOД ДЛЯ SWING ;* ;*********************************************** ;* * ;* ИHTEPФEЙC C ФAЙЛOBOЙ CИCTEMOЙ IBM/PC * ;* * ;*********************************************** ;* ;* ФAЙЛOBЫE OПEPAЦИИ OTPAБATЫBAЮTCЯ ПEPИФEPИЙHЫM ;* ПPOЦECCOPOM. ДЛЯ ЗAЯBOK HA ЭTИ OПEPAЦИИ ИCПOЛЬ- ;* ЗYETCЯ KAHAЛ 2 B HAШEЙ CИCTEME OБMEHHЫX OЧEPEДEЙ. ;* OБЩИЙ ФOPMAT ФAЙЛOBOЙ ЗAЯBKИ: ;* 64 56 48 40 32 24 1 ;* :----:----:----:----:----:----------------: ;* 1 : TN : CN : UN : ST : MT : A M E M : ;* :----:----:----:----:----:----------------: ;* 2 :JOB :ATR : L E N : D A D R E S : ;* :----:----:---------:---------------------: ;* ;* TN - HOMEP ПPOЦECCA-ЗAKAЗЧИKA. ДOБABЛЯETCЯ ;* ПPИ ПOCTAHOBKE B OЧEPEДЬ. ;* CN - HOMEP KAHAЛA. ДOБABЛЯETCЯ ПPИ ПOCTAHOBKE ;* B OЧEPEДЬ. ;* UN - HOMEP "YCTPOЙCTBA". BЫДAETCЯ ПPИ ЗAKAЗE ;* ФAЙЛA. ИCПOЛЬЗYETCЯ B OCTAЛЬHЫX OПEPAЦИЯX. ;* ST - COCTOЯHИE ЗAЯBKИ. BHAЧAЛE BCEГДA = 0. ;* MT - ПPEИMYЩECTBEHHЫЙ TEГ MACCИBA. ;* AMEM - ФИЗИЧECKИЙ AДPEC MACCИBA B ПAMЯTИ (CЛOBHЫЙ) ;* DADRES - AДPEC ПO ФAЙЛY (БAЙTOBЫЙ) ;* LEN - ДЛИHA OБMEHHOЙ ПOPЦИИ B БAЙTAX ;* ATR - БAЙT ATPИБYTOB ФAЙЛA ;* (ЗAДAETCЯ BO BCEX ФAЙЛOBЫX OПEPAЦИЯX) ;* JOB - KOД ФAЙЛOBOЙ OПEPAЦИИ ;* ;* JOB=1 : OTKPЫTИE ФAЙЛA. ПOЛE "AMEM" ЗAДAET ФИЗ. ;* AДPEC CTPOKИ, COДEPЖAЩEЙ ПOЛHOE ИMЯ ФAЙЛA ;* HAПPИMEP, D:/IVANOV/LIBRARY/F1.BIN ;* ДЛЯ XPAHEHИЯ ПOЛHOГO ИMEHИ OTBEДEHO CПEЦИ- ;* AЛЬHOE MECTO B HAЧAЛE И П ПPOЦECCA. ;* B ПOЛE "UN" ЗAДAETCЯ ЛOГИЧECKИЙ HOMEP ;* ФAЙЛA (0:63) Y ПPOЦECCA-ЗAKAЗЧИKA. ;* ПOCЛE OПEPAЦИИ B "UN" ПOПAДAET CИCTEMHЫЙ ;* HOMEP ФAЙЛA. ;* ;* JOB=0 : ЗAKPЫTИE ФAЙЛA. ЗAДAЮTCЯ: UN, ATR, ;* A TAKЖE AMEM - AДPEC ПOЛHOГO ИMEHИ ФAЙЛA. ;* ;* JOB=2 : ЗAПИCЬ ИЗ ПAMЯTИ B ФAЙЛ. ;* JOB=3 : ЧTEHИE ИЗ ФAЙЛA B ПAMЯTЬ. ;* ;* A T P И Б Y T Ы Ф A Й Л A : ;* ;* 8 7 6 3 2 1 ;* :---:---:---:---:---:---:---:---: ;* : R : W : A : : : P : T : S : ;* :---:---:---:---:---:---:---:---: ;* ;* R=1 : ЧTEHИE ИЗ ФAЙЛA PAЗPEШEHO; ;* W=1 : ЗAПИCЬ B ФAЙЛ PAЗPEШEHA; ;* A=1 : PAЗPEШEHA TOЛЬKO ДOЗAПИCЬ "B XBOCT" ФAЙЛA; ;* P=1 : ПOCTOЯHHЫЙ ФAЙЛ (HE CTИPAETCЯ ПPИ "CLOSE"); ;* T=1 : OБMEH ПPOИЗBOДИTCЯ C TEГAMИ; ;* S=1 : KOPOTKИE (48-БИTHЫE) CЛOBA БЭCM-6; ;* ; PCW PCBIT TPP OБMOЧ SPORT OЧEPEДЬ:SUBP QF ИЗOЧEP:SUBP QF FIX_PAGE:SUBP QF ERROR:SUBP QF DHEX8:SUBP QF KOHCOЛЬ:SUBP QF VMD PSYS IFP ; EVENT MODIF C:EQU CP ; KAHAЛ P:EQU PA ; ЛИCT U:EQU P1 ; ЛOГ.HOMEP ; FATA WAITJOB:EQU NAMES ; ; ; ; ; FATA - TAБЛИЦA OTKPЫTЫX ФAЙЛOB. ; =============================== ; BXOДOM B FATA CЛYЖИT HOMEP 0 < UN < 256 ; B ФAЙЛOBOЙ CИCTEME IBM/PC. ; NAMES - ПOЛHЫE ИMEHA ФAЙЛOB (256*8 CЛOB). ; FBOSS - BЛAДEЛЬЦЫ ФAЙЛOB (256 БAЙT) ; FNUM - ЛOГИЧECKИE HOMEPA Y BЛAДEЛЬЦEB (256 БAЙT) ; FATR - ATPИБYTЫ ФAЙЛOB (256 БAЙT) ; FSTAT - CЧETЧИKИ OБMEHOB И OШИБOK (256 ПOЛYCЛOB) ; FCOOR - TEKYЩИE K-TЫ ПO ФAЙЛY (256 ПOЛYCЛOB) ; FNPC - СООТВЕТСТВИЕ НОМЕРОВ ФАЙЛОВ МКБ-->PC ; FPCN - СООТВЕТСТВИЕ НОМЕРОВ ФАЙЛОВ PC-->МКБ ; SFNUM - HOMEPA UN ДЛЯ CПEЦ-ФAЙЛOB 0:63 ; SFATR - CTAHДAPTHЫE ATPИБYTЫ CПEЦ.ФAЙЛOB 0:63 ; CПEЦ-ФAЙЛЫ BCEГДA OTKPЫTЫ И ПPИHAДЛEЖAT ; CPAЗY BCEM ПPOЦECCAM. OHИ COДEPЖAT ИHФOPMAЦИЮ, ; ПOCTOЯHHO HEOБXOДИMYЮ CИCTEME ИЛИ ПPOЦECCY. ; ; ; ; ; FDB - ДECKPИПTOP ФAЙЛA ЮЗEPA: ; OДHO CЛOBO HA ЛOГИЧECKИЙ HOMEP U=0,...,63 ; C KAЖДЫM ФAЙЛOM U CBЯЗAH БYФEPHЫЙ ЛИCT BFPOOL+U ; 64 56 48 40 32 16 13 1 ; :----:----:----:----:--------:---:-------: ; : SP : AT : UN : ST : LEN : T : CNT : ; :----:----:----:----:--------:---:-------: ; SP - 0 ИЛИ HOMEP CПEЦИAЛЬHOГO ФAЙЛA +@80 ; AT - БAЙT ATPИБYTOB ФAЙЛA ; UN - HOMEP B ФAЙЛOBOЙ CИCTEME IBM/PC ; ST - KOД COCTOЯHИЯ ПOCЛEДHEЙ OБMEHHOЙ ЗAЯBKИ ; LEN - ДЛИHA ПOCЛ.ПPOЧИTAHHOГO БЛOKA B БAЙTAX ; CNT - CЧETЧИK ЧИCЛA ЭЛEMEHTOB B БYФEPE ФAЙЛA. ; T - TИП ЭЛEMEHTA ФAЙЛA (0-CЛOBO, 1-ПOЛCЛOBA, ; 2-ЧETBEPTЬ CЛOBA, 3-БAЙT) ; ; CONST ; FDEF ; CMD ; ;MOZY=80C5E ; - D_DRIVER ; BEGIN: SMON БBП XTA DDPORT JAEQ FINISH ANU -1 ATI C ; KAHAЛ OБMEHA C NTA AEX DDPORT ATX DDPORT ; QUESCAN:C UTC -MAXCHAN ; "ГOЛOBA" J VTM ; OЧEPEДИ KAHAЛA QUESCAN1:J BTA QUE<<3 JAEQ BEGIN ATI J J UTC -1 J XTA JOB-1 ASFT 32 AAU @FF ATI PA ; ПОЛЕ ОШИБОК AAU @40 JAEQ QUESCAN1 ; ЕЩЕ НЕ ГОТОВ CMON БBП J MSFT -1 PA UTM -64 ; ; ПPИПИCKA И П ЮЗEPA K CBOEMY PAБ.ЛИCTY ; J XTA JOB-2 ASFT 40 AAU @FF ATI P2 ; IBM/PC UN P2 BTA FPCN<<3 ATI U ; VIRT.MKB UN AEI P2 ASFT -40 J AEX JOB-2 J ATX JOB-2 ASFT 56 ATI TN TN XTA PCW AOU @3FF WMOD WSPAG+N_DRIV+@400 W VTMF HNDLSC P2 J+M W ; ; ПEPEKЛЮЧATEЛЬ ПO TИПY OKOHЧEHHOЙ OПEPAЦИИ ; J XTA JOB-1 ASFT 56 JAEQ ECLOS AEU 1 JAEQ EOPEN ; ; OKOHЧEH OБMEH (ЧTEHИE ИЛИ ЗAПИCЬ) ; ДЛИHY ПPOЧИTAHHOГO БЛOKA (ECЛИ ЧTEHHИE!) ; И KOД OШИБKИ - B ДECKPИПTOP ЮЗEPA. ; ECЛИ OБMEH БЫЛ 48-P. CЛOBAMИ БЭCM-6, ; TO ДEЛAETCЯ PACПAKOBKA. ; END_EXCH: AEU 3 ATI R ; 0-ЗAПИCЬ ! CPUSH U BTA FNUM<<3 ATI I ; ЛOГ.HOM.ЮЗEPA AAU @80 JAEQ SETANSW ; OБЫЧHЫЙ ; ; ПPИXOДИTCЯ TYПO PAЗЫCKИBATЬ ЛOГ.HOMEP, ; ПOД KOTOPЫM Y ЮЗEPA ЗAKAЗAH ЭTOT CПEЦ.ФAЙЛ ; I VTM 64 SSF:I VRM *+1 U HLT ; - HE HAШЛИ :I XTA WSPAG+N_DRIV<<10 +FDB-IFCTIM J AEX JOB-2 AAX =H0000 FF00 0000 0000 JANE SSF ; ; ДЛИHY ПPOЧИTAHHOГO БЛOKA И KOД OTBETA ; ЗACЫЛAEM B ДECKPИПTOP I-ГO ФAЙЛA. ; SETANSW:J XTA JOB-1 ASFT 32 I UTM WSPAG+N_DRIV<<10 +FDB-IFCTIM I MSFT -2 I ATQ 2 AAU @FFFF ; ДЛИHA B БAЙTAX ATI IA ; U A+H FCOOR<<1 ; + TEK.K-TЫ U ATH FCOOR<<1 ; ПO ФAЙЛY ITA PA I MSFT -1 I ATB 3 ; KOД OTBETA :JAEQ NORMAL AEU 6 JAEQ REOPEN AEU 6 HLT 6 ; <<??>>> U HTA FSTAT<<1 A+U 1 U ATH FSTAT<<1 AAU 8 JAEQ REPEAT NORMAL:U HTA FSTAT<<1 AAU @FFFF0 ; ГAШ.CЧ.OШ. A+U @10 ; +1 K CЧ.OБM. U ATH FSTAT<<1 ; ; ПPИПИШEM ЛИCT ЮЗEPA (OH EЩE ЗAHЯT B OБMEHE!) ; K CBOEMY PAБ.ЛИCTY, И БEЗ ПOMEX ПEPEЛOПATИM. ; J XTA JOB-2 AOU @3FF WMOD WSPAG+N_DRIV+@400 ASFT 10 AAU @3FF ATI P2 ; ФИЗ.ЛИCT U BTA FATR<<3 AAU 1 JAEQ OPTASK ; 64-BITS ; J XTA JOB-2 AAU @3FF AOU WSPAG+N_DRIV<<10 ATI W ITA IA AEU @600 :JANE *+1 ; ЛИCT UTC 256-1024 ; CEKTOP :I VTM 1024-1 SETR БПTЧ+БПTЗ+БПИHT+БЧOП UNPACK:W TTA AEN ; ИHBEPCИЯ ЗHAKA ASNA @400+4 ; PAЗMHOЖEHИE AEN ; OБPATHO W TTX W UTM 1 I VRM UNPACK CLRR БПTЧ+БПTЗ+БПИHT+БЧOП ; OPTASK: SMON БBП P2 HTA TPP<<1 ; PACKPOEM AAU @F7FFF ; ПO P2 ATH TPP<<1 ; OБMEHY TN XTA PCW AAN W_SWIN JAEQ OPTASK1 ; ; ПPOЦECC, ЖДABШИЙ ПOДKAЧKИ CTPAHИЦЫ, ; B AKTИBИЗAЦИИ HE HYЖДAETCЯ ! ; TN AEX PCW TN ATX PCW AAN W_EXCH JANE OPTASK1 ; JMP ENDJOB ; <<< BPEMEHHO BMECTO ПPEДЫД.KOMAHДЫ: TN VTM N_SWING IA VTM W_EXCH JMP ACT_USER ; OTKPOEM SWING-A ; >>>>>>>>>>>>>>>>>>>>> ; OPTASK1: IA VTM W_EXCH TN XTA PCW IA AAN ; ЗAKPЫT ПO OБMEHY JANE ACT_USER ; - ДA UTA E_EXCH ASFT -40 AOU 1 ; ЮЗEPY - COБЫTИE JMP SYSINT ; "KOHEЦ OБMEHA" ; ; ; CBEPШИЛOCЬ ЗAKPЫTИE ФAЙЛA. ЧИCTKA FATA. ; ECLOS:U ATB FBOSS<<3 U ATB FNUM<<3 U ATB FATR<<3 U ATH FCOOR<<1 U ATB FNPC<<3 P2 ATB FPCN<<3 W CLRF ; CLEAR HNDLSC-BIT U MSFT -3 U UTM NAMES W VTM 7 :U ATX U UTM 1 W VRM *-1 ; JMP ENDJOB IA VTM W_EXCH ; BAPИAHT C JMP ACT_USER ; ЗAKPЫTOЙ ЗAДAЧEЙ ; ; OKOHЧEH ЗAKAЗ HA OTKPЫTИE ФAЙЛA. ; EOPEN:PA JMNE EOPEN1 ; НЕ ЗАКАЗАЛСЯ W FTA JANE REOPEN ; "НАЛОЖЕНИЕ НОМЕРОВ" W SETF ; SET HNDLSC-BIT EOPEN1:XTA WAITJOB JANE REOPEN1 ; ; ПOЛЯ "ATR","UN" И "ST" - B ДECKPИПTOP ЮЗEPY ; J XTA JOB-1 ATI W ; HOM.Y ЮЗEPA ASFT 48 W UTM WSPAG+N_DRIV<<10 +FDB-IFCTIM W MSFT -3 W ATB 1 ; "ATR" ITA PA W ATB 3 ; "ST" IA VTM IF_FIX JANE ACT_USER ; - HE ЗAKAЗAЛCЯ :U UTM 1 U BTA FNPC<<3 JANE *-1 U ATH FCOOR<<1 ITA P2 U ATB FNPC<<3 ITA U W ATB 2 ; "un" P2 ATB FPCN<<3 ; ; PEГИCTPAЦИЯ ФAЙЛA B "FATA" ; ITA TN U ATB FBOSS<<3 ; - BЛAДEЛEЦ J XTA JOB-1 U ATB FNUM<<3 ; - HOMEP Y HEГO ASFT 48 U ATB FATR<<3 ; - ATPИБYTЫ W BTA JAEQ NOSPEC U ATB FNUM<<3 ATI W ; PEГИCTPAЦИЯ B ITA U ; CПИCKE CПEЦ.ФAЙЛOB W ATB SFNUM<<3 -@80 NOSPEC: U MSFT -3 W VTM 7 :W XTA WSPAG+N_DRIV<<10 +PATHNAME-IFCTIM U UTC NAMES W ATX W VRM *-1 ; ACT_USER: SMON БBП TN XTA PCW IA AON IA AEN TN ATX PCW UTA 2 ; AKTИBAЦИЯ ЮЗEPA ; SYSINT: ITS TN ASFT -32 15 AOX PINT ; ; OTPAБOTAHHAЯ ЗAЯBKA ИЗЫMAETCЯ ИЗ OЧEPEДИ ; ENDJOB: J MSFT 1 SMON БBП R VTM QUESCAN JMP ИЗOЧEP ; ; ПOBTOPEHИE OБMEHA ПPИ OШИБKAX ; REPEAT:TN VTM N_DRIV J MTJ PA 15 MTJ I J UTA JOB-2 ASFT -1 ATI W J VTM 3 XTA ="ER.DISK:" :W HTS JMPS DHEX8 :W UTM 1 J VRM *-1 UTS @0D0A ASFT -48 15 ATX RR VJM KOHCOЛЬ I MTJ 15 PA MTJ J ; REPEAT1:SMON БBП J XTA JOB-2 ASFT 40 AAU @FF ATI U U AEB FNPC<<3 ASFT -40 J AEX JOB-2 AAX =HFFFF FF00 FFFF FFFF AON 64-40 ; "ГOTOB" J ATX JOB-2 J ATX DUBJOB-2 J XTA JOB-1 J ATX DUBJOB-1 UTA ATX PPINF JMP QUESCAN ; ; ПОВТОРНОЕ ОТКРЫТИЕ ВСЕХ ФАЙЛОВ ПОСЛЕ СБОЯ РС ; REOPEN:J XTA JOB-2 ATX WAITJOB J XTA JOB-1 ATX WAITJOB+1 ; PAUSE:W VTM 31 U VTM 3 UTA :W ATX FPCN W VRM * :U ATX HNDLSC U VRM * U VTM -255 XTA =H0000 03FF 0000 0008 PINT ; REOPEN2:U BTA FNPC<<3 +255 JAEQ REOPEN3 U UTM 255 U BTA FATR<<3 AOU @100 ; "OPEN" ASFT -48 AOI U J ATX JOB-1 RMOD FATA>>10 & @3FF + @400 AAU @FFC00 UTS N_DRIV ASFT -16 U AOU @200 ; U + CN=2 ASFT -40 15 AOX U MSFT -3 A+I U J ATX JOB-2 JMP REPEAT1 ; REOPEN1: PA JMNE PAUSE ; НЕ ЗАКАЗАЛСЯ J XTA JOB-1 ATI U P2 ATB FPCN<<3 ITA P2 U ATB FNPC<<3 U UTM -255 ; REOPEN3:U VLM REOPEN2 XTA WAITJOB J ATX JOB-2 XTA WAITJOB+1 J ATX JOB-1 UTA ATX WAITJOB JMP REPEAT1 ; ; BCE. PAБOT БOЛEE HET. ЗAKPЫBAEMCЯ. ; FINISH: UTA 5 PINT JMP BEGIN ; ; ; ***************************************** ; * BXOДЫ OT ЮЗEPA ДЛЯ ФAЙЛOBЫX OПEPAЦИЙ: * ; ***************************************** ; ; --- 0. ЗAKPЫTИE ФAЙЛA. ДOCБPOC, ECЛИ HAДO, БYФEPA. ; HA BXOДE: TN-HOMEP ПPOЦECCA, U-ЛOГ.HOM.ФAЙЛA. ; BЫXOД: RR. ; F_CLOSE:MPAC I ; J,W,R 15 ATD ; - CПACAEM F_CL1:U XTA FDB JAEQ CLFDB ASFT 40 AAU @FF ATI R ; "UN" R BTA FNPC<<3 A-U 5 JALT CLFDB ; БРЕД ! U XTA FDB AAU @1FFF JAEQ NOPUSH ; БYФEP ПYCT U XTA FDB AAN 64-51 JAEQ NOPUSH ; BPEM.ФAЙЛ NTA 64-55 AON 64-54 U AAX FDB JAEQ NOPUSH ; TOЛЬKO ЧTEHИE SMON БBП U QTA TMP<<2 +BFPOOL ASFT 4 JAEQ NOPUSH ; YЖE CБPOШEH ATI J J RMOD @800 AAU 4 ; "БИЗM" JAEQ NOPUSH ; PUSH:U UTA BFPOOL ; БYФ.ЛИCT AON 64-32 ; ФЛ."ДOCБPOC" ASFT -32 AOU 10 ; ЗAKAЗ SWING-Y PINT JANE NOPUSH ; - ПPИHЯT NTA 64-40 ; AOU 8 ; ПAYЗA 0.25 CEK PINT JMP F_CL1 ; NOPUSH:U XTA FDB JALT CLFDB ; CПEЦ.ФAЙЛ AAX =H0000 FF00 0000 0000 R HTS FCOOR<<1 :JANE *+1 UTC 4 ; ПУСТОЙ ФАЙЛ :UTA R AOB FATR<<3 ATI W ; "ATR" AAU 4 JANE ZERNAM ; ПOCT.ФAЙЛ ! ; RMOD FATA>>10 & @3FF + @400 AAU @FFC00 R MSFT -3 A+I R 15 AOX ; ФИЗ.AДPEC ИMEHИ UTS ZERNAM:J VTM R VJM INQUE ; <<<< BPEMEHHO C ЗAKPЫTИEM ЗAДAЧИ UTA PINT ; >>>>>>>>>>>>>>>>>>>>> ; CLFDB: CMON БBП UTS ; ДECKPИПTOP U STX FDB ; ГACИTCЯ JMP RET_USER ; ; БЛOK ПOCTAHOBKИ ЗAЯBKИ B OЧEPEДЬ. ; HEДOФOPMИPOBAHHAЯ ЗAЯBKA - B CTEKE. ; ДOБABЛЯЮTCЯ: TN,JOB,ATR, HOMEP KAHAЛA. ; YKAЗATEЛЬ CTEKA YMEHЬШAETCЯ HA 1. ; ПOPTЯTCЯ: J,W ; INQUE:ITS TN ASFT -56 AON 64-50 ; KAHAЛ=2 15 AOX -2 15 ATX -2 ITA J ASFT -8 AOI W ; + ATPИБYTЫ ASFT -48 15 AOX 15 ATX 15 UTM -2 15 MTJ J CHREOP: SMON БВП XTA WAITJOB JANE WAITREOP J XTA ASFT 40 AAU @FF ATI W W AEB FNPC<<3 ASFT -40 J AEX J ATX JMP OЧEPEДЬ ; WAITREOP:XTA =H0000 03FF 0000 0008 PINT JMP CHREOP ; ; --- 1. OTKPЫTИE ФAЙЛA. ИMЯ ЗAДAETCЯ B ИП ЮЗEPA ; TN - HOMEP ПPOЦECCA, U - ЛOГ.HOMEP, W - ATPИБYTЫ ; HA BPEMЯ OПEPAЦИИ ПPOЦECC ДEЗAKTИBИPYETCЯ. ; BЫXOД: RR. CYMMATOP= ; F_OPEN:MPAC I ; J,W,R 15 ATD ; - CПACAEM F_OP1:UTA U ATX FDB F_OP2:J VTM 1 SMON БBП TN XTA PCW AON IF_FIX ; ФИKCAЦИЯ ИП TN ATX PCW AAX =H0000 0000 000F FC00 A+U PATHNAME-IFCTIM ITS U ; HOMEP Y ЮЗEPA R VJM INQUE UTA ; ДEЗAKTИBAЦИЯ PINT U XTA FDB ASFT 32 AAU @3F JANE CLFDB ; HE OTKPЫЛCЯ JMP RET_USER ; ; --- F_CREAT - OTKPЫTИE CYЩECTBYЮЩEГO ИЛИ ; COЗДAHИE HOBOГO ФAЙЛA C ATPИБYTAMИ E4. ; ЗAДAЮTCЯ: TN,U. BЫXOД:R. ПOPTЯTCЯ:W,RR. ; F_PERM - ПPEBPAЩEHИE BPEMEHHOГO ФAЙЛA ; B ПOCTOЯHHЫЙ. BЫXOД:R. ПOPTИTCЯ RR. ; B OБOИX CЛYЧAЯX ПPИ HEYДAЧE CYMMATOP=0. ; F_CREAT:W VTM @E0 RR VJM F_OPEN F_PERM:U XTA FDB R JAEQ ; HEYДAЧA AON 64-51 U ATX FDB ASFT 40 AAU @FF ATI RR RR BTA FATR<<3 AOU 4 RR ATB FATR<<3 R JMP ; ; --- SF_OPEN - ЗAKAЗ HA ИCПOЛЬЗOBAHИE CПEЦ-ФAЙЛA ; I ЗAДAET CИCTEMHЫЙ HOMEP CПEЦ-ФAЙЛA (0,1..) ; TN - HOM.ПPOЦECCA, U-ЛOГ.HOMEP Y ЮЗEPA ; ATPИБYTЫ W OПPEДEЛЯЮTCЯ ПO CИCTEMHOЙ TAБЛИЦE. ; ИMЯ ФAЙЛA ПEPEПИCЫBAETCЯ B PATHNAME, ПPИЧEM ; PACШИPEHИE "**" ЗAMEHЯETCЯ HA HOMEP ПPOЦECCA. ; SF_OPEN:MPAC I 15 ATD I BTA SFATR<<3 ATI W ; ATPИБYTЫ :I JMNE *+1 UTC OSFILE-MAINFILE :J VTM MAINFILE I UTA @80 ASFT -56 U ATX FDB I BTA SFNUM<<3 JAEQ NEWSF ; ; KЛИEHT "ПPИCACЫBAETCЯ" K YЖE OTKPЫTOMY ФAЙЛY ; W MSFT -8 AOI W W MSFT 8 ASFT -40 U AOX FDB U ATX FDB UTA JMP RET_USER ; ; ПEPEПИCЬ ИMEHИ I-ГO ФAЙЛA B PATHNAME ; NEWSF:R VTM TRNAME:J XTA J UTM 1 R ATX PATHNAME R UTM 1 AAU @FF JANE TRNAME I VRM NEWSF ; R VTMB PATHNAME CHSTAR:R BTA JAEQ F_OP2 ; - HA OTKPЫTИE AEU 42 ; "*" JAEQ SPECOWN R VLM CHSTAR ; ; ЛИЧHЫЙ CПEЦ-ФAЙЛ ЮЗEPA (YKAЧKA,ЛИCTИHГ И T.П.) ; ( CПEЦИAЛЬHOГO Y HEГO - TOЛЬKO ИMЯ !!!) ; SPECOWN:ITA TN JMPS DHEX8 :R ATB 1 ASFT 8 R ATB JMP F_OP1 ; ; ; --- 2,3. OБMEH C ФAЙЛOM. БEЗ ЗAKPЫTИЯ ЗAДAЧИ ; TN - HOMEP ПPOЦECCA, U - ЛOГ.HOMEP ФAЙЛA ; NP - MAT.AДPEC БYФEPA, W - MAIN TAG ; CYMMATOP = LEN + DADRES. ; BЫXOД: RR. ; F_WRIT: 15 ATX 3 MPAC I ; J,W,R 15 ATD ; - CПACAEM J VTM 2 U XTA FDB AAN 64-49 ; KOPOTKИE CЛOBA JAEQ NOPRESS ; - HET ; YПЛOTHEHИE ПEPEД ЗAПИCЬЮ 48-P. CЛOB 15 XTA 1 ASFT 32 AAU @F800 :JAEQ *+1 ; CEKTOP UTC 1024-256 ; ЛИCT :R VTM 256-1 SETR БПTЧ+БПTЗ+БПИHT ; PRESS:NP UTC R XTA ASNA @400-4 UTY 3 ; OLD COM TAG NP UTC R TTX R VRM PRESS NP JMNE NOPRESS ; SETR БВП XTA @3FF RMOD @401 ATI R RMOD @400 WMOD @401 XTA @400 ASNA @400-4 UTY 3 TTX @400 ITA R WMOD @401 ; NOPRESS: CLRR БВП+БПTЧ+БПTЗ+БПИHT JMP F_EXCH ; F_READ:15 ATX 3 MPAC I 15 ATD J VTM 3 ; F_EXCH:15 UTM 2 U XTA FDB ; "UN" AAX =H0000 FF00 0000 0000 15 ATX -2 ITA NP ; + OTHOCИT. AAU @3FF ; AДPEC HA ЛИCTE W MSFT -24 AOI W ; + MAIN TAG 15 AOX -2 15 ATX -2 NP MTJ I IA MTJ R NP MSFT 10 ITA NP AAU @3FF ATI NP ; MAT.ЛИCT IA VTM 0 ; ЗAKP.ЛИCTA JMPS FIX_PAGE ; ПO OБMEHY :I MTJ NP R MTJ IA ITA W ; ФИЗ.ЛИCT ASFT -10 15 AOX -2 15 ATX -2 ASFT 40 AAU @FF ATI R ; "UN" R BTA FATR<<3 STI W R VJM INQUE ; SETR БПTЧ+БПИHT NP XTA @3FF ; <<< ЗAKP.ДO KOHЦA>>> CLRR БПTЧ+БПИHT ; ; OБЩИЙ BЫXOД K ЮЗEPY : ; RET_USER:15 ATX 1 ; CYMM.BЫXOДA 15 DTA MUNP I ; J,W,R 15 XTA 3 RR JMP ; END TTANAL:NAME QF ;* ;* ...A B HYTPE Y EЯ - ДYMATEЛЬ, ;* PEШATEЛЬ И OTBEЧATEЛЬ. ;* (ПPOФ. BЫБEГAЛЛO) ;* ;*************************************************** ;* * ;* AHAЛИЗATOP COOБЩEHИЙ, ПOЛYЧEHHЫX * ;* C OПEPATOPCKOЙ KOHCOЛИ * ;* * ;*************************************************** ;* ;* AKTИBИЗИPYETCЯ OT ПPEPЫBAHИЯ ПO BBOДY C KOHCOЛИ. ;* COOБЩEHИЯ MOГYT БЫTЬ AДPECOBAHЫ KAK CИCTEME, TAK ;* И KOHKPETHOMY ПPOЦECCY NN. B ПOCЛEДHEM CЛYЧAE ;* TTANAL OCYЩECTBЛЯET ПOЧTOBYЮ ФYHKЦИЮ. OБЩИЙ BИД: ;* ;* QD NN ;* ;* ECЛИ COOБЩEHИE AДPECOBAHO CИCTEME, TO NN=00. ;* ECЛИ ПPИ ЭTOM ПEPBЫЙ CИMBOЛ TEKCTA HE ЯBЛЯETCЯ ;* ШECTHAДЦATИPИЧHOЙ ЦИФPOЙ, NN MOЖHO OПYCTИTЬ. ;* OБMOЧ PCW PCBIT PSYS SPORT RRBIT TPP FATA VMD EVENT ATQUE:LCB LTQ,ATQ ; MAINTERM:EQU 0 KOHCOЛЬ:SUBP QF DHEX8:SUBP QF HEXB1:SUBP QF F_OPEN:SUBP QF F_CLOSE:SUBP QF STARTJOB:SUBP QF PACKDATE:SUBP QF PACKTIME:SUBP QF WEEKDAY:SUBP QF DATE:SUBP QF TIME:SUBP QF ; CODE ; IFP BUF:BLOCK NAME(2),STR(14),LSTADR,DIR MODIF T:EQU PA ; YK.ПO CTPOKE C:EQU CA ; TEK.CИMBOЛ ; CONST ; SYSDIR:CHAR "MEMORY" :CHAR "START" :CHAR "DEBUG" :CHAR "TECTAY" :CHAR "HEXCALC" :CHAR "DATE" :CHAR "OSDATE" :CHAR "OUTPUT" :CHAR "KILL" :HEX 0 ; CMD ; ; ECЛИ ECTЬ BXOДHAЯ CTPOKA - ПEPEПИШEM K CEБE ; ;MOZY=81551 ; - TTANAL ; BEGIN:XTA CON_IN JANE TRAN UTA 5 PINT TRAN:TN VTM N_TTAN I VTM 10 T VTMB STR P1 VTM 2 ; "SERVER" TRAN1:I XTA CON_IN I ATX STR I VRM TRAN1 UTA ATX CON_IN T BTA ATI C JAEQ EDIR ; ; ПPOПYCK ЛEBЫX ПPOБEЛOB ; :T BTA T UTM 1 AEU @20 JAEQ *-1 ; ; ПPOБA HA KOД AДPECATA ; T BTA -1 JMPS HEXB1 :JALT SYSADR ASFT -4 T BTS JMPS HEXB1 :15 AOX JALT ERRADR ATI NP NP JMEQ SYSADR ITA NP A-U QPROC JAGE SYSADR NP XTA PCW JAEQ ERRADR ; ; COOБЩEHИE ПEPEAДPECYETCЯ ПPOЦECCY NP ; JMP ERRDIR ; ; COOБЩEHИE AДPECOBAHO CИCTEME ; SYSADR:XTA =" " ATX DIR ATX NAME ATX NAME+1 I VTMB DIR T UTM -2 ; GIVDIR:T UTM 1 T BTA ATI C JAEQ EDIR I ATB I UTM 1 AEU @20 JANE GIVDIR ; ; ПOИCK B CПИCKE ПPИKAЗOB ; (ПO ПEPBЫM 3 CИMBOЛAM) ; EDIR:W VTM SYSDIR NP VTM QPROC-1 :W XTA JAEQ START ; "SERVER" AEX DIR ASFT 40 W JAEQ SW-SYSDIR W VLM EDIR+1 ; SW:JMP MEMORY :P1 VTM 1 JMP START :P1 VTM 0 JMP START ; - DEBUG :P1 VTM -1 JMP START ; - TECT AY :R VTM HEXCALC JMP HEXNUM ; - HEXCALC :T MTJ IA JMP GETDAT ; - DATE :I VTM OSDATE JMP TOTER ; - OSDATE :I VTM STR JMP TOTER ; - OUTPUT :R VTM KILL JMP HEXNUM ; - KILL ; ; ************************************ ; START <ИMЯ ФAЙЛA C ПAKETOM ЗAДAЧИ> ; ************************************ ; HEOПOЗHAHHAЯ ДИPEKTИBA TPAKTYETCЯ ; KAK ЗAПYCK BATCH-ФAЙЛA !!! ; ; ; BЫБOP CЧETHOГO KAHAЛA ; START:NP XTA PCW JAEQ FORMIF NP VRM *-1 HLT 6 ; ; ФOPMИPOBAHИE И П ЗAПYCKAEMOГO ПPOЦECCA ; ДЛЯ И П OTДAEM CBOЙ PAБOЧИЙ ЛИCT. ; ИП ЮЗEPA COЗДAEM HA OCHOBE ИП ДИCПETЧEPA ; FORMIF:I VTM 1023 UTA :I ATX WSPAG+N_TTAN<<10 I VRM * I VTM WSPAG+N_TTAN<<10 -IFCTIM J VTM FDB-IFCTIM+1 ; ФAЙЛЫ:0,1 FIF1:J XTA IFCTIM J ATX WSPAG+N_TTAN<<10 J VRM FIF1 I MTJ W W UTM TMP W MSFT -2 UTA J VTM BFPOOL-WSPAG :J UTC WSPAG ; БEЗ CИCT. W ATQ ; ЛИCTOB !!! J VRM *-1 ; XTA DIR ; KOД ДИPEKTИBЫ I ATX REGSCAL ; ЗAПYCKA ITA P1 ASFT -32 I ATX SAVREG ; И1,И2 ; UTA SAVREG+16 I ATX ASTEC ; PAПY UTA SAVREG+10 ASFT -32 I ATX SAVREG+7 ; И15 UTA STARTJOB ASFT -32 I ATX SAVREG+8 ; CЧAC NTA 32-PД AON 32-POA I ATX SAVREG+9 ; PP+PPP SMON БBП+БПTЧ+БПИHT XTA CLOCK ; ACTP.BPEMЯ I ATX TCLOSE ; ЗAПYCKA ; ; OTДAEM CBOЙ ЛИCT ЮЗEPY ; QTA DTMP<<2 +WSPAG+N_TTAN ASFT 4 ATI J UTA @F ATQ DTMP<<2 +WSPAG+N_TTAN UTA WMOD WSPAG+N_TTAN +@400 QTA PCNT<<2 +3 A-U 1 ATQ PCNT<<2 +3 ; UTA IF_LIST ASFT -16 AOU @F00 AOI NP J ATH TPP<<1 ITA J ASFT -10 AON B_BRAN AON IF_FIX NP ATX PCW UTA QPROC-1 ; "OБPATHЫЙ" A-I NP ; HOMEP ПPOЦECCA ASFT -16 AON 64-49 ; KЛACC=2 NP ATX TABPRT NTA E_STOP-1 NP ATX M_EVENTS ITA NP ASFT -32 AOU 2 PINT ITA NP JMPS DHEX8 :AAU @FFFF ASFT -8 AOX ="ДAЧИ-'0''0'." ATX NAME+1 XTA ="CTAPT ЗA" ATX NAME XTA =Z"'@0A''@0D'" ATX STR NAMOUT:I VTM NAME JMP TOTER ; ; ********************************* ; KILL <НОМЕР ПРОЦЕССА> ; ********************************* ; KILL:JALT ERRNAM ITA IA A-U QPROC JAGE ERRNAM IA XTA PCW JAEQ ERRNAM AAN P_SYST JANE ERRADR SMON БВП IA XTA PCW AON B_BRAN AEN B_BRAN IA ATX PCW IA UTA E_STOP<<8 ASFT -32 AOU 1 PINT JMP BEGIN ; ; ********************************************* ; MEMORY <ИMЯ, AДPEC ИЛИ ПYCTO> (CMEЩ.)KOЛИЧ. ; ********************************************* ; BЫДAЧA COДEPЖИMOГO ПAMЯTИ. ; MEMORY:P1 VTM ; CMEЩEHИE P2 VTM ; KOЛИЧECTBO C JMEQ NEXTADR ATX LSTADR ; =0 I VTMB NAME+1 W VTM ; TИП= ; ; BЫБOPKA OПEPAHДOB ДИPEKTИBЫ "MEMORY" ; GIVOPER:T UTM 1 T BTA ATI IA IA UTM -@28 ; "(" IA JMLE EOPER1 I ATB I UTM 1 :W JMNE *+1 JMPS HEXB1 :JALT TYP1 XTS LSTADR ASFT -4 15 AOX ATX LSTADR JMP GIVOPER TYP1:W VTM 1 ; TИП=<ИMЯ> JMP GIVOPER ; EOPER1:JAEQ EOPER RI VTM 1 :IA JMEQ *+1 RI VTM GIVOPER1:T UTM 1 T BTA JAEQ EOPER JMPS HEXB1 :JALT GIVOPER2 RI ITS P2 ASFT -4 15 AOX RI ATI P2 JMP GIVOPER1 GIVOPER2:RI VRM GIVOPER1 ; ; ПOИCK, ECЛИ HAДO, B CПИCKE ЗAГPYЗKИ ; ПCEBДOИMЯ IFPROC - BЫДAЧA И П. ; EOPER:W JMEQ NEXTADR ; - AДPEC W VTM LOADLIST XTA NAME+1 ATX NAME AEX ="IFPROCNN" ASFT 16 JANE SLL XTA NAME AAU @FF JMPS HEXB1 :JALT SLL ATI NP XTA NAME ASFT 8 AAU @FF JMPS HEXB1 :JALT SLL ASFT -4 AOI NP ATI NP JAEQ ERRADR A-U QPROC JAGE ERRADR NP XTA PCW AAU @3FF A+U WSPAG+N_TTAN<<10 ATX LSTADR NP XTA PCW AOU @3FF WMOD WSPAG+N_TTAN +@400 JMP NEXTADR ; SLL:W XTA AEX =H2020 2020 2020 2020 JAEQ ERRNAM W XTA AEX NAME+1 W UTM 2 JANE SLL W XTA -1 ATX LSTADR ; ; ИЗBЛEЧEHИE CЛOBA ПO MAT.AДPECY. ; ФOPMИPOBAHИE CTPOKИ: ; <ИMЯ> MAT.AДP:XXXXX, ФИЗ: XXXXX, KOД: XX...X ; NEXTADR: XTA ="MAT.AДP:" ATX STR LOOPOUT:XTA LSTADR A+I P1 P1 VTM EXTF 64-20 ATX LSTADR JMPS DHEX8 :ATX STR+1 XTA =", ФИЗ: " ATX STR+2 XTA LSTADR ASFT 10 AAU @3FF ATI 13 SETR БЗO+БПHП+БПTЧ+БПИHT+БЧOП 13 RMOD @400 AAU @3FF ATI IA JMPS DHEX8 :AAU @3FFFF ASFT -16 AOX =" П:0'0''0' " ATX NAME+1 IA UTM -@200 IA JMLT PROTECT 13 RMOD @400 AEX LSTADR AAU @FFC00 AEX LSTADR ATI IA XTA LSTADR ATI 13 A+U 1 ATX LSTADR 13 TTA ; ЧTEHИE CЛOBA CLRR БЗO+БПHП+БПTЧ+БПИHT+БЧOП 15 YTX ; - TEГ ITS IA JMPS DHEX8 :ATX STR+3 XTA=", ИHФ: " ATX STR+4 15 XTA -1 ASFT 32 JMPS DHEX8 :STX STR+5 JMPS DHEX8 :STX STR+6 JMPS DHEX8 :AAU @FFFF ASFT -24 AOX =" T:'0''0''@0A''@0D''0'" ATX STR+7 LOUT1:I VTM NAME RR VJM TOTER+1 P2 JMEQ BEGIN P2 VRM LOOPOUT ; ; AДPEC - ИЗ YKAЧAHHOЙ CTPAHИЦЫ ; PROTECT: CLRR БЗO+БПHП+БПTЧ+БПИHT+БЧOП XTA =" - ЗAЩИЩ" ATX STR+2 XTA =Z"EH!'@0A''@0D'" ATX STR+3 JMP NAMOUT ; ; ************************************* ; DATE <ПYCTO ИЛИ HOBЫE ДATA И BPEMЯ> ; ************************************* ; GETDAT:IA UTM 1 IA BTA A-U @20 JAEQ GETDAT JALT PRIDAT RR VJM PACKDATE JAEQ ERRDIR ATI P1 ; HOBAЯ ДATA XTA CLOCK AEU -1 A/L =86400000000 YTA64 A/L =1000000 ATI P2 ; CTAPOE BPEMЯ :IA BTA -1 IA UTM 1 A-U @20 JAEQ *-1 JALT OLDTIME IA UTM -2 RR VJM PACKTIME JAEQ ERRDIR ATI P2 ; HOBOE BPEMЯ OLDTIME:ITA P1 A*U 86400 A+I P2 A*L =1000000 AEU -1 ATX CLOCK ; ; PAЗГPYЗИM PAДИ TAKOГO CЛYЧAЯ ; OЧEPEДЬ ПPOЦECCOB, CИДЯЩИX HA ПAYЗE ; CLOPAUS:XTA ATQ AAU @FF JAEQ CLOP1 ASFT -32 AOU 9 PINT CLOP1:XTA LTQ JANE CLOPAUS ; ; BЫДAЧA TEKYЩИX ДATЫ И BPEMEHИ ; PRIDAT:CP VTM BUF CP MCJ 15 XTA ="CEГOДHЯ" UTS -1 RR VJM WEEKDAY UTS -1 RR VJM DATE XTS =" BPEMЯ: " UTS -1 RR VJM TIME UTS @0A0D ASFT -48 15 ATX 15 MCJ CP I VTM BUF JMP TOTER ; ; ************************************* ; KAЛЬKYЛЯTOP: HEXCALC AAA+-*/BBB ; ************************************* ; HEXCALC:W VTM HPL C UTM -PLUS C JMEQ HC2 W VTM HMIN C UTM PLUS-MINUS C JMEQ HC2 W VTM HMUL C UTM MINUS-MUL C JMEQ HC2 W VTM HDIV C UTM MUL-DIV C JMNE ERRDIR HC2:IA MTJ P1 R VJM HEXNUM C JMNE ERRDIR IA JMEQ ERRDIR ITA P1 W JMP HPL:A+I IA JMP HCEND HMIN:A-I IA JMP HCEND HMUL:A*I IA JMP HCEND HDIV:A/I IA JMP HCEND ; HCEND:I VTM STR+1 JMPS DHEX8 :AAX =H0000 00FF FFFF FFFF AOX =Z" = " I ATX XTA =Z"'@0A''@0D'" I ATX 1 JMP TOTER ; ; ; BЫБOPKA ШECTHAДЦATИPИЧHOГO ЧИCЛA ; HEXNUM:IA VTM HN:T UTM 1 T BTA ATI C R JAEQ AEU BL JAEQ HN AEU BL JMPS HEXB1 :R JALT IA MSFT -4 AOI IA ATI IA JMP HN ; ERRNAM:I VTM =Z"TAKИX HE ДEPЖИM!'@0A''@0D'" JMP TOTER ERRDIR:I VTM =Z"OШ.KOMAHДA.'@0A''@0D'" JMP TOTER ERRADR:I VTM =Z"OШ.HOMEP ПPOЦECCA.'@0A''@0D'" TOTER:RR VTM BEGIN :J VTM MAINTERM JMP KOHCOЛЬ END DHEX8:NAME QF HEXB1:ENTRY QF ;* ;*** DHEX8 - ПEPEBOД ДBOИЧHOГO 32-PAЗPЯДHOГO ;* ЧИCЛA B TEKCTOBЫЙ 16-PИЧHЫЙ BИД. ;* APГYMEHT И PEЗYЛЬTAT HA CYMMATOPE. ;*** HEXB1 - ПEPEBOД OДHOГO CИMBOЛA ИЗ 16-PИЧHOГO ;* TEKCTOBOГO BИДA B 4-БИTHOE ДBOИЧHOE ;* ЧИCЛO. ECЛИ ЦИФPA HE ШECTHAДЦATИPИЧHAЯ ;* PEЗYЛЬTAT = -1. ;* CMD ; ;MOZY=80BA3 ; - DHEX8 ; DHEX8: ASFT -32 AUX =H0F0F 0F0F 0F0F 0F0F 15 ATX ARX =H0606 0606 0606 0606 AAX =H1010 1010 1010 1010 ASFT 2 15 ATX ; 04 ASFT 1 15 AOX -1 ; 06 ASFT 1 15 AOX ; 07 15 ARX ARX ="00000000" RETS ; HEXB1: A-U @30 JALT NEG A-U 9 JALE D09 A-U @41-@39 JALT NEG A-U @46-@41 JAGT NEG A+U 15 RETS D09:A+U 9 RETS NEG:UTA -1 RETS END SWING:NAME QF ;* ;*************************************************** ;* * ;* YПPABЛEHИE ПAMЯTЬЮ (ПOДKAЧKA) * ;* * ;*************************************************** ;* SF_OPEN:SUBP QF F_READ:SUBP QF F_WRIT:SUBP QF INQUE:SUBP QF VMD IFP PCW PSYS SPORT PCBIT RRBIT TPP FATA ; MODIF U:EQU P1 ; ЛOГ.HOM.ФAЙЛA RP:EQU P2 ; PEЗ.ЛИCT ; P_FIX:EQU 64-15 P_PUSH:EQU 64-32 ; CMD ; ; ПEPBAЯ AKTИBAЦИЯ ПPOИЗBOДИTCЯ ПPИ ЗAПYCKE OC ; ДЛЯ ЗAKAЗA HEOБXOДИMЫX CПEЦ-ФAЙЛOB : ; 0 - ДИCПETЧEP, 1 - MOHИTOPHAЯ CИCTEMA ; ;MOZY=80BBE ; - SWING ; TN VTM N_SWING ; OT CEБЯ U VTM 1 ; :U MTJ I RR VJM SF_OPEN :JAEQ *+1 U HLT 1 :U VRM *-2 JMP CLOSE2 ; FATAL:HLT 5 ; ; ЗABEPШEHИE OБCЛYЖИBAHИЯ И ДEЗAKTИBAЦИЯ ; CLOSE:ITA RP ATX RES_PAGE ;<<<<<<<<< BPEMEHHO : XTA SWPORT ASFT 32 AAU @FF ATI TN TN XTA PCW ; KЛИEHTA - AON BL_SEL ; - HA BOЛЮ AEN BL_SEL TN ATX PCW ;>>>>>>>>>>>>>>>>>>>>>>>>>> CLOSE2:UTA ATX SWPORT UTA 5 PINT ; ; BXOД OT CTPAHИЧHЫX ПPEPЫBAHИЙ. ; ПPOЦECC-KЛИEHT ПOДAET BO BXOДHOЙ ПOPT ; (ECЛИ SWING БЫЛ CBOБOДEH!) CBOЙ HOMEP ; (40:32 P.) И HOMEP MAT.ЛИCTA (16:1), ; A CAM ПPOCTABЛЯET CEБE "BL_SEL", HO HE ; ДEЗAKTИBИPYETCЯ. SELECT OБECПEЧИBAET БЛOKИPOBKY ; ЗAXBATA ПPOЦECCOPA TAKИMИ ПPOЦECCAMИ B ПEPИOД ; ЗAHЯTOCTИ SWING-A. ; ; ЗAKAЗ HA ПOДKAЧKY ПPOИЗBOДИTCЯ OT ИMEHИ KЛИEHTA, ; A ЗAKAЗ HA YKAЧKY - OT ИMEHИ CAMOГO SWING-A. ; ПPИ ЗAKAЗE MOГYT ПOДABATЬCЯ ПPИЗHAKИ : ; 15 - ПOДKAЧKA C ФИKCAЦИEЙ ЛИCTA ; 32 - ПPИHYДИTEЛЬHAЯ YKAЧKA БEЗ OTЬEMA ЛИCTA ; XTA RES_PAGE ATI RP XTA SWPORT AAX =H0000 00FF 0000 03FF ATI NP ; MAT.ЛИCT ASFT 32 ATI TN ; KЛИEHT JAEQ CLOSE R VTM PUSH XTA SWPORT AAN P_PUSH JANE GIV_IF ; ; KЛИEHT ECTЬ. PAЗPEШИM EMY БPATЬ ПPOЦECCOP. ; ПEPBOE, ЧTO OH ПPИ ЭTOM CДEЛAET - TKHETCЯ ; B ЛИCT, ЗAKPЫTЫЙ ПO OБMEHY. ; ; TN XTA PCW ; ПOKA PEШИЛИ ; AON BL_SEL ; CДEЛATЬ ЭTO ; AEN BL_SEL ; ПOПOЗЖE !!! ; TN ATX PCW ; (B "CLOSE") R VTM READ ; ; ПPИПИCKA И П KЛИEHTA TN K CEБE CO CMEЩEHИEM ; HA OДИH ЛИCT. OПPEДEЛEHИE TИПA CP ЛИCTA NP. ; GIV_IF:TN XTA PCW AOU @3FF WMOD IF_LIST + @401 CP VTM 0 ; ЮЗEP ITA NP A-U MAIN_SW>>10 & @3FF R JALT A-U NONRSDNT-MAIN_SW>>10 JALT FATAL ; C-PEЗИДEHT A-U WMSP-NONRSDNT>>10 CP VTM 1 ; ДИCПETЧEP R JALT CP VTM 2 ; PAБOЧИЙ ЛИCT A-U LAST_SYS R JALE CP VTM 4 ; БYФEP ФAЙЛA ITA NP A-U BFPOOL JALT CHIF A-U 63 R JALE A-U FREE_V>>10 -BFPOOL-63 JALT FATAL ; V-PEЗИДEHT CHIF:ITA NP AEU IF_LIST :JAEQ *+1 UTC 5-3 ; COMMON :CP VTM 3 ; И П R JMP ; ; ; ЗAKPЫTИE ФИЗ.ЛИCTA RP ПO OБMEHY И ПOCTAHOBKA ; OБMEHA B OЧEPEДЬ. I = ; NP = , CP = ; ПOДKAЧKA: XTA SWPORT ; C BOЗMOЖHOЙ AAN P_FIX ; ФИKCAЦИEЙ ! RP AOH TPP<<1 RP ATH TPP<<1 TN XTA PCW ; KЛИEHT AON W_SWIN ; ЖДET KOHЦA TN ATX PCW ; ПOДKAЧKИ UTC 3-2 ; - ЧTEHИE ; YKAЧKA:J VTM 2 ; - ЗAПИCЬ RP HTA TPP<<1 AON 64-16 ; ЗAKP.ПO OБM. RP ATH TPP<<1 I UTC FDB PA VTMB PA BTA 1 ATI W ; ATPИБYTЫ PA BTA 2 ATI U ; "UN" ASFT 10-40 AOI RP ; +ЛИCT ASFT -10 CP JMP *+1 :JMP RW_USER :NP UTS -DISPAGE0-2 JMP RW9K :HLT @52 :NP UTS -IF_LIST-2 JMP RW9K :I XTS FDB JMP RW_BUF :HLT @55 ; ; ПOPЯДOK PAЗMEЩEHИЯ ЛИCTOB ЮЗEPA ; B EГO ФAЙЛE YKAЧKИ: ; ------------------------------- ; 0,1 : И П ПPOЦECCA И EГO ПPOДOЛЖEHИE ; 2,3 : MAT.ЛИCTЫ 512,513 (ЭKCTPAKOДЫ БЭCM) ; 4,...: MAT.ЛИCTЫ 0-511 RW_USER:ITS NP A-U 512 :JAGE *+1 NP UTA 2 RW9K:A+U 2 ; БЛOKИ ПO AON 64-33 ; 9 K БAЙT A*U 9216 ; (C TEГAMИ) JMP R_W ; ; БYФEPHЫЙ ЛИCT "CMOTPИT" B CBOЙ POДHOЙ ФAЙЛ ; OБMEH ПPOИЗBOДИTCЯ C HAЧAЛA TEKYЩИX 8K-БAЙT ; ФAЙЛA. ДЛИHA OБMEHHOЙ ПOPЦИИ OПPEДEЛЯETCЯ ; ПO ДECKPИПTOPY ФAЙЛA. MAIN TAG = 0. ; RW_BUF: ASFT 13 AAU 7 ; TИП ЭT-TA A-U 3 ; ФAЙЛA ATI IA I XTA FDB AAU @1FFF ; ЧИCЛO ЭЛ-TOB A+U 1 IA ASFT -32 U AOH FCOOR<<1 ; HAЧAЛO AAU @FE000 ; 8K-БЛOKA R_W: ; JMP INQUE R MTJ PA R VJM INQUE UTA ; clear RP WMOD @800 ; "bobr,bism" ; <<< BPEMEHHO: ЗAKPЫTИE ДO KOHЦA OБMEHA : NTA W_EXCH AOX PCW+N_SWING ATX PCW+N_SWING UTA PINT PA JMP ; >>>>>>>>>>>>>>>>>>>>> ; ; POCПИCЬ RP TEГOM HEИHИЦИИPOBAHHOЙ ПEPEMEHHOЙ ; ИЛИ CПEЦKOДOM ДЛЯ PEЖ. ЭMYЛЯЦИИ (ЛИCTЫ 0:31) ; CИCTEMHЫE ЛИCTЫ ПPИДETCЯ PACПИCЫBATЬ OБЫЧHЫM ; TEГOM, ЧTOБ HE HAPBATЬCЯ ПPИ БAЙTOBOЙ PAБOTE. ; PAЗPEШEHИE ПPOЦECCY ПOЛHOГO ДOCTYПA K ЛИCTY. ; FIRST_US:NP QTA TMP<<2 + @1000 AOU @C NP ATQ TMP<<2 + @1000 ITA RP ASFT -10 AOU @3FF WMOD WSPAG+N_SWING + @400 W VTM 1023 UTY 2 IA VTM =H87D7 1C70 0007 A000 ITA NP AAU @FFFE0 JAEQ OLDCODE IA VTM AAU @FFE00 :JANE *+1 UTC @34 :UTY IA VTM OLDCODE:IA XTA SETR БПTЗ+БПИHT :W TTX WSPAG+N_SWING<<10 W VRM * CLRR БПTЗ+БПИHT CPUSH ; ; ПPИПИCKA MAT.ЛИCTA NP K ФИЗ.ЛИCTY RP ; YBEЛИЧEHИE HA 1 CЧETЧИKA CTPAHИЦ ; ПPOЦECCA-KЛИEHTA, HAXOДЯЩИXCЯ B OЗY. ; (ИП ПPOЦECCA ДOЛЖHO БЫTЬ B ПAMЯTИ!) ; ПPИПИCKA:XTA PCNT+@400 A+U 1 ATX PCNT+@400 NP QTA TMP<<2 + @1000 AAU 3 RP MSFT -4 JANE PRIVATE NP QTA DTMP<<2 AAU @F AOI RP NP ATQ DTMP<<2 JMP TOTPP PRIVATE: NP QTA TMP<<2 + @1000 AAU @F AOI RP NP ATQ TMP<<2 + @1000 TN UTC -@FF ; TOTPP:IA VTM @FF RP MSFT 4 AAU @F ; ПOЛЯ "PR" И "T" 15 ATX ; MEHЯЮTCЯ MECTAMИ ASFT -4 15 AOX AAU @3C ASFT -6 NP MSFT -16 AOI NP ; + MAT.ЛИCT NP MSFT 16 AOI IA ; + BЛAДEЛEЦ RP ATH TPP<<1 R JMP ; ; OTHЯTИE MAT.ЛИCTA NP Y ПPOЦECCA TN. ; OTПИCKA:UTA NP WMOD @400 RP ATH TPP<<1 NP QTA TMP<<2 + @1000 AAU @F NP ATQ TMP<<2 + @1000 AAU 3 R JANE NP QTA DTMP<<2 AAU @F NP ATQ DTMP<<2 R JMP ; ; P A Б O T Ы П O П O Д K A Ч K E : ; ===================================== ; READ:CP JMP *+1 :JMP R_USER :JMP R_DISP :R VTM NEW_RP JMP FIRST_US :JMP FATAL ; - ИП :R VTM NEW_RP JMP R_BUF ; - БYФEP COMMON:JMP FATAL ; - OБЩ.CTP. ; ; ПOДKAЧKA ИЗ ФAЙЛA C ДИCПETЧEPOM ; (HEPEЗИДEHT, CПИCOK ЗAГPYЗKИ ИЛИ ; ИHTEPПPETATOP ЭKCTPAKOДOB БЭCM-6) ; R_DISP:I VTM 0 R VJM ПPИПИCKA R VTM NEW_RP JMP ПOДKAЧKA ; ; ; TPEБYETCЯ ЛИCT ДЛЯ ЮЗEPA. ; ECЛИ ЛИCT ИMEET PEЖИM ДOCTYПA="TOЛЬKO ЗAПИCЬ" ; ЭTO ПEPBOE K HEMY OБPAЩEHИE. ДAДИM ЮЗEPY RP, ; PACПИCAB EГO TEГOM HEИHИЦИAЛИЗИP.ПEPEMEHHOЙ, ; A K ЛИCTY PAЗPEШИM ПOЛHЫЙ ДOCTYП. ; R_BUF:NP XTA FDB-BFPOOL+@400 JAEQ FIRST_US ; R_USER:NP QTA TMP<<2 + @1000 ATI W AAU 3 JAEQ COMMON W MSFT 2 W UTM -1 R VTM NEW_RP W JMEQ FIRST_US ; :CP JMEQ *+1 ; COБCTBEHHЫЙ NP UTC -BFPOOL-2 ; ФAЙЛ ЮЗEPA :I VTM 2 + @400 ; ИЛИ ФAЙЛ YKAЧKИ R VJM ПPИПИCKA R VJM ПOДKAЧKA ; ; BЫБOP HOBOГO PEЗEPBHOГO ЛИCTA ; ============================= ; ( ПOKA - ПO KOЛЬЦY !!! ) ; NEW_RP: CHECK:RP UTM -1 RP JMGT *+2 WTC QPAGE RP VTM -1 :ITA RP AEX RES_PAGE JAEQ CHECK RP MTJ W W MSFT 4 XTA BLK_16P W AAN JANE CHECK RP HTA TPP<<1 JAEQ CLOSE ; - CBOБOДEH 15 ATX ATI NP AAU @C000 U1AS CHECK ; ФИKCИPOBAH AAU @FF ATI TN ; - BЛAДEЛEЦ AEU @FF JAEQ CHECK ; - OБЩИЙ NP MSFT 16 R VJM GIV_IF ; ; P A Б O T Ы П O Y K A Ч K E : ; ================================= ; CP JMP *+1 :R VTM W_USER JMP OTПИCKA :R VTM CLOSE ; KOKHEM JMP OTПИCKA ; HEPEЗИДEHT :TN XTA PCW JMP W_WORK :JMP CHECK ; ИП HE БEPEM :R VTM W_BUF JMP OTПИCKA ; -БYФEP :JMP CHECK ; ; PAБOЧИЙ ЛИCT CИCTEMHOГO ПPOЦECCA MOЖHO ; BЗЯTЬ, ECЛИ BXOДHOЙ ПOPT ПPOЦECCA ПYCT, ; T.E. OH ЗAKPЫЛCЯ, HE ИMEЯ PAБOTЫ. ; TOГДA И YKAЧИBATЬ EГO HE HAДO ! ; W_WORK: AAU @3FF ATI R R XTA IFCTIM + @403 ; - ПOPT JANE CHECK ; ЗAHЯT R VTM CLOSE JMP OTПИCKA ; ; YKAЧKA ЛИCTA ЮЗEPA : ; W_BUF:NP XTA FDB-BFPOOL+@400 JAEQ CLOSE ; - KOKHEM ! ; W_USER: NP QTA TMP<<2 + @1000 ATI W AAU 3 JAEQ CHECK ; - OБЩИЙ ; P_USER: RP RMOD @800 ; "БИЗM" AAU 4 ; ЛИCT MEHЯЛCЯ ? JAEQ EPUSH ; - HET TN VTM N_SWING ; OT CEБЯ :CP JMEQ *+1 ; NP UTC -BFPOOL-2 ; ФAЙЛ ЮЗEPA :I VTM 2 + @400 ; ИЛИ YKAЧKИ R VJM YKAЧKA ; NTA W_EXCH ; TN AOX PCW ; ЗAKPOEMCЯ ; TN ATX PCW ; ДO KOHЦA ; UTA ; OБMEHA ; PINT ; EPUSH:XTA SWPORT AAN P_PUSH JAEQ CLOSE RI MCJ RP ; RP - TOT ЖE ! RI WMOD @800 ; БOБP,БИЗM = 0 NG XTA PCW AON BL_SEL ; KЛИEHTA - AEN BL_SEL ; - HA BOЛЮ NG ATX PCW JMP CLOSE ; ; ; П P И H Y Д И T E Л Ь H A Я Y K A Ч K A : ; =========================================== ; ЮЗEP BMECTE CO SWING-OM ЖДYT ЗABEPШEHИЯ ; OБMEHA. ЛИCT Y ЮЗEPA HE OTHИMAETCЯ. ; PUSHC:NP QTA DTMP<<2 JMP PUSH1 PUSH:NP QTA TMP<<2 + @1000 AAU 3 JAEQ PUSHC NP QTA TMP<<2 + @1000 PUSH1:ATI RI ; ФИЗ.ЛИCT ЮЗEPA RI MSFT 4 RI MCJ RP ; - HA BPEMЯ CБPOCA TN MTJ NG ; KЛИEHT RP JMEQ EPUSH ; - YЖE YKAЧAH JMP P_USER ; END PACKDATE:NAME QF PACKTIME:ENTRY QF DATE:ENTRY QF TIME:ENTRY QF WEEKDAY:ENTRY QF ;* ;* 28/07/87 A.П.CAПOЖHИKOB ;* ;***************************************************** ;* ;* PACKDATE - ПEPEBOД ДATЫ ИЗ TEKCTOBOГO ;* ПPEДCTABЛEHИЯ ДД/MM/ГГ B 16-PAЗPЯДHOE ;* ЦEЛOE ЧИCЛO, PABHOE KOЛИЧECTBY ДHEЙ, ;* ПPOШEДШИX OT 31/12/1927, C YЧETOM BИCO- ;* KOCHЫX ЛET. ПPИ BXOДE PEГИCTP 14 COДEPЖИT ;* БAЙTOBЫЙ AДPEC HAЧAЛA ЛEKCEMЫ "ДATA". ;* ;* ПPИЧEM ECЛИ ГГ>27, ИMEETCЯ B BИДY 20-Й ;* BEK, A ECЛИ ГГ<28, TO 21-Й BEK. ;* PEЗYЛЬTAT HA CYMMATOPE B 1-16 P. ПPИ ;* OШИБOЧHOM ЗAДAHИИ ДATЫ PEЗYЛЬTAT = 0. ;* PAЗPEШAETCЯ OПYCKATЬ ФPAГMEHTЫ ДД И MM. ;* ПPИ ЭTOM ПOЛAГAETCЯ ДД=1, MM=1. ;* ФPAГMEHT ГГ MOЖHO ЗAДABATЬ ИЗ 4 ЦИФP. ;* ;* DATE - OБPATHAЯ ПPOЦEДYPA. ;* ПPИ BXOДE - ДATA HA CYMMATOPE B BИДE ;* ЦEЛOГO ЧИCЛA. ПPИ BЫXOДE ДATA HA ;* CYMMATOPE B ФOPMATE ДД/MM/ГГ. ;* ПPИ BXOДHOM CYMMATOPE <= 0 BЫДAETCЯ ;* TEKYЩAЯ KAЛEHДAPHAЯ ДATA. ;* ;* WEEKDAY - BЫДAЧA HA CYMMATOPE HAИMEHOBAHИЯ ;* ДHЯ HEДEЛИ, A B И1 - EГO HOMEPA : ;* (0-BC., 1-ПH., ... , 7-CБ.) ;* APГYMEHT - TOT ЖE, ЧTO И Y "DATE". ;* ;* PACKTIME - YПAKOBKA BPEMEHИ ИЗ TEKCTOBOГO ;* ПPEДCTABЛEHИЯ ЧЧ.MM.CC B ЦEЛOЧИCЛEHHOE ;* ПPEДCTABЛEHИE 3600*ЧЧ + 60*MM + CC ;* 14 PEГИCTP ЗAДAET БAЙTOBЫЙ AДPEC HAЧAЛA ;* ЛEKCEMЫ "BPEMЯ". ФPAГMEHTЫ MM И CC ;* MOЖHO OПYCKATЬ, TOГДA ПOЛAГAETCЯ MM=CC=0. ;* ;* TIME - ПEPEBOД BPEMEHИ ИЗ YПAKOBAHHOГO ЦEЛO- ;* ЧИCЛEHHOГO ПPEДCTABЛEHИЯ 3600*ЧЧ+60*MM+CC ;* B TEKCTOBOE ЧЧ.MM.CC ;* APГYMEHT И PEЗYЛЬTAT HA CYMMATOPE, ПPИЧEM ;* ECЛИ APГYMEHT < 0, BЫДAETCЯ TEKYЩEE ЗHAЧEHИE ;* ACTPOHOMИЧECKOГO BPEMEHИ. ;* ;* ПOPTЯTCЯ 1-4 PEГИCTPЫ. BOЗBPAT: R. ;***************************************************** ;* PP_ADR:LCB (1024-8),CLOCK ; -ЧACЫ TIMESTD:LCB (1) CONST BDAY:INTB 0,31,28,31,30,31,30,31 :INTB 31,30,31,30,31,255,255,255 TWD:CHAR "BOCKP. " CHAR "ПOHEД. " CHAR "BTOPHИK " CHAR "CPEДA " CHAR "ЧETBEPГ " CHAR "ПЯTHИЦA " CHAR "CYББOTA " ; ;======= PEГИCTPЫ ; 1:BLOCK D,M,Y,W(2),R IA:EQU 14 ; CMD ;* ;* ПOЛYЧEHИE ДECЯTИЧHЫX DAY,MON,YEAR (D,M,Y) ;* ;MOZY=80B36 ; - PACKDATE ; PACKDATE: M VTM 1 Y VTM 1 PD1:M MTJ D Y MTJ M Y VTM JMP PD3 ; PD2:A-U @39 - @2F JAGT ERROR A-U @30 - @39 ITS Y A*U 10 15 A+L ATI Y PD3:IA BTA IA UTM 1 A-U @2F ; "/" JAEQ PD1 JAGT PD2 ; ; KOHEЦ TEKCTA. KOHTPOЛЬ D,M,Y ; ITA Y A/U 100 YTA64 A-U 28 ATI Y :Y JMNE *+1 Y UTM 100 :D JMLE ERROR M JMLE ERROR M UTM -12 M JMGT ERROR M UTM 12 15 UTC 1 W VTMB XTA BDAY 15 ATX 1 XTA BDAY+1 15 ATX 2 ITA Y AAU 3 ; BИC.ГOД JANE CHDAY ; - HET UTA 29 W ATB 2 ; LEN(ФEBP)=29 ; CHDAY:M UTC W BTA I-A D JAGT ERROR ; D > LEN(M) ; ; YЧET ЧИCЛA ДHEЙ B ПOЛHЫX MECЯЦAX ; :M UTM -1 M UTC W BTA A+I D ATI D M JMGT *-2 ; ; YЧET ЧИCЛA ДHEЙ B ПOЛHЫX ГOДAX ; ITA Y A*U 365 Y MSFT 2 A+I Y ; + ЧИCЛO BИC.ЛET A+I D R JMP ; ERROR:UTA R JMP ; PACKTIME:W VTM 2 D VTM M VTM Y VTM PT1:IA BTA IA UTM 1 A-U @2E ; "." JALT PT3 A-U @30 - @2E JALT PT2 A-U @39 - @30 JAGT ERROR A+U 9 W ITS D A*U 10 15 A+L W ATI D A-U 60 JAGE ERROR JMP PT1 PT2:W VRM PT1 JMP ERROR PT3:Y UTM -24 Y JMGE ERROR Y UTA 24 A*U 60 A+I M A*U 60 A+I D R JMP ; WEEKDAY:JAGT WD1 XTA CLOCK AEU -1 A/L =86400000000 JAGE WD1 UTA WD1:A+U 1 A/U 7 YTA64 ATI D D XTA TWD R JMP ; CLOCKER:XTA ="01/01/90" R JMP ; ; OБPATHЫЙ ПEPEBOД ; DATE:JAGT NOASTRD XTA CLOCK AEU -1 15 ATX 1 A-L TIMESTD JALE CLOCKER ; ДO ЗAПYCKA A-L =864000 JAGT CLOCKER ; > 10 ДHEЙ 15 XTA 1 A/L =86400000000 NOASTRD:ATI D A/U 365 ATI Y;ЧИCЛO ПOЛHЫX ЛET Y UTM 1 ; MAK_Y:Y UTM -1 ITA Y A*U 365 Y MTJ M M MSFT 2 A+I M I-A D JALE MAK_Y ; HA ГOД MEHЬШE ATI D ; ДHEЙ ПOCЛ.ГOДA Y UTM 28-100 :Y JMGE *+1 Y UTM 100 :XTA BDAY XTS BDAY+1 ITS Y AAU 3 15 UTC -2 W VTMB M VTM 1 JANE MAK_M UTA 29 W ATB 2 ; LEN(ФEBP)=29 ; ; ПOЛYЧEHИE HOMEPA MECЯЦA ; MAK_M:M UTC W BTA I-A D JALE MAK_D ATI D M VLM MAK_M ; ; ПEPEBOД D,M,Y - B TEKCT ; MAK_D:XTA ="00/00/00" 15 UTM -2 TOTEX:ITS D D VTM -2 DIG2:A/U 10 AOU @30 ; "0" W ATB YTA64 AOU @30 W ATB 1 W UTM 3 D ITA Y+1 D VLM DIG2 15 XTA R JMP ; TIME:JAGE NOASTRT XTA CLOCK AEU -1 A/L =86400000000 YTA64 A/L =1000000 NOASTRT:A/U 3600 ATI D ; ЧACЫ YTA64 A/U 60 ATI M ; MИHYTЫ YTA64 ATI Y ; CEKYHДЫ XTA ="00.00.00" 15 UTC -2 W VTMB 2 JMP TOTEX ; END BESMEXTR:NAME QF STARTJOB:ENTRY QF ; HAЧAЛO ПPOЦECCA ENDJOB:ENTRY QF ; KOHEЦ ПPOЦECCA ;* ;* TPAДИЦИИ MEPTBЫX ПOKOЛEHИЙ ;* TЯГOTEЮT, KAK ПPOKЛЯTИE, ;* HAД YMAMИ ЖИBЫX. ;* (K.MAPKC) ;* ;*************************************************** ;* * ;* ИHTEPПPETATOP ЭKCTPAKOДOB БЭCM-6 * ;* * ;*************************************************** ;* F_READ:SUBP QF F_WRIT:SUBP QF F_OPEN:SUBP QF F_CLOSE:SUBP QF SF_OPEN:SUBP QF F_CREAT:SUBP QF F_PERM:SUBP QF ERRMACRO:SUBP QF FIX_PAGE:SUBP QF PUSHGRUP:SUBP QF DHEX8:SUBP QF KOHCOЛЬ:SUBP QF TERMOS:SUBP QF DATE:SUBP QF TIME:SUBP QF SERVER:SUBP QF PCW IFP TPP SEMAF FATA CODE GROUP SPORT VMD ; ДД89 72:BLOCK COMTIME,LIMTIME(2),PULT,PASS(2),NAM(3) ; OUTFIL:EQU 3 ; ФAЙЛ-ЛИCTИHГ LLIST:EQU BFPOOL+OUTFIL <<10 ; EГO БYФEP ; RRBIT MODIF U:EQU P1 ; ЛOГ.HOMEP ; CONST ENDFIL:CHARZ "*READ'@81''0''0'OLD'@CA''@0A''@0A'" :CHARZ "*END F'0''0'ILE'@CA''@0A''@0A'" ; ; CПИCOK ИHTEPПPETИPYEMЫX MOДEЛEЙ ЛEHT ; B PAЗPЯДAX 9:16 - CИCTEMHЫЙ HOMEP. ; LISMOD:CHAR "MONSYS'1''9'" CHAR "LIBRAR'4''@12'" CHAR "LIBRAR'5''@37'" ; CHAR "ROLLIB'6''1'" ; TUMBLER:HEX 0 :HEX 0 :HEX 0 :HEX 0 :HEX 0 :HEX 0 :HEX 0 :HEX 0 ; CMD ; ;MOZY=80EA6 ; - BESMEXTR ; ; ; CTAPOPEЖИMHЫE ЭKCTPAKOДЫ БЭCM-6: ; ================================ ; IA=<ИCП.AДPEC>, CP= ; :15 YTX ; B CTEK: ITS IA ; PMP,ACC,И14 XTS REGSCAL AEN ; CHИMAEM "PЭ" ATX REGSCAL AAN 64-63 JAEQ SWCP ; ; ЗAKAЗAHA TPACCИPOBKA ЭKCTPAKOДOB ; CP NTA ; ЭTOT Э-K AAX REGSCAL ; БЛOKИPOBAH AOX Ю_ЭKCT ; ИЛИ BЫДAH JANE SWCP ; ИHTEPПPETEPOM 15 XTA -2 CP NTS AAU @9E0 :UZAS *+1 ; CYMMATOPHЫЙ IA XTA ; C ИHФ.CЛOBOM :ASNA @400-4 ASFT 16 ATX WS 15 MTJ I 15 VTM BUF+2 ITA CP ASFT -58 AUX =H0000 0000 0000 0707 AOX ="MACRO-00" ITS IA ASFT -49 AUX =H0007 0707 0707 0000 AOX ="(00000)." J VTM 0 ITS RI JMPS DHEX8 :AAX =H0000 0000 FFFF FFFF ASFT -8 AOX =" C:'0''0''0''0'," XTS WS ASFT 32 JMPS DHEX8 ; 48:33 AAX =H0000 0000 FFFF FFFF AOX =Z" IW:" XTS WS JMPS DHEX8 ; 32:1 :UTS @0A0D ASFT -48 15 ATX I MTJ 15 I VTM BUF+2 RR VJM TERMOS ; ; HA BCЯKИЙ CЛYЧAЙ, ДЛЯ HECДEЛAHHЫX KOMAHД: ; SWCP:ITA CP A-U @28 JALT INVALID ; < 50B A-U @40 - @28 CP JALT SWCP1 - @28 ; < 100B JMP INVALID ; SWCP1:JMP MACRO50 ; :IA JMEQ EXT_OLD JMP ERREXT ; - 51 ; :IA JMEQ EXT_OLD JMP WRPHYS ; - 52 ; :IA JMEQ EXT_OLD JMP WRPHYSM ; - 53 ; :JMP EXT_OLD ; 54 :JMP EXT_OLD ; 55 ; :IA JMEQ EXT_OLD JMP ERREXT ; - 56 ; :IA JMEQ EXT_OLD JMP MACRO57 ; :JMP ERREXT ; - 60 :PA VTM -6 JMP MACRO61 ; :IA JMEQ FINISH JMP MACRO62 ; :ITA IA JMP MACRO63 ; :JMP EXT_OLD ; - 64 ; :ITA IA JMP MACRO65 ; - 65 ; :JMP ERREXT ; -66 ; :IA XTA JMP MACRO67 ; :15 XTA -2 JMP MACRO70 ; :IA XTA JMP MACRO71 ; :I VTM 10 JMP MACRO72 ; :JMP ERREXT ; - 73 ; :PA VTM JMP MACRO74 ; :JMP MACRO75 ; :UTC 1 :PA VTM JMP M7776 ; ; ***************************** ; HAЧAЛЬHЫE ДEЯHИЯ ПPOЦECCA ; ПOCЛE ПEPBOЙ EГO AKTИBAЦИИ. ; ***************************** ; ; ПOKA Y HEГO ECTЬ TOЛЬKO И П + ДBA OCHOBHЫX ; CИCTEMHЫX ФAЙЛA (0 И 1), + KOПИЯ CTPOKИ ДИPEKTИBЫ ; ЗAПYCKA B BUF+2, A TAKЖE TИП ПYCKA B 1 PEГИCTPE. ; ДOБEPEM OCTAЛЬHOE XOЗЯЙCTBO : ; ; ЛOГИЧ.HOMEP HAЗHAЧEHИE CПEЦ.ФAЙЛA CИCT.HOM. ; 0 HEPEЗИДEHTЫ O C 0 ; 1 MOHИTOPHAЯ CИCTEMA 1 ; 2 ДЛЯ YKAЧKИ CTPAHИЦ 2 ; 3 ДЛЯ ЗAПИCИ ЛИCTИHГA 3 ; <...> ФOPTPAHHЫE БИБЛИOTEKИ 4,5 ; ; PEГИCTP CP: 0-DEBUG, 1-START, -1:TECT AY ; 2-SERVER ; ------------------------------------------- STARTJOB:I MTJ CP KTOЯ ATI TN ГHOM ATI NG UTA MACRO74 ; ЭTO HA CЛYЧAЙ AAX =H0000 0000 FFFF FFFF AON 32-PД ; ЛИШHEГO "RETS" AON 32-POA ATX RETSTEC ATX RETSTEC+1 UTA RETSTEC+1 ATH ASTEC<<1 NG WMOD SPRADR ; - P A B UTA SAVREG+16 ATH ASTEC<<1 +1 NG WMOD PAПY U VTM 2 ; ; ЗAKAЗ MAT.ЛИCTOB : ; UTA 7 I VTM 511 :I ATQ TMP<<2 I VRM * ATQ TMP<<2 +LINT ATQ TMP<<2 +LINT+1 I VTM 63 J VTM 1023 :I ATQ TMP<<2 +BFPOOL I VRM * UTA ATH PCNT<<1 ; PCNT=NTERM=0 ATQ TMP<<2 +1022 ATQ TMP<<2 +1023 :J ATX TABS ; ЧИCTKA CПPABOЧHИKA J VRM * ; ИHTEPПPETATOPA ; I VTM 2 ; ФAЙЛ YKAЧKИ RR VJM SF_OPEN JANE ABS_FILE CP JMLE COPINT I VTM 1 R VTM OCCINPUT ITA CP AEU 2 JANE GIVPAR R VTM SERVER ; ; BЫБOPKA B PATHNAME I-ГO ПAPAMETPA ; GIVPAR:J VTMB BUF+2 UTA GP1:W VTM ATX PATHNAME GP2:J BTA W ATB PATHNAME<<3 JAEQ GP4 ; KOHEЦ CTPOKИ J UTM 1 AEU BL JAEQ GP3 W UTM 1 JMP GP2 GP3:W JMEQ GP2 ; ЛEBЫE ПPOБEЛЫ I VRM GP1 ; W ATB PATHNAME<<3 R JMP GP4:I VRM GP1 R JMP ; ; ЗAKAЗ BXOДHOГO ФAЙЛA ПOД HOM.63 ; ФAЙЛЫ <ИMЯ>.B6 CЧИTAЮTCЯ COЗДAHHЫMИ HA БЭCM ; OCCINPUT:U VTM 63 I VTM 2 W BTA PATHNAME<<3 -3 ASFT -8 W AOB PATHNAME<<3 -2 ASFT -8 W AOB PATHNAME<<3 -1 AEX =H0000 0000 002E 4236 :JANE *+1 UTC @85 - @84 :W VTM @84 RR VJM F_OPEN JANE ABS_FILE ; ; ЗAKAЗ ФAЙЛA ДЛЯ ЛИCTИHГA (2-Й ПAPAMETP) ; ПPИ HEYKAЗAHИИ БEPETCЯ CПEЦ-ФAЙЛ 3. ; R VJM GIVPAR U VTM OUTFIL I VTM 3 ; ЛИCTИHГ RR VTM SET_TYP W JMEQ SF_OPEN ; CTAHДAPT W VTM @E0 RR VJM F_OPEN ; - CBOЙ ФAЙЛ SET_TYP:JANE ABS_FILE ; HEYДAЧA U XTA FDB AOU @6000 ; TИП=3 U ATX FDB ; ; ЗABEДEHИE CBOEГO ЭKЗEMПЛЯPA ; ИHTEPПPETATOPA ЭKCTPAKOДOB ДД-89 ; COPINT:I VTM 2047 SETR БЧC+БЧOП INTERCOP:I TTA EXTOLD I TTX LINT<<10 I TTX 30<<10 ; И B 30-M ЛИCTE! I VRM INTERCOP CP JMGE FORMOD J VTM 1023 TRANTEST:J TTA TECTAY J TTX ; B 0-Й ЛИCT J VRM TRANTEST I VTM =Z" *** TECT AY/YY имени А.Н.ТОМИЛИНА и M.Г.ЧAЙKOBCKOГO.'@0A''@0D'" RR VTM FORMIF JMP KOHCOЛЬ ; ; "OПOЗHABAHИE" MOДEЛEЙ ЛEHT : ; FORMOD:I XTA LISMOD AAU @F00FF ; ГAШ.CИCT.HOM. APX =H5F5F 5F5F 5F5F 0FFF AEN ASNA @400+4 AEN UTY 2 I TTX TNAMT I UTM 1 I XTA LISMOD JANE FORMOD ; <<<<<<<<<< IA VTM 1 NP VTM @1e JMPS FIX_PAGE :NP VTM @1f JMPS FIX_PAGE :NP VTM @200 JMPS FIX_PAGE :NP VTM @201 JMPS FIX_PAGE ; >>>>>>>>>>> CP JMEQ FORMIF ; - "DEBUG" ; ; ЧTEHИE BXOДHOГO ФAЙЛA. ПEPEПИCЬ HA MБ 01 ; NP VTM TABS+@400 ; HAЧAЛO "MБ" I VTM ; HAЧ.ДИCK.AДPEC P2 VTM 6<<10 ; 6K БAЙT W VTM 2 ; "ЧИCЛO PЭ" U VTM 63 U XTA FDB AAN 64-49 JANE INPUT NP VTM TABS+@10000 ; HAЧ.PC-ФAЙЛA P2 VTM 8<<10 ; 8K БAЙT W VTM 0 ; "ЧИCЛO HP" ; INPUT:ITA P2 ASFT -32 AOI I RR VJM F_READ P2 J+M I ; CЛEД.ДИCK.AДPEC NP UTM @400 ; CЛEД.ЛИCT U XTA FDB ASFT 16 AAU @FFFF ; ПPOЧЛИ ATI RR AEI P2 ; CKOЛЬKO ПPOШEHO JAEQ INPUT ; - ДA P2 MSFT 13 P2 JMEQ CREATD01 ; 1:1 ; ; ФAЙЛ CДEЛAH HA PC. ПEPEBOД B "COSY" ; RR MSFT 3 UTA ; ГAPAHTИPYEM RR UTC 1-@400 NP ATX ; KOHEЦ ФAЙЛA I VTMB TABS+@10000 NP VTM TABS+@3FF RR VTM ; STRLEN R VJM CPINIT ; LCOD:I BTA I UTM 1 ATI IA JAEQ ELCOD IA UTM -ETX IA JMEQ ELCOD IA UTM ETX-CR IA JMEQ LCOD IA UTM CR-LF IA JMEQ ESTR ITA RR A-U 83 JAGE LONGSTR ; ДЛИHHAЯ CTPOKA IA UTM LF-9 IA JMEQ TAB RR UTM 1 IA UTM 9-BL IA JMEQ BLAN J JMLT LCOD1 ; ; CБPOC J+1 ПPOБEЛOB ; :J JMEQ *+1 ; OДИH J UTC @81 - BL ; MHOГO :UTA BL R VJM CPACK ; ; ПEPEKOДИPOBKA И CБPOC CИMBOЛA ; LCOD1:IA BTA ALTISO<<3 +BL R VTM LCOD ; CPACK:W ATB WS<<3 +5 W VLM RCPACK WPACK:XTA WS AEN ASNA @400+4 AEN UTY 2 NP TTX CPINIT:NP UTM 1 W VTM -5 ; CЧ.БAЙT XTA =H0A0A 0A0A 0A0A 0000 ATX WS ; HAKOПИTEЛЬ RCPACK:J VTM -1 ; CЧ.ПPOБEЛOB R JMP ; BLAN:J UTM 1 JMP LCOD LONGSTR:J VTM -1 JMP LCOD ; TAB:ITA RR AAU 7 U-A 8 ATI IA IA J+M J IA J+M RR JMP LCOD ; ESTR:J UTA 84 ; 83+(J+1) A-I RR :RR VTM JALE *+2 A+U @80 ; XBOCTOBЫE R VJM CPACK ; ПPOБEЛЫ :R VTM LCOD ; ДOCБPOC JMP WPACK ; HAKOПИTEЛЯ ; ELCOD:P2 VTM -3 R VJM WPACK ELCOD1:P2 XTA ENDFIL+3 ATX WS R VJM WPACK CP VTM 63 ; "START" P2 VLM ELCOD1 ; ; ПPEBPAЩEHИE БYФEPA C TEKCTOM B "MБ-01" ; CREATD01:NP UTM -TABS-@400 NP MSFT 10 CD01:NP UTA 32 ASFT -54 AUX =H0000 0000 0001 F01F NP ATX TABDRU NP VRM CD01 RR VJM F_CLOSE ; OTKAЗ OT Ф-63 ; ; ПOДГOTOBKA И П K BXOДY B PEЖИM ЭMYЛЯЦИИ ; ЗAXBAT PEЗEPBHOЙ ГPYППЫ MOДИФИKATOPOB. ; FORMIF:UTA 7 ; ЗA PEЗEPBOM PINT WTC ASTEC W VTM ; PAПY ; ; ДИPEKTИBA ЗAПYCKA ("START" ИЛИ "DEBUG") ; YЖE HAXOДИTCЯ B REGSCAL. 4-Й БAЙT EE ; MOЖET ЗAДABATЬ PEЖИMЫ: STA , N=0,...,7 ; OHИ ПOПAДYT B 63:61 P.REGSCAL : ; 63 - ЗAKAЗAHA TPACCИPOBKA ЭKCTPAKOДOB ; 62 - BЫBOД HA TEPMИHAЛ OT Э064 ; 61 - ЗAMEHA "000" HA "075" ; 5:8 БAЙTЫ ДИPEKTИBЫ ПOЗBOЛЯЮT БЛOKИPOBATЬ ; TPACCИPOBKY OTДEЛЬHЫX ЭKCTPAKOДOB : ; STA60001 - 000@ : ЭKCTPAKOДЫ 77:74 ; 0010 - 00@0 : ---"--- 73:70 ; 0100 - 0@00 : ---"--- 67:64 ; 1000 - @000 : ---"--- 63:60 ; BTA REGSCAL<<3 +3 ATI IA NTA ; "PЭ" IA UTM -@30 IA JMLE WRRSC IA UTM -7 IA JMGT WRRSC IA UTA 7+8 ASFT -60 XTS REGSCAL APX =H0000 0000 4747 4747 ASFT 48 15 AOX AOU @1C04 ; БЛOK.TP:63-65,75 WRRSC:CP JMGE *+1 AON 64-61 :ATX REGSCAL R VJM ABREG AAU @F0000 ; HOM.PEЗ.ГP. AOU 2 ; TEГ PEЗ-TA AON 32-ББЧ W ATX -7 ; ---> PP,PPP XTA LINT<<10 +1 ASFT 12 :CP JMGE *+2 UTA W ATX -16 ; И1,И2 UTA 8 ; ДЛЯ TECTA: 10B :AAU @7FFF ; AДP.BXOДA ASFT -32 W ATX -8 ; ---> CЧAC UTA ; И15,И16 = 0 W ATX -9 UTA 6 ; B ИHИЦИATOP PINT ;========================================== ; ; ПOЛПPOГPAMMA ЗAMEHЫ CTPAHИЦ I И J ; MPCHANGE: SMON БBП I QTA TMP<<2 J QTS TMP<<2 I STQ TMP<<2 :J ATQ TMP<<2 RR VJM *+2 I MCJ J RR VTM MPCRET :J QTA TMP<<2 ASFT 4 ATI W JAEQ MCPCL ITA J ASFT -16 W AEH TPP<<1 AAU @F0000 W AEH TPP<<1 W ATH TPP<<1 AAU @3FF W MSFT -10 AOI W MCPCL:J WMOD @400 RR JMP MPCRET: CMON БBП R JMP ; ; ПOДПPOГPAMMA ДЛЯ OПPEДEЛEHИЯ AДPECA I БЛOKA ; PEГИCTPOB B ГPYППE (J=0) ИЛИ B ПAMЯTИ (J=1) ; ПPEPЫBAHИЯ БЛOKИPYEM, ЧTOБЫ HE ПOДMEHИЛИ ; ГPYППY PEГИCTPOB ! ; HA CYMMATOPE BЫДAETCЯ PPP. ; ABREG:J VTM SETR БBП ГHOM ATI NG NG RMOD PPP 15 ATX ASFT 8-5 AAU @3E0 ; ПPEPB.ГPYППA JANE ABRET J VTM 1 NG RMOD PAПY ASFT -1 ABRET:STI I R JMP ; ; ; ИCПOЛHEHИE ЭKCTPAKOДA B PEЖИME ЭMYЛЯЦИИ. ; ЛИCTЫ 512:513 COДEPЖAT BЫЖИMKY ИЗ ДД-89. ; MEHЯEM ИX MECTAMИ C 30:31 ЛИCTAMИ. ; BOCCTAHOBИM: И14,CYMMATOP,PMP. ЗAПOMHИM ; CTAPЫЙ BOЗBPAT И ПOЙДEM HA 74000B + CP - 50B ; EXT_OLD: I VTM 30 J VTM LINT R VJM MPCHANGE I VTM 31 J VTM LINT+1 ITA CP A-U 52 ; Э064 :JAEQ *+1 R VJM MPCHANGE :ITA IA ASFT -32 AOI CP ATX Ю_ЭKCT ITA RI ATX Ю_CЧAC CP UTA @7800-41 JMP SET_RI ; ; BOЗBPAT K ЮЗEPY ПOCЛE ИHTEPПPETATOPA ; RETEX:XTA Ю_CЧAC ; ; YCTAHOBKA ЗAДAHHOГO CЧAC ДЛЯ BЫXOДA ; B MAT.PEЖИM (HA ЛEBYЮ KOMAHДY). ; SET_RI:ATI RI R VJM ABREG ITA RI J JMP *+1 :I WMOD CЧAC JMP SETLEFT :I ATH 16-32 JMP SETLEFT ; ; BOЗBPAT B PEЖИM ЭMYЛЯЦИИ ПOД ЭKCTPAKOД. ; YCTAHOBKA B И14 ИCПOЛHИTEЛЬHOГO AДPECA. ; BOЗBPAT - BCEГДA HA ЛEBYЮ KOMAHДY, KPOME ; CПEЦ.PEЖИMA ДЛЯ Э075. ; RET_75:UTC REGSCAL ; GO_OLD:XTA AAN 64-61 JANE RET_OLD ; CПEЦ-075 R VJM ABREG SETLEFT:15 XTA -1 ; И14 J JMP *+1 :I WMOD IA JMP *+2 :I ATH 13-32 I HTA 18-32 :J JMNE *+1 I RMOD PP :AON 64-ПИA AEN 64-ПИA AON 64-ППK ; HAЛEBO! J JMP *+1 :I WMOD PP JMP RET_OLD :I ATH 18-32 JMP RET_OLD ; ; ЗAПPEЩEHHAЯ KOMAHДA. ПPOБA CПEЦ.PEЖИMA ; INVALID:XTA REGSCAL AAN 64-61 JAEQ INVALID1 RI UTC ; ПPOTAЛKИBAETCЯ ! ; ; BOCCTAHOBЛEHИE CYMMATOPA И PMP ; И BOЗBPAT ИЗ ЭKCTPAKOДA ; RET_OLD:I VTM ; TEMP5 XTA REGSCAL AEN ; YCT."PЭ" STX REGSCAL STI IA 15 XTY :I JMEQ RET_RET I HLT ; KOMAHДЫ 33 ; ЭTO CEЙЧAC KOПИPYETCЯ B CTAPYЮ ГPYППY! RET_RET: CLRR БBП+БППY+ПOП RET ; ; ПPEOБPAЗOBAHИE BOЗBPAЩAEMOГO CYMMATOPA ; RETAC: ASFT -16 AEN ASNA @400+4 AEN ; RETACOLD:15 ATX -2 JMP GO_OLD ; ; ЭKCTPAKOДЫ 76,77 ИCПOЛЬЗYЮTCЯ ДЛЯ BOЗBPATA ; ИЗ ИHTEPПPETATOPA (ИЛИ BЫДAHЫ ПPOГPAMMOЙ). ; M7776:XTA Ю_ЭKCT JAEQ GO_OLD ; KЛИEHT БAЛYETCЯ ATI CP UTA ATX Ю_ЭKCT I VTM 30 J VTM LINT R VJM MPCHANGE ; OБPATHAЯ I VTM 31 ; ЗAMEHA J VTM LINT+1 ; ЛИCTOB CP MTJ P1 P1 UTM -52 ; Э064 :P1 JMEQ *+1 R VJM MPCHANGE :PA JMNE ERREXT ; БЫЛA OШИБKA P1 JMNE RETEX ; ; ПOCЛE 64 ЭKCTPAKOДA BЫГPEБEM EГO БYФEP ; ====================================== ; IA UTM -1 IA JMLE RETEX ; Э64(0,1) XTA LINT<<10 + @174 ; 564B ASFT 12 AAU @3FF ATI I ; HAЧ.БYФEPA P2 VTMB LLIST U VTM OUTFIL U XTA FDB AAU @1FFF A+I P2 ; TEK.YKAЗ. ATI P2 ; ПO БYФ.BЫB. ; ; HAЧAЛO HOBOЙ CTPOKИ ЛИCTИHГA ; GCOD1:I XTA LINT<<10 PA VTMB BUF+2 I UTM 1 ASNA @400-4 AOU @FFFF ATX WS ; 6 БAЙT AEU -1 JAEQ EGCOD ; KOHEЦ БYФEPA-64 NG VTM -4 AEU -1 ASFT 56 IA VTM PLUS JAEQ MARK1 A-U 2 ATI CP ; ПPOTЯЖKИ-1 CP JMLT MARK A-U 70 JALT CROUT CP VTM 2 ; В НАЧАЛЕ - 3 ПУСТЫХ CROUT:UTA CR ; HA TT - HE JMPS OUTPUTL ; BЫДAEM, :UTA LF ; TOЛЬKO B JMPS OUTPUTL ; ЛИCTИHГ :CP VRM CROUT UTC MINUS-BL MARK:IA VTM BL MARK1:ITA IA JMPS OUTPUTL ; GCOD2:NG BTA WS<<3 +5 ATI IA ; ГOCT-CИMBOЛ A-U @7E ; "176" JALT GCOD3 A-U @80-@7E JALT GCOD5 ; KOHEЦ CTPOKИ ATI CP ; ПPOБEЛЫ :UTA BL JMPS OUTPUT :CP VRM *-1 JMP GCOD4 GCOD3:IA BTA GOSTALT<<3 ; ПEPEBOД JMPS OUTPUT ; B KOД MKБ GCOD4:NG VLM GCOD2 ; I XTA LINT<<10 ASNA @400-4 ATX WS AEU @FF000 ; HET "176" !!! JAEQ GCOD5 NG VTM -5 I VLM GCOD2 ; ; KOHEЦ OЧEPEДHOЙ CTPOKИ. ПPOБA ; ПAPAЛЛEЛЬHOЙ BЫДAЧИ HA TEPMИHAЛ. ; GCOD5:UTA CR JMPS OUTPUT :UTA LF JMPS OUTPUT :XTA REGSCAL AAN 64-62 JAEQ GCOD1 ; HE HAДO UTA PA ATB I MTJ PA I VTM BUF+2 J VTM 0 ATB BUF+2<<3 +81 UTA LF ATB BUF+2<<3 +80 UTA CR ATB BUF+2<<3 +79 RR VJM TERMOS PA MTJ I JMP GCOD1 ; ; ЗAПИCЬ CИMBOЛA B БYФEP ЛИCTИHГA ; И B БYФEP ДЛЯ BЫДAЧИ HA TEPMИHAЛ ; OUTPUT: PA UTM 1 PA ATB -1 ; B TT-БYФEP OUTPUTL:P2 ATB P2 UTM 1 ITA P2 AAU @1FFF JAEQ WRBOUT RETS WRBOUT:NP VTM LLIST ; БYФEP ПOЛOH. U XTA FDB ; HYЖEH CБPOC. ASFT 40 AAU @FF ATI W JAEQ WRBRET ; A ФAЙЛA HET ! W HTA FCOOR<<1 AON 64-46 ; 8K БAЙT W VTM 0 ; MAIN TAG RR VJM F_WRIT WRBRET:P2 VTMB LLIST RETS ; ; B C E B Ы Г P E Б Л И : ; EGCOD:ITA P2 ; ===> B CЧETЧИK U AEX FDB ; БAЙTOB AAU @1FFF ; "XBOCTA" U AEX FDB ; ФAЙЛA U ATX FDB JMP RETEX ; ; Э K C T P A K O Д Ы - 0 5 0 ; ============================= ; I = ; WS = ; MACRO50:XTA INTERP ASFT 12 AAU @7FF A+U INTERP ATI I ; " И П З " ITA IA AAU @FFFF0 JAEQ EXT_OLD ; < 16 15 XTA -2 ASNA @400-4 ASFT 16 ATX WS ; CYMMATOP B P.48:1 ITA IA A-U @34 JALT ERREXT ; < 64B A-U @4C - @34 IA JALE SW50 - @34 A-U @80 - @4C JALT ERREXT ; 114 OПPEДEЛЯET ИMЯ ПOДKATAЛOГA B ; OCHOBHOM CПPABOЧHИKE ФAЙЛOB CИCTEMЫ. ; <ИMЯ ПAKETA> - HE ИCПOЛЬЗYETCЯ. ; <ИMЯ XOЗЯИHA> TPAKTYETCЯ KAK ИMЯ ФAЙЛA HA PC ; <ИMЯ ФAЙЛA> TPAKTYETCЯ KAK PACШИPEHИE .EXT ; OПPEДEЛЯET ЗHAЧEHИE ATPИБYTA "W" ; ; TAK, ЗAKAЗ: D667/SYSTEM,CROSS,LIB,W ; TPAHCЛИPYETCЯ B: D:\BESM6\DIS667\CROSS.LIB ; И PAЗPEШAETCЯ ДOCTYП ПO ЗAПИCИ. ; ЧTOБЫ ИMETЬ ПYCTOE PACШИPEHИE ИMEHИ ФAЙЛA, ; HAДO ИCПOЛЬЗOBATЬ CЛOBO "BLAN" : ; D76/OWN,FILE,BLAN ==> D:\BESM6\DIS076\FILE ; ; OCCUPYD:XTA WS+1 AAU @7FFF ATI P2 ; ИHФ.ПOЛE XTA WS+1 ASFT 15 AAU @1F ATI I ; K O П AEU @1F JAEQ OKRET57 ; CMEHA CTATYCA I JMP *+1 :JMP OKRET57 ; ЗAK.ПAKETA :JMP OKRET57 ; OTK.ПAKETA :JMP DCOOR ; KOOPДИHATЫ GNDIS:R VTM OCCFIL JMP NEXTWORD ; ЗAK.ФAЙЛOB :R VTM OCCSFIL JMP NEXTWORD ; ЗAK.SCRATCH RNF:R VTM REFFIL JMP NEXTWORD ; OTK.ФAЙЛOB :I VTM 31 JMP REFALL ; OTK.BCEГO ; ; SCRATCH-ФAЙЛ ПPOCTO OTMEЧAEM "1" B TABS ; KPOME TOГO, B COOTB. CTPOKY FDB ПИШETCЯ ; 8000 0000 0000 0000 ; OCCSFIL:JAEQ OKRET57 ; KOHEЦ CПИCKA ASFT 36 AAU @3F ATI U XTA TABS U AON -24 ATX TABS NTA U ATX FDB JMP NEXTWORD ; DCOOR:U VTM 56 R VJM NEXTWORD ASFT -52 AUX =H0000 0000 0F0F 0F00 AOX ="\DIS000\" ATX PATHNAME+1 XTA ="D:\BESM6" ATX PATHNAME ; GMAS:R VJM NEXTWORD ASFT -16 ATX PATHNAME+2 JALT OKRET57 ; KOHEЦ CПИCKA UTA ATX PATHNAME+3 J VTMB PATHNAME+2 :J BTA ; ПOИCK KOHЦA A-U BL ; ИMEHИ ФAЙЛA JALE GFIL J VLM *-1 ; GFIL:R VJM NEXTWORD ASFT -16 JALT GMAS ; K CЛEД."BOSS" AEX ="BLAN" ASFT 40 JAEQ GMNUM ; БEЗ ".EXT" AEX =" BLA" J ATB 3 ASN @400+8 J ATB 2 ; ПPИЛEПЛЯEM ASN @400+8 ; PACШИPEHИE J ATB 1 ; B ЗAД UTA POIN ; ИMEHИ ФAЙЛA J ATB ; GMNUM:R VJM NEXTWORD AAN 64-30 ; "W" :JANE *+1 ; UTC @85-@C5 ; -ЧTEHИE :W VTM @C5 ; -ЗAПИCЬ RR VJM F_OPEN JANE OTЛYП R VTM GFIL U UTA @F00 ; "ДЛИHA" > 7400 B ASFT -12 U VLM ORMAT ; OTЛYП1:UTC 2 ; БИT45 OTЛYП:NTA 1+4 ; БИT47 R VJM ORMAT NEGR:UTA 1 ATX WS OKRET57:XTA WS JMP RETAC ; OCCFIL:R VJM NEXTWORD JAEQ OKRET57 ; KOHEЦ CПИCKA ATI I ; CTAP.MAT.HOM ASFT 36 ATI U ; HOB.MAT.HOM AAN 64-12 JANE GNDIS ; K CЛEД.ПAKETY ITA I AAU @3F JAEQ OTЛYП1 ; HE ЗAKAЗAЛCЯ ATI I ITA U AAU @3F ATI U I XTS FDB U ATX FDB ASFT 40 AAU @FF STI U ; "UN" U ATB FNUM<<3 UTA I ATX FDB U UTM -16 ; "NMOD" = :U JMLT *+1 ; 30-47(B) U VTM -16 :U UTA 16+24 ASFT -30-12 R VTM OCCFIL JMP ORMAT ; NEXTWORD:P2 XTA P2 UTM 1 ASNA @400-4 ASFT 16 W VTM 5 ; ДЛЯ TTPRINT R JMP ; ORMAT:P2 AOX -1 UTY 2 P2 TTX -1 R JMP ; REFFIL:JAEQ OKRET57 ASFT 36 AAU @3F ATI U XTA TABS U AON -24 U AEN -24 ATX TABS RR VTM RNF JMP F_CLOSE ; REFALL:UTA ATX TABS U VTM 24-1 :U UTM 1 RR VJM F_CLOSE I VRM *-1 JMP OKRET57 ; ; Э K C T P A K O Д - 6 2 (IA.NE.0) ; =================================== ; MACRO62:RR VTM GO_OLD IA MTJ U U MSFT 9 ITA IA AAU @1FF ATI IA AEU @1FF JAEQ REFTAP ; ; YCTAHOBKA "ДEЛЬTЫ"=IA HA ЛEHTY=U ; DELTA:U BTA MODEL<<3 RR JAEQ ATI I I UTM T1MT-8 ITA IA ASFT -24 I AEX AAX =H0000 0000 00FF F000 I AEX RR MTJ R JMP WRIF ; ; Э K C T P A K O Д Ы - 052,053 ; ============================== ; (ЗAПИCЬ B ФИЗ.ПAMЯTЬ ПPOCTAЯ И ПO MACKE) ; WRPHYS:15 XTA -2 ; CYMM===>PMP 15 ATX -3 UTA -1 ; ПOЛHAЯ MACKA 15 ATX -2 WRPHYSM:ITA IA AAU @FF800 JANE ERREXT ; BEЛИK AДPEC IA UTC LINT<<10 I VTM I XTA 15 AEX -3 15 AAX -2 I AEX R VTM RETACOLD JMP WRIF ; ; Э K C T P A K O Д - 061 ; ========================= ; ( ЧTEHИE 1-7 ПYЛЬTOBЫX CЛOB) ; ; MACRO61:UTA -1 ; RR VJM DATE ; APX =H030F 0001 0F00 0F0F ; ASFT 48-43 ; ATX WS ; IA MTJ I ; :PA XTA TUMBLER+6 ; R VJM WRIF ; I UTM 1 ; PA VLM *-1 ; I UTM -4 ; XTA WS ; R VTM GO_OLD ; JMP WRIF MACRO61:XTA =H7800 0000 0000 0000 UTY 2 :IA TTX IA UTM 1 PA VLM *-1 JMP GO_OLD ; ; Э K C T P A K O Д Ы - 063,065 ; =============================== ; ЧTEHИE ФИЗИЧECKOЙ ЯЧEЙKИ. AДPECA 0-2047 ; ИMИTИPYET ПAMЯTЬ ИHTEPПPETATOPA, ПPOЧEE ПYCTO. ; MACRO63: MACRO65: AAU @FF800 JANE ERREXT ; BEЛИK AДPEC IA XTA LINT<<10 IA UTM -7 IA JMGT RETACOLD IA XTA TUMBLER+7 RR VTM DATE_4 IA UTM 7-4 IA JMEQ DATE JMP RETAC ; ; ; Э K C T P A K O Д O T Л A Д K И ; ================================= ; MACRO67: ASNA @400-4 ASFT 16 ATX WS W VTM 2 ; OCT.ПO ЧT. AAN 64-21 JANE STOP67 W VTM 1 ; OCT.ПO ЗAП. XTA WS AAN 64-22 JANE STOP67 XTA WS AAN 64-23 JANE RET67 ; - ПPOKPYTKA W VTM ; OCT.ПO NK. ; STOP67:XTA WS AAU @7FFF ; ЗAЩИЩAEMЫЙ W ATX OCT67 ; AДPEC ATI I XTA WS AAN 64-24 ; ПPИЗH.ПEЧATИ ASFT -40 RI AOU 1 ; CЧAC+1 ATX RETM67 ; BXOД ПO ЗAЩИTE SETR БПTЗ+БПTЧ I TTA 15 ATX W NTA 64-5 AOY ; B TEГ - AEX ; - HYЖHЫЙ БИT 15 XTA ; ЗAЩИTЫ I TTX CLRR БПTЗ+БПTЧ ; ; BЫXOД - ПO AДPECY B 39:25 P. IW67 ; RET67:XTA WS ASFT 24 AAU @7FFF JMP SET_RI ; ; Э K C T P A K O Д O Б M E H A ; =============================== ; MACRO70:IA JMEQ *+1 IA XTA :ASNA @400-4 ; CXЛOПHEM ПOPЯДOK ASFT 16 ATX IW70 ; B PAЗP.48:1 15 ATX -2 ; =IW70 AAN 64-40 ASFT 39 ATI W ; ЗП/ЧT P2 VTM @3FFFF ; MACKA ПOИCKA XTA IW70 ASFT 20 AAU @7C00 ATI NP ; -БYФEP RI VTM 1024 ; ДЛИHA=ЛИCT PA VTM 0 ; CEKTOP=0 XTA IW70 ASFT 12 AAU @3F ATI U ; YCTP-BO A-U 24 JALT DRUM A-U 32 JAGE BADM70 XTA IW70 AAN 64-39 JANE BADM70 ; - ФИЗ.ЛEHTA XTA IW70 AAN 64-42 ; -ЧTEHИE ИMEHИ JANE RNAMT XTA IW70 AAN 64-41 ; - ПOДBOД JANE GO_OLD XTA TABS U AAN -24 JANE SVT ; SCRATCH ; ; YЧET CMEЩEHИЯ ПPИ OБMEHE C MOДEЛЬЮ ЛEHTЫ ; U BTA MODEL<<3 JAEQ OWN ATI J J XTA T1MT-8 ASFT 24 AAU @FFF A+L IW70 ATX IW70 ; ; OБMEH C ЛИЧHЫM ФAЙЛOM ; (BEДETCЯ 48-PAЗPЯДHЫMИ CЛOBAMИ) ; OWN:U XTA FDB JAEQ BADM70 ; ЧYЖAЯ MЛ ; <<<<<<<<<< SPECIAL FOR MAIL BOX >>>>>>>>> ASFT 40-3 AAU @7F8 ATI J J XTA FATA+1 AEX ="\DIS667\" J XTS FATA+2 AEX ="MD.MAD" ASFT 16 15 AOX JANE NOMAIL XTA IW70 A-U @C0 ; 300(B) ATX IW70 NOMAIL: ; -------------------------- ITA RI ASFT -32 XTS IW70 AAI P2 ; TPAKT ИЛИ AAU @FFF ; ЗOHA ASFT -10 A+I PA ; + CEKTOP 15 AOX A*U 6 RR VTM GO_OLD W JMEQ F_WRIT W VTM 3 ; MAIN TAG= JMP F_READ ; ; CTAHДAPTИЗAЦИЯ ДЛЯ MБ : ; 1:5 - TRAKT, 7:8 - CEKTOP, 25:26 - AБЗAЦ ; DRUM:XTA IW70 AAN 64-46 JANE CHMOD ; - MOДEЛЬ MЛ XTA IW70 AAN 64-36 JAEQ STAND XTA IW70 AAU @FF ATX WS ASFT -8 AOX WS ASFT 2 AAU @FF AEX WS AEX IW70 ATX IW70 STAND:XTA IW70 AAN 64-48 JAEQ NOTSECT RI VTM 256 ; ДЛИHA=CEKTOP XTA IW70 ASFT -2 AAU @300 ATI PA ; CEKT.CMEЩEHИE XTA IW70 ASFT 24-8 AAU @300 A+I NP ATI NP ; + AБЗAЦ ; NOTSECT:P2 VTM @3F01F ; MACKA ПOИCKA XTA IW70 AAN 64-39 JAEQ SVT ; MAT.MБ W JMEQ BADM70 ; ФИЗ.ЗAПИCЬ ; ITA U U VTM 1 ; 9/MONSYS J VTM ; ЗOHA=0 AEU @11 ; MБ-21 JAEQ MSSHIFT J VTM @20 ; ЗOHA=40 AEU 3 ; MБ-22 JAEQ MSSHIFT J VTM @100 ; ЗOHA=400 AEU @1C ; MБ-16 JANE BADM70 ; MSSHIFT: XTA IW70 AAU @FF01F A+I J ; + CMEЩEHИE ATX IW70 P2 VTM @3FFFF JMP OWN ; ; OБMEH ПO HOMEPY MOДEЛИ (TOЛЬKO ЧTEHИE) ; COOTBETCTB. CПEЦ-ФAЙЛ ПPИПИCЫBAETCЯ K ; ДECKPИПTOPY-63. ; CHMOD:XTA IW70 AAN 64-39 U AOX TNAMT-8 JAEQ BADM70 W JMEQ BADM70 U XTA LISMOD-8 ASFT 8 AAU @FF ATI I ; CИCT.HOMEP U VTM 63 RR VJM SF_OPEN W VTM 3 JMP OWN ; ; SCRATCH - ФAЙЛ OTPAБATЫBAETCЯ TOЧHO ; TAK ЖE, KAK И MAT. БAPAБAH, T.E. ; B BИPT.ЛИCTAX CAT+1 : 511 ; SVT:I VTM 1-LT SETR БПИHT+БПTЧ+БПTЗ+БЧOП :I XTA TABDRU+LT-1 JAEQ NOFIND AEX IW70 P2 AAU ; MACKA JAEQ FIND I VLM SVT+1 :HLT @70 ; ПEPEПOЛHEHИE JMP * NOFIND:XTA IW70 ; PEГИCTPAЦИЯ AON 64-19 ; (ДЛЯ MБ-00) I ATX TABDRU+LT-1 W JMEQ FIND I MTJ RR RR UTM CAT+LT RR MSFT -10 J VTM 1023 ; ПPИ ПEPBOM UTY 2 ; OБP. ПO ЧTEHИЮ XTA =H7800 0000 0000 0000 :RR TTX ; PACПИШEM RR UTM 1 ; ЛИCT J VRM *-1 ; HYЛЯMИ ; FIND:I UTM CAT+LT I MSFT -10 CHWR:PA J+M I ; +CMEЩEHИE RI UTM -1 W JMEQ TRAN ; ЗAПИCЬ I MCJ NP ; ЧTEHИE TRAN:RI UTC NP TTA RI UTC I TTX RI VRM TRAN NP JMEQ ADR0 I JMNE GO_OLD ; ; работа с 0-м адресом ; ADR0: SETR БВП XTA @3FF RMOD @401 ATI RI RMOD @400 WMOD @401 :NP JMEQ *+1 NP UTC -@400 :TTA @400 I TTX :I JMNE *+1 TTX @400 :ITA RI WMOD @401 CLRR БВП JMP GO_OLD ; RNAMT:U BTA MODEL<<3 ATI J J XTA TNAMT-8 JMP RETACOLD ; ; ; Э K C T P A K O Д OБMEHA C TEPMИHAЛOM ; ======================================= ; MACRO71: ASNA @400-4 ASFT 16 15 ATX ; IW71 15 ATX ASFT 24 AAU @7FFF STI P2 ; AДP.ЧACTЬ ASFT 39 AAU 7 STI P1 ; K O П ASFT 44 ATI W ; И.P. JAEQ READY71 R VJM ABREG W J+M I ; ДOCTAEM И.P.: J JMP *+1 :I RMOD ; ИЗ ГPYППЫ JMP *+2 :I HTA -32 ; ИЗ CTEKA :AAU @7FFF CMON БBП A+I P2 AAU @7FFF ATI P2 ; READY71:P2 MTJ CP I VTM BUF+2 P1 UTM -4 P1 JMLT GO_OLD ; -ПEPФOPAЦИЯ P1 MTJ J J JMP *+1 :PA VTM OUT71 ; BЫBOД JMP TR68 :PA VTM TER71 ; BBOД C JMP TR68 ; ПOДCKAЗKOЙ :RR VTM INP71 JMP TERMOS ; ЧИCTЫЙ BBOД :HLT @71 ; OUT71:RR VTM GO_OLD JMP TERMOS TER71:P1 ATB -1 ; БEЗ "CR" !!! RR VJM TERMOS INP71:CP MTJ P2 PA VTM GO_OLD ; TR86:P1 VTMB BUF+2 IA VTM 1 W86:P2 UTM 1 W VTM 5 B86:IA JMEQ C86 ; ДOKPYTKA P1 BTA P1 UTM 1 ATI IA AEU CR JAEQ E86 C86:P2 XTA -1 ASFT -8 IA AOB ALTISO<<3 P2 ATX -1 W VRM B86 ASFT -16 AEN ASNA @400+4 AEN UTY 2 P2 TTX -1 IA JMNE W86 PA JMP E86:IA VTM JMP C86 ; TR68:P1 VTMB BUF+2 R VJM NEXTWORD :ATX BUF+1 W VTM -5 LTR68:W BTA BUF<<3 +15 ATI IA IA BTA ISOALT<<3 P1 ATB JAEQ ELTR68 AEU 1 ; "ПYCTЫШKA" :JAEQ *+1 P1 UTM 1 :W VLM LTR68 JMP NEXTWORD ELTR68:UTS CR P1 ATB UTA LF P1 STB 1 W VTM 7 P1 UTM 1 :W UTC ; ГAPAHTИPYEM P1 ATB 1 ; HYЛИ ДO W VRM *-1 ; KOHЦA CЛOBA PA JMP ; ; Э K C T P A K O Д - 0 7 2 ; =========================== ; MACRO72: IA UTM -@71C7 ; 70707B IA JMEQ GO_OLD ; - IFOVFL IA UTM @71C7 - 4 IA JMLT GO_OLD ; -DD89 IA JMEQ DFWRIT IA XTA 4 ASNA @400 -4 AAU @F0000 ATX IW72 15 ATX -2 ; CYMMATOP=IW72 ASFT 58 ATI J ; KOП-72 XTA IW72 ASFT -6 ATX IW72 J JMEQ REFMEM72 J UTM -8 J JMEQ CHEMEM72 J UTM 8-9 J JMEQ GIVMEM72 J UTM 9-16 J JMEQ REFTAP72 JMP GO_OLD ; ; --- ЗAПИCЬ CTPOKИ B "DAYFILE" ; DFWRIT:15 XTA -2 ASFT 12 AAU @7FFF ATI P1 XTA REGSCAL AAN 64-62 ; YЖE BЫДAЛИ JANE GO_OLD ; OT Э064 ! :P1 UTC I XTA I ATX WS ; WS(13)=0 ! I VRM *-1 P2 VTM WS JMP TTPR1 ; ; --- OTKAЗ OT ЛEHTЫ ; REFTAP72: R VJM FR72 JAEQ GO_OLD ;........ JMP REFTAP72 ; ; --- ЗAMEHA HOMEPOB MAT. CTPAHИЦ ; CM72:JAEQ ERREXT P1 MTJ I P2 MTJ J R VJM MPCHANGE CHEMEM72:R VJM FR72 JAEQ GO_OLD R VTM CM72 ; ; BЫБOPKA OЧEPEДHOГO ФPAГMEHTA IW72 ; B P2. ПPEДЫДYЩИЙ OCTAETCЯ B P1. ; CYMMATOP = 0, ECЛИ KOHEЦ ИHФOPMAЦИИ. ; FR72:P2 MTJ P1 XTA IW72 JAEQ ERREXT ASFT 58 ATI P2 XTS IW72 ASFT -6 STX IW72 AEU @3F R JMP ; ; --- ЗAKAЗ / OTKAЗ MAT. CTPAHИЦ ; GIVMEM72:UTC 1 REFMEM72:IA VTM -1 ; ДЛЯ "FIX_PAG" R VJM FR72 JAEQ GO_OLD ITA P2 A-U 32 P2 MTJ P1 :JALT *+1 R VJM FR72 :ITA P1 AAU @1F ATI P1 A-I P2 JAGT ERREXT ATI J LOOPRG:P1 MTJ NP P1 UTM 1 IA JMEQ LOOPGP ; ЭTO ЗAKAЗ ! JMPS FIX_PAGE ; ЭTO OTKAЗ ! :J VLM LOOPRG JMP REFMEM72 ; LOOPGP:NP QTA TMP<<2 JANE *+2 ; YЖE ECTЬ ! UTA 7 ; - ЗAKAЗЫBAEM NP ATQ TMP<<2 :J VLM LOOPRG JMP GIVMEM72 ; ; HEЗAПYCK ПO OTCYTCTBИЮ TPEБYEMЫX ФAЙЛOB ; ABS_FILE:I VTM PATHNAME-1 I XTA XTS ="NO FILE:" I ATX J VTM 0 RR VJM KOHCOЛЬ 15 XTA ATX PATHNAME-1 ; ; Э K C T P A K O Д K O H Ц A ; =============================== ; MACRO74:XTA ПEPE74 UTS STX ПEPE74 JANE SET_RI ; ; 0 - HOPMAЛЬHЫЙ KOHEЦ ЗAДAЧИ ; 6 - ЗAПP.KOM ИЛИ ПЛOXOЙ ЭKCTPAKOД ; FINISH:UTC -6 ; HOPMA ; INVALID1: BADM70: ERREXT:IA VTM 6 ; "ЗAПP.KOM." R VJM ABREG NG RMOD PAПY ATH ASTEC<<1 +1 J JMNE INMEM I MTJ NG TN MTJ NP RR VJM PUSHGRUP ; INMEM:WTC ASTEC W VTM -16 15 XTA ; ИAOП=И14 ! ASFT -32 AOI IA ; HOM.OШ. ИЛИ 0 STX INFERR W STX 10 ; CYMMATOP W ATX 11 ; PMP IA VTM JMP ERRMACRO ; HA ПEЧATЬ ; ; ПOCЛE ПEЧATИ - BOT CЮДA ; ENDJOB:U VTM OUTFIL R VJM F_PERM U VTM 63 R VTM QSEM-1 SEMALL:ITA R ; ОСВОБОЖДЕНИЕ ASFT -32 AOU 4 ; ВСЕХ СЕМАФОРОВ PINT R VRM SEMALL ; CLO_F:RR VJM F_CLOSE U VRM CLO_F ; I VTM BUF XTA ="KOHEЦ ЗA" I ATX ITA TN JMPS DHEX8 :AAU @FFFF AOX =Z"ДAЧИ- " I ATX 1 UTA @0A0D ASFT -48 I ATX 2 J VTM 0 RR VJM KOHCOЛЬ ; ; TEMP3 NP VTM 1021 ; KPOME ИП !!! :IA VTM -1 ; OTKAЗ OT JMPS FIX_PAGE ; ЛИCTOB :NP VRM *-1 UTA 5 PINT ; ; ; ЭKCTPAKOД "ЗAПИCЬ KOMAHД" ; =========================== ; MACRO75:15 XTA -2 ; CYMMATOP BXOДA UTY 3 ; "KOMAHДA PЭ" IA TTX CPUSH ITA IA AAU @FFFFE JANE RET_75 R VJM ABREG :IA JMNE *+1 UTC 3-2 ; TEГ= :W VTM 2 ; TEГ=<ЧИCЛO PЭ> UTA @FFFFC J JMNE PPPMEM I RMOD PPP AAU @FFFFC AOI W I WMOD PPP JMP RET_75 PPPMEM:I AAH 19-32 AOI W I ATH 19-32 JMP RET_75 ; END ERRMACRO:NAME QF ;* ;********************************************* ;* * ;* СТАНДАРТНАЯ ОБРАБОТКА СОБЫТИЙ. * ;* ПEЧATЬ COOБЩEHИЯ OБ OШИБKE ИЛИ * ;* KOHЦE ЗAДAЧИ, A TAKЖE PEГИCTPOB * ;* * ;********************************************* ;* ;* TEKYЩEE COCTOЯHИE ЗAДAЧИ HAXOДИTCЯ ;* B BEPШИHE CTEKA YПPЯTЫBAHИЯ : ;* 0 : И1 И2 ;* 7 : И15 И16 ;* 8 : CЧAC POП ;* 9 : PP PPP ;* 10 : CYMMATOP ;* 11 : P M P ;* KPOME TOГO, B "INFERR" ПEPEДAЮTCЯ : ;* ИAOП HOM.OШ. ИЛИ 0 ;* ;* НОМЕР СОБЫТИЯ - В РЕГИСТРЕ IA ;* ENDJOB:SUBP QF TERMOS:SUBP QF DHEX8:SUBP QF F_WRIT:SUBP QF TIME:SUBP QF FATA IFP VMD EVENT OUTFIL:EQU 3 ; ФAЙЛ-ЛИCTИHГ LLIST:EQU BFPOOL+OUTFIL<<10 CODE MODIF U:EQU P1 ; CONST ; THD:CHAR "M1-M8: M9-16: CM,MP: " TKILL:CHARZ "ЗАДАЧА СНЯТА.'13''10'" TERROR:CHARZ "KOHEЦ ЗAДAЧИ.'13''10'" :CHARZ "OTC.БЛOK ПAMЯTИ'13''10'" :CHARZ "MHOГOKP.OШИБKA'13''10'" :CHARZ "TIME-OUT OЗY'13''10'" :CHARZ "TIME-OUT ШИHЫ'13''10'" :CHARZ "OШ.ПPOГ.ПPEP.'13''10'" :CHARZ "ЗAПP.KOM. ИЛИ ПЛOXOЙ ЭKCTPAKOД.'13''10'" :CHARZ "OTC.AДPEC ПAMЯTИ'13''10'" :CHARZ "OTPИЦ.HOMEP CTPAHИЦЫ Y KOMAHДЫ'13''10'" :CHARZ "OTPИЦ.HOMEP CTPAHИЦЫ Y OПEPAHДA'13''10'" :CHARZ "ПPOГP.ИHTEPП.TEГA KOMAHДЫ'13''10'" :CHARZ "ПPOГP.ИHTEPП.TEГA OПEPAHДA'13''10'" :CHARZ "ЗAЩИTA AДPECA ПPИ ЧTEHИИ'13''10'" :CHARZ "KOHTPOЛЬ KOMAHДЫ'13''10'" :CHARZ "???" :CHARZ "OПEPAHД B ЧYЖOM ЛИCTE'13''10'" :CHARZ "KOMAHДA B ЧYЖOM ЛИCTE'13''10'" :CHARZ "ЗAЩИTA CTPAHИЦЫ ПO OБPAЩEHИЮ'13''10'" :CHARZ "ЗAЩИTA CTPAHИЦЫ ПO ЗAПИCИ'13''10'" :CHARZ "ЗAЩИTA BЫБOPKИ KOMAHДЫ'13''10'" :CHARZ "ЗAЩИTA ПEPEДAЧИ YПPABЛEHИЯ'13''10'" :CHARZ "ЗAЩИTA AДPECA ПPИ ЗAПИCИ'13''10'" :CHARZ "ЧYЖOЙ CYMMATOP'13''10'" :CHARZ "ЧYЖOЙ OПEPAHД'13''10'" :CHARZ "???" :CHARZ "???" :CHARZ "???" :CHARZ "???" :CHARZ "???" :CHARZ "ШAГOBЫЙ PEЖИM'13''10'" :CHARZ "???" :CHARZ "???" :CHARZ "???" :CHARZ "ПEPEПOЛHEHИE'13''10'" :CHARZ "ПEPEПOЛHEHИE ПOPЯДKA БЭCM-6'13''10'" :CHARZ "ДEЛEHИE HA 0'13''10'" :CHARZ "ПППYПP" :CHARZ "HEЗAKOHHЫЙ OПEPAHД'13''10'" :CHARZ "0-Й MAT.AДPEC'13''10'" ; CMD ; ;MOZY=81219 ; - ERRMACRO ; KTOЯ ATI TN ГHOM ATI NG CMON БBП SETR БЧOП+БЧC WTC ASTEC P2 VTM -16 XTA INFERR P2 ATX 12 ATI J ASFT 32 ATI PA ; ИAOП U VTM OUTFIL U XTA FDB AAU @1FFF ; HAЧ.AДPEC RI VTMB LLIST ; ПO A+I RI ; БYФEPY ATI RI ; ЛИCTИHГA IA JMP SW_EVEN ; SW_EVEN:J VTM ; -NORMAL END :I VTM TERROR JMP ST1 :HLT @222 :HLT @333 :HLT @444 :HLT @555 :I VTM TKILL JMP ST2 ; ST1:J JMEQ ST2 I XTA I UTM 1 AAU @FF JANE ST1 J VRM ST1 ST2: RR VJM STROUT ; P2 MSFT -1 I VTMB BUF+2 XTA =" CЧAC:" JMPS FRAG6 :P2 HTA 16 JMPS DIG5 :XTA =" ИAOП:" JMPS FRAG6 :ITA PA JMPS DIG5 :XTA =" POП:" JMPS FRAG6 :P2 HTA 17 JMPS DIG5 :XTA =" PEЖ:" JMPS FRAG6 :P2 HTA 18 JMPS DIG8 :XTA =" PPP:" JMPS FRAG6 :P2 HTA 19 JMPS DIG8 :CP VTM -2 RR VJM STROUTB ; REGOUT:CP XTA THD+2 ATX BUF+2 I VTMB BUF+2 CP JMNE *+2 P2 UTM 4 UTC 3-7 :RR VTM 7 I UTM 6 REG1:UTA BL ; ПPOБEЛ I ATB I UTM 1 P2 HTA P2 UTM 1 JMPS DIG8 :RR VRM REG1 CP JMNE NEXLIN XTA =" СЧЕТ:" JMPS FRAG6 :XTA IFCTIM AEU -1 A/L =1000000 I MTJ CP RR VJM TIME CP MTJ I CP VTM W VTM 7 JMPS FRAG ; NEXLIN:RR VJM STROUTB CP VLM REGOUT UTA ETX RI ATB ; " E O F " RI UTA 1 U AEX FDB AAU @1FFF ; OФOPMЛEHИE U AEX FDB ; KOHЦA ФAЙЛA U ATX FDB ; C ЛИCTИHГOM CLRR БЧOП+БЧC JMP ENDJOB ; FRAG6:W VTM 6 JMP FRAG DIG8:UTC 7-4 DIG5:W VTM 4 JMPS DHEX8 FRAG:I MTJ J W J+M J FR1:J ATB ASFT 8 J UTM -1 I UTM 1 W VRM FR1 RETS ; STROUTB:UTA CR I ATB UTA LF I ATB 1 UTA I ATB 2 I VTM BUF+2 STROUT:I MTJ J J MSFT -3 TRLST:J BTA J UTM 1 RI ATB JAEQ STROUTT RI UTM 1 ITA RI AAU @1FFF JANE TRLST NP VTM LLIST U XTA FDB ASFT 40 AAU @FF RI VTMB LLIST ATI W JAEQ TRLST W HTA FCOOR<<1 AON 64-46 ; 8K БAЙT W VTM 0 ; MAIN TAG RR MTJ R RR VJM F_WRIT R MTJ RR JMP TRLST STROUTT:J VTM 0 JMP TERMOS END SERVER:NAME QF ;* ;******************************************* ;* ПOДБИPATEЛЬ ИЗ "ПOЧTOBOГO ЯЩИKA" * ;******************************************* ;* F_OPEN:SUBP QF F_CREAT:SUBP QF F_READ:SUBP QF F_WRIT:SUBP QF TERMOS:SUBP QF ENDJOB:SUBP QF DHEX8:SUBP QF ; IFP MODIF U:EQU P1 MEM:EQU 41<<10 ; PAБ.ПAMЯTЬ ; ; ПPИ ЗAПYCKE REGSCAL COДEPЖИT KOД ДИPEKTИBЫ ; ЗAПYCKA, PATHNAME - EE ПEPBЫЙ ПAPAMETP. ; BCЯ CTPOKA OT ЗAПYCKA CИДИT B BUF+2. ; A ПOKA HAM HИЧEГO ЭTOГO HE HAДOБHO. ; ;MOZY=81655 ; - SERVER ; UTA ATX REGSCAL XTA ="D:\BESM6" ATX PATHNAME XTA ="\DIS667\" ATX PATHNAME+1 XTA =Z"MD.MAD" ATX PATHNAME+2 U VTM 63 ; XTA =Z"SERVER>" ATX BUF+2 I VTM BUF+2 J VTM 1 RR VJM TERMOS+1 XTA BUF+2 AEU @47 ; "G" AAU @FF JANE ENDJOB ; W VTM @84 RR VJM F_OPEN JANE ABS_FILE ; ; ЗACACЫBAEM BECЬ ФAЙЛ B ПAMЯTЬ ; NP VTM MEM W VTM ; MAIN TAG NTA 64-46 ; 8KБAЙT INPUT:15 ATX RR VJM F_READ U XTA FDB ASFT 16 AAU @FFFF AEU @2000 STI RR A+U @2000 NP UTM @400 ; +1 ЛИCT RR JMEQ INPUT ; ; TИП (TEXT ИЛИ BIN) OПPEДEЛЯETCЯ ПO HAЛИЧИЮ ; KOДA CMEЩEHИЯ B 16-17 БAЙTAX "MAIL BOX". ; XTA MEM+2 ASFT 48 AEU @1200 JANE TEXT ; "TYPE" ATX PATHNAME+2 I VTMB MEM J VTMB PATHNAME+1 W VTM 5 ; ; ПEPEПИCЬ ЗAДAHHOГO ЧИCЛA БAЙT (C POTAЦИEЙ) ; B ЗAДAHHЫЙ ФAЙЛ (AHAЛOГ "BLOAD") ; :I BTA 1 J ATB 1 I BTA J ATB 2 I UTM 2 J UTM 2 W VRM *-3 ; NP VTM MEM U VTM 62 R VJM F_CREAT JAEQ ABS_FILE ; I BTA 1 ASFT -8 I AOB ASFT -8 I AOB 3 ASFT -8 I AOB 2 CALCLEN:ATI RI ; ДЛИHA ФAЙЛA ASFT 1 ATI W ; K-BO ПAP БAЙTOB W UTM -1 I UTM 6 ; OTKYДA J VTMB MEM ; KYДA :I BTA 1 J ATB I BTA J ATB 1 I UTM 2 J UTM 2 W VRM *-3 J VTM I VTM =Z"BLOAD: " RR VJM TERMOS+1 ; OUTPUT:RI MTJ I RI UTM -8192 :RI JMLE *+1 I VTM 8192 :ITA I ASFT -32 AOI J RR VJM F_WRIT J UTM 8192 NP UTM @400 RI JMGT OUTPUT I UTC J UTA -8192 J VTM =" БAЙT ЗAПИCAHO B" MESS:15 MTJ I JMPS DHEX8 :J XTS J XTS 1 XTS =" ФAЙЛ " XTS PATHNAME+1 XTS PATHNAME+2 UTS J VTM 0 RR VJM TERMOS+1 JMP ENDJOB ; ABS_FILE:J VTM =" - HE OTKPЫЛCЯ" JMP MESS ; ; ; ПEPEПИCЬ TEKCTA (AHAЛOГ "TYPE") ; TEXT:I VTM =Z" TYPE: " J VTM 0 RR VJM TERMOS+1 HLT @23 END *CALL ELPRESS:30 *CALL DISPLOAD *CALL DISSND:BLOAD *END F