рЮАКХЖЮ 3 ;янпрхпнбйю яохяйю мю псяяйнл ъгшйе ; (дносярхлш жхтпнбше дюммше). ;опедонкюцюеряъ,врн явервхй PSR ;упюмхр вхякн яхлбнкнб ярпнйх; ;ярпнйх пюяьхпемш; ;б BUF3 мюундхряъ юдпея йнмжю яохяйю. ;япюбмемхе хдер нр мювюкю ярпнйх. JMP NEWO ; оепеирх й янпрхпнбйе WYH: POP D ; LDA FL ; ашк кх налем? ORA ю ; JZ 0F86CH ; XRA ю ; ашк,яапняхрэ опхгмюй STA FL ; налемю. ;нвепедмни опнялнрп яохяйю NEWO: LHLD BUF ; гюонлмхрэ хяундмши SHLD BUF1 ; юдпея рейярнбнцн астепю. ; опнялнрп ярпнй NEW1: LHLD BUF1 ; бярюрэ мю мювюкн XCHG ; рейсыеи ярпнйх. LHLD BUF1 ; бшвхякхрэ юдпея LDA PSR ; мювюкю INR ю ; якедсчыеи CALL SUM ; ярпнйх. SHLD BUF2 ; янупюмхрэ. PUSH D ; опнбепхрэ бшунд CALL STR2 ; гю опедекш яохяйю JNC WYH ; еякх KOHEж,TO опнбепхрэ POP D ; мюкхвхе налемю. R0: LDAX D ; яхлбнк рейсыеи ярпнйх- япI 60м ; асйбю псяяйнцн юктюбхрю? JC N1 ; еякх "дю",рн R1: MOV ю,л ; яхлбнк якедсчыеи япI 60м ; ярпнйх- асйбю псяяйнцн JC N1 ; юктюбхрю? R2: PUSH D ; дю,оепейндхпнбюрэ PUSH м ; яхлбнкш LDAX D ; дкъ CALL PER ; янпрхпнбйх XCHG ; POP м ; PUSH м ; MOV ю,л ; CALL PER ; LDAX D ; мнбши йнд яхлбнкю SUB л ; рейсыеи ярпнйх POP м ; лемэье мнбнцн POP D ; йндю яхлбнкю JMP N2 ; онякедсчыеи? N1: LDAX D ; SUB л ; пюбем,бгърэ якедсчыхе M2: JZ PUZZ ; ОНГХЖХХ ярпнй. JM CORR ; лемэье :налем ме мсфем, ;налем он пегскэрюрс япюбмемхъ оепбшу онгхжхи PUZ1: MVI ю,0FFм ;хмюве сярюмнбхрэ опхгмюй STA FL ; налемю LDA PSR ; MOV я,ю ; х LHLD BUF1 ; XCHG ; онлемърэ ярпнйх LHLD BUF2 ; леярюлх. PO: MOV 8, M ; LDAX D ; MOV M,A ; MOV A,B ; STAX D ; INX D ; INX H ; DCR C ; JNZ PO ; JMP CORR ; ; опнднкфемхе япюбмемхъ нярюкэмшу онгхжхи PUZ2: INX H ; ондцнрнбхрэ якедслхе INX D ; онгхжхх ярпнй. LDAX D ; япI 0Dм ; еякх йнмеж ярпнйх,рн JNZ RO; CORR: LHLD BUF2 ; онякедсчысч ярпнйс SHLD BUF1 ; ядекюрэ рейсыеи. JMP NEW1 ; янпрхпнбюрэ. ;опенапюг0бюмхе йндю яхлбнкю дкъ япюбмемхъ PER: SUI 60м ; бгърэ LXI м,рюб1 ;мнбши йнд SUM: MVI б,0 ; яхлбнкю. MOV я,ю ; DAD б ; RET ; ;опнбепйю йнмжю яохяйю STR2: LHLD BUF3 ; юдпея якедсчбеИ DCX H ; ярпнйх яохяйю XCHG ; япюбмхрэ LHLD BUF2 ; я юдпеянл онякедмеи MOV ю,м ; "00м" ярпнйх ялп D ; RNZ ; MOV A,L ; ялп е ; RET ; ;асйбш псяяйнцн юктюбхрю,сонпъднвеммше ;он нрмньемхч й йндс ASCII TABL: DB 1DH,00H,01H,16H ; ч,ю,а,ж DB 04м,05м,14м,0гм ; д,е,Т,ц DB 15м,08м,09м,0юм ; X,х,и,й DB 0бм,0ям,0Dм,0ем ; к,л,м,н Dб 0FH,1EH,10H,11H ; о,ъ,п,я DB 12H,13H,06H,02H ; р,с,ф,б Dб 1юм,1бм,07м,18м ; э,ш,3,ч DB 1ям,19м,17м,1Fм ; щ,ы,в,DEL BUF: DW 2100H ;ХЯУНДМШИ юдпея р ЙЕРНБНЦН астепю BUF1: DW 0 ; юдпея мювюкю рейсвеи ярпнйх BUF2: DW 0 ; юдпея мювюкю якедсчыеи ярпнйх BUF3: DW 0 ; юдпея йнмжю пюябхпеммнцн яохяйю PSR: DB 0 ; явервхй "люу" вхякю яхлбнкнб ярпнйх FL: Dб 0 ; ткюц налемю END ; <+> -ю-ъ(Ц), 0-9