Приветствую уважаемое собрание!
Подскажите, нет ли у кого дизассемблированного монитора. М.б. даже с комментариями. Мне нужно покопаться в кое-каких подпрограммах и может быть, ваши наработки помогут мне выиграть время.
Приветствую уважаемое собрание!
Подскажите, нет ли у кого дизассемблированного монитора. М.б. даже с комментариями. Мне нужно покопаться в кое-каких подпрограммах и может быть, ваши наработки помогут мне выиграть время.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
чтож такого сложного, получить исходники.
вот -- rk32-std.rar, без комментов, но разобраться не сложно.
получено моим дизассемблером.
комменты вида "X TIMES" -- это сколько раз ссылаются на данную метку
Дмитрий77 (01.06.2020)
NEO SPECTRUMAN (01.06.2020), tnt23 (03.06.2020), unclerus (20.06.2020), Дмитрий77 (01.06.2020)
Мой вариант, дизассемблировал на Орион-128 самописным дизассемблером
Код:Orion-128 file RK.AS ; дИЗАССЕМБЛИРОВАЛ DENN ; 13.02.2017 ; пОРТ КЛАВИАТУРЫ PT_KB1:EQU 8001H PT_KB0:EQU 8000H PT_KB2:EQU 8002H PT_KB3:EQU 8003H ; пОРТ ROM-ДИСКА PT_RD0:EQU 0A000H PT_RD1:EQU 0A001H PT_RD2:EQU 0A002H PT_RD3:EQU 0A003H ; рЕГИСТРЫ вг75 VG_R0:EQU 0C000H VG_R1:EQU 0C001H ; рЕГИСТРЫ вт57 (ТОЛЬКО ЗАПИСЬ) VT_R4:EQU 0E004H VT_R8:EQU 0E008H STACK:EQU 76CFH; СТЕК мОНИТОРА STACK2:EQU 7618H RAMTOP:EQU 75FFH ExtPRG:EQU 0F000H; АДРЕС ПЕРЕХОДА ПО 'U' VidBEG:EQU 77C2H; НАЧАЛО ВИДИМОЙ ОБЛАСТИ VidEND:EQU 765FH; КОНЕЦ ВИДИМОЙ ОБЛАСТИ ScrEND:EQU 7FF4H; КОНЕЦ ЭКРАННОЙ ОБЛАСТИ ; сИСТЕМНЫЕ ПЕРЕМЕННЫЕ M_eVID:EQU 7600H; РАЗРЕШЕНИЕ ОТОБРАЖЕНИЯ ВИДЕО M_cPOS:EQU 7602H; ТЕКУЩАЯ ПОЗИЦИЯ КУРСОРА M_PCHR:EQU 7604H; ПЕРЕМЕННАЯ П/П PRC M_PKEY:EQU 7605H; ПЕРЕМЕННАЯ П/П KEY M_RULA:EQU 7606H; рус/LAT M_KEY1:EQU 7609H M_KEY2:EQU 760BH M_SFST:EQU 760DH M_RRST:EQU 7614H M_ADDR:EQU 7616H; СОХР-Е [HL] (АДРЕСА) M_STAK:EQU 761CH; СОХР-Е СТЕКА M_RST2:EQU 761EH M_SvDE:EQU 7623H; СОХР-Е [DE] (GOTO) M_SvOC:EQU 7625H; СОХР-Е КОМАНДЫ (GOTO) M_GOTO:EQU 7626H; ВЕКТОР ПЕРЕХОДА (GOTO) ; === НАЧАЛО ОБНУЛЯЕМОЙ ОБЛАСТИ ПЕРМЕННЫХ === M_[HL]:EQU 7627H; СОХР-Е [HL] M_[DE]:EQU 7629H; СОХР-Е [DE] M_[BC]:EQU 762BH; СОХР-Е [BC] M_MGLD:EQU 762DH; ПЕРЕМЕННАЯ П/П ЧТЕНИЯ мг ; === КОНЕЦ ОБНУЛЯЕМОЙ ОБЛАСТИ ПЕРМЕННЫХ === M_LDBT:EQU 762EH; ПЕРЕМЕННАЯ П/П ЧТЕНИЯ БАЙТА M_C\LD:EQU 762FH; КОНСТАНТА ЧТЕНИЯ С мг M_C\SV:EQU 7630H; КОНСТАНТА ЗАПИСИ НА мг M_RTOP:EQU 7631H; ЗНАЧЕНИЕ RamTOP B_CMD:EQU 7633H; БУФЕР ВВОДА СТРОКИ ORG 0F800H ; кЕРНАЛЬ ПЕРЕХОДОВ СТАНДАРТНЫХ п/п JMP RESET; 0F800h JMP KEY; 0F803h JMP LdBYTE; 0F806h JMP PRC; 0F809h JMP SvBYTE; 0F80Ch JMP PRC; 0F80Fh JMP TstKEY; 0F812h JMP PRH; 0F815h JMP MSG; 0F818h JMP SCN; 0F81Bh JMP AskPOS; 0F81Eh JMP GetSCR; 0F821h JMP LdBLOK; 0F824h JMP SvBLOK; 0F827h JMP GetK\S; 0F82Ah JMP EnVID; 0F82Dh JMP GetTOP; 0F830h JMP SetTOP; 0F833h RESET: ; "хОЛОДНЫЙ" СБРОС (0F800h) ; НАСТРОКА ПОРТА КЛАВИАТУРЫ MVI A,8AH STA PT_KB3 ; НАСТРОКА СТЕКА LXI SP,STACK ; НАСТРОЙКА/ВКЛЮЧЕНИЕ ОТОБРАЖЕНИЯ CALL EnVID LXI H,M_eVID LXI D,VidEND MVI C,0 CALL FILL ; ЗН-Е СТЕКА В СИСТЕМНУЮ ПЕРМЕННУЮ LXI H,STACK SHLD M_STAK ; ВЫВОД ЗАСТАВКИ "радио-86рк" LXI H,T_MAIN CALL MSG ; ОТОБРАЖЕНИЕ... CALL EnVID ; УСТАНОВКА RamTOP В 75FFh LXI H,RAMTOP SHLD M_RTOP ; ИНИЦИАЛИЗАЦИЯ КОНСТАНТ мг LXI H,1D2AH SHLD M_C\LD ; ИНИЦИАЛИЗАЦИЯ ПЕРЕХОДА (GOTO) MVI A,0C3H STA M_GOTO HotRES: ; "гОРЯЧИЙ СБРОС" (F86Ch) LXI SP,STACK ; ВЫВОд ПРОМПТА LXI H,T_PMPT CALL MSG ; ГАШЕНИЕ С/Д "рус/LAT" ; [A]=00h STA PT_KB2 DCR A; [A]=FFh STA PT_RD2 ; ВВОД КОМАНДНОЙ СТРОКИ CALL InBUF ; АДРЕС ВОЗВРАТА В F86Ch В СТЕК LXI H,HotRES PUSH H ; АНАЛИЗ КОМАНДНОЙ СТРОКИ LXI H,B_CMD MOV A,M CPI 'X' JZ PrREGS CPI 'U' JZ ExtPRG ; ОБНУЛЕНИЕ ПЕРЕМЕННЫХ ; ВЗЯТИЕ ПАРАМЕТРОВ ; СОХРАНЕНИЕ РЕГИСТРОВ PUSH PSW CALL GetPRM LHLD M_[BC] MOV C,L MOV B,H LHLD M_[DE] XCHG LHLD M_[HL] POP PSW ; АНАЛИЗ ДЕРИКТИВ CPI 'D' JZ PrDUMP CPI 'C' JZ COMPR CPI 'F' JZ FILL CPI 'S' JZ SEARCH CPI 'T' JZ TRANSF CPI 'M' JZ MODIFY CPI 'G' JZ GOTO CPI 'I' JZ MGLOAD CPI 'O' JZ MGSAVE CPI 'L' JZ PrSIMB CPI 'R' JZ LdROMD JMP ExtPRG InBKSP: ; УДАЛЕНИЕ СИМВОЛА КОМАНДНОЙ СТРОКИ MVI A,B_CMD; 33H CMP L JZ InBUF0 PUSH H LXI H,T_DEL CALL MSG POP H DCX H JMP InBUF1 InBUF: ; вВОД КОМАНДНОЙ СТРОКИ LXI H,B_CMD InBUF0: MVI B,0 InBUF1: CALL KEY CPI 8 JZ InBKSP CPI 7FH JZ InBKSP CNZ PRA MOV M,A CPI 13 JZ InENTR CPI '.' JZ HotRES MVI B,0FFH MVI A,B_CMD+31; 52H CMP L JZ ErEXIT INX H JMP InBUF1 InENTR: MOV A,B RAL LXI D,B_CMD MVI B,0 RET MSG: ; вЫВОД СООБЩЕНИЯ MOV A,M ANA A RZ CALL PRA INX H JMP MSG GetPRM: ; вЗЯТИЕ ПАРАМЕТРОВ ИЗ КОМАНДНОЙ СТРОКИ LXI H,M_[HL] LXI D,M_MGLD MVI C,0 CALL FILL LXI D,B_CMD+1; 7634h CALL GetVAL SHLD M_[HL] SHLD M_[DE] RC MVI A,0FFH STA M_MGLD CALL GetVAL SHLD M_[DE] RC CALL GetVAL SHLD M_[BC] RC JMP ErEXIT GetVAL: ; вЗЯТИЕ ЗНАЧЕНИЯ АДРЕСА В [HL] LXI H,0 AddVAL: LDAX D INX D CPI 13 JZ StcRET CPI ',' RZ CPI ' ' JZ AddVAL SUI '0' JM ErEXIT CPI 10 JM GtVAL1 CPI 17 JM ErEXIT CPI 23 JP ErEXIT SUI 7 GtVAL1: MOV C,A DAD H DAD H DAD H DAD H JC ErEXIT DAD B JMP AddVAL StcRET: STC RET TSTHD: MOV A,H CMP D RNZ MOV A,L CMP E RET IfENDF: ; пРОВЕРКА НА [F4] И НА КОНЕЦ АДРЕСА CALL TstF4 TstEND: ; пРОВЕРКА НА КОНЕЦ АДРЕСА CALL TSTHD JNZ HppRET SP2RET: INX SP INX SP RET HppRET: INX H RET TstF4: ; пРОВЕРКА НА [F4] CALL SCN CPI 3 RNZ CALL EnVID JMP ErEXIT PrUPUP: ; вЫВОД [╨] + ЧЕТЫРЕ [╡] PUSH H LXI H,T_GoUP CALL MSG POP H RET PRM: ; вЫВОД ЗН-Я ЯЧЕЙКИ ПО [HL] В HEX-ВИДЕ MOV A,M PRH_SP: PUSH B CALL PRH MVI A,' ' CALL PRA POP B RET PrDUMP: ; вЫВОД ДАМПА CALL Pr[HL] PrDMP1: CALL PRM CALL IfENDF MOV A,L ANI 0FH JZ PrDUMP JMP PrDMP1 COMPR: LDAX B CMP M JZ COMPR1 CALL Pr[HL] CALL PRM LDAX B CALL PRH_SP COMPR1: INX B CALL IfENDF JMP COMPR FILL: MOV M,C CALL TstEND JMP FILL SEARCH: MOV A,C CMP M CZ Pr[HL] CALL IfENDF JMP SEARCH TRANSF: MOV A,M STAX B INX B CALL TstEND JMP TRANSF PrSIMB: ; вВОД ДАМПА В СИМВОЛЬНОМ ВИДЕ CALL Pr[HL] PrSIM1: MOV A,M ORA A JM PrSIM2 CPI 20H JNC PrSIM3 PrSIM2: MVI A,2EH PrSIM3: CALL PRA CALL IfENDF MOV A,L ANI 0FH JZ PrSIMB JMP PrSIM1 MODIFY: ; мОДИФИКАЦИЯ ЯЧЕЕК озу CALL Pr[HL] CALL PRM PUSH H CALL InBUF POP H JNC MODIF1 PUSH H CALL GetVAL MOV A,L POP H MOV M,A MODIF1: INX H JMP MODIFY GOTO: ; пЕРЕХОД ПО АДРЕСУ CALL TSTHD JZ GOTO1 XCHG SHLD M_SvDE MOV A,M STA M_SvOC MVI M,0F7H; ЗАПИСЬ КОМАНДЫ "RST 6" (CALL 0030h) ; ПО АДРЕСУ 0030h ЗАПИСЫВАЕМ "JMP RtRST6" MVI A,0C3H STA 0030H LXI H,RtRST6 SHLD 0031H GOTO1: LXI SP,STACK2 POP B POP D POP H POP PSW SPHL LHLD M_ADDR JMP M_GOTO LdROMD: ; чТЕНИЕ ROM-ДИСКА ; ПРОГРАММИРОВАНИЕ ПОРТА MVI A,90H STA PT_RD3 LdROM0: SHLD PT_RD1 LDA PT_RD0 STAX B INX B CALL TstEND JMP LdROM0 AskPOS: ; зАПРОС ТЕКУЩЕЙ ПОЗИЦИИ КУРСОРА LHLD M_cPOS RET GetSCR: ; зАПРОС БАЙТА ИЗ ЭКРАННОГО БУФЕРА PUSH H LHLD M_eVID MOV A,M POP H RET MGLOAD: ; чТЕНИЕ БЛОКА С МАГНИТОФОНА LDA M_MGLD ORA A JZ MG_LD1 MOV A,E STA M_C\LD MG_LD1: CALL LdBLOK CALL Pr[HL] XCHG CALL Pr[HL] XCHG PUSH B CALL GetK\S MOV H,B MOV L,C CALL Pr[HL] POP D CALL TSTHD RZ XCHG CALL Pr[HL] ErEXIT: ; вЫХОД ПРИ ОШИБКЕ MVI A,'?' CALL PRA JMP HotRES LdBLOK: ; чТЕНИЕ БЛОКА С мг MVI A,0FFH CALL LdSYNC PUSH H DAD B XCHG CALL Ld0808 POP H DAD B XCHG PUSH H CALL LdBODY MVI A,0FFH CALL LdSYNC POP H EnVID: ; вКЛЮЧИТЬ ОТОБРАЖЕНИЕ ИЗОБРАЖЕНИЯ PUSH H LXI H,VG_R1 MVI M,0 DCX H MVI M,4DH MVI M,1DH MVI M,99H MVI M,93H INX H MVI M,27H MOV A,M EnVID1: MOV A,M ANI 20H JZ EnVID1 LXI H,VT_R8 MVI M,80H MVI L,4 MVI M,0D0H MVI M,76H INR L MVI M,23H MVI M,49H MVI L,8 MVI M,0A4H POP H RET Ld0808: MVI A,8 LdSYNC: CALL LdBYTE MOV B,A MVI A,8 CALL LdBYTE MOV C,A RET LdBODY: MVI A,8 CALL LdBYTE MOV M,A CALL TstEND JMP LdBODY GetK\S: ; пОДСЧЕТ КОНТРОЛЬНОЙ СУММЫ БЛОКА LXI B,0 GetKS1: MOV A,M ADD C MOV C,A PUSH PSW CALL TSTHD JZ SP2RET POP PSW MOV A,B ADC M MOV B,A CALL TstEND JMP GetKS1 MGSAVE: ; зАПИСЬ БЛОКА НА мг MOV A,C ORA A JZ MG_SV1 STA M_C\SV MG_SV1: PUSH H CALL GetK\S POP H CALL Pr[HL] XCHG CALL Pr[HL] XCHG PUSH H MOV H,B MOV L,C CALL Pr[HL] POP H SvBLOK: ; зАПИСЬ БЛОКА НА мг PUSH B LXI B,0 SvBLK1: CALL SvBYTE DCR B XTHL XTHL JNZ SvBLK1 MVI C,0E6H CALL SvBYTE CALL SvWORD XCHG CALL SvWORD XCHG CALL Sv[HL] LXI H,0 CALL SvWORD MVI C,0E6H CALL SvBYTE POP H CALL SvWORD JMP EnVID Pr[HL]: PUSH B CALL PrUPUP MOV A,H CALL PRH MOV A,L CALL PRH_SP POP B RET Sv[HL]: MOV C,M CALL SvBYTE CALL TstEND JMP Sv[HL] SvWORD: ; зАПИСЬ РЕГ. ПАРЫ [HL] НА мг MOV C,H CALL SvBYTE MOV C,L JMP SvBYTE LdBYTE: ; чТЕНИЕ БАЙТА С мг PUSH H PUSH B PUSH D MOV D,A LdBYT1: MVI A,80H STA VT_R8 LXI H,0 DAD SP LXI SP,0 SHLD M_SFST MVI C,0 LDA PT_KB2 RRC RRC RRC RRC ANI 1 MOV E,A LdBYT2: POP PSW MOV A,C ANI 7FH RLC MOV C,A MVI H,0 LdBYT3: DCR H JZ LdBYT9 POP PSW LDA PT_KB2 RRC RRC RRC RRC ANI 1 CMP E JZ LdBYT3 ORA C MOV C,A DCR D LDA M_C\LD JNZ LdBYT4 SUI 12H LdBYT4: MOV B,A LdBYT5: POP PSW DCR B JNZ LdBYT5 INR D LDA PT_KB2 RRC RRC RRC RRC ANI 1 MOV E,A MOV A,D ORA A JP LdBYT8 MOV A,C CPI 0E6H JNZ LdBYT6 XRA A STA M_LDBT JMP LdBYT7 LdBYT6: CPI 19H JNZ LdBYT2 MVI A,0FFH STA M_LDBT LdBYT7: MVI D,9 LdBYT8: DCR D JNZ LdBYT2 ; НАСТРОЙКА вг75/вт57 LXI H,VT_R4 MVI M,0D0H MVI M,76H INX H MVI M,23H MVI M,49H MVI A,27H STA VG_R1 MVI A,0E0H STA VG_R1 MVI L,8 MVI M,0A4H LHLD M_SFST SPHL LDA M_LDBT XRA C JMP AllRET LdBYT9: LHLD M_SFST SPHL CALL EnVID MOV A,D ORA A JP ErEXIT CALL TstF4 JMP LdBYT1 SvBYTE: ; зАПИСЬ БАЙТА НА мг PUSH H PUSH B PUSH D PUSH PSW MVI A,80H STA VT_R8 LXI H,0 DAD SP LXI SP,0 MVI D,8 SvBYT1: POP PSW MOV A,C RLC MOV C,A MVI A,1 XRA C STA PT_KB2 LDA M_C\SV MOV B,A SvBYT2: POP PSW DCR B JNZ SvBYT2 MVI A,0 XRA C STA PT_KB2 DCR D LDA M_C\SV JNZ SvBYT3 SUI 0EH SvBYT3: MOV B,A SvBYT4: POP PSW DCR B JNZ SvBYT4 INR D DCR D JNZ SvBYT1 SPHL LXI H,VT_R4 MVI M,0D0H MVI M,76H INX H MVI M,23H MVI M,49H MVI A,27H STA VG_R1 MVI A,0E0H STA VG_R1 MVI L,8 MVI M,0A4H POP PSW AllRET: POP D POP B POP H RET PRH: ; вВОД HEX-БАЙТА PUSH PSW RRC RRC RRC RRC CALL PrHEX1 POP PSW PrHEX1: ANI 0FH CPI 0AH JM PrHEX2 ADI 7 PrHEX2: ADI 30H PRA: ; вВОД СИМВОЛА [A] MOV C,A PRC: ; вВОД СИМВОЛА [C] PUSH PSW PUSH B PUSH D PUSH H CALL TstKEY LXI H,PrCH11 PUSH H LHLD M_cPOS XCHG LHLD M_eVID LDA M_PCHR DCR A JM PrCHR4 JZ PrCHR8 JPO PrCHR9 MOV A,C SUI 20H MOV C,A PrCHR1: DCR C JM PrCHR2 PUSH B CALL PrRIGT POP B JMP PrCHR1 PrCHR2: XRA A PrCHR3: STA M_PCHR RET PrCHR4: MOV A,C ANI 7FH MOV C,A CPI 31 JZ PrCLS CPI 12 JZ PrHOME CPI 13 JZ Pr0DH CPI 10 JZ Pr0AH CPI 8 JZ PrLEFT CPI 24 JZ PrRIGT CPI 25 JZ PrUP CPI 26 JZ PrDOWN CPI 27 JZ PrESC CPI 7 JNZ PrCHR5 ; ВЫВОД 07H (ЗВОНОК) LXI B,05F0H BEEP: ; вЫВОД ЗВУКА MOV A,B BEEP1: EI DCR A JNZ BEEP1 MOV A,B BEEP2: DI DCR A JNZ BEEP2 DCR C JNZ BEEP RET PrCHR5: MOV M,C CALL PrRIGT MOV A,D CPI 3 RNZ MOV A,E CPI 8 RNZ CALL PrUP Pr0AH: MOV A,D CPI 1BH JNZ PrDOWN PUSH H PUSH D LXI H,VidBEG LXI D,7810H LXI B,079EH PrCHR7: LDAX D MOV M,A INX H INX D DCX B MOV A,C ORA B JNZ PrCHR7 POP D POP H RET PrCHR8: MOV A,C CPI 59H JNZ PrCHR2 CALL PrHOME MVI A,2 JMP PrCHR3 PrCHR9: MOV A,C SUI 20H MOV C,A PrCH10: DCR C MVI A,4 JM PrCHR3 PUSH B CALL PrDOWN POP B JMP PrCH10 PrCH11: SHLD M_eVID XCHG SHLD M_cPOS MVI A,80H STA VG_R1 MOV A,L STA VG_R0 MOV A,H STA VG_R0 POP H POP D POP B POP PSW RET PrESC: MVI A,1 JMP PrCHR3 PrCLS: LXI H,ScrEND LXI D,0925H PrCLS1: XRA A MOV M,A DCX H DCX D MOV A,E ORA D JNZ PrCLS1 PrHOME: LXI D,0308H LXI H,VidBEG RET PrRIGT: MOV A,E INX H INR E CPI 47H RNZ MVI E,8 LXI B,0FFC0H DAD B PrDOWN: MOV A,D CPI 1BH LXI B,004EH JNZ MFDD3 MVI D,2 LXI B,0F8B0H MFDD3: INR D DAD B RET PrLEFT: MOV A,E DCX H DCR E CPI 8 RNZ MVI E,47H LXI B,0040H DAD B PrUP: MOV A,D CPI 3 LXI B,RtR6_1 JNZ PrUP1 MVI D,1CH LXI B,0750H PrUP1: DCR D DAD B RET Pr0DH: MOV A,L SUB E JNC $+4 DCR H ;$+4 MOV L,A MVI E,8 LXI B,8 DAD B RET TstKEY: LDA PT_KB2 ANI 80H JZ TstKE1 LDA M_PKEY ORA A RNZ TstKE1: PUSH H LHLD M_KEY1 CALL SCN CMP L MOV L,A JZ TstKE5 TstKE2: MVI A,1 STA M_KEY2 MVI H,15H TstKE3: XRA A TstKE4: SHLD M_KEY1 POP H STA M_PKEY RET TstKE5: DCR H JNZ TstKE3 INR A JZ TstKE4 INR A JZ TstKE7 PUSH B LXI B,5003H CALL BEEP POP B LDA M_KEY2 MVI H,0E0H DCR A STA M_KEY2 JZ TstKE6 MVI H,40H TstKE6: MVI A,0FFH JMP TstKE4 TstKE7: LDA PT_KB2 ANI 80H JZ TstKE7 LDA M_RULA CMA STA M_RULA JMP TstKE2 KEY: CALL TstKEY ORA A JZ KEY XRA A STA M_PKEY LDA M_KEY1 RET SCN: LDA PT_KB2 ANI 80H JNZ KeySCN MVI A,0FEH RET KeySCN: XRA A STA PT_KB0 STA PT_KB2 LDA M_RULA ANI 1 ORI 6 STA PT_KB3 LDA PT_KB1 INR A JNZ KeySC1 DCR A RET KeySC1: PUSH H MVI L,1 MVI H,7 KeySC2: MOV A,L RRC MOV L,A CMA STA PT_KB0 LDA PT_KB1 CMA ORA A JNZ KeySC4 DCR H JP KeySC2 KeySC3: MVI A,0FFH POP H RET KeySC4: MVI L,20H KeySC5: LDA PT_KB1 CMA ORA A JZ KeySC3 DCR L JNZ KeySC5 MVI L,8 KeySC6: DCR L RLC JNC KeySC6 MOV A,H MOV H,L MOV L,A CPI 1 JZ KeySC8 JC KeySC7 RLC RLC RLC ADI 20H ORA H CPI 5FH JNZ KeyS10 MVI A,20H POP H RET KB_L0: DB 9 DB 0AH DB 0DH DB 7FH DB 8 DB 19H DB 18H DB 1AH KB_L1: DB 0CH DB 1FH DB 1BH DB 0 DB 1 DB 2 DB 3 DB 4 DB 5 KeySC7: MOV A,H LXI H,KB_L1 JMP KeySC9 KeySC8: MOV A,H LXI H,KB_L0 KeySC9: ADD L MOV L,A MOV A,M CPI 40H POP H RC PUSH H KeyS10: MOV L,A LDA PT_KB2 MOV H,A ANI 40H JNZ KeyS11 MOV A,L CPI 40H JM KeyS14 ANI 1FH POP H RET KeyS11: LDA M_RULA ORA A JZ KeyS12 MOV A,L CPI 40H JM KeyS12 ORI 20H MOV L,A KeyS12: MOV A,H ANI 20H JNZ KeyS14 MOV A,L CPI 40H JM KeyS13 MOV A,L XRI 20H POP H RET KeyS13: MOV A,L ANI 2FH MOV L,A KeyS14: MOV A,L CPI 40H POP H RP PUSH H MOV L,A ANI 0FH CPI 0CH MOV A,L JM HRET XRI 10H HRET: POP H RET GetTOP:LHLD M_RTOP RET SetTOP:SHLD M_RTOP RET T_MAIN:DB 1FH DB 'radio-86rk',0 T_PMPT:DB 13,10,'-->',0 T_GoUP:DB 13,10,24,24,24,24,0 T_REGS: DB 13,10,' PC-' DB 13,10,' HL-' DB 13,10,' BC-' DB 13,10,' DE-' DB 13,10,' SP-' DB 13,10,' AF-' DB 25,25,25,25,25,25,0 T_DEL:DB 8,32,8,0 RtRST6: ; ВЫХОД ПО КОМАНДЕ RST6 SHLD M_ADDR PUSH PSW POP H SHLD M_RST2 POP H DCX H SHLD M_RRST LXI H,0 RtR6_1: DAD SP LXI SP,M_RST2 PUSH H PUSH D PUSH B LHLD M_RRST LXI SP,STACK CALL Pr[HL] RtR6_2: XCHG LHLD M_SvDE CALL TSTHD JNZ HotRES LDA M_SvOC MOV M,A JMP HotRES PrREGS: LXI H,T_REGS CALL MSG LXI H,M_RRST MVI B,6 PrREG1: MOV E,M INX H MOV D,M PUSH B PUSH H XCHG CALL Pr[HL] CALL InBUF JNC PrREG2 CALL GetVAL POP D PUSH D XCHG MOV M,D DCX H MOV M,E PrREG2: POP H POP B DCR B INX H JNZ PrREG1 RET DB 0FFH,0FFH END
Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел
Спасибо за отклики
Вот еще:
Ну и раз пошла такая п. - то вот еще парочка asm-ов, от ушельцев.
Модификации, но пусть будут, в одном месте для истории.
Profi v3.2 -=- Speccy2010,r2
Текст от Denn меня заинтересовал и я решил использовать его. Правда пришлось писать перекодировщик, чтобы можно было загнать в MICRON. Не понял лишь код &DA т.к. в тексте он не встречался. Вот бы всё таки увидеть кодовую таблицу Ориона.
Последний раз редактировалось Дмитрий77; 14.06.2020 в 13:04.
Эмулятор Радио-86РК на JavaScript / проект, эмулятор РК на Maximite, эмулятор i8080 на C и JavaScript.
Oleg N. Cher (30.06.2021), SegaBoy (29.06.2021)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)