=============================================== druha EPROM ===== pozmeneny obsah EPROM tiskarny DCD PRT-42G ; 28-JUN-91 ; 07:30 ================================================================= Castecne okomentovany disassemblovany vypis 4KB EPROM Tento vypis byl vygenerovan na pocitaci DEC PDP11/23+ s bezicim operacnim systemem DEC RT-11 programem DIS. Program DIS se ridil ridicim souborem DCD42B.RID (coz byl soubor s definicemi datovych oblasti pro dissassembler) a data cerpal ze souboru DCD42B.EXE (coz byl binarni soubor s obsahem druhe 4KB EPROM z tiskarny. Soubor DCD42B.RID je k dispozici. Byl sestaven na zaklade analyzy prvniho vypisu. Program DIS byl napsan v jazyce ESI Pascal teamem LZR Soft, posledni verze je z 25-Oct-1991. Navod k inplementaci jazyka ESI Pascal pro systemy RT a zdrojovy text DIS.PAS jsou k dispozici. (C) 1987-2001, LZR Soft, Kladno, Czech Republic 6000 : DB 01 ;init nastaveni 6001 : DW 0400 ;init pro pravy doraz ================================================================= 6003 : F5 PUSH AF ;inicializace PIO 6004 : C5 PUSH BC 6005 : D5 PUSH DE 6006 : E5 PUSH HL 6007 : DDE5 PUSH IX 6009 : 2A0160 LD HL,(6001) 600C : 221430 LD (3014),HL 600F : FDCB19AE RES 5,(IY+19) 6013 : FDCB1996 RES 2,(IY+19) 6017 : FDCB1A96 RES 2,(IY+1A) 601B : FDCB1A9E RES 3,(IY+1A) 601F : 3A0060 LD A,(6000) 6022 : CB7F BIT 7,A 6024 : 2804 JR Z,602A 6026 : FDCB19EE SET 5,(IY+19) 602A : CB77 BIT 6,A 602C : 2804 JR Z,6032 602E : FDCB19D6 SET 2,(IY+19) 6032 : CB5F BIT 3,A 6034 : 2804 JR Z,603A 6036 : FDCB1ADE SET 3,(IY+1A) 603A : CB57 BIT 2,A 603C : 2804 JR Z,6042 603E : FDCB1AD6 SET 2,(IY+1A) 6042 : 210064 LD HL,6400 6045 : E603 AND 03 6047 : B4 OR H 6048 : 67 LD H,A 6049 : 7E LD A,(HL) 604A : A7 AND A 604B : 2008 JR NZ,6055 604D : 110036 LD DE,3600 6050 : 010001 LD BC,0100 6053 : EDB0 LDIR 6055 : DD210050 LD IX,5000 6059 : DD3603B2 LD (IX+03),0B2 605D : DD360309 LD (IX+03),09 6061 : DD36030D LD (IX+03),0D 6065 : DD36030F LD (IX+03),0F 6069 : 217C60 LD HL,607C 606C : 220230 LD (3002),HL 606F : 21B460 LD HL,60B4 6072 : 220430 LD (3004),HL 6075 : DDE1 POP IX 6077 : E1 POP HL 6078 : D1 POP DE 6079 : C1 POP BC 607A : F1 POP AF 607B : C9 RET 607C : F5 PUSH AF ;obsluha PIO 607D : DDE5 PUSH IX 607F : DD210050 LD IX,5000 6083 : 3E01 LD A,01 6085 : FDCB167E BIT 7,(IY+16) 6089 : 2002 JR NZ,608D 608B : 3E00 LD A,00 608D : DD7703 LD (IX+03),A 6090 : 3E03 LD A,03 6092 : FDCB1646 BIT 0,(IY+16) 6096 : 2002 JR NZ,609A 6098 : 3E02 LD A,02 609A : DD7703 LD (IX+03),A 609D : 3E04 LD A,04 609F : FDCB167E BIT 7,(IY+16) 60A3 : 2008 JR NZ,60AD 60A5 : FDCB1646 BIT 0,(IY+16) 60A9 : 2802 JR Z,60AD 60AB : 3E05 LD A,05 60AD : DD7703 LD (IX+03),A 60B0 : DDE1 POP IX 60B2 : F1 POP AF 60B3 : C9 RET 60B4 : DDE5 PUSH IX ;cteni dat z brany A PIO 60B6 : DD210050 LD IX,5000 60BA : DDCB025E BIT 3,(IX+02) 60BE : 2871 JR Z,6131 60C0 : DDCB016E BIT 5,(IX+01) 60C4 : 206B JR NZ,6131 60C6 : FDCB1646 BIT 0,(IY+16) 60CA : 2006 JR NZ,60D2 60CC : DDCB0176 BIT 6,(IX+01) 60D0 : 285F JR Z,6131 60D2 : DD36030E LD (IX+03),0E 60D6 : DD7E00 LD A,(IX+00) 60D9 : DD36030C LD (IX+03),0C 60DD : DD36030D LD (IX+03),0D 60E1 : DD36030F LD (IX+03),0F 60E5 : DDCB0166 BIT 4,(IX+01) 60E9 : 2802 JR Z,60ED 60EB : EEFF XOR 0FF 60ED : FD7727 LD (IY+27),A 60F0 : FDCB1946 BIT 0,(IY+19) 60F4 : 280D JR Z,6103 60F6 : FDCB1646 BIT 0,(IY+16) 60FA : 2835 JR Z,6131 60FC : FD7E27 LD A,(IY+27) 60FF : DDE1 POP IX 6101 : 37 SCF 6102 : C9 RET 6103 : FDCB19A6 RES 4,(IY+19) 6107 : DDCB017E BIT 7,(IX+01) 610B : 2004 JR NZ,6111 610D : FDCB19E6 SET 4,(IY+19) 6111 : DDCB0176 BIT 6,(IX+01) 6115 : 28DF JR Z,60F6 6117 : FE11 CP 11 6119 : 200A JR NZ,6125 611B : FDCB16C6 SET 0,(IY+16) 611F : FDCB178E RES 1,(IY+17) 6123 : 180C JR 6131 6125 : FE13 CP 13 6127 : 20CD JR NZ,60F6 6129 : FDCB1686 RES 0,(IY+16) 612D : FDCB17CE SET 1,(IY+17) 6131 : A7 AND A 6132 : DDE1 POP IX 6134 : C9 RET ================================================================= ;tvary DLL - mezinarodni abeceda 6135 : DB 20,50,05,52,04,38,40,00,00,00,0B0 6140 : DB 20,52,04,51,04,3A,40,00,00,00,0B0 614B : DB 38,44,00,0C4,00,44,08,00,00,04,0B0 6156 : DB 38,44,11,46,10,44,18,00,00,00,0B0 6161 : DB 38,45,10,44,10,45,18,00,00,00,0B0 616C : DB 38,46,10,45,10,46,18,00,00,00,0B0 6177 : DB 00,49,02,78,00,40,00,00,00,00,0A2 6182 : DB 00,45,00,7C,00,41,00,00,00,00,0A2 618D : DB 00,4A,00,79,00,42,00,00,00,00,0A2 6198 : DB 0A,71,00,0B,00,0A,71,00,00,00,0B0 61A3 : DB 38,44,01,46,00,44,38,00,00,00,0B0 61AE : DB 3C,41,02,44,00,3C,40,00,00,00,0B0 61B9 : DB 38,42,00,41,00,3A,40,00,00,00,0B0 61C4 : DB 7E,01,08,13,20,02,7D,00,00,00,0B0 61CF : DB 10,00,88,50,20,40,9C,00,04,28,0C0 61DA : DB 30,48,00,40,06,49,30,01,02,00,0C0 61E5 : DB 40,20,50,08,44,08,50,20,40,00,0C0 61F0 : DB 30,48,00,40,20,40,00,48,30,00,0C0 61FB : DB 0FF,0FF,0FF,0FF,0FF ================================================================= 6200 : CD9C00 CALL 009C ;dalsi kod po ESC 6203 : CBBF RES 7,A 6205 : FE1B CP 1B ;ESC po ESC ignoruj 6207 : 28F7 JR Z,6200 6209 : FE30 CP 30 ;je ESC 0? 620B : 2004 JR NZ,6211 620D : 3C INC A ;ESC 0 je stejne jako ESC 1 620E : C3E162 JP 62E1 ;na dalsi ESC sekvence 6211 : FE50 CP 50 ;je ESC P? 6213 : 2006 JR NZ,621B 6215 : FDCB1ABE RES 7,(IY+1A) 6219 : 1818 JR 6233 621B : FE4D CP 4D ;je ESC M? 621D : 2006 JR NZ,6225 621F : FDCB1AFE SET 7,(IY+1A) 6223 : 180E JR 6233 6225 : FE41 CP 41 ;je ESC A? 6227 : 2028 JR NZ,6251 6229 : CD9C00 CALL 009C 622C : CB3F SRL A 622E : CB3F SRL A 6230 : FD770B LD (IY+0B),A 6233 : C3A805 JP 05A8 ;do hlavni smycky 6236 : CD9C00 CALL 009C 6239 : 2EFF LD L,0FF ;A=A/12T 623B : C606 ADD A,06 623D : D60C SUB 0C 623F : 2C INC L 6240 : 30FB JR NC,623D 6242 : 7D LD A,L 6243 : C9 RET 6244 : 060C LD B,0C ;nastaveni PICA/ELITE 6246 : FDCB1A7E BIT 7,(IY+1A) 624A : 2802 JR Z,624E 624C : 060A LD B,0A 624E : C3D962 JP 62D9 6251 : FE2E CP 2E ;je ESC .? 6253 : 20B9 JR NZ,620E 6255 : 0600 LD B,00 ;256 byte 6257 : 210037 LD HL,3700 ;zapis od adresy 625A : E5 PUSH HL 625B : CD9C00 CALL 009C 625E : 77 LD (HL),A 625F : 23 INC HL 6260 : 10F9 DJNZ 625B 6262 : C9 RET 6263 : 6F LD L,A ;vyber sire znaku 6264 : 2600 LD H,00 6266 : FD7E1A LD A,(IY+1A) 6269 : 060C LD B,0C 626B : CB7F BIT 7,A 626D : 2802 JR Z,6271 626F : 060A LD B,0A 6271 : E606 AND 06 6273 : 2802 JR Z,6277 6275 : CB20 SLA B 6277 : 78 LD A,B 6278 : C37E00 JP 007E 627B : CD6362 CALL 6263 ;levy doraz 627E : EB EX DE,HL 627F : 2A1430 LD HL,(3014) 6282 : 011800 LD BC,0018 6285 : B7 OR A 6286 : ED42 SBC HL,BC 6288 : E5 PUSH HL 6289 : ED52 SBC HL,DE 628B : E1 POP HL 628C : 3801 JR C,628F 628E : EB EX DE,HL 628F : C33B08 JP 083B 6292 : CD6362 CALL 6263 ;pravy doraz 6295 : EB EX DE,HL 6296 : 2A1230 LD HL,(3012) 6299 : 011800 LD BC,0018 629C : 09 ADD HL,BC 629D : E5 PUSH HL 629E : ED52 SBC HL,DE 62A0 : E1 POP HL 62A1 : 3801 JR C,62A4 62A3 : EB EX DE,HL 62A4 : 210004 LD HL,0400 62A7 : E5 PUSH HL 62A8 : B7 OR A 62A9 : ED52 SBC HL,DE 62AB : E1 POP HL 62AC : 3801 JR C,62AF 62AE : EB EX DE,HL 62AF : C32508 JP 0825 62B2 : 211030 LD HL,3010 ;podtrzeni 62B5 : CB46 BIT 0,(HL) 62B7 : 2E40 LD L,40 62B9 : C8 RET Z 62BA : 2E42 LD L,42 62BC : C9 RET 62BD : FEDF CP 0DF ;DLL 62BF : D24B05 JP NC,054B 62C2 : 210036 LD HL,3600 62C5 : 34 INC (HL) 62C6 : 35 DEC (HL) 62C7 : C24B05 JP NZ,054B 62CA : E1 POP HL 62CB : 210B00 LD HL,000B 62CE : D6C8 SUB 0C8 62D0 : CD7E00 CALL 007E 62D3 : 110337 LD DE,3703 ;download 62D6 : C39C04 JP 049C 62D9 : FD7E0D LD A,(IY+0D) 62DC : 80 ADD A,B 62DD : 47 LD B,A 62DE : 2E00 LD L,00 62E0 : C9 RET 62E1 : FE48 CP 48 ;je ESC H? 62E3 : 2006 JR NZ,62EB 62E5 : FDCB1AA6 RES 4,(IY+1A) 62E9 : 1808 JR 62F3 62EB : FE47 CP 47 ;je ESC G? 62ED : 2006 JR NZ,62F5 62EF : FDCB1AE6 SET 4,(IY+1A) 62F3 : 1815 JR 630A 62F5 : FE20 CP 20 ;je ESC SP? 62F7 : 2017 JR NZ,6310 62F9 : CD9C00 CALL 009C 62FC : 47 LD B,A 62FD : E6FE AND 0FE ;zaporna cisla 62FF : 2806 JR Z,6307 6301 : EEFE XOR 0FE 6303 : 2802 JR Z,6307 6305 : 0600 LD B,00 6307 : FD700D LD (IY+0D),B 630A : C3A805 JP 05A8 ;zpet do hlavni smycky 630D : C3B206 JP 06B2 ;pokracuj v hlavni smycce 6310 : FE21 CP 21 ;je ESC vykricnik? 6312 : 2038 JR NZ,634C 6314 : FD7E1A LD A,(IY+1A) 6317 : E620 AND 20 6319 : 47 LD B,A 631A : CD9C00 CALL 009C 631D : 0F RRCA 631E : 3002 JR NC,6322 6320 : CBF8 SET 7,B 6322 : 0F RRCA 6323 : 3002 JR NC,6327 6325 : CBF0 SET 6,B 6327 : 0F RRCA 6328 : 0F RRCA 6329 : 3002 JR NC,632D 632B : CBD8 SET 3,B 632D : 0F RRCA 632E : 3002 JR NC,6332 6330 : CBE0 SET 4,B 6332 : 0F RRCA 6333 : 3002 JR NC,6337 6335 : CBD0 SET 2,B 6337 : 21C008 LD HL,08C0 633A : 0F RRCA 633B : 3002 JR NC,633F 633D : 2668 LD H,68 633F : 220E30 LD (300E),HL 6342 : 0F RRCA 6343 : 3002 JR NC,6347 6345 : CBC0 SET 0,B 6347 : FD701A LD (IY+1A),B 634A : 18BE JR 630A 634C : FE3C CP 3C ;je ESC ',11,0BF,13,14,0AE,'-',0BE,18,0BE,0BC,1B,0F6,0BD,0BF,0BE 6420 : DB ' !"#$%&',27,'()*+,-./' 6430 : DB '0123456789:;<=>?' 6440 : DB '@ABCDEFGHIJKLMNO' 6450 : DB 'PQRSTUVWXYZ[\]^_' 6460 : DB '`abcdefghijklmno' 6470 : DB 'pqrstuvwxyz{|}~',7F 6480 : DB 83,0A3,95,94,92,84,8C,93,96,86,88,87,98,98,82,81 6490 : DB 85,0A5,0A5,9C,9B,9A,0A2,8D,0A4,9B,8F,9F,88,90,8A,0A0 64A0 : DB 91,97,9A,0A1,99,89,8E,9C,9F,9D,9E,8B,0B0,'!<>' 64B0 : DB 0C5,0C4,0C0,0FC,0FD,0FD,0FD,0F9,0F9,0FD,0FC,0F9,0F5,0F5,0F5,0F9 64C0 : DB 0F6,0F7,0FB,0FE,0F3,0FF,0FE,0FE,0F6,0FA,0F7,0FB,0FE,0F3,0FF,0F7 64D0 : DB 0F7,0FB,0FB,0F6,0F6,0FA,0FA,0FF,0FF,0F5,0FA,0C0,0C0,0C0,0C0,0C0 64E0 : DB 0A7,0A8,0FA,0A9,0AB,'r',0AC,'tfT',0AA,'d',0AE,0B1,'En' 64F0 : DB 0B3,0B5,'><',0FC,0FC,0B4,0BB,0B9,'..',0B2,'n',0B6,0C4,' ' 6500 : DB 00,01,02,03,04,05,06,07,08,' ',0A,0B,0C,0D,0E,0F 6510 : DB 10,11,12,13,14,15,16,17,18,19,1A,1B,0BC,0BD,0BF,0BE 6520 : DB ' !"#$%&',27,'()*+,-./' 6530 : DB '0123456789:;<=>?' 6540 : DB '@ABCDEFGHIJKLMNO' 6550 : DB 'PQRSTUVWXYZ[\]^_' 6560 : DB '`abcdefghijklmno' 6570 : DB 'pqrstuvwxyz{|}~',7F 6580 : DB 0C0,0C6,0C2,0C1,'~',0F7,0FB,0FC,0F3,0FD,0FE,0FF,0FA,0F6,0F9,0F5 6590 : DB 0F3,0F3,0F3,0F3,0FC,0FC,0FC,0FC,0F2,0F4,0F8,0F1,0BC,0BD,0BF,0BE 65A0 : DB 0AB,81,82,83,84,85,86,86,0B7,87,0B8,0B9,88,0B3,89,9A 65B0 : DB 9B,9C,8A,9F,8C,8D,8E,8F,8B,90,0A5,'<',0B9,'>',0B4,0B5 65C0 : DB ' ',91,92,93,94,95,96,96,'~',97,0BA,'^',98,0B2,99,9A 65D0 : DB 9B,9C,9D,9F,0A0,0A1,0A2,0A3,9E,0A4,0A5,0A7,0A8,0A6,0A9,0B1 65E0 : DB 80,0C5,0C3,0C4,0AA,0AD,0AE,0B6,0F3,0FD,0FE,0FF,0FA,0F6,0F9,0F5 65F0 : DB 0F3,0F3,0F3,0F3,0FC,0FC,0FC,0FC,'__',0C7,0BB,0FA,0F6,0F9,0F5 6600 : DB 00,0C6,0C5,0C3,0C4,0C1,0C2,'.',0C7,' ',0A,0B1,0C,0D,0E,'*' 6610 : DB '>',11,0BF,13,14,0AE,'-',0BE,18,0BE,0BC,1B,0F6,0BD,0BF,0BE 6620 : DB ' !"#$%&',27,'()*+,-./' 6630 : DB '0123456789:;<=>?' 6640 : DB '@ABCDEFGHIJKLMNO' 6650 : DB 'PQRSTUVWXYZ[\]^_' 6660 : DB '`abcdefghijklmno' 6670 : DB 'pqrstuvwxyz{|}~',7F 6680 : DB 83,0A3,95,91,92,91,91,93,96,96,95,'i',97,97,82,81 6690 : DB 85,'eE',9C,9B,9A,0A2,0A1,0A4,9B,8F,'c',0A6,90,0AD,'f' 66A0 : DB 91,97,9A,0A1,99,89,'ao?',0FA,0F9,0AF,0B0,'!<>' 66B0 : DB 0C5,0C4,0C0,0FC,0FD,0FD,0FD,0F9,0F9,0FD,0FC,0F9,0F5,0F5,0F5,0F9 66C0 : DB 0F6,0F7,0FB,0FE,0F3,0FF,0FE,0FE,0F6,0FA,0F7,0FB,0FE,0F3,0FF,0F7 66D0 : DB 0F7,0FB,0FB,0F6,0F6,0FA,0FA,0FF,0FF,0F5,0FA,0C0,0C0,0C0,0C0,0C0 66E0 : DB 0A7,0A8,0FA,0A9,0AB,'r',0AC,'tfT',0AA,'d',0AE,0B1,'En' 66F0 : DB 0B3,0B5,'><',0FC,0FC,0B4,0BB,0B9,'..',0B2,'n',0B6,0C4,' ' 6700 : DB 00,0C6,0C5,0C3,0C4,0C1,0C2,'.',0C7,' ',0A,0B1,0C,0D,0E,'*' 6710 : DB '>',11,0BF,13,14,0AE,'-',0BE,18,0BE,0BC,1B,0F6,0BD,0BF,0BE 6720 : DB ' !"#$%&',27,'()*+,-./' 6730 : DB '0123456789:;<=>?' 6740 : DB '@ABCDEFGHIJKLMNO' 6750 : DB 'PQRSTUVWXYZ[\]^_' 6760 : DB '`abcdefghijklmno' 6770 : DB 'pqrstuvwxyz{|}~',7F 6780 : DB 83,0A3,95,91,92,0A2,93,93,98,96,9B,9B,97,0A5,82,83 6790 : DB 85,88,98,9C,9B,88,98,9F,9F,9B,8F,8C,0A0,'Tx',93 67A0 : DB 91,97,9A,0A1,81,91,0A5,0A5,85,95,0C7,0A5,83,9F,'<>' 67B0 : DB 0C5,0C4,0C0,0FC,0FD,81,81,86,9F,0FD,0FC,0F9,0F5,0A5,0A5,0F9 67C0 : DB 0F6,0F7,0FB,0FE,0F3,0FF,81,91,0F6,0FA,0F7,0FB,0FE,0F3,0FF,0B1 67D0 : DB 94,84,84,86,94,89,87,97,96,0F5,0FA,0C0,0C0,8C,8E,0C0 67E0 : DB 9A,0A8,9B,89,99,99,9F,9F,8A,8D,9E,8F,0A4,90,0A0,0B8 67F0 : DB '-",',0B7,0B7,0AE,0B4,0B8,0B9,0BA,0B9,0A3,8A,9D,0C5,' ' ================================================================= 6800 : FE2F CP 2F ;je ESC /? 6802 : 200E JR NZ,6812 ;ne 6804 : CD9C00 CALL 009C ;nacti dalsi znak 6807 : FDCB1B96 RES 2,(IY+1B) ;shod priznak sikmeni 680B : 0F RRCA ;opravdu se nema sikmit 680C : 3004 JR NC,6812 ;ano 680E : FDCB1BD6 SET 2,(IY+1B) ;ne, takze priznak nahod 6812 : C30D63 JP 630D ;zpatky do hlavni smycky 6815 : FDCB1B56 BIT 2,(IY+1B) ;nema se nahodou sikmit? 6819 : 2807 JR Z,6822 ;ne 681B : 0608 LD B,08 ;ano, tak 8 na vysku 681D : CD2768 CALL 6827 ;zarotuj doprava 6820 : 10FB DJNZ 681D 6822 : FDCB1BCE SET 1,(IY+1B) ;nastav priznak, ze se tiskne 6826 : C9 RET ;a pokracuj 6827 : C5 PUSH BC ;sikmeni tiskoveho bafru 6828 : FD361E01 LD (IY+1E),01 682C : C5 PUSH BC 682D : 1E00 LD E,00 682F : 010004 LD BC,0400 6832 : 218031 LD HL,3180 6835 : 7E LD A,(HL) 6836 : FDA61E AND (IY+1E) 6839 : 57 LD D,A 683A : FD7E1E LD A,(IY+1E) 683D : 2F CPL 683E : A6 AND (HL) 683F : B3 OR E 6840 : 5A LD E,D 6841 : 77 LD (HL),A 6842 : 23 INC HL 6843 : 0B DEC BC 6844 : 78 LD A,B 6845 : B1 OR C 6846 : 20ED JR NZ,6835 6848 : FDCB1E06 RLC (IY+1E) 684C : C1 POP BC 684D : 10DD DJNZ 682C 684F : C1 POP BC 6850 : C9 RET ================================================================= 6851 : DB 0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF 685B : DB 0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF 6865 : DB 0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF 686F : DB 0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF 6879 : DB 0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF 6883 : DB 0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF 688D : DB 0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF 6897 : DB 0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF 68A1 : DB 0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF 68AB : DB 0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF 68B5 : DB 0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF 68BF : DB 0FF ================================================================= ;tvary italic 68C0 : DB 00,00,00,00,00,00,00,00,00,00,0C0 68CB : DB 00,00,00,40,10,0C,03,00,00,00,76 68D6 : DB 00,04,02,01,00,04,02,01,00,00,0A2 68E1 : DB 14,60,1C,03,14,60,1C,03,14,00,0C0 68EC : DB 00,24,08,62,1C,23,08,12,00,00,0A2 68F7 : DB 02,41,22,11,08,44,22,41,20,00,0C0 6902 : DB 30,08,42,05,48,15,22,50,08,00,0C0 690D : DB 00,00,00,00,02,01,00,00,00,00,58 6918 : DB 00,00,00,38,44,02,00,01,00,00,86 6923 : DB 00,40,00,20,11,0E,00,00,00,00,82 692E : DB 08,20,0A,14,08,14,28,02,08,00,0C0 6939 : DB 08,00,28,10,08,04,0A,00,08,00,0C0 6944 : DB 00,00,40,0A0,40,20,00,00,00,02,82 694F : DB 08,00,08,00,08,00,08,00,08,00,0C0 695A : DB 00,00,40,20,40,20,00,00,00,00,74 6965 : DB 00,40,20,10,08,04,02,01,00,00,0A2 6970 : DB 78,04,62,10,49,04,23,10,0F,00,0C0 697B : DB 00,40,00,62,18,46,01,00,00,00,92 6986 : DB 40,02,60,01,50,01,48,01,06,00,0C0 6991 : DB 20,00,41,00,49,00,4D,32,01,00,0C0 699C : DB 10,08,10,04,12,61,1C,03,10,00,0C0 69A7 : DB 20,06,41,04,41,04,21,18,01,00,0C0 69B2 : DB 30,48,04,48,02,48,01,30,00,00,0B0 69BD : DB 01,40,21,10,09,04,01,02,01,00,0C0 69C8 : DB 30,46,08,41,08,41,08,31,06,00,0C0 69D3 : DB 06,40,09,20,09,10,09,06,00,00,0B0 69DE : DB 00,00,40,28,44,28,04,00,00,00,84 69E9 : DB 00,00,00,40,0A8,44,28,04,00,04,94 69F4 : DB 00,08,10,24,40,02,00,01,00,00,0A2 69FF : DB 10,04,10,04,10,04,10,04,00,00,0B0 6A0A : DB 00,40,00,20,01,12,04,08,00,00,0A2 6A15 : DB 02,40,01,10,01,08,01,06,00,00,0B0 6A20 : DB 38,04,42,01,48,11,44,11,0E,00,0C0 6A2B : DB 40,20,10,08,14,02,11,00,7F,00,0C0 6A36 : DB 60,19,46,09,40,09,40,39,06,00,0C0 6A41 : DB 38,44,02,41,00,41,00,21,02,00,0C0 6A4C : DB 60,19,46,01,40,01,20,11,0E,00,0C0 6A57 : DB 60,1C,43,08,41,08,41,00,01,00,0C0 6A62 : DB 60,1C,03,08,01,08,01,00,01,00,0C0 6A6D : DB 38,44,02,41,00,49,20,19,02,00,0C0 6A78 : DB 60,1C,03,08,00,08,60,1C,03,00,0C0 6A83 : DB 00,40,00,61,18,47,00,01,00,00,0A2 6A8E : DB 30,40,00,40,01,20,19,06,01,00,0C0 6A99 : DB 60,1C,03,08,04,10,22,40,01,00,0C0 6AA4 : DB 00,60,18,46,01,40,00,40,00,00,0A2 6AAF : DB 60,1C,03,00,0C,00,62,1C,03,00,0C0 6ABA : DB 60,1C,03,04,08,10,60,1C,03,00,0C0 6AC5 : DB 30,4C,02,41,00,41,20,19,06,00,0C0 6AD0 : DB 60,18,06,09,00,09,00,09,06,00,0C0 6ADB : DB 38,04,42,00,51,00,21,50,0E,00,0C0 6AE6 : DB 60,18,06,09,00,19,20,49,06,00,0C0 6AF1 : DB 20,46,00,49,00,49,00,31,02,00,0C0 6AFC : DB 01,00,61,18,07,00,01,00,01,00,0C0 6B07 : DB 30,4C,03,40,00,40,30,0C,03,00,0C0 6B12 : DB 00,7F,00,20,10,08,04,02,01,00,0B2 6B1D : DB 60,1C,23,10,08,10,60,1C,03,00,0C0 6B28 : DB 40,21,12,04,18,24,40,02,01,00,0C0 6B33 : DB 01,02,64,18,00,04,00,02,01,00,0C0 6B3E : DB 40,20,51,00,49,00,45,02,01,00,0C0 6B49 : DB 00,60,18,46,01,40,01,00,01,00,0B2 6B54 : DB 00,00,03,0C,30,40,00,00,00,00,76 6B5F : DB 40,00,40,01,60,19,06,01,00,00,0B0 6B6A : DB 00,00,04,00,02,00,01,02,04,00,0A4 6B75 : DB 00,00,00,00,00,00,00,00,00,55,0C1 6B80 : DB 00,00,00,01,02,00,00,00,00,00,56 6B8B : DB 20,50,04,50,04,50,24,58,00,00,0B0 6B96 : DB 60,18,47,00,44,00,24,18,00,00,0B0 6BA1 : DB 30,08,40,04,40,04,40,04,00,00,0B0 6BAC : DB 30,08,40,04,40,04,60,1C,03,00,0C0 6BB7 : DB 30,48,14,40,14,40,14,08,00,00,0B0 6BC2 : DB 04,00,64,18,06,00,05,00,01,00,0C0 6BCD : DB 00,30,48,00,44,00,0C4,30,0C,2A,0B2 6BD8 : DB 60,18,07,00,04,00,64,18,00,00,0B0 6BE3 : DB 00,40,00,64,18,44,01,00,00,00,92 6BEE : DB 00,80,00,00,00,80,64,18,05,14,0B2 6BF9 : DB 60,18,06,11,20,48,00,04,00,00,0B0 6C04 : DB 00,40,00,60,19,46,01,00,00,00,92 6C0F : DB 64,18,04,60,1C,00,64,18,00,00,0B0 6C1A : DB 64,18,04,00,04,00,04,60,18,00,0C0 6C25 : DB 30,48,00,44,00,44,00,24,18,00,0C0 6C30 : DB 80,70,0C,40,04,40,04,20,18,01,0C0 6C3B : DB 30,48,04,40,04,40,84,70,0C,40,0C0 6C46 : DB 60,1C,00,08,04,00,04,00,08,00,0C0 6C51 : DB 40,08,40,14,40,14,20,04,00,00,0B0 6C5C : DB 00,04,30,4C,03,44,00,24,00,00,0A2 6C67 : DB 30,4C,00,40,00,40,00,30,4C,00,0C0 6C72 : DB 00,7C,00,20,00,10,08,04,00,00,0A2 6C7D : DB 70,0C,20,00,10,20,00,60,1C,00,0C0 6C88 : DB 40,00,24,08,10,20,48,00,04,00,0C0 6C93 : DB 04,08,90,40,20,10,08,04,00,02,0B0 6C9E : DB 40,00,64,00,54,00,4C,00,04,00,0C0 6CA9 : DB 00,08,20,58,06,41,00,01,00,00,0A2 6CB4 : DB 00,40,20,10,00,04,02,01,00,00,0A2 6CBF : DB 00,40,00,41,30,0D,02,08,00,00,0A2 6CCA : DB 02,01,00,01,02,04,00,04,02,00,0C0 6CD5 : DB 7C,82,18,0A5,00,0A5,00,41,3E,00,0C0 6CE0 : DB 7C,82,00,0BD,00,95,28,41,3E,00,0C0 6CEB : DB 44,22,11,08,14,02,11,00,7F,00,0C0 6CF6 : DB 40,20,10,08,15,00,12,00,7F,00,0C0 6D01 : DB 30,48,04,41,06,40,25,08,00,00,0C0 6D0C : DB 64,18,44,01,46,00,25,18,00,00,0C0 6D17 : DB 60,18,44,10,44,12,45,00,04,00,0C0 6D22 : DB 60,18,44,10,45,12,44,01,04,00,0C0 6D2D : DB 00,40,00,64,10,4C,02,05,00,00,0A2 6D38 : DB 00,60,18,46,01,40,00,44,03,00,0B2 6D43 : DB 60,10,0C,10,21,02,60,11,0C,00,0C0 6D4E : DB 40,20,18,04,11,26,50,05,08,00,0C0 6D59 : DB 40,20,18,04,10,24,52,05,08,00,0C0 6D64 : DB 04,00,04,61,1E,00,04,01,04,00,0C0 6D6F : DB 30,4C,02,40,04,42,31,0C,02,00,0C0 6D7A : DB 30,4C,02,40,06,40,33,0C,02,00,0C0 6D85 : DB 30,4C,01,40,00,40,30,0C,01,00,0C0 6D90 : DB 06,08,10,60,14,0A,01,04,02,00,0C0 6D9B : DB 20,50,04,50,04,52,25,58,00,00,0B0 6DA6 : DB 20,50,04,51,04,50,24,59,00,00,0B0 6DB1 : DB 30,08,40,04,41,06,40,05,00,00,0B0 6DBC : DB 30,08,40,05,42,04,61,1C,03,00,0C0 6DC7 : DB 30,48,14,40,16,41,14,08,00,00,0B0 6DD2 : DB 30,48,14,41,16,40,15,08,00,00,0B0 6DDD : DB 00,40,00,64,18,46,01,00,00,00,0A2 6DE8 : DB 00,40,10,60,19,46,09,00,04,00,0B2 6DF3 : DB 64,18,04,01,06,00,05,60,18,00,0C0 6DFE : DB 30,48,00,44,00,44,02,25,18,00,0C0 6E09 : DB 30,48,00,45,00,44,00,25,18,00,0C0 6E14 : DB 30,48,00,44,00,46,00,25,1A,00,0C0 6E1F : DB 60,1C,00,08,05,02,04,01,08,00,0C0 6E2A : DB 60,1C,00,08,04,00,06,01,08,00,0C0 6E35 : DB 40,08,40,14,41,16,20,05,00,00,0B0 6E40 : DB 00,04,30,4C,03,44,08,24,03,00,0B2 6E4B : DB 30,4C,00,40,00,44,02,31,4C,00,0C0 6E56 : DB 30,4C,00,40,02,44,01,32,4C,00,0C0 6E61 : DB 30,4C,00,41,00,40,00,31,4C,00,0C0 6E6C : DB 04,08,90,40,24,12,09,04,00,02,0B0 6E77 : DB 40,00,64,00,55,02,4C,01,04,00,0C0 6E82 : DB 40,08,60,18,46,08,41,00,02,00,0C0 6E8D : DB 20,50,00,20,10,48,04,42,01,00,0C0 6E98 : DB 80,60,18,06,40,09,40,29,16,00,0C0 6EA3 : DB 44,22,18,06,40,22,1C,02,01,00,0C0 6EAE : DB 60,0C,72,01,00,01,70,09,66,00,0C0 6EB9 : DB 60,10,47,08,41,00,61,00,03,00,0C0 6EC4 : DB 80,30,4C,00,00,40,00,30,4C,2A,0C0 6ECF : DB 60,18,07,00,15,00,75,0A,50,00,0C0 6EDA : DB 80,10,0A8,02,0A5,40,15,08,01,00,0C0 6EE5 : DB 2C,13,88,04,0CA,05,0A0,14,08,00,0C0 6EF0 : DB 2C,13,08,24,92,69,04,30,00,00,0C0 6EFB : DB 30,88,40,24,10,48,04,22,19,01,0C0 6F06 : DB 08,10,20,40,30,0C,03,00,01,00,0C0 6F11 : DB 28,00,28,00,28,02,28,00,28,00,0C0 6F1C : DB 28,80,68,00,38,00,2C,02,29,01,0C0 6F27 : DB 88,00,0A8,10,88,04,8A,00,88,00,0C0 6F32 : DB 08,01,0C,01,0A,00,00,00,00,00,80 6F3D : DB 00,00,00,00,00,02,04,00,02,00,0C0 6F48 : DB 00,00,00,00,00,00,04,02,00,00,0C0 6F53 : DB 00,00,00,00,06,00,05,00,03,00,0C0 6F5E : DB 00,00,00,00,04,00,00,00,04,00,0C0 6F69 : DB 24,12,00,12,24,48,00,48,24,00,0C0 6F74 : DB 10,00,10,00,50,00,34,08,10,00,0C0 6F7F : DB 10,20,58,00,14,00,10,00,10,00,0C0 6F8A : DB 10,20,40,30,0C,23,00,10,00,00,0B0 6F95 : DB 00,04,00,62,18,06,01,02,04,00,0B2 6FA0 : DB 0FF,00,0FF,00,0FF,00,0FF,00,0FF,00,0C0 6FAB : DB 10,28,90,02,0FD,02,90,28,10,00,0B0 6FB6 : DB 18,24,98,06,0F9,06,98,24,18,00,0C0 6FC1 : DB 0C,12,2D,52,0AC,52,2D,12,0C,00,0C0 6FCC : DB 10,28,54,0AA,55,0AA,54,28,10,10,0B0 6FD7 : DB 1C,22,1C,63,1C,63,1C,22,1C,00,0C0 6FE2 : DB 1C,22,00,41,00,41,00,22,1C,00,0C0 6FED : DB 18,0A5,40,2E,10,2E,40,0A5,18,45,0C1 ================================================================= 6FF8 : DB 0FF,0FF,0FF,0FF,0FF,0FF,0FF,0FF 7000 : End of disassembly Rozcleneni adresoveho prostoru ============================== 0000-0FFF = 4KB EPROM 1000-1FFF = volna pozice pro 4KB EPROM 2000-2FFF = vystupni port, adresa XXYY na sbernici znamena: XX: bit 7. az 4. = udava adresu ( 0010 ) 3. = 0: motor zastaven 1: motor roztocen 2. = 0: kotva magnetu nepritazena 1: kotva magnetu pritazena 1. = 0: signal SELECT odblokovan, LED ON-LINE rozsvicena 1: signal SELECT zablokovan, LED ON-LINE zhasla 0. = ovladani jehlicky c. 9 YY: bit 7. az 0. = ovladani jehlicek c. 8-1 3000-37FF = 2KB SRAM 3800-3FFF = zrcadleni 2KB SRAM 4000-4000 = vstupni port, precteny byte obsahuje: bit 7., 6. = nepouzito 5. = optoclen PAPER OUT 4. = senzor ON-LINE 3. = optoclen HOME HEAD 2. = senzor LINE FEED 1., 0. = nepouzito 4001-4FFF = zde se zrcadli adresa 4000 5000-5003 = brany 8255 PIO ( PA: IN mode 1, PB: OUT mode 0, PC - OUT ) 5004-5FFF = nevyuzitelny prostor 6000-6FFF = 4KB EPROM 7000-7FFF = nevyuzity prostor 8000-FFFF = zde se zrcadli adresovy prostor 0000-7FFF Rozlozeni promennych ==================== 3000 DW 1FFF pozice hlavy 3002 DW 0061/607C rutina PIO, nastaveni PE, select, busy 3004 DW 0060/60B4 rutina PIO pro nacteni dat 3006 DW FFFF pocet posunu (VT) do konce stranky (FF) nebo radky (LF) 3008 DB 01 citac radek 3009 DB 48 platnych radek na stranku 300A DB 48 celkovy pocet radek na stranku 300B DB 03 VT pro jednu radku ( 1 odpovida 1/18 palce ) 300C DB FF ridici byte znaku, bit: 6,5,4,3 = sirka znaku, 2,1,0 = vynechane sloupce 300D DB 00 pocet sloupcu pro rozsireni ( zuzeni ) znaku 300E DW 08C0 adresa generatoru tvaru UPRIGHT/ITALIC 3010 DW 0000 ukazatel pozice na radce 3012 DW 0000 levy doraz 3014 DW 0000 pravy doraz 3016 DB 7D maska sejmutych dat na portu 40, bit: 7 = nastal konec papiru, 6 = konec papiru je povolen, 5,4,3,2 = viz port 40, 1 = nevyuzit, 0 = ON/OFF-LINE 3017 DB 20 horni byte kanalu 2000 3018 DB 0A znak k tisku 3019 DB 00 ovladani tisku, bit: 7 = PRI 512/341 bodu, 6 = bylo CR, 5 = ovladani 7 bitu, 4 = auto LF, 3 = pretekl znak, 2 nastav/shod 7 bit, 1 = preskoceni na konci stranky ano/ne 301A DB 04 styl tisku, bit: 7 = ELITE/PICA, 6 = proporcionalne ano/ne, 5 = misto znaku jejich hex kody, 4 = pretisk, 3 = zvyrazneny tisk, 2 = siroky/uzky tisk, 1 = siroky tisk jen do konce radky, 0 = podtrzeni ano/ne 301B DB 00 bit: 7 az 3 = nepouzit, 2 = zapnuto matematicke sikmeni tiskoveho bafru, 1 = tiskne se radek, 0 = motor bezi 301C DW 0000 casovaci konstanty pro procesy v rutine NMI 301E DB 00 meziuschova minuleho sloupce 1. az 8. jehlicky pri pretisku nebo pri matematickem sikmeni 301F DB 00 citac znaku pro autotest 3020 DW 3100 ukazatel v bafru 9. jehlicky 3022 DB 80 bitovy citac pro zapis tvaru 3023 DW 3180 ukazatel v bafru 1. az 8. jehlicky 3025 DW 0062 rutina, ktera se ma vykonat pri NMI 3027 DB 00 data z PIO brana A 3028 DW 0400 maximalni delka radky pro tisk ( ve sloupcich ) 302A DW 04B6 maximalni delka radky pro odradkovani ( ve sloupcich ) 302C DW 007E minimalni delka radky pro odradkovani ( ve sloupcich ) 302E DW 0024 doba drzeni magnetu 3030 DW 3100 ukazatel v bafru 9. jehlicky 3032 DB 80 bitovy citac pro tisk tvaru 3033 DW 3180 ukazatel v bafru 1. az 8. jehlicky 3035 DW 0000 sestupny citac 3037 DW 0400 vzestupny citac 3039 DW 0048 ustalovaci doba radkovani 303B DW 0002 prvni tiskova pozice 303D DB C9,FF,FF hacek pro pripojeni vnejsi rutiny k hlavni smycce zpracovani prijmuteho znaku 3040 konec promennych Rozdeleni bafru =============== 3040 az 3057 - bafr tvaru znaku 16 bit ( 9 pouzito ) * 12 sloupcu 3058 az 306F - prokladani pri sirokem tisku prazdnymi sloupci ( 24 sloupcu ) 3070 az 30FF - zasobnik 3100 az 317F - bafr 9. jehlicky 3180 az 357F - bafr 1. az 8. jehlicky 3580 az 35FF - nevyuzito 3600 az 36FF - ascii tabulka 3700 az 37FF - rutiny/tvary pri download