epbas.lgb.hu :: Enterprise-128 EXOS file analyzer, lister and disassembler

File name: /tmp/phpCYJT4G (228 bytes) Options: bin=None cset='UK' dasm='' html='' info='' out='/tmp/phpCYJT4G.out' EP-ASCII: UK EXOS header pos/serial: #0 at 0x0 EXOS type/header: 0x5 [00 05 D4 00 00 00 00 00 00 00 00 00 00 00 00 00] EXOS type determined: User program (ML)
Program load address: 0x100, size is 0xd4, last byte is 0x1d3 Program start address (+ code hint points): 0x100 ML analyzation mode: disassembly 133 locations in the image 5/6 data/code labels created 11 iterations used to disassemble 13 xref points found
; Disassembled by LGB's two pass Z80/Enterprise disassembler ORG 0xf0 DB 0x00,0x05,0xD4,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ; EXOS header MACRO EXOS n ; by LGB RST 0x30 DB n ENDMACRO PROGRAM_ENTRY_POINT: ; code label ; Disassembler: switching to CODE mode ; Code analyzation starting point at iteration #1 of 11 LD SP,$03D4 ; 0100 31 D4 03 "1??" LD A,$0C ; 0103 3E 0C ">?" ; I/O on port 0xbf: Dave sysconfig register (wait states, clkdiv) OUT ($BF),A ; 0105 D3 BF "??" LD BC,$0116 ; 0107 01 16 01 "???" LD D,$00 ; 010A 16 00 "??" ; EXOS call (0x10): Read/write/toggle EXOS variable ; A=0xc EXOS $10 ; 010C F7 10 "??" LD BC,$0117 ; 010E 01 17 01 "???" LD D,$00 ; 0111 16 00 "??" ; EXOS call (0x10): Read/write/toggle EXOS variable EXOS $10 ; 0113 F7 10 "??" LD BC,$0118 ; 0115 01 18 01 "???" LD D,$28 ; 0118 16 28 "?(" ; EXOS call (0x10): Read/write/toggle EXOS variable EXOS $10 ; 011A F7 10 "??" LD BC,$0119 ; 011C 01 19 01 "???" LD D,$18 ; 011F 16 18 "??" ; EXOS call (0x10): Read/write/toggle EXOS variable EXOS $10 ; 0121 F7 10 "??" LD A,$66 ; 0123 3E 66 ">f" ; EXOS filename string for EXOS call 0x2 at 0x128 LD DE,EXOS_STR_018D ; 0125 11 8D 01 "???" ; EXOS call (0x2): Create channel ; DE is known! :-) -> 0x18d ; A=0x66 EXOS $02 ; 0128 F7 02 "??" LD A,$66 ; 012A 3E 66 ">f" LD BC,$0101 ; 012C 01 01 01 "???" ; EXOS filename string for EXOS call 0xb at 0x132 LD DE,$1801 ; 012F 11 01 18 "???" ; EXOS call (0xb): Special function ; DE is known! :-) -> 0x1801 ; A=0x66 EXOS $0B ; 0132 F7 0B "??" LD A,$69 ; 0134 3E 69 ">i" ; EXOS filename string for EXOS call 0x1 at 0x139 LD DE,EXOS_STR_0194 ; 0136 11 94 01 "???" ; EXOS call (0x1): Open channel ; DE is known! :-) -> 0x194 ; A=0x69 EXOS $01 ; 0139 F7 01 "??" LD A,$67 ; 013B 3E 67 ">g" ; EXOS filename string for EXOS call 0x1 at 0x140 LD DE,EXOS_STR_019E ; 013D 11 9E 01 "???" ; EXOS call (0x1): Open channel ; DE is known! :-) -> 0x19e ; A=0x67 EXOS $01 ; 0140 F7 01 "??" CALL SUB_01C4 ; 0142 CD C4 01 "???" LD A,$66 ; 0145 3E 66 ">f" ; EXOS filename string for EXOS call 0x8 at 0x14d LD DE,EXOS_STR_01AB ; 0147 11 AB 01 "???" LD BC,$0019 ; 014A 01 19 00 "???" ; EXOS call (0x8): Write block ; DE is known! :-) -> 0x1ab ; A=0x66 EXOS $08 ; 014D F7 08 "??" CALL SUB_0186 ; 014F CD 86 01 "???" CALL SUB_017C ; 0152 CD 7C 01 "?|?" ; EXOS filename string for EXOS call 0x1a at 0x158 LD DE,EXOS_STR_01A5 ; 0155 11 A5 01 "???" ; EXOS call (0x1a): Scan system extensions ; DE is known! :-) -> 0x1a5 EXOS $1A ; 0158 F7 1A "??" NEAR_015A: ; code label ; Referenced at 015D ; I/O on port 0x81: Nick border color OUT ($81),A ; 015A D3 81 "??" INC A ; 015C 3C "<" ; Opcode breaks the linear code flow JR NEAR_015A ; 015D 18 FB "??" ; fall-back code analyzation starting point [maybe incorrect, and this is data!] ; Code analyzation starting point at iteration #5 of 11 PUSH IX ; 015F DD E5 "??" LD IX,$0000 ; 0161 DD 21 00 00 "?!??" ADD IX,SP ; 0165 DD 39 "?9" LD A,(IX+$04) ; 0167 DD 7E 04 "?~?" CP $0A ; 016A FE 0A "??" LD B,A ; 016C 47 "G" LD A,$66 ; 016D 3E 66 ">f" JR NZ,NEAR_0177 ; 016F 20 06 " ?" ; EXOS call (0x7): Write character ; A=0x66 EXOS $07 ; 0171 F7 07 "??" LD B,$0D ; 0173 06 0D "??" LD A,$66 ; 0175 3E 66 ">f" NEAR_0177: ; code label ; stop analyzing: already analyzed code at iteration #6: Opcode (or part of it) has been already analyzed ; Referenced at 016F ; EXOS call (0x7): Write character ; A=0x66 EXOS $07 ; 0177 F7 07 "??" POP IX ; 0179 DD E1 "??" ; Opcode breaks the linear code flow RET ; 017B C9 "?" SUB_017C: ; code label ; Referenced at 0152 ; Code analyzation starting point at iteration #2 of 11 PUSH IX ; 017C DD E5 "??" LD A,$69 ; 017E 3E 69 ">i" ; EXOS call (0x5): Read character ; A=0x69 EXOS $05 ; 0180 F7 05 "??" LD L,B ; 0182 68 "h" POP IX ; 0183 DD E1 "??" ; Opcode breaks the linear code flow RET ; 0185 C9 "?" SUB_0186: ; code label ; stop analyzing: already analyzed code at iteration #7: Opcode (or part of it) has been already analyzed ; Referenced at 014F ; Code analyzation starting point at iteration #3 of 11 LD A,$67 ; 0186 3E 67 ">g" LD B,$07 ; 0188 06 07 "??" ; EXOS call (0x7): Write character ; A=0x67 EXOS $07 ; 018A F7 07 "??" ; Opcode breaks the linear code flow RET ; 018C C9 "?" EXOS_STR_018D: ; data label ; stop analyzing: in fall-back mode data label found, revoking further CODE mode ; Referenced at 0128 ; Disassembler: switching to DATA mode DB $06 ; 018D 06 "?" DB "VIDEO:" ; 018E 56 49 44 45 4F 3A "VIDEO:" EXOS_STR_0194: ; data label ; Referenced at 0139 DB $09 ; 0194 09 "?" DB "KEYBOARD:" ; 0195 4B 45 59 42 4F 41 52 44 3A "KEYBOARD:" EXOS_STR_019E: ; data label ; Referenced at 0140 DB $06 ; 019E 06 "?" DB "SOUND:" ; 019F 53 4F 55 4E 44 3A "SOUND:" EXOS_STR_01A5: ; data label ; Referenced at 0158 DB $05 ; 01A5 05 "?" DB "BASIC" ; 01A6 42 41 53 49 43 "BASIC" EXOS_STR_01AB: ; data label ; Referenced at 014D DB $0A ; 01AB 0A "?" DB $0D ; 01AC 0D "?" DB "Exit. Any key to BASIC." ; 01AD 45 78 69 74 2E 20 41 6E 79 20 6B 65 79 20 74 6F 20 42 41 53 49 43 2E "Exit. Any key to BASIC." SUB_01C4: ; code label ; Referenced at 0142 ; Disassembler: switching to CODE mode ; Opcode breaks the linear code flow ; Code analyzation starting point at iteration #4 of 11 RET ; 01C4 C9 "?" ; fall-back code analyzation starting point [maybe incorrect, and this is data!] ; Code analyzation starting point at iteration #9 of 11 LD B,L ; 01C5 45 "E" LD A,D ; 01C6 7A "z" LD A,D ; 01C7 7A "z" LD H,L ; 01C8 65 "e" LD L,H ; 01C9 6C "l" JR NZ,$0239 ; 01CA 20 6D " m" LD L,C ; 01CC 69 "i" JR NZ,$023B ; 01CD 20 6C " l" LD H,L ; 01CF 65 "e" LD (HL),E ; 01D0 73 "s" LD A,D ; 01D1 7A "z" CCF ; 01D2 3F "?" ; stop analyzing: out-of-bound opcode #9: Out-of-bound code, end of image before decoding the op ; Disassembler: switching to DATA mode DB $21 ; 01D3 21 "!" END_OF_PROGRAM: ; Do not put anything after this!
End of FILE parsing, because: After type-5 header



Enterprise-128 EXOS file analyzer, lister and disassembler v0.5.5 ©2012,2013 "LGB" Gábor Lénárt (lgb at-sign lgb dot hu)