НИЖГР: EQU 16H ВЕРХГР: EQU 19H ВЛЕВО: EQU 8 ВПРАВО: EQU 18H ВВЕРХ: EQU 19H ВНИЗ: EQU 1AH ЛИНО: EQU 0E900H ДО: EQU ЛИНО+37 КОД: EQU 0F812H ВВОД: EQU 0F803H ВЫВОД: EQU 0F809H ПРИНТ: EQU 0F818H СТАРТ: LXI H,СТРО CALL ПРИНТ M10: CALL ВВОД MOV C,A SUI 30H JC M10 CPI 10 JNC M10 CALL ВЫВОД ADD A MOV B,A ADD A ADD B CMA INR A MOV B,A MVI C,0FFH LXI H,4000H DAD B SHLD ЗАДЕРЖ СТАРТ1: LXI H,СТР3 CALL ПРИНТ CALL ГПСВ CALL КОД CPI 0DH JNZ СТАРТ1+6 MVI C,1FH CALL ВЫВОД LXI H,ЛИНО PUSH H LXI B,1 MVI E,60 CALL БОРТ PUSH H LXI H,ЛИНО+1536 MVI E,60 CALL БОРТ POP H MVI C,64 MVI E,25 CALL БОРТ POP H MVI E,25 CALL БОРТ LXI H,СТР2 CALL ПРИНТ LXI H,ЛИНО+1504 LXI B,0-64 PUSH H PUSH B LHLD ГОЛОВА SHLD ХВОСТ JMP M7 ЦИКЛ: CALL КОД LXI H,0-1 CPI ВЛЕВО JZ M0 LXI H,1 CPI ВПРАВО JZ M0 LXI H,0-64 CPI ВВЕРХ JZ M0 LXI H,64 CPI ВНИЗ JZ M0 XTHL M0: POP B POP D XCHG DAD D PUSH H PUSH D MOV C,M MVI M,'O' XCHG LHLD ГОЛОВА MOV M,E INX H MOV M,D INX H MOV A,H CPI ВЕРХГР JNZ $+5 MVI H,НИЖГР SHLD ГОЛОВА LHLD ЗАДЕРЖ M6: DCX H MOV A,L ORA H JNZ M6 MOV A,C SUI 20H ORA A JZ M3 CPI 5FH JNZ СТАРТ1 M7: LDA ДЛИН STA РОСТ M1: LXI H,СТР1 CALL ПРИНТ M9: CALL ГПСВ MOV A,H CPI 38H JNC M9 MOV A,L CPI 60H JNC M9 MOV C,H CALL ВЫВОД MOV C,L CALL ВЫВОД CALL БАЙТ SUI 20H ORA A JNZ M1 MVI C,7FH CALL ВЫВОД M3: LXI H,РОСТ DCR M JM M5 LXI H,ДО MVI A,3AH M4: INR M CMP M JNZ ЦИКЛ MVI M,30H DCX H JMP M4 M5: INR M LHLD ХВОСТ MOV E,M INX H MOV D,M INX H MOV A,H CPI ВЕРХГР JNZ $+5 MVI H,НИЖГР SHLD ХВОСТ MVI A,20H STAX D JMP ЦИКЛ БОРТ: MVI M,'+' DAD B DCR E JNZ БОРТ RET ГПСВ: LHLD CB MVI C,16 ГП0: MOV A,H DAD H ANI 60H JPE $+4 INX H DCR C JNZ ГП0 SHLD CB RET СТРО: DB 0DH,0AH DB '*** П И Т О Н ***' DB 0DH,0AH DB 'СКОРОСТЬ (0..9)?',0 СТР1: DB 7,1BH,'Y',0 СТР2: DB 7,1BH,'Y',20H,3AH DB ' ДЛИНА - 000 ',0 СТР3: DB 1BH,'Y',20H+24,20H+32 DB ' НАЖМИТЕ <ВК>',0 ДЛИН: DB 4 CB: DW 8 ГОЛОВА: DW 1600H ХВОСТ: DS 2 РОСТ: DS 1 ЗАДЕРЖ: DS 2 WRK: EQU 0F75AH ; РАБОЧАЯ ЯЧЕЙКА БАЙТ: LHLD WRK MOV A,M RET