Untitled - NOSTALCOMP
Transkript
Untitled - NOSTALCOMP
Obsah: 1. strana Úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 .............................................. 6 .................................. 7 ........................................................ 9 ....................................................... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 ............................ .................................. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 ................................................. ................................ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 . . . . . . . . . . . . . . . . . . . . . . . . . . 44 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3 5 6 15 D 7 7 0000 - 03FF 0400 - C7FF 0800 - CBFF 0C00 - OFFF 1000 - 13FF 1400 - 17FF 1800 - 1BFF 1C00 - 1FFF 2000 - 3FFF 4000 - FFFF 1C00 1FFF 9 1 CS 1 3 1 2 CWR X7 PC X4 X5 X6 X9 8AH 88H 99 01111001=79H 1101 11 JMP C3H MVI 12 97 1 2 3 4 5 6 ENT: ABC: DATA: ORG JMP LXI MOV EQU END 1C00H ABC H,DATA A,L 345AH ; ; ; ; ; ; DEFINICE POC. ADRESY SKOK NA NAVESTI ABC VLOZI DO H DVA BYTE DO A OBSAH L DEFINICE PROMENNE DATA UKONCI PREKLAD 1C00 C3 06 1C 1C03 21 5A 34 1C06 7D 1C06 CALL F61DH 1C00 1C03 1C06 1C09 96 C3 09 1C 21 5A 34 CD 1D F6 7D 13 PMI-80 ORG LDA 1C00H A1 ; A <- X LDA A2 ; A <- Y STA A3 ; (A3) <- Z A1 A3=1F04H. A3 A1=1F00H A2=1F02H EX 1C00 = X=1CH Y=C6H C6H+1CH=E2H. 1F04H ADD C 14 A1=1F00H A2=1F02H 81H 1F04H SUB C 91H C6H-1CH=AAH 95 AND C ORA C XRA C 00ABH 00F2H 00FBH 1C12 32 04 1F 0116H ORG 1C00H STA 1F04H ; FFH FFH 0140H 94 15 1C00 3E 19 ORG MVI 1C00H A,19H 1C05 3E 00 MVI A,0 1C0C 00 L2: NOP 1C14 C2 0C 1C 1C17 3A FA 1F JNZ L2 LDA 1FFAH 1C1B 00 1C1C 32 FA 1F 1C1F C3 0A 1C NOP STA 1FFAH JMP L1 1FFAH DISP 1C1B D 1C0BH na 80H NOP DAA =27H DAA A 09 0A 10 99. I RST7 I EI RST7 0038H CALL 0038H 0038H EI DI 16 I RST7 93 0038H 1FE6H RET. I 1C0CH EI FBH 1FE6H 1FE6 C3 00 1D REST7: JMP PRER 1D00H 1D02 32 FA 1F 1D05 C9 STA 1FFAH RET I DAA 1C00 3E 19 ORG MVI 1C00H A,19 1C07 32 FA 1F STA 1FFAH 1C0D 1C10 1C13 1C14 1C17 CALL CALL DCR JNZ LDA OUTDA DISP D L2 1FFAH JMP L1 CD CD 15 C2 3A F2 00 40 01 0C 1C FA 1F 1C24 C3 0A 1C 92 17 I I SEC na adrese 1C0B. 1 91 INTRA = IBF * INTE2 * STB * RD + OBF * INTE1 * ACK * WR 19 0116H RE 0140H I 01A3H 1000XXXXB 1001XXXXB. 21 0067 210202 LXI H,0202H ;B=0, ADRESA ZPRAVY “ERROR” DO HL:0202 006A C34000 JMP 0040H ;SKOK NA VYPIS ZPRAVY MONITORU O TOM, ZE NEBYLA STISKNUTA FUNKCNI KLAVESA ---------------------------------------------------------------006D 4E MOV C,M ;NIZSI BYTE ADRESY Z TAB. DO C:72 29 5A 7E 006E 23 INX H ;ADRESA VYSSIHO BYTU V TAB. HL:020D 0210 0213 0216 006F 66 MOV H,M ;VYSSI BYTE ADRESY Z TAB. DO H:00 02 02 02 0070 69 MOV L,C ;NIZSI BYTE ADRESY Z C DO HL:0072 0229 025A 027E 0071 E9 PCHL ;SKOK NA PROGRAM FUNKCE PC:0072-M 0229-G 025A-B 027E-R ---------------------------------------------------------------;KONEC PROCEDURY RESET 4C 0219 03 034C 034C-S 8C 021C 03 038C 038C-L - VIZ VYSE ;PROCEDURA RESET (POCATECNI NASTAVENI) PMI-80 ---------------------------------------------------------------0000 3E8A RESET:MVI A,8AH ;RIDICI SLOVO V/V PORTU: PA:VYSTUP PB:VSTUP PCH:VSTUP PCL:VYSTUP 0002 D3FB OUT PPI ;JE ZAPSANO DO RIDICIHO REG. 0004 00 NOP ;UKLIDNENI DATOVE SBERNICE 0005 C32E00 JMP 002EH ;PRESKOK PROGRAMU PRO RST 1 ---------------------------------------------------------------002E 21D91F LXI H,1FD9H ;ADRESA VRCHOLU ZASOBNIKU DO HL:1FD9 0031 22E41F SHLD 1FE4H ;A JEJI ULOZENI V ZAS.MONIT. 1FE4:D91F 0034 C33D00 JMP 003DH ;PRESKOK PROG. OBSLUHY RST 7 ---------------------------------------------------------------0038 C3E61F RST7: JMP 1FE6H ;SKOK NA ADRESU OBSLUHY RST7, PRIPRAVENOU UZIVATELEM TOHOTO PRERUSENI ---------------------------------------------------------------003D 21E701 LXI H,01E7H ;ADRESA ZPRAVY MONITORU DO HL:01E7: 1E 13 16 01 19 1F 08 00 1E (T.J. “PMI -80”) 0040 31D91F LXI SP,1FD9H;ADRESA VRCHOLU ZASOBNIKU DO SP:1FD9 0043 22FC1F SHLD 1FFCH ;ADRESA ZPRAVY MONITORU DO 1FFC:E701 (UKAZATELE VYSTUPNIHO REGISTRU PRO ZOBRAZENI) 0046 CD1601 CALL OUTKE ;ZOBRAZENI A TEST KLAVESNICE:DISP:”PMI -80” (MONITOR CEKA NA STLACENI LIBOVOLNE KLAVESY) 0049 21EF1F LXI H,1FFCH ;ADRESA LEVE SEGMENTOVKY DO HL:1FEF 004C 22FC1F SHLD 1FFCH ;A JEJI ULOZENI DO UKAZATELE 1FFC:EF1F 004F 3E1D MVI A,1DH ;KOD ‘?’ DO STRADACE A:1D 0051 CDAB00 CALL CLEAR ;PRIPRAVA ZOBRAZENI:?........ 0054 CD1601 CALL OUTKE ;ZOBRAZENI A TEST KLAVESNICE DISP:?........ (MONITOR CEKA NA STLACENI FUNKCNI KLAVESY) 0057 210B02 LXI H,020BH ;ADR.TAB.FUNKCNICH KLAVES: HL:020B (020E 0211 0214 0217 021A) -------------------------------;OBSAH TABULKY PAMETI: 020B:927200 912902 975A02 9A7E02 944C03 938C03 005A 0606 MVI B,06 ;POCITADLO FUNKCNICH KLAVES B:06 005C BE CMP M ;SROVNANI KODU KLAVESY VE STRADACI S KODEM V TABULCE 005D 23 INX H ;ZVETSENI HL,NEOVLIVNI’CY’A’Z’ HL:020C 020F 0212 0215 0218 021B 005E CA6D00 JZ 006DH ;Z=1, SKOK PRI SROVNANI KODU STLACENE KLAVESY A KODU V TABULCE 0061 23 INX H ;Z=0, NESROVNANO,ZVETSENI ADR. HL:020D 0210 0213 0216 0219 021C 0062 23 INX H ;UKAZATELE V TABULCE NA HL:020E 0211 0214 0217 021A 021D 0063 05 DCR B ;ZMENSENI POCITADLA FN KLAVES B:05 04 03 02 01 00 22 ; ;FUNKCE: M-MEMORY (UMOZNUJE ZMENU ADRESY A PO STLACENI ‘=’ ZMENU DAT,DALSI ‘=’ZVYSI ADRESU O +1 A LZE MENIT DATA) ; G-EXECUTE (UMOZNUJE ODSTARTOVAT UZIVATELSKY PROGRAM OD ZADANE ADRESY STLACENIM KLAVESY ‘=’) ; B-BREAK STOP (NA VLOZENOU ADRESU Z KLAVESNICE UMISTI INSTRUKCI RST 1 CIMZ UMOZNI VSTUP DO MONITORU) ; R-REGISTRY (UMOZNUJE ZOBRAZENI OBSAHU DVOJIC REGISTRU NA DISPLEJI) ; S-SAVE (UMOZNUJE UCHOVANI OBSAHU PAMETI OD ZADANE ADRESY NA MAGNETOFON, NUTNO ZADAT PORAD. CISLO BLOKU) ; L-LOAD (PROCEDURA NAHRAVANI Z MAGNETOFONU NA ZVOLENOU ADRESU PAMETI. NAHRAVA SE BLOK URCENEHO CISLA) ; ;PROCEDURA FUNKCE ‘M’ MONITORU ---------------------------------------------------------------0072 3E16 MVI A,16 ;KOD FUNKCE ‘M’ DO STRADACE A:16 0074 CDAB00 CALL CLEAR ;PRIPRAVA ZOBRAZENI:M........ 0077 CDD700 CALL MODAD ;ZOBRAZENI A MODIFIKACE ADRESY 007A 7E MOV A,M ;OBSAH MODIFIKOVANE ADRESY DO A:XY 007B 32FA1F STA 1FFA ;A JEHO ULOZENI DO VYST.REG. 1FFA:XY 007E 3E18 MVI A,18H ;KOD ZNAKU “=” DO STRADACE A:18 0080 02 STAX B ;A JEHO ULOZENI DO VYST.REG. 1FF5:18 0081 CDFB00 CALL MODDA ;ZOBRAZENI A MODIFIKACE DAT DISP:M ADR.=XY 0084 2AF81F LHLD 1FF8H ;BEZNA VSTUPNI ADRESA Z 1FF8 HL:ADR. 0087 3AFA1F LDA 1FFA ;MODIFIKOVANA DATA Z 1FFA DA A:ND -(NOVA DATA) 008A 77 MOV M,A ;A JEJICH ULOZENI NA ADRESE ADR.:ND 008B 23 INX H ;ZVETSENI ADRESY BEZNYCH DAT HL:AD+1 008C 22F81F SHLD 1FF8H ;A JEJI ULOZENI V ZASOBNIKU 1FF8:AD+1 008F CDBB00 CALL OUTAD ;ZOBRAZI ADRESU A NOVA DATA DISP:M ADR.=ND 0092 C37A00 JMP 007A ;POKRACUJE MODIFIKACE DAT. VYSTUP Z PROCEDURY:STLACENIM FUNKCNI KLAVESY ---------------------------------------------------------------;KONEC PROCEDURY FUNKCE ‘M’ ; ;PROCEDURA OUTAD PMI-80, ROZKLADAJICI 2 BYTY ADRESY NA 4 HEXADECIMALNI ZNAKY DO VYSTUPNIHO REGISTRU DISPLEJE ;VSTUPY: BC-ADRESA LEVE ZE CTYR SEGMENTOVEK, NA NEZ BUDE ZOBRAZENA DVOUBYTOVA ADRESA VE TVARU CTYR ZNAKU ; HL=(1FF9,8)=FEDC: DVOUBYTOVA ADRESA, KTERA MA BYT ZOBRAZENA DISPLEJEM (VSTUPNI ARGUMENT) ;PRI POUZITI TECHTO VSTUPU SE PROCEDURA VOLA: CALL 00C1, STANDARDNI VOLANI: CALL 00BB (OUTAD) ---------------------------------------------------------------00BB 01F11F OUTAD:LXI B,1FF1H ;ADRESA 3. SEGMENTOVKY ZLEVA BC:1FF1 00BE 2AF81F LHLD 1FF8H ;BEZNA (ZOBRAZOVANA) ADRESA HL:FEDC 00C1 7C MOV A,H ;VYSSI BYTE ADR. DO STRADACE A:FE 00C2 CDC600 CALL X+4 ;PRVNI PRUCHOD PODPROGRAMEM 00C5 7D MOV A,L ;PRI 2. PRUCHODU NIZSI BYTE ADRESY A:DC A:BD (PRO PP OUTDA) 00C6 D5 PUSH D ;UCHOVANI DE V ZASOBNIKU 00C7 57 MOV D,A ;STRADAC DO POMOCNEHO REG. D:FE(11111110) DC(11011100) BD(10111101) 00C8 0F RRC ;PRESUN LEVE TETRADY VPRAVO A:7F(01111111) 6E(01101110) DE(11011110) 00C9 0F RRC ;A NAOPAK CTYRNASOBNOU ROTACI A:BF(10111111) 37(00110111) 6F(01101111) 00CA 0F RRC ; A:DF(11011111) 9E(10011011) B7(10110111) 00CB 0F RRC ; A:EF(11101111) CD(11001101) D8(11011011) 00CC 6E0F ANI 0FH ;PONECHANI PRAVE TETRADY A:0F(00001111) 0D(00001101) 0B(00001011) 00CE 02 STAX B ;A ULOZENI DO VYST.REG.DISP. 1FF1:0F 1FF3:0D 1FF6:0B 23 03 7A E60F 02 03 D1 C9 INX B ;DALSI ADR.VYST.REG.DISPLEJE BC:1FF2 1FF4 1FF7 MOV A,D ;PUVODNI BYTE ADR. Z POM. REG. A:FE DC BD ANI 0F ;PONECHANI PRAVE TETRADY A:0E 0C 0D STAX B ;ULOZENI DO VYST. REG. DISP. 1FF2:0E 1FF4:0C 1FF8:0D INX B ;ADRESA DALSI SEGMENTOVKY BC:1FF3 1FF5 1FF8 POP D ;NAVRAT PUVODNIHO OBSAHU DE RET ;NAVRAT Z 1. PRUCHODU NEBO PODPROGRAMU ;POUZE JEDENKRAT PROCHAZI TOUTO PROCEDUROU PODPROGRAM OUTDA (CALL 00F2), ROZKLADAJICI BYTE DAT NA DVA ZNAKY 00F2 01F61F OUTDA:LXI B,1FF6H ;ADRESA DVOU PRAVYCH SEGMENTU BC:1FF6 00F5 2AFA1F LHLD 1FFAH ;BYTE BEZNYCH VSTUPNICH DAT HL:XYBD (XY JE OBSAH ADRESY 1FFB, KTERY NEVYUZIVAME) 00F8 C3C500 JMP 00C5H ;SKOK DO PROCEDURY OUTAD, JEDEN PRUCHOD, UMOZNUJICI ROZDELENI BYTU NA 2 ZNAKY PRO ZOBRAZENI ; ; ;ANALYZA PROCEDURY MODAD PMI-80, KTERA ZOBRAZUJE 4 ZNAKY DVOUBYTOVE ADRESY A UMOZNUJE JEJICH ZMENU Z KLAVESNICE ;VOLA PROCEDURY OUTAD A OUTKE; PREDPOKLADANY OBSAH (1FF8,9)=DCFE JE MODIFIKOVAN NA 3412 00D7 CDBB00 MODAD:CALL OUTAD ;ROZLOZI 2 BYTY ADR. NA 4 ZNAKY 00DA CD1601 CALL OUTKE ;ZOBR.ADR.A JEJI MOD.Z KLAVES. A: 81 82 83 84 90 (STLACENO”=”) 00DD C8 RZ ;Z=1,STLACENO”=”,POTVRZENI ADRESY - NORMALNI NAVRAT Z PROCEDURY Z=1,RZ 00DE D29701 JNC 0197H ;CY=0,STLACENA FUNKCNI KLAVESA - VYSTUP Z PROCEDURY PO CHYBE 00E1 2AF81F LHLD 1FF8H ;BEZNA VSTUPNI ADRESA DO HL:FEDC(1111 1110 1101 1100) PRIKLAD ADRESY ULOZENE NA 1FF8,9 00E4 E60F ANI 0FH ;PONECHANI PRAVE TETRADY KODU A: 01 02 63 04 00E6 29 DAD H ;POSUV OBSAHU HL VLEVO HL:FDBB(1111 1101 1011 1000) 00E7 29 DAD H ;O CTYRI BITY, UVOLNENI HL:FB78(1111 1011 0111 0000) 00E8 29 DAD H ;PRAVE TETRADY PRO NOVY HL:F6EO(1111 0110 1110 0000) 00E9 29 DAD H ;ZNAK Z KLAVESNICE HL:EDC0(1110 1101 1100 0000)DC10 C120 1230 00EA 85 ADD L ;NOVY ZNAK ADR. DO PRAVE TETR. A: C1 12 23 34 00EB 6F MOV L,A ;A JEHO PRESUN DO REGISTRU L: HL:EDC1 DC12 C123 1234 00EC 22F81F SHLD 1FF8H ;UCHOVANI MODIFIK. ADRESY 1FF8:C1ED 12DC 23C1 3412 00EF C3D700 JMP MODAD ;POKRACOVANI MODIF. ADRESY ---------------------------------------------------------------0197 21F001 LXI H,01F0H ;ADR.ZPRAVY, ERR-ADRES HL:01F0 019A C34000 JMP 0040H ;ZOBRAZENI ZPRAVY MONITOREM (BYLA-LI OMYLEM STLACENA FUNKCNI KLAVESA MISTO SESTNACTKOVE) ; ; ;ANALYZA PROCEDURY MODDA PMI-8O, KTERA ZOBRAZI BYTE DAT A UMOZNI JEHO ZMENU Z KLAVESNICE 00FB CDF200 MODDA:CALL OUTDA ;ROZLOZENI BYTU DAT NA 2 ZNAKY HL:(1FFA)=00BD - PREDPOKLADANY OBSAH BYTU DAT 00FE CD1601 CALL OUTKE ;ZOBR. DAT A MODIF. Z KLAVES. A:88 (STLACENA KLAV. ‘8’) B9 (STLACENA KLAVESA ‘9’) 90 0101 C8 RZ ;Z=1,STLACENO’=’,POTVRZENA DATA - NORMALNI NAVRAT Z PROCEDURY Z=l 0102 D29D01 JNC 019DH ;CY=0,STLACENA FUNKCNI KLAVESA - VYSTUP Z PROCEDURY PO CHYBE 0105 000000 NOP ;PRAZDNE OPERACE (3x) HL:00BD=0000 0000 1011 1101 0BD8=0000 1011 1101 1000 0108 E60F ANI 0FH ;PONECHANI PRAVE TETRADY KODU A: 08 09 010A 29 DAD H ;POSUV HL VLEVO O TETRADU HL:017A=0000 0001 0111 1010 17B0=0001 0111 1011 0000 010B 29 DAD H ; HL:02F4=0000 0010 1111 0100 2F60=0010 1111 0110 0000 010C 29 DAD H ; HL:05E8=0000 0101 1110 1000 5EC0=0101 1110 1100 0000 010D 29 DAD H ; HL:08D8=0000 1011 1101 0000 B089=1011 1101 1000 0000 010E 85 ADD L ;NOVY ZNAK DAT DO PRAVE TETR. A: D8 89 00CF 00D0 00D1 00D3 00D4 00D5 00D6 24 00B8 2B 00B9 77 00BA C9 DCX H ;E=0, ADRESA SEGMENTOVKY V, HL: 1FEF MOV M,A ;UCHOVANI OBSAHU STRADACE NA 1FEF: AA RET ;NAVRAT Z PODPROGRAMU CLEAR ;PODPR0GRAM PRIPRAVI KODY MEZER NA ADRESY SEGMENTOVEK A OBSAH STRADACE NA ADRESU LEVE SEGMENTOVKY ;ZOBRAZENI TETO INFORMACE NA DISPLEJI MUSI ZAJISTIT PP DISP NEBO OUTKE ; 010F 6F MOV L,A ;A JEHO PRESUN DO REGISTRU L HL:0BD8=0000 1011 1101 1000 B089-1011 1101 1000 1001 0110 22FA1F SHLD 1FFA ;UCHOVANI MODIFIKOVANYCH DAT 1FFA: D8 89 0113 C3FB00 JMP MODDA ;POKRACOVANI MODIFIKACE DAT ---------------------------------------------------------------019D 21F901 LXI H,01F9H ;ADRESA ZPRAVY. ERR= DATA HL:01F9 01A0 C34000 JMP 0D40H ;ZOBRAZENI ZPRAVY MONITOREM (PRI CHYBNEM STLACENI FUNKCNI KLAVESY MISTO SESTNACTKOVE) ; ; ;PROCEDURA ENTRY PMI-8O 0008 22DF1F ENTRY:SHLD 1FDF ;UCHOVANI HL PRO ZOBRAZENI 1FDF:LLHH 000B E1 POP H ;HODNOTA PC PRI PRERUSENI DO HL:(PC) 000C 22E21F SHLD 1FE2H ;A JEJI UCHOVANI NA ADRESE: 1FE2:(PC) 000F 210000 LXI H,0000 ;VYNULOVANI HL UMOZNI UCHOVAT 0012 39 DAD SP ;HODNOTU SP PRED PRERUSENIM: HL:(SP) 0013 22E41F SHLD 1FE4 ;A PRO ZOBRAZENI JI ULOZI NA 1FE4:(SP) 0016 21DD1F LXI H,1FDDH ;ADRESA VRCHOLU ZASOB. MONIT. HL:1FDD 0019 F9 SPHL ;A JEJI ULOZENI DO SP:1FDD 001A C5 PUSH B ;UCHOVANI BC V TOMTO ZASOB. 1FDB:CCBB 001B D5 PUSH D ;UCHOVANI DE V TOMTO ZASOB. 1FD9:EEDD 001C F5 PUSH PSW ;UCHOVANI AF PRES ZASOBNIK 1FD7:FFAA 001D E1 POP H ;DO REGISTROVEHO PARU HL:AAFF 001E 22DF1F SHLD 1FDD ;A ODTUD NA ADRESY 1FDD:FFAA 0021 2AEC1F LHLD 1FEC ;ADRESA BREAK STOPU PROGRAMU: HL:BRST 0024 3AEE1F LDA 1FEE ;UCHOVANY KOD INSTRUKCE DO A:INSTRUKCE Z MISTA BREAK STOP 0027 77 MOV M,A ;JEJI VRACENI ZPET DO PROG. BRST:PUVODNI INSTRUKCE 0028 212002 LXI H,0220H ;ADRESA ZPRAVY “BR-STOP” DO HL:0220 002B C34000 JMP 0040H ;SKOK DO MONITORU,VYPIS NA DISP:”BR-STOP” ;BRST ZNAMENA ADRESU PUVODNIHO PROGRAMU, NA NIZ BYLA ULOZENA INSTRUKCE CF (RST 1) FUNKCI BREAK STOP ;PUVODNI INSTRUKCE JE UCHOVAVANA V ZASOBNIKU MONITORU NA ADRESE 1FEE ;ADRESA TETO INSTRUKCE JE UCHOVAVANA NA ADRESE 1FEC ;JE-LI ZA ADRESOU UVEDENO VICE BYTU,JSOU ULOZENY NA NASLEDUJICICH VYSSICH ADRESACH ; ; ;PROCEDURA CLEAR PMI-80 00AB 110800 CLEAR:LXI D,0008 ;POCITADLO POZIC DISPLEJE DO DE:0008 00AE 2AFC1F LHLD 1FFCH ;ADRESA Z UKAZATELE VYST.REG HL:1FEF 00B1 19 DAD D ;VYPOCTENA ADR.SEGMENTOVKY, HL:1FF7 1FF6 1FF5 1FF4 1FF3 1FF2 1FF1 1FF0 00B2 3619 MVI M,19H ;ZNAK MEZERY NA TUTO ADRESU, (HL):19 19 19 19 19 19 19 19 00B4 1D DCR E ;ZMENSENI POCITADLA POZIC, DE:0007 0006 0005 0004 0003 0002 0001 0000 25 E5 DISP: PUSH H C5 PUSH B D5 PUSH D 110000 LXI D,0000 42 MOV B,D 7A MOV A,D 32FE1F STA STATUS 3E7F LOOP1:MVI A,7F D3F8 OUT PA 00 NOP 7B MOV A,E 2F CMA D3FA OUT PC 00 NOP 2AFC1F LHLD UKBVF 19 DAD D 4E MOV C,M 21BE01 LXI H,TPREV 09 DAD B 0140 0141 0142 0143 0146 0147 0148 014B 014D 014F 0150 0151 0152 0154 0155 0158 0159 015A 013D ;VYNULOVANI PARU DE ;VYNULOVANI REG. B ;VYNULOVANI REG. A ;VYNULOVANI BUNKY STATUS ;BYTE ZHASNUTI SEGMENTOVKY ;VYSTUP TOHOTO BYTU ;UKLIDNENI DATOVE SBERNICE ;ADRESA SEGMENTOVKY DO A ;DOPLNEK ADRESY PRO DEKOREM ;ADRESACE SEGMENTOVEK ZLEVA ; ;ADRESA ZPRAVY Z 1FFC DO HL ;HL+DE DO HL ;ZNAK ZPRAVY DO REG. C ;ADRESA TAB. PREVODU DO HL ;HL+BC DO HL ;KODY KLAVES DRUHE RADY TLACITEK ;KODY KLAVES TRETI (NEUPLNE) RADY TLACITEK ;ZPRAVA MONITORU PO RESET (“PMI -80”) ;ADRESA ZASOBNIKOVE PAMEETI ;UCHOVANI TETO ADRESY V ZASOBNIKU MONITORU ;ADRESA MONITORU UCHOVAVAJICI ADRESU ZPRAVY CD4001 D21601 0F 4F CD4001 DA1E01 CD4001 79 FE90 C9 0116 0119 011C 011D 011E 0121 0124 0127 0128 012A A A PC DE HL HL BC HL HL :00 :FF :FF :0000 :01E7 :01E7 :001E :01BE :01DC 02 FD FD 0002 01E9 0016 01BE 0104 01E8 0013 01BE 01D1 01EA 0001 01BE 01BF 03 FC FC 0003 01EB 0019 01BE 01D7 04 F8 FB 0004 01EC 001F 01BE 01DD 03 FA FA 0005 01ED 0008 01BE 01C6 06 F9 F9 0006 01EE 0000 01BE 01BE 07 F8 F8 0007 01EF 001E 01BE 01DC 08 F7 F7 0008 NAVRATOVA ADRESA PROGRAMU VOLAJICIHO PROCEDURU DISP LLHH CCB6 EEDD 8A 9A 8F 8E 88 87 83 93 FF 97 92 FF FF 90 16 01 19 1F 08 00 1E 01 FE FE 0001 01AC:82 86 0183:FF 94 01E7:1E 13 SP :1FD9 1FE4:D91F 1FFC:E701 SP :1FD7: SP :1FD5: SP :1FD3: SP :1FD1: DE :0000 B :00 A :00 1FFE:00 A :7F PA :7F ; ;PROCEDURA OUTKE PMI-80 OUTKE:CALL DISP ;ZOBRAZENI A TEST KLAVESNICE JMC OUTKE ;CY=0, NEBYLA STLACENA KLAVESA RRC ;CY=1, OBNOVENI OBSAHU STRADACE A:KOD KLAVESY MOV C,A ;KOD KLAVESY DOCASNE DO REG. C:KOD KLAVESY CALL DISP ;TEST UVOLNENI KLAVESY JC x-3 ;CY=1,NENI JESTE UVOLNENA CALL DISP ;ZOBRAZENI A NASTAVENI CY CY=1:PRIZNAK STLACENE KLAVESY JAKO JEDEN Z VYSTUPU PP OUTKE MOV A,C ;KOD KLAVESY VRACEN DO REG. A:KOD KLAVESY - DRUHY VYSTUP PP OUTKE CPI 90H ;BYLA STLACENA KLAVESA ANO:Z=1, PRIZNAK STLACENI ‘=’, JE DALSIM VYSTUPEM PP OUTKE RET ;NAVRAT Z PP OUTKE DO MONITORU NEBO PROGRAMU ;VYSTUPY PP OUTKE: A,C KOD STLACEME KLAVESY ; CY=1 PRIZNAK STLACENE KLAVESY ; Z=1 PRIZNAK STLACENI KLAVESY ‘=’ ;POUZIVA REGISTRY: A,C, OSTATNI UCHOVAVA ; ; ;ANALYZA PODPROGRAMU DISP PMI-80 PRI JEHO PRVNIM VOLANI PO ZAPNUTI MIKROPOCITACE 26 19 DAD 7E MOV 32FE1F STA 1C NOKEY:INR 3E0A MVI C24601 3AFE1F 07 D1 C1 E1 C9 0183 0184 0185 0188 0189 018C 018F 0192 0193 0194 0195 0196 ;ZNAK V KODU SEGMENTOVKY ;ZOBRAZENI ZNAKU DISPLEJEM ; ;KOD STLACENE KLAVESY ;TEST NESTLACENI KLAVESY C,09 ;POCET KLAVES V RADE DO C H,TABK-9;ADR.TAB.KLAVES -9 DO HL PCH ;VSTUP CASTI KODU KLAVESY ;K=0-STLACENA,K=1-NESTLACENA 070H ;MASKA VSTUPU KODU KLAVESY ;ROTACE VLEVO PRES CY: CY=0 ; CY=K PRVA ;STLACENA KLAVESA PRVE RADY ; CY=L DRUHA ;STLACENI KLAVESY DRUHE RADY ; CY=M NOKEY ;NESTLACENA ZADNA KLAVESA B ;BC+HL DO HL B ;BC+HL DO HL B ;BC+HL DO HL ; D ;DE+HL DO HL A,M ;KOD KLAVESY V KODU SEGMENT. STATUS ;UCHOVANI KODU V PAMETI E ;ADRESA DALSI SECM.A KLAV. A,0AH ;CISLO POSLEDNI +1 SEGMENT. STATUS A A,M PA :00 :00 XY XY 0C P XY XY 48 M 0009+019A=01A3 DE :0000 0001 0002 HL : 01A5 A : 88 1FFE: 88 DE :0001 0002 0003 A :0A A :00000KLM BC :0009 A :M00000KL C :09 HL :019A PC:0KLM0000 A :0KLM0000 A :0KLM0000 A :KLM00000 A :LM00000K A A A :5D ZNAK:” XY XY 7F XY XY 3F - 0009+019A=01A3 0009+01A3=01AC 0003 0004 0003 01B1 8E 8E 0004 0005 0006 XY XY 06 I XY XY 40 0 XY XY 5D “ 0009+019A=01A3 0009+01A3=01AC 0009+01AC=01B5 0006 0007 0008 01BD 90 90 0007 0008 0009 000A XY XY 00 8 JNZ LOOP1 ;NE -DALSI SEGM. A KLAVESY LDA STATUS ;KOD STLACENE KLAVESY DO A A : 88 RLC ;NASTAVENI PRIZNAKU STLAC.KLAV. CY=1 A=11 POP D ;NAVRAT PUVODNIHO OBSAHU DE SP :1FD3 DE:DDEE POP B ; SP :1FD3 BC:BBCC POP H ; SP :1FD7 HL:HHLL RET ;NAVRAT Z PODPROGRAMU DISP SP :1FD9 ;TABULKA ZANKU V KODU SEGMENTOVEK: 01BE:40 79 24 30 19 12 02 78 00 18 01C8:08 03 46 21 06 0E 07 23 2F 0C 01D2:47 63 48 71 37 7F 09 2B 0B 2C 01DC:5D 3F 42 61 78 11 FF FF FF FF ; ; ;PROCEDURA BREAK POINT PMI-80 ;NA ZVOLENE ADRESE NAHRADI PUVODNI INSTRUKCI PRIKAZEM ‘CF’ (RST 1), CIMZ DONUTI PROGRAM SKOCIT DO MONITORU ;POTOM LZE ANALYZOVAT OBSAHY REGISTRU A PAMETOVYCH BUNEK, ZDA SE VYVIJEJI V SOULADU S POZADAVKY PROGRAMU 025A 3E0B BREAK:MVI A,OSH ;ZNAK ‘B’ - SYMBOL BREAK POINT A:0B 025C CDAB00 CALL CLEAR ;PRIPRAVA ZOBRAZENI: B........ 0E09 MVI 219A01 LXI DBFA IN 00 NOP E670 ANI 07 RLC 07 RLC D28201 JNC 07 RLC D28101 JNC 07 RLC DA8801 JC 09 DAD 09 DRUHA:DAD 09 PRVA: DAD 0169 016B 016E 0170 0171 0173 0174 0175 0178 0179 017C 017D 0180 0181 0182 MOV OUT NOP LDA ORA 7E D3F8 00 3AFE1F B7 015E 015F 0161 0162 0163 27 3E20 CDAB00 2AE21F 22F81F CDD700 2AF81F 22E21F 3E06 D3F8 00 3E0F D3FA 00 21D91F F9 D1 C1 F1 2AE41F F9 2AE21F E5 2ADF1F C9 0229 022B 022E 0231 0234 0237 023A 023D 023F 0241 0242 0244 0246 0247 024A 024B 024C 024D 024E 0251 0252 0255 0256 0259 027E 3E12 0280 CDAB00 2AEC1F 22F81F CDD700 2AF81F 22EC1F 7E 32EF1F 36CF 2AE21F 2B 22E21F C32902 025F 0262 0265 0268 026B 026E 026F 0272 0274 0277 0278 027B 1FECH 1FF8H MODAD 1FF8H 1FECH A,M 1FEE M,CFH 1FE2H H 1FE2H EXEC ;ADRESA ZASTAVENI PRO BR.POINT HL:BRPO ;A JEJI ULOZENI DO ZASOBNIKU 1FF8:POBR ;ZOBRAZENI A MODIF.TETO ADR. 1FF8:241D (PRIKLAD ADRESY PRO BREAK POINT: 1D24) ;PRESUN TETO ADRESY PRES REG. HL:1D24 ;DO ZASOBNIKU MONITORU 1FEC:241D ;PUVODNI INSTRUKCE PROGRAMU A:XY ;JE UCHOVANA V ZASOB. MONIT. 1FEE:XY ;A NAHRAZENA INSTRUKCI RST1 1D24:CF -KTERA ZPUSOBI PRERUSENI PROGRAMU SKOKEM MA ADR. 0008 ;ADRESA POCATKU PROGRAMU HL:1D00 ;JE ZMENSENA O JEDNICKU HL:1CFF ;A ULOZENA DO ZASOB. MONIT. 1FE2:FF1C ;SKOK DO PROCEDURY EXECUTE, KTERA UMOZNI ODSTARTOVANI PROGRAMU ; ; ;PROCEDURA EXECUTE PMI-80, ZAJISTUJE SPUSTENI UZIVATELSKEHO PROGRAMU OD ZADANE ADRESY ;PREDPOKLADEJME, ZE NAVAZUJE BEZPROSTREDME NA PROCEDURU BREAK POINT EXEC: MVI A,20H ;PRIZNAK PROCEDURY ‘G’ DO A:20 CALL CLEAR ;PRIPRAVA ZOBRAZENI, G........ LHLD 1FE2H ;STARTOVACI ADRESA PROGRAMU HL:1CFF SHLD 1FF8H ;JE ULOZENA DO ZASOB. MONIT. 1FF8:FF1C CALL MODAD ;ZOBRAZENA A MODIFIKOVANO 1FF8:001D -NA ADRESU SKUTECNEHO ZACATKU PROGRAMU LHLD 1FF8H ;A PRES REGISTROVY PAR HL:1D00 SHLD 1FE2H ;UCHOVANA V ZASOB. MONITORU 1FE2:001D MVI A,06H ;PRIPRAVA ZNAKU ‘E’ (EXEC) A:06 OUT 0F8H ;POSLAN PRES PORT PA NA DISP. NOP ;UKLIDNENI SBERNICE MVI A,0FH ;ADRESA LEVE SEGMENTOVKY PRES A:0F OUT 0FAH ;POSLANA DO PORTU PC A DISP. DISP:E........ NOP ;UKLIDNENI SBERNICE LXI H,1FD9H ;OBNOVENI ADRESY V UKAZATELI HL:1FD9 SPHL ;VRCHOLU ZASOBNIKU SP:1FD9 POP D ;OBNOVA PUVODNICH OBSAHU DE:DDEE POP B ;REGISTRU (PRED PRERUSENIM AJ.)BC:BBCC POP PSW ; AF:AAFF LHLD 1FE4H ;ADRESA VRCHOLU ZASOBNIKU PRES HL:1FD9 SPHL ;DO UKAZATELE TETO ADRESY SP:1FD9 LHLD 1FE2H ;ADRESA ZACATKU PROGRAMU PRES HL:1D00 PUSH H ;UCHOVANA V ZASOBNIKU JAKO 1FD7:001D -NAVRATOVA ADRESA Z PODPROGRAMU LHLD 1FDFH ;OBNOVENI PUVODNIHO OBSAHU HL:HHLL RET ;DO PC JE ULOZENA STARTOVACI PC:1D00 -ADRESA UZIVATELSKEHO PROGRAMU, CIMZ JE OOSTARTOVAN ; ; ;PROCEDURA ZOBRAZENI OBSAHU REGISTRU PMI-80 (ULOZENYCH V ZASOBNIKOVE PAMETI, NAPR. PROCEDUROU ENTRY) ;PREDPOKLADANE OBSAHY REGISTRU JSOU: AA,FF,BB,CC,DD,EE,HH,LL,SPSP (FF PRO PRIZNAKOVY REGISTR, AC NENI PLNE VYUZIT REG: MVI A,12H ;SYMBOL FUNKCE ‘R’ DO STRADACE A :12 CALL CLEAR ;PRIPRAVA ZOBRAZENI.R. ...... LHLD SHLD CALL LHLD SHLD MOV STA MVI LHLD DCX SHLD JMP 0283 CD1601 CALL OUTKE ;ZOBRAZENI A CTENI KLAVESY, OZNACUJICI DVOJICI REGISTRU 0286 D26700 JNC 0067H ;STLACENA FUNKCNI KLAVESA, SKOK NA ZOBRAZENI ZPRAVY, “ERROR” 0289 E60F ANI 0FH ;PONECHANI PRAVE TETRADY KODU A :0X - X=PRAVA POLOVINA KODU KLAVESY 028B 010600 LXI B,0006H ;NASTAVENI CITACE REGISTRU BC:0006 028E 212A01 LXI H,012AH ;ADRESA TABULKY KODU KLAVES HL:012A 0291 0B DCX B ;ZMENSENI CITACE REGISTRU BC:0005 0004 0003 0002 0001 0000 0292 09 DAD B ;VYPOCTENI ADRESY S KODEM 0X HL:012F 012E 012D 012C 012B 012A 0293 0C INR C ;TEST NULOVOSTI CITACE REG. BC:0006 0005 0004 0003 0002 0001 0294 0D DCR C ; BC:0005 0004 0003 0002 0001 0000 0295 CA4F00 JZ 004F ;KONEC PROCEDURY,SKOK DO MONITORU 0298 BE CMP M ;SROVNANI KODU KLAVESY S M=((HL)):0A 0B 0D 09 08 0299 C28E02 JNZ 028EH ;Z=0,NESROVNANI OBSAHU,SKOK 029C 212F01 LXI H,012FH ;Z=1,SROVNANI,ADRESA KODU KLAV.HL:012F 012F 012F 012F 012F 029F CDCD02 CALL 02CDH ;PODPROGRAM CTENI NAZVU REGISTRU ---------------------------------------------------------------02CD 0600 MVI 8,00 ;VYNULOVANI REGISTRU B, POTOM BC:0005 0004 0003 0002 0001 02CF 09 DAD B ;VYPOCTENI ADRESY V TABULCE HL:0134 0133 0132 0131 0130 02D0 6E MOV L,M ;KONSTANTA Z TABULKY DO L : 0F 0C 0E 14 13 02D1 261F MVI H,1FH ;PRIMA KONSTANTA DO H, POTOM: HL:1F0F 1F0C 1F0E 1F14 1F13 02D3 C9 RET ; ---------------------------------------------------------------02A2 5D MOV E,L ;KONSTANTA DO POMOC. REGISTRU E : 0F 0C 0E 14 13 02A3 213401 LXI H,0134H ;ADRESA DALSI TABULKY HL:0134 0134 0134 0134 0134 02A6 CDCD02 CALL 02CDH ;PODPROGRAM CTENI NAZVU DRUHEHO REGISTRU Z PARU ---------------------------------------------------------------02CD 0600 MVI B,00 ;VYNULOVANI REGISTRU B, POTOM BC:0005 0004 0003 0002 0001 02CF 09 DAD B ;VYPOCTENI ADRESY V TABULCE HL:0139 0138 0137 0136 0135 0200 6E MOV L,M ;PRENOS ZNAKU Z TABULKY DO L : 0A 08 0D 1A 05 02D1 261F MVI H,1FH ;PRIMA KONSTANTA DO H, POTOM: HL:1F0A 1F0B 1F0D 1F1A 1F05 02D3 C9 RET ; ---------------------------------------------------------------02A9 63 MOV H,E ;OBSAH POMOC. REG. DO H, POTOM HL:0F0A 0C0B 0E0D 141A 1305 02AA 22F61F SHLD 1FF6H ;PRENOS DO VYST REG.DAT DISP 1FF6:0A0F 0B0C 0D0E 1A14 0513 (REG.PARY V KOOU PMI-80) 02AD C5 PUSH B ;DOCASNE UCHOVANI BC V ZASOB.1F07:0500 0400 0300 0200 0100 02AE CDCA02 CALL 02CAH ;PODPROGRAM CTENI ADRESY ZASOBNIKU, UCHOVAVAJICI OBSAHY REGISTROVYCH PARU ---------------------------------------------------------------02CA 213901 LXI H,0139H ;ADRESA DALSI TABULKY HL:0139 0139 0139 0139 0139 02CD 0600 MVI B,00 ;VYNULOVANI REGISTRU B,POTOM BC:0005 0004 0003 0002 0001 02CF 09 DAD B ;VYTVORENI ADRESY V TABULCE HL:013E 013D 013C 013B 013A 02D0 6E MOV L,M ;NIZSI BYTE ADRESY ZASOBNIKU L : DD DB D9 DF E4 02D1 261F MVI H,1FH ;VYSSI BYTE ADRESY ZASOBNIKU HL:1FDD 1FDB 1FD9 1FDF 1FE4 02D3 C9 RET ;NA NIZ JSOU UCHOVANY OBSAHY REGISTROVYCH PARU ---------------------------------------------------------------0281 E5 PUSH H ;DOCASNE UCHOVANI HL V ZASOB 1FD5:DD1F DB1F D91F DF1F E41F 0282 4E MOV C,M ;OBSAH PRAVEHO REGISTRU PARU C : FF CC EE LL SPL 02B3 23 INX H ;ZVETSENI ADRESY ZASOBNIKU HL:1FDE 1FDC 1FDA 1FE0 1FE5 29 66 69 22F81F CDD700 D1 7D 12 13 7C 12 C1 0D C29C02 C34F00 MOV MOV SHLD CALL POP MOV STAX INX MOV STAX POP DCR JNZ JMP ;OBSAH LEVEHO REGISTRU Z PARU H :AA ;PRENOS OBSAHU PRAVEHO REG. DO HL:AAFF ;OBSAH REG.PARU DO ZAS.MONIT.1FF8:FFAA ;ZOBR. REG.PARU,ZMENA OBSAHU 1FF8:F7A7 ;ADRESA ZASOB.PAMETI REGIST. DE:1FDD ;OBSAH PRAVEHO REGISTRU DO A : F7 ;A JEHO UCHOVANI V ZASOBNIKU (DE): F7 ;ZVETSENI ADRESY ZASOB.PAMETI DE:1FDE ;OBSAH LEVEHO REGISTRU DO A :A7 ;A JEHO UCHOVANI V ZASOBNIKU (DE):A7 ;NAVRAT BC ZE ZASOBNIKU BC:0005 ;ZMENSENI CITACE REGISTRU BC:0004 ;SKOK NA ZOBR. DALSIHO REG. PARU ;KONEC PROCEDURY, NAVRAT DO MONITORU 0341 C9 RET 14 CTE0: INR 9 CD4203 CALL INBIT D22903 JNC K-4 CD4203 CALL INBIT D22903 JNC x-10 7A MOV A,D 17 RAL 79 MOV A,C 1F RAR 4F MOV C,A 1600 MVI D,00 05 DCR B CY: D : CY: CY: DD DDEE EEDD E7D7 1FD9 E7 E7 1FDA D7 D7 0003 0002 HH HHLL LLHH L7H7 1FDF L7 L7 1FE0 H7 H7 0002 0001 SPH SPSP SPSP 77SP 1FE4 77 77 1EE5 SP SP 0001 0000 0 * 0 05 06 04 24 0,48 E0 70 70 03 24 0,48 70 38 38 ;KONEC CTENI BYTU,NAVRAT,NACTENY BYTE JE ULOZEN V REGISTRU C: DB 1,B6 C0 E0 E0 DB 1,B6 80 C0 C0 02 24 0,48 38 1C 1C 01 24 0,48 1C 0E 0E RET,C:07 00 24 0,48 0E 07 07 17 16....01 00 FF....F3*F2 F1....D0 CF* AB 0 0 0 0 0 0 *0 0 0 0 *0 0 0 0 STOP BIT(0),24H VZORKU * ‘0’ VYZN. *CD CC....AC AB * * STOP BIT (0) ZAV.TON: 256+15 VZORKU * FF FE....01 00 FF....F2*F1 F0....CF CE*CD CC....AB AA 1 1 1 1 1 1 *1 1 1 0 *1 1 1 0 * (‘1’VYZN.BIT) * DRUHY A DALSI PRUCHOD PROCEDUROU 1(ZAV.TON DELKY 21,6MS)* (START BIT) CY=0...0 1 CY=0 ;CY=0,VYZN.’0’+ST0P BIT,+1 DO D : ;CTENI VYZN.’0’+ STOP BITU CY: ;CY=0, CTE DALE ‘0’ ;CY=1,NAHODNE, POKRACUJ ;CY=0,CTE DALE ‘0’ ;CY=1,OBSAH D SE MUZE MENIT A :CD ;NASTAVENI CY CTENYM BITEM CY,A:1,9A ;NACTENI PREDCHOZIHO OBSAHU A : 00 ;CY=CTENY BIT ZPET DO STRANCE A : 80 ;A JEHO UCHOVANI V REGISTRU C : 80 ;NASTAVENI CITACE DELKY BITU D :00 ;ZMENSENI POCITADLA BITU B :07 ;CY=0,DROP OUT, CTE DALE 0323 CD4203 CALL INBIT ;CY=1,ZAVADECI TON,-l DO ;ZAV.TON+START+VYZN.’1’ BITY 031C 15 CTE1: DCR D 031D CD4203 CALL INBIT CALL INBIT ;CY=1,NAHODNA NEBO ZAVAD. TON ;CY=0,CTENA 0 NEBO MEZERA ;CY=0,CTENA MEZERA CALL INBIT 0316 CD4203 0329 032A 032D 0330 0333 0336 0337 0338 0339 033A 033B 033D BB BBCC CCB8 C7B7 1FDB C7 C7 1FDC B7 B7 0004 0003 ‘TIN’, PRIKLAD CTENI ZAVADECIHO TONU (ASI 21,6 MS) A BYTU CISLA BLOKU ZAZNAMU NA MGP B,08 ;POCITADLO BITU CTENEHO BYTU B :08 D,00 ;VYNULOVANI CITACE DELKY BITU D :00 (CITAC DELKY TRVANI ZAZNAMU JEDNOHO BITU NA MGP) INBIT ;CTENI SIGNALU Z MAGNETOFONU CY=0 H,M L,C 1FF8H MODAD D A,L D D A,H D B C 029CH 004FH 0310 CD4203 CTE0: CALL INBIT 030A CD4203 ; ; ;PROCEDURA 0300 0608 TIN: MVI 0302 1600 MVI 0304 CD4203 CTE1: CALL 02B4 02B5 0286 0289 02BC 02BD 02BE 02BF 02C0 02C1 02C2 02C3 02C4 02C7 79 ;CY=1,NAHODNA NEBO START BIT 034C 034E 0351 0354 0357 035A 035D 0360 3E05 CDAB00 CDD700 CDFB00 219500 22FC1F CD1601 3E23 0341 C9 CY: 1 0 0 * ;NASTAVI CY CTENOU ‘1’CI’0’ CY,A:0,48 ;NACTENI PREDCHOZIHO OBSAHU A : 07 ;BIT Z CY ZPET DO STRADACE A : 03 ;UCHOVANI NOVEHO OBSAHU A V C : 03 ;NASTAVENI CITACE DELKY BITU D : 00 ;ZMENSENI POCITADLA BITU B :07 1,B6 81 C0 C0 05 1.B6 03 81 81 06 04 0,48 C0 60 60 03 1,B6 60 B0 B0 02 1,B6 B0 D8 D8 01 0,48 DB 6C 6C 00 0,48 6C 36 36 *B8 B9...DA DB *0 0 ...0 0 0 * FF FE....DD DC*DB DA....B8 B7* 1 1 ....1 0/1*1 1 ....1 0 * 1 0 0...0 1 RET ;KONEC CTENI BYTU,NAVRAT DO PROCEDURY LOAD,NACTENY BYTE JE V REGISTRU C: RET,C:36 ;KONEC PROCEDURY ‘TIN’ ;CITAC DELKY BITU V D MUZE NABYVAT HODNOTY KOLEM (00 - 24H)=DC, JE-LI CTENA ‘1’, T.J. HODNOT. DO, DC, DB ;A HODNOT KOLEM (00+24H)=24 PRI CTENI ‘0’, T.J. 23, 24, 25. JE TO DANO MOZMYM KOLISANIM DELKY ZAZNAMU BITU NA MGP ; ; ;FUNKCE ‘S’SAVE PMI-80 UMOZNUJE UCHOVAT NA MAGNETOFONU AZ 256 BYTU DAT, ZAZNAM FAZOVOU MODULACI SAVE: MVI A,05H ;ZKRATKA PROCEDURY ‘S’ DO A :05 CALL CLEAR ;PRIPRAVA ZOBRAZENI = S........ CALL MODAD ;ZOBRAZENI A URCENI ADRESY 1FF8:1C00 OD NIZ SE BUOOU DATA ZAZNAMENAVAT CALL MODDA ;URCENI CISLA BLOKU ZAZNAMU 1FFA:07 - TOTO CISLO IDENTIFIKUJE ZAZNAM NA MAGNETOFONU LXI H,0095H ;ADRESA ZPRAVY “MG RUN” DO HL:0095 SHLD 1FFCH ;A JEJI ULOZENI DO ZASOBNIKU CALL OUTKE ;ZOBR.”MG RUN”,CEKA NA POTVRZENI ZPRAVY LIBOVOLNOU KLAVESOU (MIMO.RE+I) MVI A,23H ;ZNAK ‘O’ V KOOU SEGMENTOVEK A :23 C,A D,00 B A,C 17 79 1F 4F 1600 05 0337 0338 0339 033A 033B 033D RAL MOV RAR MOV MVI DCR 14 CTE0: INR D CD4203 CALL INBIT D22903 JNC x-4 CD4203 CALL INBIT D22903 JNC x-10 0329 032A 032D 0330 0333 D : CY: CY: CY: CY: ;CY=0,ZVETSENI CITACE DELKY D : 24 23....02 01*00 FF....DE DD* ;CTENI VYZN’0’ A STOP BITU CY: 0 0 ....0 0 *0 0 ....0 0 * ;CY=0,CTE’0’,SK0K DO CYKLU (STOP BIT + ‘0’ VYZN.BIT) * ;CY=1,NAHODNA NEBO DALSI START BIT ;CY=0,CTE ‘0’,SK0K DO CYKLU ;CY=0,DROP OUT NEBO VYZN.O’ 0323 CD4203 CALL INBIT ;CY=1,START BIT l.BITU l.BYTU ;CTE START BIT A ‘1’VYZN.BIT 031C 15 CTE1: DCR D 031D CD4203 CALL INBIT CALL INBIT 0316 CD4203 ;CY=0,DR0UP OUT NEBO ‘0’VYZN. ;CTE VYZN.’0’ NEBO STOP PIT CALL INBIT TIN’ PRO 1. BYTE DAT (36H) ZA CISLEM BLOKU ZAZNAMU (07) NA MGP B,08 ;POCITADLO BITU V BYTU B :08 D,00 ;CITAC DELKY ZAZNAMU BITU INBIT ;CTE 9.START BIT CISLA BLOKU CY:1 0...1 0 0310 CD4203 CTE0: CALL INBIT 030A CD4203 ; ; ;PROCEDURA 0300 0608 TIN: MVI 0302 1600 MVI 0304 CD4203 CTE1: CALL HLDA - 01|02 INT - 03|04 - 05|06 WAIT - 07|08 A0 - 09|10 A1 - 11|12 A2 - 13|14 +12V - 15|16 A3 - 17|18 A4 - 19|20 A5 - 21|22 A6 - 23|24 A7 - 25|26 A8 - 27|28 A9 - 29|30 A15 - 31|32 A12 - 33|34 A13 - 35|36 A14 - 37|38 A11 - 39|40 MR - 41|42 CS4 - 43|44 - 45|46 DB1 - 47|48 - 49|50 RDYIN - 51|52 DB5 - 53|54 DB6 - 55|56 - 57|58 2 TTL - 59|60 DB4 - 61|62 +5V I/OW INTE HOLD GND +12V RESET -5V -5V INTA GND CS6 CS5 A10 CS2 CS3 DB0 +5V DB2 CSC DB3 I/OR DB7 STSB MW PB3 PB4 FB5 PB6 PB7 PC1 FC0 PC4 PC5 PC6 PC7 A9 PA7 PA6 PA5 PA4 PB7 PB5 PB3 PB1 01|02 03|04 05|06 07|08 09|10 11|12 13|14 15|16 17|18 19|20 21|22 23|24 25|26 27|28 29|30 31|32 33|34 35|36 37|38 39|40 41|42 43|44 45|46 47|48 PA0 PA1 PA2 PA3 PB6 PB4 PB2 PB0 K3: 1 - MGIN 2 - GND 3 - MGOUT - 02ED C9 RET ;B=0,ZAPSAN BYTE+ODDELOVACI BIT _----__----__----__--____--____--____--____--____--____--... ----------------------------------------------------------------- 1 1 1 0 0 0 0 O (VYZN.BITY) 02EE 1620 MVI D,20H ;POCET PULPERIOD ZAZNAM TONU D :20 (PRIKLAD ZAZNAMU START BITU = LOG 1) 02F0 03F8 OUT PA ;VYSTUP DAT DO PORTU A PA:C7 87 C7 87 C7 87 C7 87 ... C7 87 02F2 1E04 MVI E,04H ;DOBA PULPERIODY TONU (ASI 90 MIKROSEKUND) 02F4 10 DCR E ;CYKL VYTVARENI TONU 1 0 1 0 1 0 1 0 ... 1 0 02F5 C2F402 JNZ 02F4 ;(PA7 X PA6) VYTVAREJI VYSTUP -----_____-----_____-----_____-----_____ ... -----_____ 02F8 EE40 XRI 40H ;DOPLNEK BITU A6 STRADACE A :87 C7 87 C7 87 C7 87 C7 ... 87 C7 02FA 15 DCR D ;ZMENSENI POCIT.PERIOD TONU D :1F 1E 10 1C 1B 1A 19 18 ... 01 00 02FB C2F002 JNZ 02F0H ;SKOK NA ZAZNAM OPACNE PULPERIODY 02FE C9 RET ;D=0,KONEC ZAZNAMU BITU (20H=32D PULPERIOO: X 90MKSEC = 2,88MSEC -TRVANI ZAZMAMU BITU) ----------------------------------------------------------------02EE 1620 MVI D,20H ;POCET PULPERIOD ZAZNAM.TONU D :20 (PRIKLAD ZAZNAMU STOP BITU = LOG 0) 02F0 D3F8 OUT PA ;VYSTUP DAT DO PORTU A PA:47 07 47 07 47 07 47 07 ... 47 07 0362 D3F8 OUT PA ;A JEHO VYSLANI DO PORTU A PA:23 0364 3E0F MVI A,0FH ;ADRESA LEVE SEGMENTOVKY 00 A :0F 0366 D3FA OUT PC ;KOD POZICE LEVE SEGMENTOVKY PC:0F 0368 16F0 MVI D,0F0H ;DELKA UVODNIHO TONU ZAZNAMU D :F0 =240 PULPERIOD X 90 MKSEC = 21,60 MSEC 036A 3EC7 MVI A,0C7H ;MASKA ZAVADECIHO TONU A :C7 036C CDF002 CALL 02F0H ;ZAZNAM ZAVADECIHO TONU 036F 3AFA1F LDA 1FFAH ;CISLO BLOKU ZAZNAMJ A :07 0372 4F MOV C,A ;JE ULOZENO DO “VYSTUP.REG” C :07 0373 CDD402 CALL TOUT ;A ZAZNAMENANO NA MAGNETOFON PRIKLAD ROTACE BYTU ‘07’ VE STRADACI A CY, OUT PA 0376 3E10 MVI A,10H ;SYMBOL ZAZNAMU ‘T’ (TAPE) DO A :10 BIT 07 00000111 0 0378 CDAB00 CALL CLEAR ;PRIPRAVA ZOBRAZENI,T........ 0. 03 00000011 1 C7 037B 2AF81F LHLD 1FF8H ;ADRESA 1.BYTU DAT DO HL:1C00 1. 81 10000001 1 C7 037E 4E MOV C,M ;BYTE DAT DO “VYST.REGISTRU” C :BD 2. C0 11000000 1 C7 037F CDD402 CALL TOUT ;A JEHO ZAZNAM NA MAGNETOFON 3. E0 11100000 0 47 0302 2C INR L ;ADRESA NASLEDUJICIHO BYTU DAT HL:1C01 4. 70 01110000 0 47 0383 C27E03 JNZ 037E ;CYKL AZ DO VYNULOVANI REG. L 5. 38 00111000 0 47 0386 219E00 LXI H,009EH ;ADRESA ZPRAVY “MG STOP” HL:009E 6. 1C 00011100 0 47 0389 C34300 JMP 0043H ;SKOK DO MONITORU S VYPISEM ZPRAVY “MG STOP” 7. 0E 00001110 0 47 ----------------------------------------------------------------8. 07 00000111 0 47 02D4 0609 TOUT: MVI B.09H ;POCITADLO BITU, 8+1 B :09 (BIT NAVIC JE ODDELOVACI PRO SYNCHRONIZACI CTENI V TIN) 02D6 3EC7 MVI A,0C7H ;MASKA START BITU ZAZNAMU A :C7 C7 C7 C7 C7 C7 C7 C7 C7 02D8 CDEE02 CALL 02EE ;ZAZNAM START BITU LOG:1 1 1 1 1 1 1 1 1 02DB 79 MOV A,C ;”VYST. REGISTR” PREPSAN DO A :07 03 81 C0 E0 70 38 1C 0E 02DC 1F RAR ;POSUV VPRAVO PRES CY: A,CY:03,1 81,1 C0,1 E0,0 70,0 38,0 1C,0 0E,0 07,0 02DD 4F MOV C,A ;VYSLEDEK ZPET DO “VYST.REG.” C :03 61 CO EO 70 38 1C 0E 07 02DE 3E8F MVI A,8FH ;MASKA VYZNAMOVEHO BITU A :8F 8F 8F 8F 8F 8F 8F 8F 8F 02E0 1F RAR ;ROTACE VPRAVO PRES CY, A :C7 C7 C7 47 47 47 47 47 47 02E1 CDEE02 CALL 02EE ;ZAZNAM VYZNAMOVEHO BITU LOG:1 1 1 0 e 0 0 0 0 02E4 3E47 MVI A,47H ;MASKA STOP BITU A :47 47 47 47 47 47 47 47 47 02E6 CDEE02 CALL 02EE ;ZAZNAM STOP BITU LOG:0 0 0 0 0 0 0 0 0 02E9 05 DCR B ;ZMENSENI POCIT.BITU PRENOSU B :08 07 06 05 04 03 02 01 00 PB2 PB1 FB0 PC3 PC2 GND 31 32 77 3E14 CDAB00 CDD700 CDFB00 219500 22FC1F CD1601 2AF81F 3E07 D3F8 3E0F D3FA 1600 CD4203 DAAB03 15 CD0003 3AFA1F B9 C2CC03 CD0003 71 2C 038C 038E 0391 0394 0397 039A 039D 03A0 03A3 03A5 03A7 03A9 03AB 03AD 03B0 03B3 0387 03BA 038D 03BE 03C1 03C4 03C5 CALL LDA CMP JN2 CALL MOV INR TIN 1FFAH C 03CCH TIN M,C L ;D=0,POKRACUJE CTENI MEZERY, ZAVADECIHO TONU BLOKU DAT A BYTU S CISLEM TOHOTO BLOKU ;CISLO BLOKU ZAZNAMENANYCH DAT A :07 ;SROVNANO S PRECTENYM CISLEM A : ? ;Z=0, JE RUZNE, PODEJ ZPRAVU ;Z=1, JE STEJNE, CTE SE ZAZNAM ;A ZAPISE BYTE DO PAMETI ;ZVETSI SE ADRESA PAMETI MVI E,04H ;DOBA PULPERIODY TONU DCR E ;CYKL VYTVARENI TONU 0 0 0 0 0 0 0 0 ... 0 0 JNZ 02F4H ;VYSTUP (PA7 X PA6) _______________________________________________________ XRI 40H ;DOPLNEK BITU A6 STRADACE A :47 07 47 07 47 07 47 07 ... 47 07 DCR D ;ZMENSENI POCIT>PERIOD TONU D :1F 1E 1D 1C 1B 1A 19 18 ... 01 00 JNZ 02F0H ;SKOK NA ZAZNAM OPACNE PULPERIODY RET ;D=0, KONEC ZAZNAMU BITU ;KONEC PROCEDURY FUNKCE SAVE ; ; ;FUNKCE ‘L’ LOAD PMI-80 UMOZNUJE CTENI AZ 256 BYTU DAT Z MAGNETOFONU, ZAZNAMENANYCH FAZOVOU MODULACI ;ZAVADECI TON TRVA ASI 21,6 MSEC, START BIT - VYZNAMOVY BIT - STOP BIT ASI 2,88 MSEC KAZDY LOAD: MVI A,14H ;ZKRATKA PROCEDURY ‘L’ DO A :14 CALL CLEAR ;PRIPRAVA ZOBRAZENI L........ CALL MODAD ;URCENI ADRESY UKLADANI DAT 1FF8:001C -PRIKLAD ZVOLENE ADRESY: 1C00 CALL MODDA ;URCENI CISLA CLCKU ZA7NAMU 1FFA:07 -PRIKLAD CISLA STEJNEHO JAKO PRI SAVE LXI H,0095H ;ADRESA ZPRAVY “MC-RUN” HL:0095 SHLD 1FFCH ;JE UCHOVANA VE VYST REGIST. 1FFC:9500 CALL OUTKE ;ZOBRAZENI, PROGRAM CEKA NA POTVRZENI ZPRAVY “MC-RUN” STLACENIM LIBOVOLNE KLAVESY (MIMO=RE+I) LHLD 1FF8H ;ADRESA UKLADANI DAT DO HL:1C00 MVI A,07H ;SYMBOL ‘T’ V KODU SEGMENTOVEK A :07 OUT PA ;JE VYSLAN DO PORTU A PA:07 MVI A,0FH ;KOD POZICE LEVE SEGMENTOVKY A :0F OUT PC ;JE VYSLAN DO PORTU C PC:0F DISP T........ MVI D,A0H ;KONSTATNTA MINIMALNI MEZERY D :A0 MEZI BLOKY DAT NEBO PRED 1. BLOKEM DAT CALL INBIT ;CTENI ZACATKU MGP NEBO MEZERY MEZI BLOKY ZAZNAMU NA MGP JC x-5 ;CY=1,PRI CTENI BLOKU S NIZSIM CISLEM NEZ OCEKAVANY BLOK -SKOK PRI CTENI LOG 1 DCR D ;CY=0,CTENA LOG 0 BLOKU ZAZNAMU S NIZSIM CISLEM, NEBO CTENA MEZERA MEZI BLOKY (ZACATEK MGP) 03C9 C38603 JMP 0386H ;L=00, KONEC CTENI, SKOK NA VYPIS ZPRAVY “MG-STOP”, KONEC PROCEDURY ----------------------------------------------------------------03CC DAE703 JC 03E7H ;CY=1, CISLO OCEK.BLOKU (A)<(C) CISLO CTENEHO BLOKU 03CF 3E0F MVI A,OFH ;CY=0, ZNAK ‘F’ DO STRADACE A :0F 03D1 CDABOO CALL CLEAR ;PRIPRAVA ZOBRAZENI=F........ 03D4 79 MOV A,C ;CISLO CTENEHO BLOKU DO A :01 02 03 04 05 06 03D5 01F61F LXI B,1FF6H ;ADRESA 8.+9. SEGMENTOVKY BC:1FF6 03D8 CDC600 CALL 00C6 ;PRIPRAVA ZOBRAZENI CISLA BLOKU MGP V POLI DAT DISPLEJE 03DB 21EF1F LXI H,1FEFH ;ADRESA LEVE SEGMENTOVKY HL:1FEF 1E04 1D C2F402 EE40 15 C2F002 C9 02F2 02F4 02F5 02F8 02FA 02FB 02FE 76 33 0348 DBFA 034A 17 034B C9 IN PC ;E=0, CTENI VZORKU SIGNALU A :X0000000, CY=Y RAL ;POSUN VLEVO PRES CY BIT CY: X,A :0000000Y X=1, START BIT NEBO ‘1’ VYZNAMOVY BIT RET ;NAVRAT DO VOLAJICIHO PROGRAMU X=0, ‘0’ VYZNAMOVY BIT NEBO STOP BIT ;PRUMERNA DOBA VZORKOVANI JE DANA CASEM PROVEDENI PP INBIT (55 MKSEC) A VOLANIM TOHOTO PP SE SKOKY (25 MKSEC) ; ; ; 03DE 22FC1F SHLD 1FFCH ;UCHOVANA VE VYST.REG.ZASOB. 1FFC:EF1F 03E1 CD1601 CALL OUTKE ;ZOBRAZENI,ODMITNUTI BLOKU:F 1C00:01...02...03...04. .05...06 STLACENIM LIBOVOLNE KLAVESY 03E4 C3A003 JMP 03A0H ;POKRACUJE CTENI DAT 03E7 21ED03 LXI H,03EDH ;ADRESA ZPRAVY: “MG-SPAT” DO HL:03ED 03EA C39A03 JMP 039AH ;SKOK NA ZOBRAZENI ZPRAVY, VRACENI PASKY NA ZACATEK, NOVE CTENI PO STLACENI KLAVESY (MIMO RE+I) -------------------------------;PODPROGRAM CTENI JEDNOHO BITU Z MAGNETOFONU 0342 1E02 INBIT:MVI E,02 ;CITAC PRO VZORKOVANI SIGNALU E :02 01 START BIT: 2880/80 =36D VZORKU 0344 1D DCR E ;Z MAGNETOFONU KAZDYCH ASI E :01 00 VYZN BIT: -”=24H VZORKU 0095 0096 0097 0098 0099 009A 009B 009C 009D 009E 009F 00A0 00A1 00A2 00A3 00A4 00A5 00A6 00A7 00A0 00A9 00AA 1E TMGRN: DB 1E 1E DB 16 20 DB 20 19 DB 19 19 DB 19 12 DB 12 15 DB 15 1B DB 1B 1E DB 1E 1E TMGSP: DB 1E 16 DB 16 20 DB 20 19 DB 19 05 DB 05 10 DB 10 11 DB 11 13 DB 13 IE DB 1E FF DB FF FF DB FF FF DB FF FF DB FF ; ;M ;G ;SP ;SP ;R ;U ;N ; ; ;M ;G ;SP ;S(5) ;T ;o ;P ; 012B 012C 012D 012E 012F 0130 0131 0132 0133 0134 0135 0136 0137 0138 0139 013A 013B 013C 013D 013E 013F 08 TSFK: 09 0D 0B 0A 13 14 0E 0C 0F 05 1A 0D 0B 0A E4 TAR: DF D9 DB DD FF ;SP ;HL ;DE ;BC ;AF (PSW) ;P ;L ;E ;C ;F ;S ;H ;D ;B ;A ;DOLNI BYTE ADRESY PRO SP ;HL ;DE ;BC ;AF 34 DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB DB 08 09 0D 0B 0A 13 14 0E 0C 0F 05 1A 0D 0B 0A E4 DF D9 DB DD FF 75 01A4 01A5 01A6 01A7 01A8 01A9 01AA 01AB 84 88 91 8D 8C 89 85 81 DB DB DB D8 DB DB DB DB ‘4’ ‘8’ ‘EX’ ‘D’ ‘C’ ‘9’ ‘5’ ‘1’ 01AD 01AE 01AF 01B0 01B1 01B2 01B3 01B4 86 8A 9A 8F 8E 8B 87 83 DB DB DB DB DB DB DB DB ‘6’ ‘A’ ‘R’ ‘F’ ‘E’ ‘B’ ‘7’ ‘3’ 01B6 01B7 01B8 01B9 01BA 01BB 01BC 01BD 94 93 FF 97 92 FF FF 90 DB DB DB DB DB DB DB DB ‘S’ ‘L’ FFH ‘BR’ ‘M’ FFH FFH ‘=’ TABULKA PREVODU NA SEDMISEGMENTOVY ZOBRAZOVAC 01BE 40 79 24 30 19 12 02 78 00 10 08 03 46 21 06 0E ZNAKY 0 1 2 3 4 5 6 7 8 9 A B C D E F 01CE 07 23 2F 0C 47 63 48 71 37 7F 09 2B 0B 2C 5D 3F 01DE 42 61 7B 11 FF FF FF FF FF ZNAKY G J , Y TABULKA ZAKLADNIHO OHLASENI 01E7 “PMI -80” TABULKA CHYBOVYCH HLASENI 74 35 36 MOV B,B MOV D,B MOV H,B MOV M,B ADD B SUB B ANA B ORA B RNZ RNC RPO RP 2x 3x 4x 5x 6x 7x 8x 9x Ax Bx Cx Dx Ex Fx POP PSW POP H POP D POP B ORA C ANA C SUB C ADD C MOV M,C MOV H,C MOV D,C MOV B,C ORA D ANA D SUB D ADD D MOV M,D MOV H,D MOV D,D MOV B,D STAX D DI XTHL ORA E ANA E SUB E ADD E MOV M,E MOV H,E MOV D,E MOV B,E INX SP INX H INX D ORA H ANA H SUB H ADD H MOV M,H MOV H,H MOV D,H MOV B,H INR M INR H INR D PUSH PSW PUSH H PUSH D PUSH B ORA L ANA L SUB L ADD L MOV M,L MOV H,L MOV D,L MOV B,L DCR M DCR H DCR D ORA M ANA M SUB M ADD M HLT MOV H,M MOV D,M MOV B,M RST 6 RST 4 RST 2 RST 0 ORA A ANA A SUB A ADD A MOV M,A MOV H,A MOV D,A MOV B,A STC DAA RAL RM RPE RC RZ CMP B XRA B SBB B ADC B MOV A,B MOV L,B MOV E,B MOV C,B - - - SPHL PCHL *RET RET CMP C XRA C SBB C ADC C MOV A,C MOV L,C MOV E,C MOV C,C DAD SP DAD H DAD D CMP D XRA D SBB D ADC D MOV A,D MOV L,D MOV E,D MOV C,D LDAX D EI XCHG X CMP E XRA E SBB E ADC E MOV A,E MOV L,E MOV E,E MOV C,E DCX SP DCX H DCX D DCX B xB TABULKA HLASENI BREAK LDAX B xA CMP H XRA H SBB H ADC H MOV A,H MOV L,H MOV E,H MOV C,H INR A INR L INR E INR C xC - - - CMP L XRA L SBB L ADC L MOV A,L MOV L,L MOV E,L MOV C,L DCR A DCR L DCR E DCR C xD CMP M XRA M SBB M ADC M MOV A,M MOV L,M MOV E,M MOV C,M xE RST 7 RST 5 RST 3 RST 1 CMP A XRA A SBB A ADC A MOV A,A MOV L,A MOV E,A MOV C,A CMC CMA RAR RRC xF DW LOAD DB FFH,FFH,FFH DAD B x9 021B 8C 03 021D FF FF FF - x8 DW SAVE RLC x7 0218 4C 03 - x6 DW REG DCR B x5 0215 7E 02 INR B x4 DW BREAK INX B x3 0212 5A 02 STAX B x2 DW EXEC 1x x1 020F 29 02 NOP x0 DW MEMD 0x HEX 020C 72 00 73 72 M A C D E L M A B C D E H L M D8 A B C D E H L ADC ADD ADD ADD ADD ADD ADD ANA ANA ANA ANA ANA ANA ANA ANA ANI CMA CMC CMP CMP CMP CMP CMP CMP CMP 2F 3F BF B8 B9 BA BB BC BD A7 A0 A1 A2 A3 A4 A5 A6 E6 85 86 81 82 83 8E 87 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 INR INR INR INR INR INX INX INX INX DCR DCX DCX DCX DCX DI EI HLT IN DCR DCR DCR DCR DCR DAD DAD D E H L M B D H SP D8 M B D H SP E H A B C D H 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 19 29 3D 05 0D 1D 25 35 0B 1B 2B 3B F3 FB 76 DB 14 1C 24 2C 34 03 13 23 33 000X XXXX 11XX XXX0 37 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV LXI LXI LXI B,M C,A C,B C,C C,D C,E C,H C,L C,M A,D A,E A,H A,L A,M B,A B,B B,C B,D A,A A,B B,D16 D,D16 H,D16 LDAX B LDAX D 46 4F 48 49 4A 4B 4C 4D 4E 7A 7B 7C 7D 7E 47 40 41 42 7F 78 01 11 21 0A 1A 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 3 1 1 MOV MOV MOV MOV MOV MOV MOV MVI MVI MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV M,A M,B M,C M,D M,E M,H M,L A,D8 B,D8 H,E H,H H,L H,M L,A L,B L,C L,D L,E H,B H,C E,H E,L E,M E,C E,D 77 70 71 72 73 74 75 3E 06 63 64 65 66 6F 68 69 6A 6B 60 61 5C 5D 5E 59 5A 1 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 L M D8 D E RM RNC RNZ RP RPE RPO RRC RST RST POP POP PUSH PUSH PUSH PUSH RAL RAR RC 0 1 H PSW B D H PSW PCHL POP B ORA ORA ORI ORA ORA F8 D0 C0 F0 E8 E0 0F C7 CF E1 F1 C5 D5 E5 F5 17 1F D8 E9 C1 B5 B6 F6 B2 B3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 XCHG XRA XRA XRA XRA XRA XRA XRA XRA STAX STAX STC SUB SUB SUB SUB SUB SUB SIM SPHL SBB SBB SBI SBB SBB A B C D E H L M A B C D E H B D L M D8 D E EB AF A8 A9 AA AB AC AD AE 02 12 37 97 90 91 92 93 94 30 F9 9D 9E DE 9A 9B 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 00H 01H - 0FH 0 A 9 - F FFH FFH 03H 0EH FFH FFH atd. FFH - - E 00010 1E27 1E28 1E2C 1E30 1E34 C9 24 50 9E FF 01 33 80 E0 13 3C 6A C0 RET FF TAB: DB 1C 53 B0 ; ; ; ; A’, H’, C”, C D’, E’, F’, G’ G, A, H, C’ C, D, E, F KONEC 26 +5V 25 28 -5V 27 30 +12V 29 71 A B C D E F = = = = = = 0A, 0B, 0C, 0D, 0E, 0F, G H I J K L = = = = = = 20, 1A, 01, 21, 85, 14, M N O P Q R = = = = = = 16, 1B, 11, 13, 43, 12, S T U V X Y = = = = = = 05, 10, 15, 8E, 9B, 23, Z = “ , ? = = = = = = 02, 18, 1F, 1E, 22, 1D EX:1E00= - - - 39 01 - 10 - 1D00H. - 01H 02H - 03H - 00H - 1C00H n 69 - n - - Uv yst = - Uvst 2n -1 KONEC Uanalog = Uvst n 2 -1 n i=1 K i 2i 1 0 1 vst 41 - KONEC vst U EX:1CB0= - 1000 1100 1010 1011 FFH vst 1FFAH RE I - 00H - 42 67 1C6D 05 DCR B - - 1C82 0D DCR C - 1C8D 2B DCX H - - 1C00H - 66 43 IR4max = UBET1 R2 R 4 (R2 + R3 ) 1C15 1C17 1C19 1C1A 1C1B 1C1C 25mA D3 FB DB F9 T10: 0F 0F 23 D2 17 1C 1C22 22 F8 1F 1C25 CD BB 00 1C00H do 1CFFH EX 1E00 1C2E 1C30 1C31 1C34 1C35 OUT IN RRC RRC INX JNC FBH F9H ; A <- PB ; CY <- D1 H T10 SHLD 1FF8H CALL OUTAD 3E 00 WAIT: MVI 3D W5: DCR C2 30 1C JNZ C9 RET 7D UPRAVA: MOV A,0 A W5 A,L 1C38 6F 1C39 7C MOV MOV L,A A,H 1C3C 67 1C3D C9 MOV RET H,A I 0008H R B 0 EX:1C60= na adrese 1E70H na 02H 1C00H 1CFFH 0100H - 44 65 1E59 3E 40 MVI A,40H 1E5F 1E62 1E65 1E66 1E69 1E6C 1E6D 1E6E LXI LXI DAD JNC JMP INX INX MOV H,FFE0H D,0001H D ; HL <- HL+DE CEK BLIK B H A,B 1E71 C2 0C 1E 1E74 3E 00 1E76 D3 F6 JNZ MVI OUT PROG1 A,0 PC 1E79 3D TIME: 1E7A C2 79 1E 1E7D C9 DCR JNZ RET A TIME 21 11 19 D2 C3 03 23 78 E0 FF 01 00 CEK: 65 1E 5B 1E POKR: EPAD ZAR 0000H 01H 0100H 02H 0200H 03H 0300H 04H 1C02 CD AB 00 CALL CLEAR 1C07 D3 FB OUT 64 CWR uC (t) = U (1 e t RC ) 1 t1 = t2 1 2 = 2 R1C1 R2C 2 29. ; IO10 45 1E05 D3 F7 1E0C 1E0D 1E0F 1E10 1E12 79 D3 F5 78 E6 20 D3 F6 1E16 7E EX 1C60 = 0 CWR PROG1: MOV OUT MOV ORI OUT A,C PB A,B 20H PC ; A <- AL PROG2: MOV A,M ; A <- (HL) 1E19 3E 04 MVI A,04H 1E1E 1E1F 1E21 1E23 78 E6 A0 D3 F6 3E 18 MOV ORI OUT MVI A,B A0H PC A,18H 1E28 1E29 1E2B 1E2D 78 E6 20 D3 F6 3E 04 MOV ORI OUT MVI A,B 20H PC A,04H 1E32 78 1E33 E6 60 1E35 3E 04 MOV ORI MVI A,B 60H A,04H 1E3C D3 F7 OUT CWR 1E40 57 MOV D,A 1E43 1E45 1E46 1E48 OUT MOV ORI OUT CWR A,B 20H PC JNZ PROG2 D3 F7 78 E6 20 D3 F6 1E50 C2 16 1E 46 OUT ; A <- AH ; A <- A v 0010 0000 ; PC <- AH, D=1 ; A <- AH ; P <- 1 (+24V) ; P <- 0 ; [WE] = 0V ; [WE] = 12V 63 1D00 01 30 08 01 30 06 01 30 04 01 20 05 01 20 07 01 1D10 20 09 10 30 08 10 30 06 10 30 04 00 1F0D DB F5 1F0F 1F IN RAR 0F5H ; B0 <- KOMP ; CY <- KOMP RE 1F30 1F31 1F32 1F33 1F36 62 7A W5: B3 1B C2 30 1F C9 MOV ORA DCX JNZ RET A,D E D W5 47 1C00 3E 88 MVI A,88 1C04 1C07 1C0A 1C0B LXI LXI MOV MVI H,1D00 B,1FFF D,M ; D <- (HL) = B1 A,00 1C11 23 1C12 5E 1C13 23 INX MOV INX H E,M H 1C15 D3 01 OUT 01 1C1B 1C1D 1C1F 1C21 1C24 1C27 1C28 1C29 1C2A 1C2B 1C2C 1C2D 1C2E 1C2F 1C30 1C31 1C32 1C33 1C36 MVI OUT MVI CALL JMP RST RST RST RST RST RST RST RST RST PUSH MOV ORA JNZ DCR A,FF 01 A,03 1C30 1C14 7 7 7 7 7 7 7 7 7 PSW A,B C 1C43 E 1C3B F1 1C3C C1 POP POP PSW B 1C43 0B 1C44 F1 1C45 3D DCX POP DCR B PSW A 1C4A FF RST 7 21 00 1D 01 FF 1F 56 3E 00 3E D3 3E CD C3 FF FF FF FF FF FF FF FF FF F5 78 B1 C2 1D FF 01 03 30 1C 14 1C 43 1C ; E <- (HL) = B2 ; B3 ; B2 <- D2-1 ; A <- B3 ; A <- B3 61 1E9B CD D2 1E 1E9E D2 AB 1E 1EA1 23 CALL COMP JNC KONEC INX H ; HL == DE ? ; HL=HL+1 1EAB CD B1 1E KONEC: CALL CROUT 1EB3 CD 00 1F CALL LPRT 1EB8 C3 00 1F JMP LPRT 1EBD C3 00 1F JMP LPRT 1EC1 1EC2 1EC3 1EC4 RLC RLC RLC RLC 07 07 07 07 1ECB F1 1ECC CD D8 1E POP PSW CALL HEXAS 1ED2 7C 1ED3 BA COMP: MOV CMP A,H D 1ED5 1ED6 1ED7 1ED8 7D BB C9 E6 0F MOV CMP RET HEXAS: ANI A,L E 1EDF 1EE1 1EE3 1EE4 06 07 C6 30 4F C9 HX5: ADI ADI MOV RET 0FH ‘A’-’9’-1 ‘0’ C,A 49 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 HEX 0x 1x 2x 3x 4x 5x 6x 7x 0 0 0 0 x0 NUL DLE SP 0 @ P ` p 0 0 0 1 x1 SOH DC1 ! 1 A Q 0 0 1 0 x2 STX DC2 “ 2 B R 0 0 1 1 x3 ETX DC3 3 C S 0 1 0 0 x4 EOT DC4 $ 4 D T 0 1 0 1 x5 ENQ NAK % 5 E U 0 1 1 0 x6 ACK SYN & 6 F V 0 1 1 1 x7 BEL ETB ‘ 7 G v 1 0 0 0 x3 BS CAN ( 8 H X x 1 0 0 1 x9 HT EM ) 9 I Y y 1 0 1 0 xA LF SUB * : J Z z 1 0 1 1 xB VT ESC + ; K [ { 1 1 0 0 xC FF FS , < L \ 1 1 0 1 xD CR GS - = M ] 1 1 1 0 xE SO RS . > N 1 1 1 1 xF SI US / ? 0 1E8C 7C MOV A,H 1E90 7D MOV A,L q s e u v G l w | } - _ o DEL 59 1F03 F5 1F04 DB F6 1F06 E6 01 LP: PUSH PSW IN F6H ANI 01H 1F0B F1 1F0C C9 POP RET PSW 1F13 D3 F7 1F15 C9 OUT RET F7H ; A <- PC 1FD9 1FDA 1FDB 1FDC 1FDD 1FDE 1FDF 1FE0 1FE1 1FE2 1FE3 1FE4 1FE5 1FE6 1FE7 1FE8 1FE9 1FEA 1FEB 1FEC 1FED 1FEE 1FEF 1FF0 1FF1 1FF2 1FF3 1FF4 1FF5 1FF6 1FF7 lFF8 1FF9 1FFA 1FFB 1FFC 1FFD 1FFE 1FFF D 51 1C00 3A 00 1F 4F 3A 02 1F 81 32 04 1F C3 00 00 JZ PRER 1DA0 CA CB 1D 1DA3 FE 00 1DA5 CA 83 1D JZ CPI JZ PRER 00H CHR10 1DAD 26 00 MVI H,0 10000 10 5 T 1DB5 E6 01 ANI 01H 10001 11 + Z 1DB8 6F MOV L,A 10010 12 ) L 10011 13 2 W 10100 14 1DBA 7E 1DBB E1 MOV POP A,M H 10101 15 6 Y 1DBE B9 CMP C I 10110 16 0 P U 10111 17 1 Q 11000 18 9 0 1DC2 29 1DC3 29 1DC4 29 DAD DAD DAD H H H D 11001 19 ? B 4 R 11010 1A BEL J 11011 1B N 11100 1C . M 1DCE C3 83 1D JMP CHR10 F 11101 1D / X : C 11110 1E = V ( K 11111 1F 1DD5 C9 RET 00000 00 00001 01 3 00010 02 LF 00011 03 - 00100 04 00101 05 ‘ S 00110 06 8 00111 07 7 01000 08 01001 09 01010 0A 01011 0D 01100 0C , 01101 0D 01110 0E 01111 0F 52 1D9B CA CB 1D E A SP CR H ; A <- 0000 000Z ; A <- HL G 1... A... 57 1E07 D5 PUSH D 1E0D CD AC 1E CALL ZMENA 1E13 0E 09 1E15 CD 24 1F MVI C,”D” CALL CO 1E1B 1E1C 1E1D 1E20 1E21 1E24 1E25 1E26 1E27 1E28 1E29 1E2A 1E2B 1E2C POP POP CALL INX JNC PUSH PUSH MOV PUSH RLC RLC RLC RLC ANI D1 E1 CD 4B 1E 23 D2 00 00 E5 D5 7E F5 07 07 07 07 E6 0F 1E2F CD 80 1E 1E32 F1 1E33 E6 0F 1E36 1E39 1E3C 1E3E 1E41 1E43 1E46 1E48 1E4B 1E4C 1E4D 1E4E 1E4F 1E50 CD C3 0E CD 0E C3 0E C3 7C BA C0 7D BB C9 80 18 08 24 02 24 04 24 1E53 D3 FB 1E55 C9 56 1E 1E D H COMP ; HL<DE ? H MONITOR H D A,M ; A <- (HL) PSW 0FH CALL CHROUT POP PSW ANI 0FH CALL JMP CRLF: MVI 1F CALL MVI 1F JMP SPACE: MVI 1F JMP COMP: MOV CMP RNZ MOV CMP RET CHROUT LOOP C,”CR” CO C,”LF” CO C,”SP” CO A,H D A,L E OUT 0FBH RET * 1F00 01 00 05 CI: 1F03 DB F9 CI5: 1F05 07 LXI IN RLC B,0500H F9H 1F0C DB F9 IN F9H 1F17 17 1F18 79 RAL MOV A,C 1F1A 4F MOV C,A 1F1F 0F 1F20 0F 1F21 0F RRC RRC RRC 1F26 79 1F27 07 MOV RLC A,C 1F2C 4F MOV C,A ; B<-5, C<-0 ; A7<-PB7 53 1F34 79 MOV 1F3A 00 NOP 1F3E 1F3F 1F40 1F41 1F44 DCX MOV ORA JNZ RET D A,D E CEK 1F48 C3 3E 1F JMP CEK 1E86 1E87 1E8A 1E8B CMP C JZ SHODA MOV A,B CPI 40H 1B CEK: 7A B3 C2 3E 1F C9 B9 CA 93 1E 78 FE 40 1E8E 04 1E8F 23 INR INX 1E94 1F 1E95 F5 RAR PUSH PSW 1E99 1E9A 1E9B 1E9C 1F 07 07 07 RAR RLC RLC RLC 1E9E 3A B5 1E 1EA1 07 1EA2 07 LDA RLC RLC PAMZM 1EA8 4F MOV C,A 54 1EAC 79 1EAD 0F A,C ; (HL) = C ? ; B = 64 ? B H ; CY <- 0/1.../, 1 (A...) 1EBA 1EBC 1EBE 1EC0 1EC2 1EC4 1EC6 1EC8 1ECA 1ECC 1ECE 1ED0 1ED2 1ED4 1ED6 1ED8 1EDA 1EDC 1EDE 1EE0 1EE2 1EE4 1EE6 1EE8 1EEA 1EEC 1EEE 1EF0 1EF2 1EF4 FF FF FF FF 0* 07 FF FF 04 FF FF FF FF FF 05 FF FF 02 FF 06 00 01 09 FF FF FF FF FF FF FF 1E06 E5 ZMENA: MOV RRC A,C FF 0A FF FF FF FF FF 0D FF FF FF 0F 0C FF FF FF FF FF FF FF FF FF FF 0B FF FF FF FF FF FF PUSH H 55
Podobné dokumenty
Untitled - NOSTALCOMP
2.1 Mikroprocesor MHB8080A a jeho podpůrné obvody Již v úvodu této kapitoly jsme uvedli, že tzv. jádrem mikropočítače PMI-80 je mikroprocesor MHB8080A a jeho podpůrné obvody MH8224 a MH8228. Podro...
Více