Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
4252 lines (4251 sloc) 208 KB
seg000:0000 ;
seg000:0000 ; Input MD5 : C976BA00F3E549ED1D826BBC88AFC4EF
seg000:0000
seg000:0000 ; File Name : pusher.exe
seg000:0000 ; Format : MS-DOS executable (EXE)
seg000:0000 ; Base Address: 1000h Range: 10000h-12880h Loaded length: 2788h
seg000:0000 ; Entry Point : 1000:0
seg000:0000
seg000:0000 .686p
seg000:0000 .mmx
seg000:0000 .model large
seg000:0000
seg000:0000 ; ===========================================================================
seg000:0000
seg000:0000 ; Segment type: Pure code
seg000:0000 seg000 segment byte public 'CODE' use16
seg000:0000 assume cs:seg000
seg000:0000 assume es:nothing, ss:seg002, ds:nothing, fs:nothing, gs:nothing
seg000:0000
seg000:0000 ; =============== S U B R O U T I N E =======================================
seg000:0000
seg000:0000 ; Attributes: noreturn
seg000:0000
seg000:0000 public start
seg000:0000 start proc near ; DATA XREF: exit+14 o
seg000:0000
seg000:0000 ; FUNCTION CHUNK AT seg000:0155 SIZE 0000001D BYTES
seg000:0000
seg000:0000 mov dx, seg dseg
seg000:0003
seg000:0003 loc_10003:
seg000:0003 mov cs:ds_address, dx
seg000:0008
seg000:0008 loc_10008:
seg000:0008 mov ah, 30h
seg000:000A int 21h ; DOS - GET DOS VERSION
seg000:000A ; Return: AL = major version number (00h for DOS 1.x)
seg000:000C mov bp, ds:2
seg000:0010 mov bx, ds:2Ch
seg000:0014 mov ds, dx
seg000:0016 assume ds:dseg
seg000:0016 mov word_11216, ax
seg000:0019 mov word_11214, es
seg000:001D mov word_11210, bx
seg000:0021 mov word_11228, bp
seg000:0025 mov word_1121A, 0FFFFh
seg000:002B mov es, bx
seg000:002D xor ax, ax
seg000:002F mov cx, 7FFFh
seg000:0032 mov di, ax
seg000:0034 mov bx, ax
seg000:0036
seg000:0036 loc_10036: ; CODE XREF: start+62 j
seg000:0036 cmp word ptr es:[di], 3738h
seg000:003B jnz short loc_1005A
seg000:003D push di
seg000:003E push cx
seg000:003F push ax
seg000:0040 mov al, 3Dh ; '='
seg000:0042 repne scasb
seg000:0044 jcxz short loc_10057
seg000:0046 mov al, es:[di]
seg000:0049 and al, 0DFh
seg000:004B inc word_1121A
seg000:004F cmp al, 59h ; 'Y'
seg000:0051 jnz short loc_10057
seg000:0053 inc word_1121A
seg000:0057
seg000:0057 loc_10057: ; CODE XREF: start+44 j
seg000:0057 ; start+51 j
seg000:0057 pop ax
seg000:0058 pop cx
seg000:0059 pop di
seg000:005A
seg000:005A loc_1005A: ; CODE XREF: start+3B j
seg000:005A repne scasb
seg000:005C jcxz short loc_100C1
seg000:005E inc bx
seg000:005F cmp es:[di], al
seg000:0062 jnz short loc_10036
seg000:0064 or ch, 80h
seg000:0067 neg cx
seg000:0069 mov word_1120E, cx
seg000:006D add bx, 7
seg000:0070 and bx, 0FFFCh
seg000:0074 shl bx, 1
seg000:0076 mov word_11212, bx
seg000:007A push ds
seg000:007B mov ax, 3500h
seg000:007E int 21h ; DOS - 2+ - GET INTERRUPT VECTOR
seg000:007E ; AL = interrupt number
seg000:007E ; Return: ES:BX = value of interrupt vector
seg000:0080 mov word ptr aNullPointerAss+45h, bx
seg000:0084 mov word ptr unk_11206, es
seg000:0088 mov ax, 2500h
seg000:008B push cs
seg000:008C pop ds
seg000:008D assume ds:seg000
seg000:008D mov dx, offset divide_by_zero_handler
seg000:0090 int 21h ; DOS - SET INTERRUPT VECTOR
seg000:0090 ; AL = interrupt number
seg000:0090 ; DS:DX = new vector to be used for specified interrupt
seg000:0092 pop ds
seg000:0093 assume ds:dseg
seg000:0093 push cs
seg000:0094 call off_1277C
seg000:0098 mov di, word ptr unk_12702
seg000:009C mov bx, 100h
seg000:009F cmp di, bx
seg000:00A1 ja short loc_100A5
seg000:00A3 mov di, bx
seg000:00A5
seg000:00A5 loc_100A5: ; CODE XREF: start+A1 j
seg000:00A5 mov dx, ds
seg000:00A7 add bx, 1670h
seg000:00AB jb short loc_100C1
seg000:00AD mov di, 1000h
seg000:00B0 mov cl, 4
seg000:00B2 shr bx, cl
seg000:00B4 inc bx
seg000:00B5 sub bp, dx
seg000:00B7 cmp bp, di
seg000:00B9 ja short loc_100C4
seg000:00BB xchg bx, di
seg000:00BD cmp bp, di
seg000:00BF ja short loc_100C4
seg000:00C1
seg000:00C1 loc_100C1: ; CODE XREF: start+5C j
seg000:00C1 ; start+AB j
seg000:00C1 jmp abort
seg000:00C4 ; ---------------------------------------------------------------------------
seg000:00C4
seg000:00C4 loc_100C4: ; CODE XREF: start+B9 j
seg000:00C4 ; start+BF j
seg000:00C4 mov bx, di
seg000:00C6 add bx, dx
seg000:00C8 mov word_11220, bx
seg000:00CC mov word_11224, bx
seg000:00D0 mov ax, word_11214
seg000:00D3 sub bx, ax
seg000:00D5 mov es, ax
seg000:00D7 mov ah, 4Ah
seg000:00D9 int 21h ; DOS - 2+ - ADJUST MEMORY BLOCK SIZE (SETBLOCK)
seg000:00D9 ; ES = segment address of block to change
seg000:00D9 ; BX = new size in paragraphs
seg000:00DB shl di, cl
seg000:00DD mov ss, dx
seg000:00DF assume ss:dseg
seg000:00DF mov sp, di
seg000:00E1 call sub_10B5A
seg000:00E4 call sub_10C43
seg000:00E7 xor ax, ax
seg000:00E9 mov es, cs:ds_address
seg000:00EE mov di, 15F8h
seg000:00F1 mov cx, 1670h
seg000:00F4 sub cx, di
seg000:00F6 rep stosb
seg000:00F8 push word_1120C
seg000:00FC push word_1120A
seg000:0100 push word_11208
seg000:0104 call sub_10174
seg000:0107 push ax
seg000:0108 call exit
seg000:0108 start endp
seg000:0108
seg000:010B
seg000:010B ; =============== S U B R O U T I N E =======================================
seg000:010B
seg000:010B ; Attributes: noreturn
seg000:010B
seg000:010B sub_1010B proc near ; CODE XREF: start+163 p
seg000:010B ; exit+29 p
seg000:010B mov ax, 2500h
seg000:010E lds dx, dword ptr aNullPointerAss+45h
seg000:0112 int 21h ; DOS - SET INTERRUPT VECTOR
seg000:0112 ; AL = interrupt number
seg000:0112 ; DS:DX = new vector to be used for specified interrupt
seg000:0114 mov ds, cs:ds_address
seg000:0119 push cs
seg000:011A call off_1277E
seg000:011E xor ax, ax
seg000:0120 mov si, ax
seg000:0122 mov cx, 2Fh ; '/'
seg000:0125 nop
seg000:0126 cld
seg000:0127
seg000:0127 loc_10127: ; CODE XREF: sub_1010B+22 j
seg000:0127 add al, [si]
seg000:0129 adc ah, 0
seg000:012C inc si
seg000:012D loop loc_10127
seg000:012F sub ax, 0D36h
seg000:0132 nop
seg000:0133 jz short loc_1013F
seg000:0135 mov cx, 19h
seg000:0138 nop
seg000:0139 mov dx, offset aNullPointerAss ; "Null pointer assignment\r\nDivide error\r\n"...
seg000:013C call write_to_file
seg000:013F
seg000:013F loc_1013F: ; CODE XREF: sub_1010B+28 j
seg000:013F mov bp, sp
seg000:0141 mov al, [bp+2]
seg000:0144 mov ah, 4Ch
seg000:0146 int 21h ; DOS - 2+ - QUIT WITH EXIT CODE (EXIT)
seg000:0146 sub_1010B endp ; AL = exit code
seg000:0146
seg000:0148
seg000:0148 ; =============== S U B R O U T I N E =======================================
seg000:0148
seg000:0148
seg000:0148 write_to_file proc near ; CODE XREF: sub_1010B+31 p
seg000:0148 ; start+15C p ...
seg000:0148 mov ah, 40h ; '@'
seg000:014A mov bx, offset stdout
seg000:014D mov ds, cs:ds_address
seg000:0152 int 21h ; DOS - 2+ - WRITE TO FILE WITH HANDLE
seg000:0152 ; BX = file handle, CX = number of bytes to write, DS:DX -> buffer
seg000:0154 retn
seg000:0154 write_to_file endp
seg000:0154
seg000:0155 ; ---------------------------------------------------------------------------
seg000:0155 ; START OF FUNCTION CHUNK FOR start
seg000:0155
seg000:0155 abort: ; CODE XREF: start:loc_100C1 j
seg000:0155 ; sub_10855+19 j ...
seg000:0155 mov cx, 1Eh
seg000:0158 nop
seg000:0159 mov dx, (offset aNullPointerAss+27h)
seg000:015C call write_to_file
seg000:015F
seg000:015F loc_1015F: ; CODE XREF: start+170 j
seg000:015F mov ax, 3
seg000:0162 push ax
seg000:0163 call sub_1010B
seg000:0166 ; ---------------------------------------------------------------------------
seg000:0166
seg000:0166 divide_by_zero_handler: ; DATA XREF: start+8D o
seg000:0166 mov cx, 0Eh
seg000:0169 nop
seg000:016A mov dx, (offset aNullPointerAss+19h)
seg000:016D call write_to_file
seg000:0170 jmp short loc_1015F
seg000:0170 ; END OF FUNCTION CHUNK FOR start
seg000:0170 ; ---------------------------------------------------------------------------
seg000:0172 ds_address dw 0 ; DATA XREF: start:loc_10003 w
seg000:0172 ; start+E9 r ...
seg000:0174
seg000:0174 ; =============== S U B R O U T I N E =======================================
seg000:0174
seg000:0174 ; Attributes: bp-based frame
seg000:0174
seg000:0174 sub_10174 proc near ; CODE XREF: start+104 p
seg000:0174
seg000:0174 var_14 = word ptr -14h
seg000:0174 var_12 = word ptr -12h
seg000:0174 var_x = word ptr -10h
seg000:0174 next_next_man_x = word ptr -0Eh
seg000:0174 next_man_y = word ptr -0Ch
seg000:0174 nex_nex_man_y = word ptr -0Ah
seg000:0174 man_offset = word ptr -8
seg000:0174 next_offset = word ptr -6
seg000:0174 nex_next_offset = word ptr -4
seg000:0174 key_code = byte ptr -1
seg000:0174
seg000:0174 push si
seg000:0175 push di
seg000:0176 push bp
seg000:0177 mov bp, sp
seg000:0179 sub sp, 14h
seg000:017C xor si, si
seg000:017E call clear_screen
seg000:0181
seg000:0181 maze_selector: ; CODE XREF: sub_10174+386 j
seg000:0181 mov ax, 30
seg000:0184 push ax
seg000:0185 mov ax, offset aNumberOfMaze ; "Number of maze: "
seg000:0188 push ax
seg000:0189 mov ax, 12
seg000:018C push ax
seg000:018D mov ax, 10
seg000:0190 push ax
seg000:0191 call display_string
seg000:0194 add sp, 8
seg000:0197
seg000:0197 maze_selector_loop: ; CODE XREF: sub_10174+93 j
seg000:0197 ; sub_10174+9C j ...
seg000:0197 mov ax, si
seg000:0199 inc ax
seg000:019A push ax
seg000:019B mov ax, offset a2d ; "%2d"
seg000:019E push ax
seg000:019F mov ax, offset sprintf_buf
seg000:01A2 push ax
seg000:01A3 call sprintf
seg000:01A6 add sp, 6
seg000:01A9 mov ax, 30
seg000:01AC push ax
seg000:01AD mov ax, offset sprintf_buf
seg000:01B0 push ax
seg000:01B1 mov ax, 12
seg000:01B4 push ax
seg000:01B5 mov ax, 26
seg000:01B8 push ax
seg000:01B9 call display_string
seg000:01BC add sp, 8
seg000:01BF call keyin
seg000:01C2 mov [bp+key_code], al
seg000:01C5 cmp al, 20h ; ' '
seg000:01C8 jz short maze_selector_do_game
seg000:01CA mov ax, 1
seg000:01CD jmp short loc_101D1
seg000:01CF ; ---------------------------------------------------------------------------
seg000:01CF
seg000:01CF maze_selector_do_game: ; CODE XREF: sub_10174+54 j
seg000:01CF xor ax, ax
seg000:01D1
seg000:01D1 loc_101D1: ; CODE XREF: sub_10174+59 j
seg000:01D1 or ax, ax
seg000:01D3 jz short start_game
seg000:01D5 mov al, [bp+key_code]
seg000:01D8 cbw
seg000:01D9 mov cx, 5 ; switch 5 cases
seg000:01DC mov bx, offset word_101EE
seg000:01DF
seg000:01DF loc_101DF: ; CODE XREF: sub_10174+72 j
seg000:01DF cmp ax, cs:[bx]
seg000:01E2 jz short loc_101EA
seg000:01E4 inc bx
seg000:01E5 inc bx
seg000:01E6 loop loc_101DF
seg000:01E8 jmp short loc_1021C ; default
seg000:01EA ; ---------------------------------------------------------------------------
seg000:01EA
seg000:01EA loc_101EA: ; CODE XREF: sub_10174+6E j
seg000:01EA jmp word ptr cs:[bx+0Ah] ; switch jump
seg000:01EA ; ---------------------------------------------------------------------------
seg000:01EE word_101EE dw 1Bh, 34h, 36h, 4Bh ; DATA XREF: sub_10174+68 o
seg000:01EE dw 4Dh ; value table for switch statement
seg000:01F8 dw offset bye_2 ; jump table for switch statement
seg000:01F8 dw offset maze_selector_left
seg000:01F8 dw offset maze_selector_right
seg000:01F8 dw offset maze_selector_left
seg000:01F8 dw offset maze_selector_right
seg000:0202 ; ---------------------------------------------------------------------------
seg000:0202
seg000:0202 maze_selector_right: ; CODE XREF: sub_10174:loc_101EA j
seg000:0202 ; DATA XREF: sub_10174+84 o
seg000:0202 cmp si, 59 ; Number of levels
seg000:0205 jl short loc_10209
seg000:0207 jmp short maze_selector_loop
seg000:0209 ; ---------------------------------------------------------------------------
seg000:0209
seg000:0209 loc_10209: ; CODE XREF: sub_10174+91 j
seg000:0209 inc si
seg000:020A jmp short loc_1021C ; default
seg000:020C ; ---------------------------------------------------------------------------
seg000:020C
seg000:020C maze_selector_left: ; CODE XREF: sub_10174:loc_101EA j
seg000:020C ; DATA XREF: sub_10174+84 o
seg000:020C or si, si ; jumptable 000101EA cases 52,75
seg000:020E jg short loc_10213
seg000:0210 jmp maze_selector_loop
seg000:0213 ; ---------------------------------------------------------------------------
seg000:0213
seg000:0213 loc_10213: ; CODE XREF: sub_10174+9A j
seg000:0213 dec si
seg000:0214 jmp short loc_1021C ; default
seg000:0216 ; ---------------------------------------------------------------------------
seg000:0216
seg000:0216 bye_2: ; CODE XREF: sub_10174:loc_101EA j
seg000:0216 ; DATA XREF: sub_10174+84 o
seg000:0216 call clear_screen ; jumptable 000101EA case 27
seg000:0219 call exit
seg000:021C ; ---------------------------------------------------------------------------
seg000:021C
seg000:021C loc_1021C: ; CODE XREF: sub_10174+74 j
seg000:021C ; sub_10174+96 j ...
seg000:021C jmp maze_selector_loop ; default
seg000:021F ; ---------------------------------------------------------------------------
seg000:021F
seg000:021F start_game: ; CODE XREF: sub_10174+5F j
seg000:021F push si
seg000:0220 call print_level
seg000:0223 pop cx
seg000:0224 mov ax, man_y
seg000:0227 mul level_size_x
seg000:022B mov dx, level_map
seg000:022F add dx, man_x
seg000:0233 add ax, dx
seg000:0235 mov [bp+man_offset], ax
seg000:0238 mov [bp+var_x], 0
seg000:023D jmp short loc_10252
seg000:023F ; ---------------------------------------------------------------------------
seg000:023F
seg000:023F loc_1023F: ; CODE XREF: sub_10174+E2 j
seg000:023F mov ax, 24
seg000:0242 push ax
seg000:0243 push [bp+var_x]
seg000:0246 xor ax, ax
seg000:0248 push ax
seg000:0249 call draw_symbol_xy
seg000:024C add sp, 6
seg000:024F inc [bp+var_x]
seg000:0252
seg000:0252 loc_10252: ; CODE XREF: sub_10174+C9 j
seg000:0252 cmp [bp+var_x], 20
seg000:0256 jl short loc_1023F
seg000:0258 mov ax, si
seg000:025A inc ax
seg000:025B push ax
seg000:025C mov ax, offset aMazeD ; "Maze: %d"
seg000:025F push ax
seg000:0260 mov ax, offset sprintf_buf
seg000:0263 push ax
seg000:0264 call sprintf
seg000:0267 add sp, 6
seg000:026A xor ax, ax
seg000:026C push ax
seg000:026D mov ax, offset sprintf_buf
seg000:0270 push ax
seg000:0271 mov ax, 18h
seg000:0274 push ax
seg000:0275 xor ax, ax
seg000:0277 push ax
seg000:0278 call display_string
seg000:027B add sp, 8
seg000:027E xor ax, ax
seg000:0280 push ax
seg000:0281 mov ax, offset aMoves ; "Moves: "
seg000:0284 push ax
seg000:0285 mov ax, 18h
seg000:0288 push ax
seg000:0289 mov ax, 0Ah
seg000:028C push ax
seg000:028D call display_string
seg000:0290 add sp, 8
seg000:0293 xor ax, ax
seg000:0295 push ax
seg000:0296 mov ax, offset aStoneMoves ; "Stone moves: "
seg000:0299 push ax
seg000:029A mov ax, 18h
seg000:029D push ax
seg000:029E mov ax, 18h
seg000:02A1 push ax
seg000:02A2 call display_string
seg000:02A5 add sp, 8
seg000:02A8 mov [bp+var_14], 0
seg000:02AD mov [bp+var_12], 0
seg000:02B2
seg000:02B2 loc_102B2: ; CODE XREF: sub_10174:loc_103EF j
seg000:02B2 ; sub_10174:loc_104BA j
seg000:02B2 cmp number_of_places, 0
seg000:02B7 jnz short loc_102BC
seg000:02B9 jmp display_congratulations
seg000:02BC ; ---------------------------------------------------------------------------
seg000:02BC
seg000:02BC loc_102BC: ; CODE XREF: sub_10174+143 j
seg000:02BC push [bp+var_14]
seg000:02BF mov ax, offset aD ; "%d"
seg000:02C2 push ax
seg000:02C3 mov ax, offset sprintf_buf
seg000:02C6 push ax
seg000:02C7 call sprintf
seg000:02CA add sp, 6
seg000:02CD xor ax, ax
seg000:02CF push ax
seg000:02D0 mov ax, offset sprintf_buf
seg000:02D3 push ax
seg000:02D4 mov ax, 18h
seg000:02D7 push ax
seg000:02D8 mov ax, 11h
seg000:02DB push ax
seg000:02DC call display_string
seg000:02DF add sp, 8
seg000:02E2 push [bp+var_12]
seg000:02E5 mov ax, offset aD_0 ; "%d"
seg000:02E8 push ax
seg000:02E9 mov ax, offset sprintf_buf
seg000:02EC push ax
seg000:02ED call sprintf
seg000:02F0 add sp, 6
seg000:02F3 xor ax, ax
seg000:02F5 push ax
seg000:02F6 mov ax, offset sprintf_buf
seg000:02F9 push ax
seg000:02FA mov ax, 24
seg000:02FD push ax
seg000:02FE mov ax, 37
seg000:0301 push ax
seg000:0302 call display_string
seg000:0305 add sp, 8
seg000:0308
seg000:0308 loc_10308: ; CODE XREF: sub_10174+19E j
seg000:0308 call keyin
seg000:030B mov [bp+key_code], al
seg000:030E or al, al
seg000:0310 jnz short loc_10314
seg000:0312 jmp short loc_10308
seg000:0314 ; ---------------------------------------------------------------------------
seg000:0314
seg000:0314 loc_10314: ; CODE XREF: sub_10174+19C j
seg000:0314 mov al, [bp+key_code]
seg000:0317 cbw
seg000:0318 mov cx, 0Ah ; switch 10 cases
seg000:031B mov bx, offset word_1032E
seg000:031E
seg000:031E loc_1031E: ; CODE XREF: sub_10174+1B1 j
seg000:031E cmp ax, cs:[bx]
seg000:0321 jz short loc_1032A
seg000:0323 inc bx
seg000:0324 inc bx
seg000:0325 loop loc_1031E
seg000:0327 jmp loc_103EF
seg000:032A ; ---------------------------------------------------------------------------
seg000:032A
seg000:032A loc_1032A: ; CODE XREF: sub_10174+1AD j
seg000:032A jmp word ptr cs:[bx+14h] ; switch jump
seg000:032A ; ---------------------------------------------------------------------------
seg000:032E word_1032E dw 1Bh ; DATA XREF: sub_10174+1A7 o
seg000:032E ; value table for switch statement
seg000:0330 dw 20h
seg000:0332 dw 32h
seg000:0334 dw 34h
seg000:0336 dw 36h
seg000:0338 dw 38h
seg000:033A dw 48h
seg000:033C dw 4Bh
seg000:033E dw 4Dh
seg000:0340 dw 50h
seg000:0342 dw offset bye ; jump table for switch statement
seg000:0342 dw offset menu
seg000:0342 dw offset key_down
seg000:0342 dw offset key_left
seg000:0342 dw offset key_right
seg000:0342 dw offset key_up
seg000:0342 dw offset key_up
seg000:0342 dw offset key_left
seg000:0342 dw offset key_right
seg000:0342 dw offset key_down
seg000:0356 ; ---------------------------------------------------------------------------
seg000:0356
seg000:0356 key_down: ; CODE XREF: sub_10174:loc_1032A j
seg000:0356 ; DATA XREF: sub_10174+1CE o
seg000:0356 mov ax, [bp+man_offset] ; jumptable 0001032A cases 50,80
seg000:0359 add ax, level_size_x
seg000:035D mov [bp+next_offset], ax
seg000:0360 add ax, level_size_x
seg000:0364 mov [bp+nex_next_offset], ax
seg000:0367 mov di, man_x
seg000:036B mov ax, di
seg000:036D mov [bp+next_next_man_x], ax
seg000:0370 mov ax, man_y
seg000:0373 inc ax
seg000:0374 mov [bp+next_man_y], ax
seg000:0377 inc ax
seg000:0378 mov [bp+nex_nex_man_y], ax
seg000:037B jmp short loc_103F2
seg000:037D ; ---------------------------------------------------------------------------
seg000:037D
seg000:037D key_up: ; CODE XREF: sub_10174:loc_1032A j
seg000:037D ; DATA XREF: sub_10174+1CE o
seg000:037D mov ax, [bp+man_offset] ; jumptable 0001032A cases 56,72
seg000:0380 sub ax, level_size_x
seg000:0384 mov [bp+next_offset], ax
seg000:0387 sub ax, level_size_x
seg000:038B mov [bp+nex_next_offset], ax
seg000:038E mov di, man_x
seg000:0392 mov ax, di
seg000:0394 mov [bp+next_next_man_x], ax
seg000:0397 mov ax, man_y
seg000:039A dec ax
seg000:039B mov [bp+next_man_y], ax
seg000:039E dec ax
seg000:039F mov [bp+nex_nex_man_y], ax
seg000:03A2 jmp short loc_103F2
seg000:03A4 ; ---------------------------------------------------------------------------
seg000:03A4
seg000:03A4 key_right: ; CODE XREF: sub_10174:loc_1032A j
seg000:03A4 ; DATA XREF: sub_10174+1CE o
seg000:03A4 mov ax, [bp+man_offset] ; jumptable 0001032A cases 54,77
seg000:03A7 inc ax
seg000:03A8 mov [bp+next_offset], ax
seg000:03AB inc ax
seg000:03AC mov [bp+nex_next_offset], ax
seg000:03AF mov di, man_x
seg000:03B3 inc di
seg000:03B4 mov ax, di
seg000:03B6 inc ax
seg000:03B7 mov [bp+next_next_man_x], ax
seg000:03BA mov ax, man_y
seg000:03BD mov [bp+next_man_y], ax
seg000:03C0 mov [bp+nex_nex_man_y], ax
seg000:03C3 jmp short loc_103F2
seg000:03C5 ; ---------------------------------------------------------------------------
seg000:03C5
seg000:03C5 key_left: ; CODE XREF: sub_10174:loc_1032A j
seg000:03C5 ; DATA XREF: sub_10174+1CE o
seg000:03C5 mov ax, [bp+man_offset] ; jumptable 0001032A cases 52,75
seg000:03C8 dec ax
seg000:03C9 mov [bp+next_offset], ax
seg000:03CC dec ax
seg000:03CD mov [bp+nex_next_offset], ax
seg000:03D0 mov di, man_x
seg000:03D4 dec di
seg000:03D5 mov ax, di
seg000:03D7 dec ax
seg000:03D8 mov [bp+next_next_man_x], ax
seg000:03DB mov ax, man_y
seg000:03DE mov [bp+next_man_y], ax
seg000:03E1 mov [bp+nex_nex_man_y], ax
seg000:03E4 jmp short loc_103F2
seg000:03E6 ; ---------------------------------------------------------------------------
seg000:03E6
seg000:03E6 bye: ; CODE XREF: sub_10174:loc_1032A j
seg000:03E6 ; DATA XREF: sub_10174+1CE o
seg000:03E6 call clear_screen ; jumptable 0001032A case 27
seg000:03E9 call exit
seg000:03EC ; ---------------------------------------------------------------------------
seg000:03EC
seg000:03EC menu: ; CODE XREF: sub_10174:loc_1032A j
seg000:03EC ; DATA XREF: sub_10174+1CE o
seg000:03EC jmp loc_104F7 ; jumptable 0001032A case 32
seg000:03EF ; ---------------------------------------------------------------------------
seg000:03EF
seg000:03EF loc_103EF: ; CODE XREF: sub_10174+1B3 j
seg000:03EF jmp loc_102B2
seg000:03F2 ; ---------------------------------------------------------------------------
seg000:03F2
seg000:03F2 loc_103F2: ; CODE XREF: sub_10174+207 j
seg000:03F2 ; sub_10174+22E j ...
seg000:03F2 mov bx, [bp+next_offset]
seg000:03F5 mov al, [bx]
seg000:03F7 cbw
seg000:03F8 and ax, 3
seg000:03FB cmp ax, 1 ; switch 2 cases
seg000:03FE jbe short loc_10403
seg000:0400 jmp loc_104BA ; default
seg000:0403 ; ---------------------------------------------------------------------------
seg000:0403
seg000:0403 loc_10403: ; CODE XREF: sub_10174+28A j
seg000:0403 mov bx, ax
seg000:0405 shl bx, 1
seg000:0407 jmp cs:off_1040C[bx] ; switch jump
seg000:0407 ; ---------------------------------------------------------------------------
seg000:040C off_1040C dw offset loc_10486 ; DATA XREF: sub_10174+293 r
seg000:040C dw offset loc_10410 ; jump table for switch statement
seg000:0410 ; ---------------------------------------------------------------------------
seg000:0410
seg000:0410 loc_10410: ; CODE XREF: sub_10174+293 j
seg000:0410 ; DATA XREF: sub_10174:off_1040C o
seg000:0410 mov bx, [bp+nex_next_offset] ; jumptable 00010407 case 1
seg000:0413 mov al, [bx]
seg000:0415 and al, 3
seg000:0418 mov [bp+key_code], al
seg000:041B cmp [bp+key_code], 2
seg000:041F jz short loc_10484
seg000:0421 cmp [bp+key_code], 1
seg000:0425 jz short loc_10484
seg000:0427 mov bx, [bp+next_offset]
seg000:042A test byte ptr [bx], 4
seg000:042D jz short loc_10433
seg000:042F inc number_of_places
seg000:0433
seg000:0433 loc_10433: ; CODE XREF: sub_10174+2B9 j
seg000:0433 mov bx, [bp+nex_next_offset]
seg000:0436 test byte ptr [bx], 4
seg000:0439 jz short loc_1043F
seg000:043B dec number_of_places
seg000:043F
seg000:043F loc_1043F: ; CODE XREF: sub_10174+2C5 j
seg000:043F push [bp+nex_nex_man_y]
seg000:0442 push [bp+next_next_man_x]
seg000:0445 mov ax, 1
seg000:0448 push ax
seg000:0449 call get_draw_char_xy
seg000:044C add sp, 6
seg000:044F push man_y
seg000:0453 push man_x
seg000:0457 xor ax, ax
seg000:0459 push ax
seg000:045A call get_draw_char_xy
seg000:045D add sp, 6
seg000:0460 push [bp+next_man_y]
seg000:0463 push di
seg000:0464 mov ax, 3
seg000:0467 push ax
seg000:0468 call get_draw_char_xy
seg000:046B add sp, 6
seg000:046E inc [bp+var_14]
seg000:0471 inc [bp+var_12]
seg000:0474 mov man_x, di
seg000:0478 mov ax, [bp+next_man_y]
seg000:047B mov man_y, ax
seg000:047E mov ax, [bp+next_offset]
seg000:0481 mov [bp+man_offset], ax
seg000:0484
seg000:0484 loc_10484: ; CODE XREF: sub_10174+2AB j
seg000:0484 ; sub_10174+2B1 j
seg000:0484 jmp short loc_104BA ; default
seg000:0486 ; ---------------------------------------------------------------------------
seg000:0486
seg000:0486 loc_10486: ; CODE XREF: sub_10174+293 j
seg000:0486 ; DATA XREF: sub_10174:off_1040C o
seg000:0486 push man_y ; jumptable 00010407 case 0
seg000:048A push man_x
seg000:048E xor ax, ax
seg000:0490 push ax
seg000:0491 call get_draw_char_xy
seg000:0494 add sp, 6
seg000:0497 push [bp+next_man_y]
seg000:049A push di
seg000:049B mov ax, 3 ; man
seg000:049E push ax
seg000:049F call get_draw_char_xy
seg000:04A2 add sp, 6
seg000:04A5 inc [bp+var_14]
seg000:04A8 mov man_x, di
seg000:04AC mov ax, [bp+next_man_y]
seg000:04AF mov man_y, ax
seg000:04B2 mov ax, [bp+next_offset]
seg000:04B5 mov [bp+man_offset], ax
seg000:04B8 jmp short $+2
seg000:04BA
seg000:04BA loc_104BA: ; CODE XREF: sub_10174+28C j
seg000:04BA ; sub_10174:loc_10484 j
seg000:04BA jmp loc_102B2 ; default
seg000:04BD ; ---------------------------------------------------------------------------
seg000:04BD
seg000:04BD display_congratulations: ; CODE XREF: sub_10174+145 j
seg000:04BD push man_y
seg000:04C1 push man_x
seg000:04C5 mov ax, 8
seg000:04C8 push ax
seg000:04C9 call draw_symbol_center_xy
seg000:04CC add sp, 6
seg000:04CF call keyin
seg000:04D2 push level_map
seg000:04D6 call free
seg000:04D9 pop cx
seg000:04DA call clear_screen
seg000:04DD mov ax, 1Eh
seg000:04E0 push ax
seg000:04E1 mov ax, offset aCongratulation ; "Congratulations !!!"
seg000:04E4 push ax
seg000:04E5 mov ax, 0Ch
seg000:04E8 push ax
seg000:04E9 mov ax, 0Ah
seg000:04EC push ax
seg000:04ED call display_string
seg000:04F0 add sp, 8
seg000:04F3 call keyin
seg000:04F6 inc si
seg000:04F7
seg000:04F7 loc_104F7: ; CODE XREF: sub_10174:menu j
seg000:04F7 call clear_screen
seg000:04FA jmp maze_selector
seg000:04FA sub_10174 endp
seg000:04FA
seg000:04FD ; ---------------------------------------------------------------------------
seg000:04FD mov sp, bp
seg000:04FF pop bp
seg000:0500 pop di
seg000:0501 pop si
seg000:0502 retn
seg000:0503
seg000:0503 ; =============== S U B R O U T I N E =======================================
seg000:0503
seg000:0503 ; Attributes: bp-based frame
seg000:0503
seg000:0503 get_draw_char_xy proc near ; CODE XREF: sub_10174+2D5 p
seg000:0503 ; sub_10174+2E6 p ...
seg000:0503
seg000:0503 arg_0 = word ptr 4
seg000:0503 arg_x = word ptr 6
seg000:0503 arg_y = word ptr 8
seg000:0503
seg000:0503 push bp
seg000:0504 mov bp, sp
seg000:0506 mov ax, [bp+arg_y]
seg000:0509 mul level_size_x
seg000:050D mov bx, ax
seg000:050F mov ax, level_map
seg000:0512 add ax, [bp+arg_x]
seg000:0515 add bx, ax
seg000:0517 mov al, [bx]
seg000:0519 cbw
seg000:051A and ax, 4
seg000:051D or [bp+arg_0], ax
seg000:0520 push [bp+arg_y]
seg000:0523 push [bp+arg_x]
seg000:0526 push [bp+arg_0]
seg000:0529 call put_draw_char_xy
seg000:052C mov sp, bp
seg000:052E pop bp
seg000:052F retn
seg000:052F get_draw_char_xy endp
seg000:052F
seg000:0530
seg000:0530 ; =============== S U B R O U T I N E =======================================
seg000:0530
seg000:0530 ; Attributes: bp-based frame
seg000:0530
seg000:0530 put_draw_char_xy proc near ; CODE XREF: get_draw_char_xy+26 p
seg000:0530 ; print_level+9B p ...
seg000:0530
seg000:0530 arg_ch = word ptr 4
seg000:0530 arg_x = word ptr 6
seg000:0530 arg_y = word ptr 8
seg000:0530
seg000:0530 push bp
seg000:0531 mov bp, sp
seg000:0533 mov al, byte ptr [bp+arg_ch]
seg000:0536 push ax
seg000:0537 mov ax, [bp+arg_y]
seg000:053A mul level_size_x
seg000:053E mov bx, ax
seg000:0540 mov ax, level_map
seg000:0543 add ax, [bp+arg_x]
seg000:0546 add bx, ax
seg000:0548 pop ax
seg000:0549 mov [bx], al
seg000:054B push [bp+arg_y]
seg000:054E push [bp+arg_x]
seg000:0551 push [bp+arg_ch]
seg000:0554 call draw_symbol_center_xy
seg000:0557 mov sp, bp
seg000:0559 pop bp
seg000:055A retn
seg000:055A put_draw_char_xy endp
seg000:055A
seg000:055B
seg000:055B ; =============== S U B R O U T I N E =======================================
seg000:055B
seg000:055B ; Attributes: bp-based frame
seg000:055B
seg000:055B draw_symbol_center_xy proc near ; CODE XREF: sub_10174+355 p
seg000:055B ; put_draw_char_xy+24 p
seg000:055B
seg000:055B arg_char = word ptr 4
seg000:055B arg_x = word ptr 6
seg000:055B arg_y = word ptr 8
seg000:055B
seg000:055B push bp
seg000:055C mov bp, sp
seg000:055E mov ax, [bp+arg_y]
seg000:0561 add ax, center_y_offset
seg000:0565 push ax
seg000:0566 mov ax, [bp+arg_x]
seg000:0569 add ax, center_x_offset
seg000:056D push ax
seg000:056E call set_cursor
seg000:0571 mov sp, bp
seg000:0573 mov bx, [bp+arg_char]
seg000:0576 mov al, colors[bx]
seg000:057A cbw
seg000:057B push ax
seg000:057C mov bx, [bp+arg_char]
seg000:057F mov al, symbols[bx]
seg000:0583 cbw
seg000:0584 push ax
seg000:0585 call put_char_color
seg000:0588 mov sp, bp
seg000:058A pop bp
seg000:058B retn
seg000:058B draw_symbol_center_xy endp
seg000:058B
seg000:058C
seg000:058C ; =============== S U B R O U T I N E =======================================
seg000:058C
seg000:058C ; Attributes: bp-based frame
seg000:058C
seg000:058C draw_symbol_xy proc near ; CODE XREF: sub_10174+D5 p
seg000:058C
seg000:058C arg_char = word ptr 4
seg000:058C arg_x = word ptr 6
seg000:058C arg_y = word ptr 8
seg000:058C
seg000:058C push bp
seg000:058D mov bp, sp
seg000:058F push [bp+arg_y]
seg000:0592 push [bp+arg_x]
seg000:0595 call set_cursor
seg000:0598 mov sp, bp
seg000:059A mov bx, [bp+arg_char]
seg000:059D mov al, colors[bx]
seg000:05A1 cbw
seg000:05A2 push ax
seg000:05A3 mov bx, [bp+arg_char]
seg000:05A6 mov al, symbols[bx]
seg000:05AA cbw
seg000:05AB push ax
seg000:05AC call put_char_color
seg000:05AF mov sp, bp
seg000:05B1 pop bp
seg000:05B2 retn
seg000:05B2 draw_symbol_xy endp
seg000:05B2
seg000:05B3
seg000:05B3 ; =============== S U B R O U T I N E =======================================
seg000:05B3
seg000:05B3
seg000:05B3 no_cursor proc near ; CODE XREF: print_level+7 p
seg000:05B3 call clear_screen
seg000:05B6 retn
seg000:05B6 no_cursor endp
seg000:05B6
seg000:05B7
seg000:05B7 ; =============== S U B R O U T I N E =======================================
seg000:05B7
seg000:05B7 ; Attributes: bp-based frame
seg000:05B7
seg000:05B7 print_level proc near ; CODE XREF: sub_10174+AC p
seg000:05B7
seg000:05B7 var_current_char= byte ptr -2
seg000:05B7 var_place_char = byte ptr -1
seg000:05B7 level = word ptr 8
seg000:05B7
seg000:05B7 push si
seg000:05B8 push di
seg000:05B9 push bp
seg000:05BA mov bp, sp
seg000:05BC dec sp
seg000:05BD dec sp
seg000:05BE call no_cursor
seg000:05C1 mov bx, [bp+level]
seg000:05C4 shl bx, 1
seg000:05C6 mov ax, level_offsets[bx]
seg000:05CA add ax, offset level_01
seg000:05CD mov level_address, ax
seg000:05D0 mov bx, level_address
seg000:05D4 mov al, [bx]
seg000:05D6 cbw
seg000:05D7 mov level_size_x, ax
seg000:05DA inc level_address
seg000:05DE mov bx, level_address
seg000:05E2 mov al, [bx]
seg000:05E4 cbw
seg000:05E5 mov level_size_y, ax
seg000:05E8 inc level_address
seg000:05EC mov ax, level_size_x
seg000:05EF mul level_size_y
seg000:05F3 push ax
seg000:05F4 call malloc
seg000:05F7 pop cx
seg000:05F8 mov level_map, ax
seg000:05FB mov ax, 40
seg000:05FE sub ax, level_size_x
seg000:0602 mov bx, 2
seg000:0605 cwd
seg000:0606 idiv bx
seg000:0608 mov center_x_offset, ax
seg000:060B mov ax, 24
seg000:060E sub ax, level_size_y
seg000:0612 mov bx, 2
seg000:0615 cwd
seg000:0616 idiv bx
seg000:0618 mov center_y_offset, ax
seg000:061B mov word_127BA, 0
seg000:0621 mov word_127BE, 0
seg000:0627 mov number_of_places, 0
seg000:062D mov [bp+var_place_char], 4 ; place
seg000:0631 xor di, di
seg000:0633 jmp short loc_10660
seg000:0635 ; ---------------------------------------------------------------------------
seg000:0635
seg000:0635 loc_10635: ; CODE XREF: print_level+AD j
seg000:0635 xor si, si
seg000:0637 jmp short loc_10659
seg000:0639 ; ---------------------------------------------------------------------------
seg000:0639
seg000:0639 loc_10639: ; CODE XREF: print_level+A6 j
seg000:0639 call next_level_char
seg000:063C mov [bp+var_current_char], al
seg000:063F mov al, [bp+var_current_char]
seg000:0642 cmp al, [bp+var_place_char]
seg000:0645 jnz short loc_1064B
seg000:0647 inc number_of_places
seg000:064B
seg000:064B loc_1064B: ; CODE XREF: print_level+8E j
seg000:064B push di
seg000:064C push si
seg000:064D mov al, [bp+var_current_char]
seg000:0650 cbw
seg000:0651 push ax
seg000:0652 call put_draw_char_xy
seg000:0655 add sp, 6
seg000:0658 inc si
seg000:0659
seg000:0659 loc_10659: ; CODE XREF: print_level+80 j
seg000:0659 cmp si, level_size_x
seg000:065D jl short loc_10639
seg000:065F inc di
seg000:0660
seg000:0660 loc_10660: ; CODE XREF: print_level+7C j
seg000:0660 cmp di, level_size_y
seg000:0664 jl short loc_10635
seg000:0666 mov bx, level_address
seg000:066A mov al, [bx]
seg000:066C cbw
seg000:066D mov man_x, ax
seg000:0670 inc level_address
seg000:0674 mov bx, level_address
seg000:0678 mov al, [bx]
seg000:067A cbw
seg000:067B mov man_y, ax
seg000:067E inc level_address
seg000:0682 push man_y
seg000:0686 push man_x
seg000:068A mov ax, 3 ; man
seg000:068D push ax
seg000:068E call put_draw_char_xy
seg000:0691 add sp, 6
seg000:0694 mov sp, bp
seg000:0696 pop bp
seg000:0697 pop di
seg000:0698 pop si
seg000:0699 retn
seg000:0699 print_level endp
seg000:0699
seg000:069A
seg000:069A ; =============== S U B R O U T I N E =======================================
seg000:069A
seg000:069A
seg000:069A next_level_char proc near ; CODE XREF: print_level:loc_10639 p
seg000:069A mov ax, word_127BE
seg000:069D dec word_127BE
seg000:06A1 or ax, ax
seg000:06A3 jle short loc_106AB
seg000:06A5 mov al, byte ptr word_127B2
seg000:06A8 jmp locret_10727
seg000:06AB ; ---------------------------------------------------------------------------
seg000:06AB
seg000:06AB loc_106AB: ; CODE XREF: next_level_char+9 j
seg000:06AB call sub_10728
seg000:06AE or al, al
seg000:06B0 jz short loc_106D8
seg000:06B2 mov word_127BE, 2
seg000:06B8 call sub_10728
seg000:06BB cbw
seg000:06BC shl ax, 1
seg000:06BE shl ax, 1
seg000:06C0 add word_127BE, ax
seg000:06C4 call sub_10728
seg000:06C7 cbw
seg000:06C8 shl ax, 1
seg000:06CA add word_127BE, ax
seg000:06CE call sub_10728
seg000:06D1 cbw
seg000:06D2 add word_127BE, ax
seg000:06D6 jmp short loc_106DE
seg000:06D8 ; ---------------------------------------------------------------------------
seg000:06D8
seg000:06D8 loc_106D8: ; CODE XREF: next_level_char+16 j
seg000:06D8 mov word_127BE, 1
seg000:06DE
seg000:06DE loc_106DE: ; CODE XREF: next_level_char+3C j
seg000:06DE call sub_10728
seg000:06E1 or al, al
seg000:06E3 jz short loc_1070B
seg000:06E5 call sub_10728
seg000:06E8 or al, al
seg000:06EA jz short loc_10703
seg000:06EC call sub_10728
seg000:06EF or al, al
seg000:06F1 jz short loc_106FB
seg000:06F3 mov word_127B2, 5
seg000:06F9 jmp short loc_10701
seg000:06FB ; ---------------------------------------------------------------------------
seg000:06FB
seg000:06FB loc_106FB: ; CODE XREF: next_level_char+57 j
seg000:06FB mov word_127B2, 4
seg000:0701
seg000:0701 loc_10701: ; CODE XREF: next_level_char+5F j
seg000:0701 jmp short loc_10709
seg000:0703 ; ---------------------------------------------------------------------------
seg000:0703
seg000:0703 loc_10703: ; CODE XREF: next_level_char+50 j
seg000:0703 mov word_127B2, 1
seg000:0709
seg000:0709 loc_10709: ; CODE XREF: next_level_char:loc_10701 j
seg000:0709 jmp short loc_10720
seg000:070B ; ---------------------------------------------------------------------------
seg000:070B
seg000:070B loc_1070B: ; CODE XREF: next_level_char+49 j
seg000:070B call sub_10728
seg000:070E or al, al
seg000:0710 jz short loc_1071A
seg000:0712 mov word_127B2, 2
seg000:0718 jmp short loc_10720
seg000:071A ; ---------------------------------------------------------------------------
seg000:071A
seg000:071A loc_1071A: ; CODE XREF: next_level_char+76 j
seg000:071A mov word_127B2, 0
seg000:0720
seg000:0720 loc_10720: ; CODE XREF: next_level_char:loc_10709 j
seg000:0720 ; next_level_char+7E j
seg000:0720 dec word_127BE
seg000:0724 mov al, byte ptr word_127B2
seg000:0727
seg000:0727 locret_10727: ; CODE XREF: next_level_char+E j
seg000:0727 retn
seg000:0727 next_level_char endp
seg000:0727
seg000:0728
seg000:0728 ; =============== S U B R O U T I N E =======================================
seg000:0728
seg000:0728
seg000:0728 sub_10728 proc near ; CODE XREF: next_level_char:loc_106AB p
seg000:0728 ; next_level_char+1E p ...
seg000:0728 dec word_127BA
seg000:072C jge short loc_10742
seg000:072E mov bx, level_address
seg000:0732 mov al, [bx]
seg000:0734 cbw
seg000:0735 mov word_127B4, ax
seg000:0738 inc level_address
seg000:073C mov word_127BA, 7
seg000:0742
seg000:0742 loc_10742: ; CODE XREF: sub_10728+4 j
seg000:0742 mov ax, word_127B4
seg000:0745 mov bx, word_127BA
seg000:0749 shl bx, 1
seg000:074B test bit_masks[bx], ax
seg000:074F jz short loc_10757
seg000:0751 mov al, 1
seg000:0753 jmp short locret_1075B
seg000:0755 ; ---------------------------------------------------------------------------
seg000:0755 jmp short locret_1075B
seg000:0757 ; ---------------------------------------------------------------------------
seg000:0757
seg000:0757 loc_10757: ; CODE XREF: sub_10728+27 j
seg000:0757 mov al, 0
seg000:0759 jmp short $+2
seg000:075B
seg000:075B locret_1075B: ; CODE XREF: sub_10728+2B j
seg000:075B ; sub_10728+2D j
seg000:075B retn
seg000:075B sub_10728 endp
seg000:075B
seg000:075C
seg000:075C ; =============== S U B R O U T I N E =======================================
seg000:075C
seg000:075C ; Attributes: bp-based frame
seg000:075C
seg000:075C display_string proc near ; CODE XREF: sub_10174+1D p
seg000:075C ; sub_10174+45 p ...
seg000:075C
seg000:075C var_unused = byte ptr -2
seg000:075C current_char = byte ptr -1
seg000:075C arg_x = word ptr 4
seg000:075C arg_y = word ptr 6
seg000:075C string_ptr = word ptr 8
seg000:075C arg_color = word ptr 0Ah
seg000:075C
seg000:075C push bp
seg000:075D mov bp, sp
seg000:075F dec sp
seg000:0760 dec sp
seg000:0761
seg000:0761 display_string_loop: ; CODE XREF: display_string+30 j
seg000:0761 mov bx, [bp+string_ptr]
seg000:0764 inc [bp+string_ptr]
seg000:0767 mov al, [bx]
seg000:0769 mov [bp+current_char], al
seg000:076C or al, al
seg000:076E jz short display_string_exit
seg000:0770 push [bp+arg_y]
seg000:0773 mov ax, [bp+arg_x]
seg000:0776 inc [bp+arg_x]
seg000:0779 push ax
seg000:077A call set_cursor
seg000:077D pop cx
seg000:077E pop cx
seg000:077F push [bp+arg_color]
seg000:0782 mov al, [bp+current_char]
seg000:0785 cbw
seg000:0786 push ax
seg000:0787 call put_char_color
seg000:078A pop cx
seg000:078B pop cx
seg000:078C jmp short display_string_loop
seg000:078E ; ---------------------------------------------------------------------------
seg000:078E
seg000:078E display_string_exit: ; CODE XREF: display_string+12 j
seg000:078E mov sp, bp
seg000:0790 pop bp
seg000:0791 retn
seg000:0791 display_string endp
seg000:0791
seg000:0792
seg000:0792 ; =============== S U B R O U T I N E =======================================
seg000:0792
seg000:0792
seg000:0792 clear_screen proc near ; CODE XREF: sub_10174+A p
seg000:0792 ; sub_10174:bye_2 p ...
seg000:0792 mov ah, 0
seg000:0794 mov al, 1
seg000:0796 int 10h ; - VIDEO - SET VIDEO MODE
seg000:0796 ; AL = mode
seg000:0798 mov ah, 1
seg000:079A mov cx, 2000h
seg000:079D int 10h ; - VIDEO - SET CURSOR CHARACTERISTICS
seg000:079D ; CH bits 0-4 = start line for cursor in character cell
seg000:079D ; bits 5-6 = blink attribute
seg000:079D ; CL bits 0-4 = end line for cursor in character cell
seg000:079F retn
seg000:079F clear_screen endp
seg000:079F
seg000:07A0
seg000:07A0 ; =============== S U B R O U T I N E =======================================
seg000:07A0
seg000:07A0 ; Attributes: bp-based frame
seg000:07A0
seg000:07A0 put_char_color proc near ; CODE XREF: draw_symbol_center_xy+2A p
seg000:07A0 ; draw_symbol_xy+20 p ...
seg000:07A0
seg000:07A0 arg_ch = byte ptr 4
seg000:07A0 arg_color = byte ptr 6
seg000:07A0
seg000:07A0 push bp
seg000:07A1 mov bp, sp
seg000:07A3 push si
seg000:07A4 mov ah, 9
seg000:07A6 mov al, [bp+arg_ch]
seg000:07A9 mov bl, [bp+arg_color]
seg000:07AC xor bh, bh
seg000:07AE mov cx, 1
seg000:07B1 int 10h ; - VIDEO - WRITE ATTRIBUTES/CHARACTERS AT CURSOR POSITION
seg000:07B1 ; AL = character, BH = display page
seg000:07B1 ; BL = attributes of character (alpha modes) or color (graphics modes)
seg000:07B1 ; CX = number of times to write character
seg000:07B3 pop si
seg000:07B4 mov sp, bp
seg000:07B6 pop bp
seg000:07B7 retn
seg000:07B7 put_char_color endp
seg000:07B7
seg000:07B8
seg000:07B8 ; =============== S U B R O U T I N E =======================================
seg000:07B8
seg000:07B8 ; Attributes: bp-based frame
seg000:07B8
seg000:07B8 set_cursor proc near ; CODE XREF: draw_symbol_center_xy+13 p
seg000:07B8 ; draw_symbol_xy+9 p ...
seg000:07B8
seg000:07B8 arg_0 = byte ptr 4
seg000:07B8 arg_2 = byte ptr 6
seg000:07B8
seg000:07B8 push bp
seg000:07B9 mov bp, sp
seg000:07BB mov ah, 2
seg000:07BD mov dl, [bp+arg_0]
seg000:07C0 mov dh, [bp+arg_2]
seg000:07C3 xor bh, bh
seg000:07C5 int 10h ; - VIDEO - SET CURSOR POSITION
seg000:07C5 ; DH,DL = row, column (0,0 = upper left)
seg000:07C5 ; BH = page number
seg000:07C7 mov sp, bp
seg000:07C9 pop bp
seg000:07CA retn
seg000:07CA set_cursor endp
seg000:07CA
seg000:07CB ; ---------------------------------------------------------------------------
seg000:07CB push bp
seg000:07CC mov bp, sp
seg000:07CE cmp word ptr unk_1269A, 20h ; ' '
seg000:07D3 jnz short loc_107DA
seg000:07D5 mov ax, 1
seg000:07D8 jmp short loc_107ED
seg000:07DA ; ---------------------------------------------------------------------------
seg000:07DA
seg000:07DA loc_107DA: ; CODE XREF: seg000:07D3 j
seg000:07DA mov ax, [bp+4]
seg000:07DD mov bx, word ptr unk_1269A
seg000:07E1 shl bx, 1
seg000:07E3 mov word_127C0[bx], ax
seg000:07E7 inc word ptr unk_1269A
seg000:07EB xor ax, ax
seg000:07ED
seg000:07ED loc_107ED: ; CODE XREF: seg000:07D8 j
seg000:07ED pop bp
seg000:07EE retn
seg000:07EF
seg000:07EF ; =============== S U B R O U T I N E =======================================
seg000:07EF
seg000:07EF ; Attributes: bp-based frame
seg000:07EF
seg000:07EF sub_107EF proc near ; CODE XREF: sub_1083D+6 p
seg000:07EF
seg000:07EF arg_0 = word ptr 4
seg000:07EF
seg000:07EF push bp
seg000:07F0 mov bp, sp
seg000:07F2 mov ax, [bp+arg_0]
seg000:07F5 mov dx, sp
seg000:07F7 sub dx, 100h
seg000:07FB cmp ax, dx
seg000:07FD jnb short loc_10804
seg000:07FF mov off_1121C, ax
seg000:0802 jmp short loc_1080D
seg000:0804 ; ---------------------------------------------------------------------------
seg000:0804
seg000:0804 loc_10804: ; CODE XREF: sub_107EF+E j
seg000:0804 mov word_11218, 8
seg000:080A mov ax, 0FFFFh
seg000:080D
seg000:080D loc_1080D: ; CODE XREF: sub_107EF+13 j
seg000:080D pop bp
seg000:080E retn
seg000:080E sub_107EF endp
seg000:080E
seg000:080F
seg000:080F ; =============== S U B R O U T I N E =======================================
seg000:080F
seg000:080F ; Attributes: bp-based frame
seg000:080F
seg000:080F sub_1080F proc near ; CODE XREF: seg000:084F p
seg000:080F ; free+6E p ...
seg000:080F
seg000:080F arg_0 = word ptr 4
seg000:080F
seg000:080F push bp
seg000:0810 mov bp, sp
seg000:0812 mov ax, off_1121C
seg000:0815 mov dx, [bp+arg_0]
seg000:0818 add ax, dx
seg000:081A jnb short loc_10820
seg000:081C or dx, dx
seg000:081E jns short loc_10832
seg000:0820
seg000:0820 loc_10820: ; CODE XREF: sub_1080F+B j
seg000:0820 mov cx, ax
seg000:0822 add cx, 100h
seg000:0826 jb short loc_10832
seg000:0828 cmp cx, sp
seg000:082A jnb short loc_10832
seg000:082C xchg ax, off_1121C
seg000:0830 jmp short loc_1083B
seg000:0832 ; ---------------------------------------------------------------------------
seg000:0832
seg000:0832 loc_10832: ; CODE XREF: sub_1080F+F j
seg000:0832 ; sub_1080F+17 j ...
seg000:0832 mov word_11218, 8
seg000:0838 mov ax, 0FFFFh
seg000:083B
seg000:083B loc_1083B: ; CODE XREF: sub_1080F+21 j
seg000:083B pop bp
seg000:083C retn
seg000:083C sub_1080F endp
seg000:083C
seg000:083D
seg000:083D ; =============== S U B R O U T I N E =======================================
seg000:083D
seg000:083D ; Attributes: bp-based frame
seg000:083D
seg000:083D sub_1083D proc near ; CODE XREF: free+8F p
seg000:083D
seg000:083D arg_0 = word ptr 4
seg000:083D
seg000:083D push bp
seg000:083E mov bp, sp
seg000:0840 push [bp+arg_0]
seg000:0843 call sub_107EF
seg000:0846 pop cx
seg000:0847 pop bp
seg000:0848 retn
seg000:0848 sub_1083D endp
seg000:0848
seg000:0849 ; ---------------------------------------------------------------------------
seg000:0849 push bp
seg000:084A mov bp, sp
seg000:084C push word ptr [bp+4]
seg000:084F call sub_1080F
seg000:0852 pop cx
seg000:0853 pop bp
seg000:0854 retn
seg000:0855
seg000:0855 ; =============== S U B R O U T I N E =======================================
seg000:0855
seg000:0855 ; Attributes: noreturn
seg000:0855
seg000:0855 sub_10855 proc near ; CODE XREF: sub_10B50 j
seg000:0855 ; DATA XREF: dseg:off_12780 o
seg000:0855 mov cx, 2Ch ; ','
seg000:0858 nop
seg000:0859 mov dx, 150Ch
seg000:085C jmp short loc_10867
seg000:085E ; ---------------------------------------------------------------------------
seg000:085E mov cx, 2Bh ; '+'
seg000:0861 nop
seg000:0862 mov dx, (offset aPrintfFloatingPointFormats+2Ch)
seg000:0865 jmp short $+2
seg000:0867
seg000:0867 loc_10867: ; CODE XREF: sub_10855+7 j
seg000:0867 mov ah, 40h ; '@'
seg000:0869 mov bx, 2
seg000:086C int 21h ; DOS - 2+ - WRITE TO FILE WITH HANDLE
seg000:086C ; BX = file handle, CX = number of bytes to write, DS:DX -> buffer
seg000:086E jmp abort
seg000:086E sub_10855 endp
seg000:086E
seg000:0871
seg000:0871 ; =============== S U B R O U T I N E =======================================
seg000:0871
seg000:0871
seg000:0871 sub_10871 proc far ; CODE XREF: start+94 p
seg000:0871 ; sub_1010B+F p
seg000:0871 ; DATA XREF: ...
seg000:0871 mov word_1121A, 0
seg000:0877 retf
seg000:0877 sub_10871 endp
seg000:0877
seg000:0878 ; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
seg000:0879
seg000:0879 ; =============== S U B R O U T I N E =======================================
seg000:0879
seg000:0879 ; Attributes: noreturn bp-based frame
seg000:0879
seg000:0879 exit proc near ; CODE XREF: start+108 p
seg000:0879 ; sub_10174+A5 p ...
seg000:0879
seg000:0879 arg_0 = word ptr 4
seg000:0879
seg000:0879 push bp
seg000:087A mov bp, sp
seg000:087C
seg000:087C loc_1087C: ; CODE XREF: exit+18 j
seg000:087C mov ax, word ptr unk_1269A
seg000:087F dec word ptr unk_1269A
seg000:0883 or ax, ax
seg000:0885 jz short loc_10893
seg000:0887 mov bx, word ptr unk_1269A
seg000:088B shl bx, 1
seg000:088D call word ptr [bx+1630h]
seg000:0891 jmp short loc_1087C
seg000:0893 ; ---------------------------------------------------------------------------
seg000:0893
seg000:0893 loc_10893: ; CODE XREF: exit+C j
seg000:0893 call word_126F4
seg000:0897 call word_126F6
seg000:089B call word_126F8
seg000:089F push [bp+arg_0]
seg000:08A2 call sub_1010B
seg000:08A2 exit endp
seg000:08A2
seg000:08A5 ; ---------------------------------------------------------------------------
seg000:08A5 pop cx
seg000:08A6 pop bp
seg000:08A7 retn
seg000:08A8
seg000:08A8 ; =============== S U B R O U T I N E =======================================
seg000:08A8
seg000:08A8 ; Attributes: bp-based frame
seg000:08A8
seg000:08A8 free proc near ; CODE XREF: sub_10174+362 p
seg000:08A8
seg000:08A8 arg_0 = word ptr 8
seg000:08A8
seg000:08A8 push si
seg000:08A9 push di
seg000:08AA push bp
seg000:08AB mov bp, sp
seg000:08AD mov di, [bp+arg_0]
seg000:08B0 add di, 0FFFEh
seg000:08B3 mov si, word ptr unk_12700
seg000:08B7 jmp short loc_108CE
seg000:08B9 ; ---------------------------------------------------------------------------
seg000:08B9
seg000:08B9 loc_108B9: ; CODE XREF: free+28 j
seg000:08B9 ; free+2F j
seg000:08B9 mov ax, [si+2]
seg000:08BC cmp ax, si
seg000:08BE ja short loc_108CB
seg000:08C0 cmp di, si
seg000:08C2 ja short loc_108D9
seg000:08C4 mov ax, [si+2]
seg000:08C7 cmp ax, di
seg000:08C9 ja short loc_108D9
seg000:08CB
seg000:08CB loc_108CB: ; CODE XREF: free+16 j
seg000:08CB mov si, [si+2]
seg000:08CE
seg000:08CE loc_108CE: ; CODE XREF: free+F j
seg000:08CE cmp di, si
seg000:08D0 jbe short loc_108B9
seg000:08D2 mov ax, [si+2]
seg000:08D5 cmp ax, di
seg000:08D7 jbe short loc_108B9
seg000:08D9
seg000:08D9 loc_108D9: ; CODE XREF: free+1A j
seg000:08D9 ; free+21 j
seg000:08D9 mov ax, [di]
seg000:08DB add ax, di
seg000:08DD cmp ax, [si+2]
seg000:08E0 jnz short loc_108F4
seg000:08E2 mov bx, [si+2]
seg000:08E5 mov ax, [bx]
seg000:08E7 add [di], ax
seg000:08E9 mov bx, [si+2]
seg000:08EC mov ax, [bx+2]
seg000:08EF mov [di+2], ax
seg000:08F2 jmp short loc_108FA
seg000:08F4 ; ---------------------------------------------------------------------------
seg000:08F4
seg000:08F4 loc_108F4: ; CODE XREF: free+38 j
seg000:08F4 mov ax, [si+2]
seg000:08F7 mov [di+2], ax
seg000:08FA
seg000:08FA loc_108FA: ; CODE XREF: free+4A j
seg000:08FA mov ax, [si]
seg000:08FC add ax, si
seg000:08FE cmp ax, di
seg000:0900 jnz short loc_10910
seg000:0902 mov ax, [di]
seg000:0904 add [si], ax
seg000:0906 mov ax, [di+2]
seg000:0909 mov [si+2], ax
seg000:090C mov di, si
seg000:090E jmp short loc_10913
seg000:0910 ; ---------------------------------------------------------------------------
seg000:0910
seg000:0910 loc_10910: ; CODE XREF: free+58 j
seg000:0910 mov [si+2], di
seg000:0913
seg000:0913 loc_10913: ; CODE XREF: free+66 j
seg000:0913 xor ax, ax
seg000:0915 push ax
seg000:0916 call sub_1080F
seg000:0919 pop cx
seg000:091A mov dx, [di]
seg000:091C add dx, di
seg000:091E cmp ax, dx
seg000:0920 jnz short loc_1093B
seg000:0922 mov si, di
seg000:0924 jmp short loc_10929
seg000:0926 ; ---------------------------------------------------------------------------
seg000:0926
seg000:0926 loc_10926: ; CODE XREF: free+86 j
seg000:0926 mov si, [si+2]
seg000:0929
seg000:0929 loc_10929: ; CODE XREF: free+7C j
seg000:0929 mov ax, [si+2]
seg000:092C cmp ax, di
seg000:092E jnz short loc_10926
seg000:0930 mov ax, [di+2]
seg000:0933 mov [si+2], ax
seg000:0936 push di
seg000:0937 call sub_1083D
seg000:093A pop cx
seg000:093B
seg000:093B loc_1093B: ; CODE XREF: free+78 j
seg000:093B mov word ptr unk_12700, si
seg000:093F pop bp
seg000:0940 pop di
seg000:0941 pop si
seg000:0942 retn
seg000:0942 free endp
seg000:0942
seg000:0943
seg000:0943 ; =============== S U B R O U T I N E =======================================
seg000:0943
seg000:0943
seg000:0943 keyin proc near ; CODE XREF: sub_10174+4B p
seg000:0943 ; sub_10174:loc_10308 p ...
seg000:0943 mov ax, 700h
seg000:0946 xchg al, byte ptr unk_126FA
seg000:094A or al, al
seg000:094C jnz short loc_10950
seg000:094E int 21h ; DOS - DIRECT STDIN INPUT, NO ECHO
seg000:0950
seg000:0950 loc_10950: ; CODE XREF: keyin+9 j
seg000:0950 xor ah, ah
seg000:0952 retn
seg000:0952 keyin endp
seg000:0952
seg000:0953 ; ---------------------------------------------------------------------------
seg000:0953 mov ax, 100h
seg000:0956 xchg al, byte ptr unk_126FA
seg000:095A or al, al
seg000:095C jnz short loc_10960
seg000:095E int 21h ; DOS - KEYBOARD INPUT
seg000:095E ; Return: AL = character read
seg000:0960
seg000:0960 loc_10960: ; CODE XREF: seg000:095C j
seg000:0960 xor ah, ah
seg000:0962 retn
seg000:0963 ; ---------------------------------------------------------------------------
seg000:0963 push bp
seg000:0964 mov bp, sp
seg000:0966 cmp byte ptr unk_126FA, 0
seg000:096B jz short loc_10972
seg000:096D mov ax, 0FFFFh
seg000:0970 jmp short loc_1097A
seg000:0972 ; ---------------------------------------------------------------------------
seg000:0972
seg000:0972 loc_10972: ; CODE XREF: seg000:096B j
seg000:0972 mov al, [bp+4]
seg000:0975 mov byte ptr unk_126FA, al
seg000:0978 xor ah, ah
seg000:097A
seg000:097A loc_1097A: ; CODE XREF: seg000:0970 j
seg000:097A pop bp
seg000:097B retn
seg000:097C
seg000:097C ; =============== S U B R O U T I N E =======================================
seg000:097C
seg000:097C ; Attributes: bp-based frame
seg000:097C
seg000:097C sub_1097C proc near ; CODE XREF: seg000:0A1B p
seg000:097C ; seg000:0A35 p ...
seg000:097C
seg000:097C var_22 = byte ptr -22h
seg000:097C arg_0 = byte ptr 8
seg000:097C arg_2 = byte ptr 0Ah
seg000:097C arg_4 = word ptr 0Ch
seg000:097C arg_6 = word ptr 0Eh
seg000:097C arg_8 = word ptr 10h
seg000:097C arg_A = word ptr 12h
seg000:097C
seg000:097C push si
seg000:097D push di
seg000:097E push bp
seg000:097F mov bp, sp
seg000:0981 sub sp, 22h
seg000:0984 push es
seg000:0985 mov di, [bp+arg_6]
seg000:0988 push ds
seg000:0989 pop es
seg000:098A assume es:dseg
seg000:098A mov bx, [bp+arg_4]
seg000:098D cmp bx, 24h ; '$'
seg000:0990 ja short loc_109EA
seg000:0992 cmp bl, 2
seg000:0995 jb short loc_109EA
seg000:0997 mov ax, [bp+arg_8]
seg000:099A mov cx, [bp+arg_A]
seg000:099D or cx, cx
seg000:099F jge short loc_109B2
seg000:09A1 cmp [bp+arg_2], 0
seg000:09A5 jz short loc_109B2
seg000:09A7 mov byte ptr [di], 2Dh ; '-'
seg000:09AA inc di
seg000:09AB neg cx
seg000:09AD neg ax
seg000:09AF sbb cx, 0
seg000:09B2
seg000:09B2 loc_109B2: ; CODE XREF: sub_1097C+23 j
seg000:09B2 ; sub_1097C+29 j
seg000:09B2 lea si, [bp+var_22]
seg000:09B5 jcxz short loc_109C6
seg000:09B7
seg000:09B7 loc_109B7: ; CODE XREF: sub_1097C+48 j
seg000:09B7 xchg ax, cx
seg000:09B8 sub dx, dx
seg000:09BA div bx
seg000:09BC xchg ax, cx
seg000:09BD div bx
seg000:09BF mov [si], dl
seg000:09C1 inc si
seg000:09C2 jcxz short loc_109CD
seg000:09C4 jmp short loc_109B7
seg000:09C6 ; ---------------------------------------------------------------------------
seg000:09C6
seg000:09C6 loc_109C6: ; CODE XREF: sub_1097C+39 j
seg000:09C6 ; sub_1097C+53 j
seg000:09C6 sub dx, dx
seg000:09C8 div bx
seg000:09CA mov [si], dl
seg000:09CC inc si
seg000:09CD
seg000:09CD loc_109CD: ; CODE XREF: sub_1097C+46 j
seg000:09CD or ax, ax
seg000:09CF jnz short loc_109C6
seg000:09D1 lea cx, [bp+var_22]
seg000:09D4 neg cx
seg000:09D6 add cx, si
seg000:09D8 cld
seg000:09D9
seg000:09D9 loc_109D9: ; CODE XREF: sub_1097C+6C j
seg000:09D9 dec si
seg000:09DA mov al, [si]
seg000:09DC sub al, 0Ah
seg000:09DE jnb short loc_109E4
seg000:09E0 add al, 3Ah ; ':'
seg000:09E2 jmp short loc_109E7
seg000:09E4 ; ---------------------------------------------------------------------------
seg000:09E4
seg000:09E4 loc_109E4: ; CODE XREF: sub_1097C+62 j
seg000:09E4 add al, [bp+arg_0]
seg000:09E7
seg000:09E7 loc_109E7: ; CODE XREF: sub_1097C+66 j
seg000:09E7 stosb
seg000:09E8 loop loc_109D9
seg000:09EA
seg000:09EA loc_109EA: ; CODE XREF: sub_1097C+14 j
seg000:09EA ; sub_1097C+19 j
seg000:09EA mov al, 0
seg000:09EC stosb
seg000:09ED pop es
seg000:09EE assume es:nothing
seg000:09EE mov ax, [bp+arg_6]
seg000:09F1 mov sp, bp
seg000:09F3 pop bp
seg000:09F4 pop di
seg000:09F5 pop si
seg000:09F6 retn 0Ch
seg000:09F6 sub_1097C endp
seg000:09F6
seg000:09F9 ; ---------------------------------------------------------------------------
seg000:09F9 push bp
seg000:09FA mov bp, sp
seg000:09FC cmp word ptr [bp+8], 0Ah
seg000:0A00 jnz short loc_10A08
seg000:0A02 mov ax, [bp+4]
seg000:0A05 cwd
seg000:0A06 jmp short loc_10A0D
seg000:0A08 ; ---------------------------------------------------------------------------
seg000:0A08
seg000:0A08 loc_10A08: ; CODE XREF: seg000:0A00 j
seg000:0A08 mov ax, [bp+4]
seg000:0A0B xor dx, dx
seg000:0A0D
seg000:0A0D loc_10A0D: ; CODE XREF: seg000:0A06 j
seg000:0A0D push dx
seg000:0A0E push ax
seg000:0A0F push word ptr [bp+6]
seg000:0A12 push word ptr [bp+8]
seg000:0A15 mov al, 1
seg000:0A17 push ax
seg000:0A18 mov al, 61h ; 'a'
seg000:0A1A push ax
seg000:0A1B call sub_1097C
seg000:0A1E pop bp
seg000:0A1F retn
seg000:0A20 ; ---------------------------------------------------------------------------
seg000:0A20 push bp
seg000:0A21 mov bp, sp
seg000:0A23 push word ptr [bp+6]
seg000:0A26 push word ptr [bp+4]
seg000:0A29 push word ptr [bp+8]
seg000:0A2C push word ptr [bp+0Ah]
seg000:0A2F mov al, 0
seg000:0A31 push ax
seg000:0A32 mov al, 61h ; 'a'
seg000:0A34 push ax
seg000:0A35 call sub_1097C
seg000:0A38 pop bp
seg000:0A39 retn
seg000:0A3A ; ---------------------------------------------------------------------------
seg000:0A3A push bp
seg000:0A3B mov bp, sp
seg000:0A3D push word ptr [bp+6]
seg000:0A40 push word ptr [bp+4]
seg000:0A43 push word ptr [bp+8]
seg000:0A46 push word ptr [bp+0Ah]
seg000:0A49 cmp word ptr [bp+0Ah], 0Ah
seg000:0A4D jnz short loc_10A54
seg000:0A4F mov ax, 1
seg000:0A52 jmp short loc_10A56
seg000:0A54 ; ---------------------------------------------------------------------------
seg000:0A54
seg000:0A54 loc_10A54: ; CODE XREF: seg000:0A4D j
seg000:0A54 xor ax, ax
seg000:0A56
seg000:0A56 loc_10A56: ; CODE XREF: seg000:0A52 j
seg000:0A56 push ax
seg000:0A57 mov al, 61h ; 'a'
seg000:0A59 push ax
seg000:0A5A call sub_1097C
seg000:0A5D pop bp
seg000:0A5E retn
seg000:0A5F
seg000:0A5F ; =============== S U B R O U T I N E =======================================
seg000:0A5F
seg000:0A5F ; Attributes: bp-based frame
seg000:0A5F
seg000:0A5F malloc proc near ; CODE XREF: print_level+3D p
seg000:0A5F ; sub_10C43+5 p ...
seg000:0A5F
seg000:0A5F var_4 = word ptr -4
seg000:0A5F var_2 = word ptr -2
seg000:0A5F arg_0 = word ptr 8
seg000:0A5F
seg000:0A5F push si
seg000:0A60 push di
seg000:0A61 push bp
seg000:0A62 mov bp, sp
seg000:0A64 sub sp, 4
seg000:0A67 mov di, [bp+arg_0]
seg000:0A6A add di, 4
seg000:0A6D and di, 0FFFEh
seg000:0A71 mov ax, word ptr unk_12700
seg000:0A74 mov [bp+var_4], ax
seg000:0A77 mov bx, ax
seg000:0A79 mov si, [bx+2]
seg000:0A7C
seg000:0A7C loc_10A7C: ; CODE XREF: malloc+57 j
seg000:0A7C mov ax, [si]
seg000:0A7E cmp ax, di
seg000:0A80 jb short loc_10AAA
seg000:0A82 mov ax, [si]
seg000:0A84 mov dx, di
seg000:0A86 add dx, 4
seg000:0A89 cmp ax, dx
seg000:0A8B ja short loc_10A98
seg000:0A8D mov ax, [si+2]
seg000:0A90 mov bx, [bp+var_4]
seg000:0A93 mov [bx+2], ax
seg000:0A96 jmp short loc_10AA2
seg000:0A98 ; ---------------------------------------------------------------------------
seg000:0A98
seg000:0A98 loc_10A98: ; CODE XREF: malloc+2C j
seg000:0A98 sub [si], di
seg000:0A9A mov ax, [si]
seg000:0A9C add ax, si
seg000:0A9E mov si, ax
seg000:0AA0 mov [si], di
seg000:0AA2
seg000:0AA2 loc_10AA2: ; CODE XREF: malloc+37 j
seg000:0AA2 mov ax, [bp+var_4]
seg000:0AA5 mov word ptr unk_12700, ax
seg000:0AA8 jmp short loc_10ACE
seg000:0AAA ; ---------------------------------------------------------------------------
seg000:0AAA
seg000:0AAA loc_10AAA: ; CODE XREF: malloc+21 j
seg000:0AAA cmp si, word ptr unk_12700
seg000:0AAE jz short loc_10AB8
seg000:0AB0 mov [bp+var_4], si
seg000:0AB3 mov si, [si+2]
seg000:0AB6 jmp short loc_10A7C
seg000:0AB8 ; ---------------------------------------------------------------------------
seg000:0AB8
seg000:0AB8 loc_10AB8: ; CODE XREF: malloc+4F j
seg000:0AB8 push di
seg000:0AB9 call sub_1080F
seg000:0ABC pop cx
seg000:0ABD mov [bp+var_2], ax
seg000:0AC0 cmp ax, 0FFFFh
seg000:0AC3 jnz short loc_10AC9
seg000:0AC5 xor ax, ax
seg000:0AC7 jmp short loc_10AD3
seg000:0AC9 ; ---------------------------------------------------------------------------
seg000:0AC9
seg000:0AC9 loc_10AC9: ; CODE XREF: malloc+64 j
seg000:0AC9 mov si, [bp+var_2]
seg000:0ACC mov [si], di
seg000:0ACE
seg000:0ACE loc_10ACE: ; CODE XREF: malloc+49 j
seg000:0ACE mov ax, si
seg000:0AD0 add ax, 2
seg000:0AD3
seg000:0AD3 loc_10AD3: ; CODE XREF: malloc+68 j
seg000:0AD3 mov sp, bp
seg000:0AD5 pop bp
seg000:0AD6 pop di
seg000:0AD7 pop si
seg000:0AD8 retn
seg000:0AD8 malloc endp
seg000:0AD8
seg000:0AD9
seg000:0AD9 ; =============== S U B R O U T I N E =======================================
seg000:0AD9
seg000:0AD9 ; Attributes: bp-based frame
seg000:0AD9
seg000:0AD9 sub_10AD9 proc near ; CODE XREF: seg000:0C9B p
seg000:0AD9
seg000:0AD9 arg_0 = word ptr 4
seg000:0AD9 arg_2 = word ptr 6
seg000:0AD9 arg_4 = word ptr 8
seg000:0AD9
seg000:0AD9 push bp
seg000:0ADA mov bp, sp
seg000:0ADC push [bp+arg_4]
seg000:0ADF push [bp+arg_0]
seg000:0AE2 push [bp+arg_2]
seg000:0AE5 call sub_10AEF
seg000:0AE8 mov sp, bp
seg000:0AEA mov ax, [bp+arg_0]
seg000:0AED pop bp
seg000:0AEE retn
seg000:0AEE sub_10AD9 endp
seg000:0AEE
seg000:0AEF
seg000:0AEF ; =============== S U B R O U T I N E =======================================
seg000:0AEF
seg000:0AEF ; Attributes: bp-based frame
seg000:0AEF
seg000:0AEF sub_10AEF proc near ; CODE XREF: sub_10AD9+C p
seg000:0AEF ; seg000:0B46 p
seg000:0AEF
seg000:0AEF arg_0 = word ptr 8
seg000:0AEF arg_2 = word ptr 0Ah
seg000:0AEF arg_4 = word ptr 0Ch
seg000:0AEF
seg000:0AEF push si
seg000:0AF0 push di
seg000:0AF1 push bp
seg000:0AF2 mov bp, sp
seg000:0AF4 mov ax, [bp+arg_0]
seg000:0AF7 cmp ax, [bp+arg_2]
seg000:0AFA jnb short loc_10B02
seg000:0AFC std
seg000:0AFD mov ax, 1
seg000:0B00 jmp short loc_10B05
seg000:0B02 ; ---------------------------------------------------------------------------
seg000:0B02
seg000:0B02 loc_10B02: ; CODE XREF: sub_10AEF+B j
seg000:0B02 cld
seg000:0B03 xor ax, ax
seg000:0B05
seg000:0B05 loc_10B05: ; CODE XREF: sub_10AEF+11 j
seg000:0B05 mov si, [bp+arg_0]
seg000:0B08 mov di, [bp+arg_2]
seg000:0B0B mov cx, ds
seg000:0B0D mov es, cx
seg000:0B0F assume es:dseg
seg000:0B0F mov cx, [bp+arg_4]
seg000:0B12 or ax, ax
seg000:0B14 jz short loc_10B1C
seg000:0B16 add si, cx
seg000:0B18 dec si
seg000:0B19 add di, cx
seg000:0B1B dec di
seg000:0B1C
seg000:0B1C loc_10B1C: ; CODE XREF: sub_10AEF+25 j
seg000:0B1C test di, 1
seg000:0B20 jz short loc_10B26
seg000:0B22 jcxz short loc_10B35
seg000:0B24 movsb
seg000:0B25 dec cx
seg000:0B26
seg000:0B26 loc_10B26: ; CODE XREF: sub_10AEF+31 j
seg000:0B26 sub si, ax
seg000:0B28 sub di, ax
seg000:0B2A shr cx, 1
seg000:0B2C rep movsw
seg000:0B2E jnb short loc_10B35
seg000:0B30 add si, ax
seg000:0B32 add di, ax
seg000:0B34 movsb
seg000:0B35
seg000:0B35 loc_10B35: ; CODE XREF: sub_10AEF+33 j
seg000:0B35 ; sub_10AEF+3F j
seg000:0B35 cld
seg000:0B36 pop bp
seg000:0B37 pop di
seg000:0B38 pop si
seg000:0B39 retn
seg000:0B39 sub_10AEF endp
seg000:0B39
seg000:0B3A ; ---------------------------------------------------------------------------
seg000:0B3A push bp
seg000:0B3B mov bp, sp
seg000:0B3D push word ptr [bp+8]
seg000:0B40 push word ptr [bp+4]
seg000:0B43 push word ptr [bp+6]
seg000:0B46 call sub_10AEF
seg000:0B49 mov sp, bp
seg000:0B4B mov ax, [bp+4]
seg000:0B4E pop bp
seg000:0B4F retn
seg000:0B50
seg000:0B50 ; =============== S U B R O U T I N E =======================================
seg000:0B50
seg000:0B50 ; Attributes: thunk
seg000:0B50
seg000:0B50 sub_10B50 proc near ; CODE XREF: printf+2C1 p
seg000:0B50 jmp off_12780
seg000:0B50 sub_10B50 endp
seg000:0B50
seg000:0B50 ; ---------------------------------------------------------------------------
seg000:0B54 word_10B54 dw 0 ; DATA XREF: sub_10B5A w
seg000:0B54 ; sub_10B5A+E4 r
seg000:0B56 word_10B56 dw 0 ; DATA XREF: sub_10B5A+5 w
seg000:0B56 ; sub_10B5A+DF r
seg000:0B58 db 2 dup(0)
seg000:0B5A
seg000:0B5A ; =============== S U B R O U T I N E =======================================
seg000:0B5A
seg000:0B5A
seg000:0B5A sub_10B5A proc near ; CODE XREF: start+E1 p
seg000:0B5A
seg000:0B5A ; FUNCTION CHUNK AT seg000:0BC2 SIZE 00000081 BYTES
seg000:0B5A
seg000:0B5A pop cs:word_10B54
seg000:0B5F mov cs:word_10B56, ds
seg000:0B64 cld
seg000:0B65 mov es, word_11214
seg000:0B69 assume es:nothing
seg000:0B69 mov si, 80h ; '€'
seg000:0B6C xor ax, ax
seg000:0B6E mov bx, ax
seg000:0B70 mov dx, ax
seg000:0B72 mov cx, ax
seg000:0B74 lods byte ptr es:[si]
seg000:0B76 mov di, si
seg000:0B78 xchg ax, bx
seg000:0B79 mov es:[bx+di], al
seg000:0B7C inc bx
seg000:0B7D xchg bx, cx
seg000:0B7F
seg000:0B7F loc_10B7F: ; CODE XREF: sub_10B5A+37 j
seg000:0B7F ; sub_10B5A+3B j
seg000:0B7F call sub_10B97
seg000:0B82 ja short loc_10B8B
seg000:0B84
seg000:0B84 loc_10B84: ; CODE XREF: sub_10B5A+2F j
seg000:0B84 jb short loc_10BC5
seg000:0B86 call sub_10B97
seg000:0B89 ja short loc_10B84
seg000:0B8B
seg000:0B8B loc_10B8B: ; CODE XREF: sub_10B5A+28 j
seg000:0B8B cmp al, 20h ; ' '
seg000:0B8D jz short loc_10B93
seg000:0B8F cmp al, 9
seg000:0B91 jnz short loc_10B7F
seg000:0B93
seg000:0B93 loc_10B93: ; CODE XREF: sub_10B5A+33 j
seg000:0B93 xor al, al
seg000:0B95 jmp short loc_10B7F
seg000:0B95 sub_10B5A endp ; sp-analysis failed
seg000:0B95
seg000:0B97
seg000:0B97 ; =============== S U B R O U T I N E =======================================
seg000:0B97
seg000:0B97
seg000:0B97 sub_10B97 proc near ; CODE XREF: sub_10B5A:loc_10B7F p
seg000:0B97 ; sub_10B5A+2C p
seg000:0B97 or ax, ax
seg000:0B99 jz short loc_10BA2
seg000:0B9B inc dx
seg000:0B9C stosb
seg000:0B9D or al, al
seg000:0B9F jnz short loc_10BA2
seg000:0BA1 inc bx
seg000:0BA2
seg000:0BA2 loc_10BA2: ; CODE XREF: sub_10B97+2 j
seg000:0BA2 ; sub_10B97+8 j
seg000:0BA2 xchg ah, al
seg000:0BA4 xor al, al
seg000:0BA6 stc
seg000:0BA7 jcxz short locret_10BC1
seg000:0BA9 lods byte ptr es:[si]
seg000:0BAB dec cx
seg000:0BAC sub al, 22h ; '"'
seg000:0BAE jz short locret_10BC1
seg000:0BB0 add al, 22h ; '"'
seg000:0BB2 cmp al, 5Ch ; '\'
seg000:0BB4 jnz short loc_10BBF
seg000:0BB6 cmp byte ptr es:[si], 22h ; '"'
seg000:0BBA jnz short loc_10BBF
seg000:0BBC lods byte ptr es:[si]
seg000:0BBE dec cx
seg000:0BBF
seg000:0BBF loc_10BBF: ; CODE XREF: sub_10B97+1D j
seg000:0BBF ; sub_10B97+23 j
seg000:0BBF or si, si
seg000:0BC1
seg000:0BC1 locret_10BC1: ; CODE XREF: sub_10B97+10 j
seg000:0BC1 ; sub_10B97+17 j
seg000:0BC1 retn
seg000:0BC1 sub_10B97 endp
seg000:0BC1
seg000:0BC2 ; ---------------------------------------------------------------------------
seg000:0BC2 ; START OF FUNCTION CHUNK FOR sub_10B5A
seg000:0BC2
seg000:0BC2 loc_10BC2: ; CODE XREF: sub_10B5A+88 j
seg000:0BC2 jmp abort
seg000:0BC5 ; ---------------------------------------------------------------------------
seg000:0BC5
seg000:0BC5 loc_10BC5: ; CODE XREF: sub_10B5A:loc_10B84 j
seg000:0BC5 mov bp, es
seg000:0BC7 mov si, word_1120E
seg000:0BCB add si, 2
seg000:0BCE mov cx, 1
seg000:0BD1 cmp byte ptr word_11216, 3
seg000:0BD6 jb short loc_10BE7
seg000:0BD8 mov es, word_11210
seg000:0BDC mov di, si
seg000:0BDE mov cl, 7Fh ; ''
seg000:0BE0 repne scasb
seg000:0BE2 jcxz short loc_10BC2
seg000:0BE4 xor cl, 7Fh
seg000:0BE7
seg000:0BE7 loc_10BE7: ; CODE XREF: sub_10B5A+7C j
seg000:0BE7 inc bx
seg000:0BE8 mov word_11208, bx
seg000:0BEC inc bx
seg000:0BED mov ax, cx
seg000:0BEF add ax, dx
seg000:0BF1 add bx, bx
seg000:0BF3 add ax, 1
seg000:0BF6 and ax, 0FFFEh
seg000:0BF9 add bx, ax
seg000:0BFB mov di, sp
seg000:0BFD sub di, ax
seg000:0BFF sub sp, bx
seg000:0C01 xchg bx, bp
seg000:0C03 mov bp, sp
seg000:0C05 mov word_1120A, sp
seg000:0C09 mov ax, ss
seg000:0C0B mov es, ax
seg000:0C0D assume es:dseg
seg000:0C0D mov [bp+0], di
seg000:0C10 add bp, 2
seg000:0C13 mov ds, word_11210
seg000:0C17 dec cx
seg000:0C18 rep movsb
seg000:0C1A xor al, al
seg000:0C1C stosb
seg000:0C1D mov ds, bx
seg000:0C1F xchg cx, dx
seg000:0C21 mov si, 81h ; ''
seg000:0C24
seg000:0C24 loc_10C24: ; CODE XREF: sub_10B5A+D8 j
seg000:0C24 jcxz short loc_10C34
seg000:0C26 mov [bp+0], di
seg000:0C29 add bp, 2
seg000:0C2C
seg000:0C2C loc_10C2C: ; CODE XREF: sub_10B5A+D6 j
seg000:0C2C lodsb
seg000:0C2D or al, al
seg000:0C2F stosb
seg000:0C30 loopne loc_10C2C
seg000:0C32 jz short loc_10C24
seg000:0C34
seg000:0C34 loc_10C34: ; CODE XREF: sub_10B5A:loc_10C24 j
seg000:0C34 xor ax, ax
seg000:0C36 mov [bp+0], ax
seg000:0C39 mov ds, cs:word_10B56
seg000:0C3E jmp cs:word_10B54
seg000:0C3E ; END OF FUNCTION CHUNK FOR sub_10B5A
seg000:0C43
seg000:0C43 ; =============== S U B R O U T I N E =======================================
seg000:0C43
seg000:0C43
seg000:0C43 sub_10C43 proc near ; CODE XREF: start+E4 p
seg000:0C43 mov cx, word_1120E
seg000:0C47 push cx
seg000:0C48 call malloc
seg000:0C4B pop cx
seg000:0C4C mov di, ax
seg000:0C4E or ax, ax
seg000:0C50 jz short loc_10C76
seg000:0C52 push ds
seg000:0C53 push ds
seg000:0C54 pop es
seg000:0C55 mov ds, word_11210
seg000:0C59 xor si, si
seg000:0C5B cld
seg000:0C5C rep movsb
seg000:0C5E pop ds
seg000:0C5F mov di, ax
seg000:0C61 push es
seg000:0C62 push word_11212
seg000:0C66 call malloc
seg000:0C69 add sp, 2
seg000:0C6C mov bx, ax
seg000:0C6E pop es
seg000:0C6F assume es:nothing
seg000:0C6F mov word_1120C, ax
seg000:0C72 or ax, ax
seg000:0C74 jnz short loc_10C79
seg000:0C76
seg000:0C76 loc_10C76: ; CODE XREF: sub_10C43+D j
seg000:0C76 jmp abort
seg000:0C79 ; ---------------------------------------------------------------------------
seg000:0C79
seg000:0C79 loc_10C79: ; CODE XREF: sub_10C43+31 j
seg000:0C79 xor ax, ax
seg000:0C7B mov cx, 0FFFFh
seg000:0C7E
seg000:0C7E loc_10C7E: ; CODE XREF: sub_10C43+45 j
seg000:0C7E mov [bx], di
seg000:0C80 add bx, 2
seg000:0C83 repne scasb
seg000:0C85 cmp es:[di], al
seg000:0C88 jnz short loc_10C7E
seg000:0C8A mov [bx], ax
seg000:0C8C retn
seg000:0C8C sub_10C43 endp
seg000:0C8C
seg000:0C8D ; ---------------------------------------------------------------------------
seg000:0C8D push bp
seg000:0C8E mov bp, sp
seg000:0C90 push word ptr [bp+6]
seg000:0C93 push word ptr [bp+8]
seg000:0C96 mov bx, [bp+4]
seg000:0C99 push word ptr [bx]
seg000:0C9B call sub_10AD9
seg000:0C9E mov sp, bp
seg000:0CA0 mov ax, [bp+6]
seg000:0CA3 mov bx, [bp+4]
seg000:0CA6 add [bx], ax
seg000:0CA8 mov bx, [bx]
seg000:0CAA mov byte ptr [bx], 0
seg000:0CAD xor ax, ax
seg000:0CAF pop bp
seg000:0CB0 retn 6
seg000:0CB3
seg000:0CB3 ; =============== S U B R O U T I N E =======================================
seg000:0CB3
seg000:0CB3 ; Attributes: bp-based frame
seg000:0CB3
seg000:0CB3 sprintf proc near ; CODE XREF: sub_10174+2F p
seg000:0CB3 ; sub_10174+F0 p ...
seg000:0CB3
seg000:0CB3 arg_0 = word ptr 4
seg000:0CB3 arg_2 = word ptr 6
seg000:0CB3 arg_4 = byte ptr 8
seg000:0CB3
seg000:0CB3 push bp
seg000:0CB4 mov bp, sp
seg000:0CB6 mov bx, [bp+arg_0]
seg000:0CB9 mov byte ptr [bx], 0
seg000:0CBC mov ax, (offset level_42+3Eh)
seg000:0CBF push ax
seg000:0CC0 lea ax, [bp+arg_0]
seg000:0CC3 push ax
seg000:0CC4 push [bp+arg_2]
seg000:0CC7 lea ax, [bp+arg_4]
seg000:0CCA push ax
seg000:0CCB call printf
seg000:0CCE pop bp
seg000:0CCF retn
seg000:0CCF sprintf endp
seg000:0CCF
seg000:0CD0 ; ---------------------------------------------------------------------------
seg000:0CD0 push bp
seg000:0CD1 mov bp, sp
seg000:0CD3 mov bx, [bp+4]
seg000:0CD6 mov byte ptr [bx], 0
seg000:0CD9 mov ax, 0C8Dh
seg000:0CDC push ax
seg000:0CDD lea ax, [bp+4]
seg000:0CE0 push ax
seg000:0CE1 push word ptr [bp+6]
seg000:0CE4 push word ptr [bp+8]
seg000:0CE7 call printf
seg000:0CEA pop bp
seg000:0CEB retn
seg000:0CEC
seg000:0CEC ; =============== S U B R O U T I N E =======================================
seg000:0CEC
seg000:0CEC ; Attributes: bp-based frame
seg000:0CEC
seg000:0CEC sub_10CEC proc near ; CODE XREF: printf+214 p
seg000:0CEC ; printf+21C p
seg000:0CEC
seg000:0CEC arg_0 = word ptr 4
seg000:0CEC
seg000:0CEC push bp
seg000:0CED mov bp, sp
seg000:0CEF mov dx, [bp+arg_0]
seg000:0CF2 mov cx, 0F04h
seg000:0CF5 mov bx, 157Bh
seg000:0CF8 cld
seg000:0CF9 mov al, dh
seg000:0CFB shr al, cl
seg000:0CFD xlat
seg000:0CFE stosb
seg000:0CFF mov al, dh
seg000:0D01 and al, ch
seg000:0D03 xlat
seg000:0D04 stosb
seg000:0D05 mov al, dl
seg000:0D07 shr al, cl
seg000:0D09 xlat
seg000:0D0A stosb
seg000:0D0B mov al, dl
seg000:0D0D and al, ch
seg000:0D0F xlat
seg000:0D10 stosb
seg000:0D11 pop bp
seg000:0D12 retn 2
seg000:0D12 sub_10CEC endp
seg000:0D12
seg000:0D15
seg000:0D15 ; =============== S U B R O U T I N E =======================================
seg000:0D15
seg000:0D15 ; Attributes: bp-based frame
seg000:0D15
seg000:0D15 printf proc near ; CODE XREF: sprintf+18 p
seg000:0D15 ; seg000:0CE7 p
seg000:0D15
seg000:0D15 var_88 = word ptr -88h
seg000:0D15 var_86 = byte ptr -86h
seg000:0D15 var_85 = byte ptr -85h
seg000:0D15 var_84 = word ptr -84h
seg000:0D15 var_82 = word ptr -82h
seg000:0D15 var_80 = byte ptr -80h
seg000:0D15 var_7F = byte ptr -7Fh
seg000:0D15 var_7E = word ptr -7Eh
seg000:0D15 var_7C = word ptr -7Ch
seg000:0D15 var_7A = byte ptr -7Ah
seg000:0D15 var_79 = byte ptr -79h
seg000:0D15 var_54 = word ptr -54h
seg000:0D15 var_51 = byte ptr -51h
seg000:0D15 var_50 = byte ptr -50h
seg000:0D15 arg_0 = word ptr 8
seg000:0D15 arg_2 = word ptr 0Ah
seg000:0D15 arg_4 = word ptr 0Ch
seg000:0D15 arg_6 = word ptr 0Eh
seg000:0D15
seg000:0D15 push si
seg000:0D16 push di
seg000:0D17 push bp
seg000:0D18 mov bp, sp
seg000:0D1A sub sp, 88h
seg000:0D1E mov [bp+var_54], 0
seg000:0D23 mov [bp+var_51], 50h ; 'P'
seg000:0D27 push es
seg000:0D28 cld
seg000:0D29 lea di, [bp+var_50]
seg000:0D2C mov [bp+var_88], di
seg000:0D30
seg000:0D30 loc_10D30: ; CODE XREF: printf+401 j
seg000:0D30 mov di, [bp+var_88]
seg000:0D34
seg000:0D34 loc_10D34: ; CODE XREF: printf:loc_110EB j
seg000:0D34 mov si, [bp+arg_2]
seg000:0D37
seg000:0D37 loc_10D37: ; CODE XREF: printf+31 j
seg000:0D37 ; printf+39 j
seg000:0D37 lodsb
seg000:0D38 or al, al
seg000:0D3A jz short loc_10D50
seg000:0D3C cmp al, 25h ; '%'
seg000:0D3E jz short loc_10D53
seg000:0D40
seg000:0D40 loc_10D40: ; CODE XREF: printf+44 j
seg000:0D40 mov [di], al
seg000:0D42 inc di
seg000:0D43 dec [bp+var_51]
seg000:0D46 jg short loc_10D37
seg000:0D48 call $+3
seg000:0D4B jmp loc_11160
seg000:0D4E ; ---------------------------------------------------------------------------
seg000:0D4E jmp short loc_10D37
seg000:0D50 ; ---------------------------------------------------------------------------
seg000:0D50
seg000:0D50 loc_10D50: ; CODE XREF: printf+25 j
seg000:0D50 jmp loc_1112D
seg000:0D53 ; ---------------------------------------------------------------------------
seg000:0D53
seg000:0D53 loc_10D53: ; CODE XREF: printf+29 j
seg000:0D53 mov [bp+var_7C], si
seg000:0D56 lodsb
seg000:0D57 cmp al, 25h ; '%'
seg000:0D59 jz short loc_10D40
seg000:0D5B mov [bp+var_88], di
seg000:0D5F sub cx, cx
seg000:0D61 mov [bp+var_7E], cx
seg000:0D64 mov [bp+var_80], cl
seg000:0D67 mov [bp+var_7F], cl
seg000:0D6A mov [bp+var_84], 0FFFFh
seg000:0D70 mov [bp+var_82], 0FFFFh
seg000:0D76 jmp short loc_10D79
seg000:0D78 ; ---------------------------------------------------------------------------
seg000:0D78
seg000:0D78 loc_10D78: ; CODE XREF: printf+C1 j
seg000:0D78 ; printf+CC j ...
seg000:0D78 lodsb
seg000:0D79
seg000:0D79 loc_10D79: ; CODE XREF: printf+61 j
seg000:0D79 cbw
seg000:0D7A mov dx, ax
seg000:0D7C xchg ax, bx
seg000:0D7D sub bl, 20h ; ' '
seg000:0D80 cmp bl, 60h ; '`'
seg000:0D83 jnb short loc_10DCA
seg000:0D85 mov bl, [bx+158Bh]
seg000:0D89 mov ax, bx
seg000:0D8B cmp ax, 16h ; switch 23 cases
seg000:0D8E jbe short loc_10D93
seg000:0D90 jmp loc_11119 ; default
seg000:0D90 ; jumptable 00010D97 cases 18-20
seg000:0D93 ; ---------------------------------------------------------------------------
seg000:0D93
seg000:0D93 loc_10D93: ; CODE XREF: printf+79 j
seg000:0D93 mov bx, ax
seg000:0D95 shl bx, 1
seg000:0D97 jmp cs:off_10D9C[bx] ; switch jump
seg000:0D97 ; ---------------------------------------------------------------------------
seg000:0D9C off_10D9C dw offset loc_10DE3 ; DATA XREF: printf+82 r
seg000:0D9C dw offset loc_10DCD ; jump table for switch statement
seg000:0D9C dw offset loc_10E21
seg000:0D9C dw offset loc_10DD8
seg000:0D9C dw offset loc_10E45
seg000:0D9C dw offset loc_10E4E
seg000:0D9C dw offset loc_10E84
seg000:0D9C dw offset loc_10E8C
seg000:0D9C dw offset loc_10E0B
seg000:0D9C dw offset loc_10EB8
seg000:0D9C dw offset loc_10E94
seg000:0D9C dw offset loc_10E98
seg000:0D9C dw offset loc_10E9C
seg000:0D9C dw offset loc_10F06
seg000:0D9C dw offset loc_10FB3
seg000:0D9C dw offset loc_10F54
seg000:0D9C dw offset loc_10F73
seg000:0D9C dw offset loc_110EE
seg000:0D9C dw offset loc_11119
seg000:0D9C dw offset loc_11119
seg000:0D9C dw offset loc_11119
seg000:0D9C dw offset loc_10DF3
seg000:0D9C dw offset loc_10DFF
seg000:0DCA ; ---------------------------------------------------------------------------
seg000:0DCA
seg000:0DCA loc_10DCA: ; CODE XREF: printf+6E j
seg000:0DCA ; printf+BB j ...
seg000:0DCA jmp loc_11119 ; default
seg000:0DCA ; jumptable 00010D97 cases 18-20
seg000:0DCD ; ---------------------------------------------------------------------------
seg000:0DCD
seg000:0DCD loc_10DCD: ; CODE XREF: printf+82 j
seg000:0DCD ; DATA XREF: printf:off_10D9C o
seg000:0DCD cmp ch, 0 ; jumptable 00010D97 case 1
seg000:0DD0 ja short loc_10DCA
seg000:0DD2 or [bp+var_80], 1
seg000:0DD6 jmp short loc_10D78
seg000:0DD8 ; ---------------------------------------------------------------------------
seg000:0DD8
seg000:0DD8 loc_10DD8: ; CODE XREF: printf+82 j
seg000:0DD8 ; DATA XREF: printf:off_10D9C o
seg000:0DD8 cmp ch, 0 ; jumptable 00010D97 case 3
seg000:0DDB ja short loc_10DCA
seg000:0DDD or [bp+var_80], 2
seg000:0DE1 jmp short loc_10D78
seg000:0DE3 ; ---------------------------------------------------------------------------
seg000:0DE3
seg000:0DE3 loc_10DE3: ; CODE XREF: printf+82 j
seg000:0DE3 ; DATA XREF: printf:off_10D9C o
seg000:0DE3 cmp ch, 0 ; jumptable 00010D97 case 0
seg000:0DE6 ja short loc_10DCA
seg000:0DE8 cmp [bp+var_7F], 2Bh ; '+'
seg000:0DEC jz short loc_10D78
seg000:0DEE mov [bp+var_7F], dl
seg000:0DF1 jmp short loc_10D78
seg000:0DF3 ; ---------------------------------------------------------------------------
seg000:0DF3
seg000:0DF3 loc_10DF3: ; CODE XREF: printf+82 j
seg000:0DF3 ; DATA XREF: printf:off_10D9C o
seg000:0DF3 cmp ch, 0 ; jumptable 00010D97 case 21
seg000:0DF6 ja short loc_10E1E
seg000:0DF8 and [bp+var_80], 0DFh
seg000:0DFC jmp loc_10D78
seg000:0DFF ; ---------------------------------------------------------------------------
seg000:0DFF
seg000:0DFF loc_10DFF: ; CODE XREF: printf+82 j
seg000:0DFF ; DATA XREF: printf:off_10D9C o
seg000:0DFF cmp ch, 0 ; jumptable 00010D97 case 22
seg000:0E02 ja short loc_10E1E
seg000:0E04 or [bp+var_80], 20h
seg000:0E08 jmp loc_10D78
seg000:0E0B ; ---------------------------------------------------------------------------
seg000:0E0B
seg000:0E0B loc_10E0B: ; CODE XREF: printf+82 j
seg000:0E0B ; DATA XREF: printf:off_10D9C o
seg000:0E0B cmp ch, 0 ; jumptable 00010D97 case 8
seg000:0E0E ja short loc_10E4E ; jumptable 00010D97 case 5
seg000:0E10 test [bp+var_80], 2
seg000:0E14 jnz short loc_10E35
seg000:0E16 or [bp+var_80], 8
seg000:0E1A mov ch, 1
seg000:0E1C jmp short loc_10E35
seg000:0E1E ; ---------------------------------------------------------------------------
seg000:0E1E
seg000:0E1E loc_10E1E: ; CODE XREF: printf+E1 j
seg000:0E1E ; printf+ED j ...
seg000:0E1E jmp loc_11119 ; default
seg000:0E1E ; jumptable 00010D97 cases 18-20
seg000:0E21 ; ---------------------------------------------------------------------------
seg000:0E21
seg000:0E21 loc_10E21: ; CODE XREF: printf+82 j
seg000:0E21 ; DATA XREF: printf:off_10D9C o
seg000:0E21 mov di, [bp+arg_0] ; jumptable 00010D97 case 2
seg000:0E24 mov ax, [di]
seg000:0E26 add [bp+arg_0], 2
seg000:0E2A cmp ch, 2
seg000:0E2D jnb short loc_10E38
seg000:0E2F mov [bp+var_84], ax
seg000:0E33 mov ch, 3
seg000:0E35
seg000:0E35 loc_10E35: ; CODE XREF: printf+FF j
seg000:0E35 ; printf+107 j ...
seg000:0E35 jmp loc_10D78
seg000:0E38 ; ---------------------------------------------------------------------------
seg000:0E38
seg000:0E38 loc_10E38: ; CODE XREF: printf+118 j
seg000:0E38 cmp ch, 4
seg000:0E3B jnz short loc_10E1E
seg000:0E3D mov [bp+var_82], ax
seg000:0E41 inc ch
seg000:0E43 jmp short loc_10E35
seg000:0E45 ; ---------------------------------------------------------------------------
seg000:0E45
seg000:0E45 loc_10E45: ; CODE XREF: printf+82 j
seg000:0E45 ; DATA XREF: printf:off_10D9C o
seg000:0E45 cmp ch, 4 ; jumptable 00010D97 case 4
seg000:0E48 jnb short loc_10E1E
seg000:0E4A mov ch, 4
seg000:0E4C jmp short loc_10E35
seg000:0E4E ; ---------------------------------------------------------------------------
seg000:0E4E
seg000:0E4E loc_10E4E: ; CODE XREF: printf+82 j
seg000:0E4E ; printf+F9 j
seg000:0E4E ; DATA XREF: ...
seg000:0E4E xchg ax, dx ; jumptable 00010D97 case 5
seg000:0E4F sub al, 30h ; '0'
seg000:0E51 cbw
seg000:0E52 cmp ch, 2
seg000:0E55 ja short loc_10E6C
seg000:0E57 mov ch, 2
seg000:0E59 xchg ax, [bp+var_84]
seg000:0E5D or ax, ax
seg000:0E5F jl short loc_10E35
seg000:0E61 mov dx, 0Ah
seg000:0E64 mul dx
seg000:0E66 add [bp+var_84], ax
seg000:0E6A jmp short loc_10E35
seg000:0E6C ; ---------------------------------------------------------------------------
seg000:0E6C
seg000:0E6C loc_10E6C: ; CODE XREF: printf+140 j
seg000:0E6C cmp ch, 4
seg000:0E6F jnz short loc_10E1E
seg000:0E71 xchg ax, [bp+var_82]
seg000:0E75 or ax, ax
seg000:0E77 jl short loc_10E35
seg000:0E79 mov dx, 0Ah
seg000:0E7C mul dx
seg000:0E7E add [bp+var_82], ax
seg000:0E82 jmp short loc_10E35
seg000:0E84 ; ---------------------------------------------------------------------------
seg000:0E84
seg000:0E84 loc_10E84: ; CODE XREF: printf+82 j
seg000:0E84 ; DATA XREF: printf:off_10D9C o
seg000:0E84 or [bp+var_80], 10h ; jumptable 00010D97 case 6
seg000:0E88 mov ch, 5
seg000:0E8A jmp short loc_10E35
seg000:0E8C ; ---------------------------------------------------------------------------
seg000:0E8C
seg000:0E8C loc_10E8C: ; CODE XREF: printf+82 j
seg000:0E8C ; DATA XREF: printf:off_10D9C o
seg000:0E8C and [bp+var_80], 0EFh ; jumptable 00010D97 case 7
seg000:0E90 mov ch, 5
seg000:0E92 jmp short loc_10E35
seg000:0E94 ; ---------------------------------------------------------------------------
seg000:0E94
seg000:0E94 loc_10E94: ; CODE XREF: printf+82 j
seg000:0E94 ; DATA XREF: printf:off_10D9C o
seg000:0E94 mov bh, 8 ; jumptable 00010D97 case 10
seg000:0E96 jmp short loc_10EA2
seg000:0E98 ; ---------------------------------------------------------------------------
seg000:0E98
seg000:0E98 loc_10E98: ; CODE XREF: printf+82 j
seg000:0E98 ; DATA XREF: printf:off_10D9C o
seg000:0E98 mov bh, 0Ah ; jumptable 00010D97 case 11
seg000:0E9A jmp short loc_10EA6
seg000:0E9C ; ---------------------------------------------------------------------------
seg000:0E9C
seg000:0E9C loc_10E9C: ; CODE XREF: printf+82 j
seg000:0E9C ; DATA XREF: printf:off_10D9C o
seg000:0E9C mov bh, 10h ; jumptable 00010D97 case 12
seg000:0E9E mov bl, 0E9h ; 'é'
seg000:0EA0 add bl, dl
seg000:0EA2
seg000:0EA2 loc_10EA2: ; CODE XREF: printf+181 j
seg000:0EA2 mov [bp+var_7F], 0
seg000:0EA6
seg000:0EA6 loc_10EA6: ; CODE XREF: printf+185 j
seg000:0EA6 mov [bp+var_85], 0
seg000:0EAB mov [bp+var_86], dl
seg000:0EAF mov di, [bp+arg_0]
seg000:0EB2 mov ax, [di]
seg000:0EB4 sub dx, dx
seg000:0EB6 jmp short loc_10EC9
seg000:0EB8 ; ---------------------------------------------------------------------------
seg000:0EB8
seg000:0EB8 loc_10EB8: ; CODE XREF: printf+82 j
seg000:0EB8 ; DATA XREF: printf:off_10D9C o
seg000:0EB8 mov bh, 0Ah ; jumptable 00010D97 case 9
seg000:0EBA mov [bp+var_85], 1
seg000:0EBF mov [bp+var_86], dl
seg000:0EC3 mov di, [bp+arg_0]
seg000:0EC6 mov ax, [di]
seg000:0EC8 cwd
seg000:0EC9
seg000:0EC9 loc_10EC9: ; CODE XREF: printf+1A1 j
seg000:0EC9 inc di
seg000:0ECA inc di
seg000:0ECB mov [bp+arg_2], si
seg000:0ECE test [bp+var_80], 10h
seg000:0ED2 jz short loc_10ED8
seg000:0ED4 mov dx, [di]
seg000:0ED6 inc di
seg000:0ED7 inc di
seg000:0ED8
seg000:0ED8 loc_10ED8: ; CODE XREF: printf+1BD j
seg000:0ED8 mov [bp+arg_0], di
seg000:0EDB push dx
seg000:0EDC push ax
seg000:0EDD or ax, dx
seg000:0EDF jz short loc_10EE5
seg000:0EE1 or [bp+var_80], 4
seg000:0EE5
seg000:0EE5 loc_10EE5: ; CODE XREF: printf+1CA j
seg000:0EE5 lea di, [bp+var_79]
seg000:0EE8 push di
seg000:0EE9 mov al, bh
seg000:0EEB cbw
seg000:0EEC push ax
seg000:0EED mov al, [bp+var_85]
seg000:0EF1 push ax
seg000:0EF2 push bx
seg000:0EF3 call sub_1097C
seg000:0EF6 push ss
seg000:0EF7 pop es
seg000:0EF8 assume es:dseg
seg000:0EF8 mov dx, [bp+var_82]
seg000:0EFC or dx, dx
seg000:0EFE jg short loc_10F03
seg000:0F00 jmp loc_10FE2
seg000:0F03 ; ---------------------------------------------------------------------------
seg000:0F03
seg000:0F03 loc_10F03: ; CODE XREF: printf+1E9 j
seg000:0F03 jmp loc_10FF0
seg000:0F06 ; ---------------------------------------------------------------------------
seg000:0F06
seg000:0F06 loc_10F06: ; CODE XREF: printf+82 j
seg000:0F06 ; DATA XREF: printf:off_10D9C o
seg000:0F06 mov [bp+var_86], dl ; jumptable 00010D97 case 13
seg000:0F0A mov [bp+arg_2], si
seg000:0F0D lea di, [bp+var_7A]
seg000:0F10 mov bx, [bp+arg_0]
seg000:0F13 push word ptr [bx]
seg000:0F15 inc bx
seg000:0F16 inc bx
seg000:0F17 mov [bp+arg_0], bx
seg000:0F1A test [bp+var_80], 20h
seg000:0F1E jz short loc_10F2F
seg000:0F20 push word ptr [bx]
seg000:0F22 inc bx
seg000:0F23 inc bx
seg000:0F24 mov [bp+arg_0], bx
seg000:0F27 push ss
seg000:0F28 pop es
seg000:0F29 call sub_10CEC
seg000:0F2C mov al, 3Ah ; ':'
seg000:0F2E stosb
seg000:0F2F
seg000:0F2F loc_10F2F: ; CODE XREF: printf+209 j
seg000:0F2F push ss
seg000:0F30 pop es
seg000:0F31 call sub_10CEC
seg000:0F34 mov byte ptr [di], 0
seg000:0F37 mov [bp+var_85], 0
seg000:0F3C and [bp+var_80], 0FBh
seg000:0F40 lea cx, [bp+var_7A]
seg000:0F43 sub di, cx
seg000:0F45 xchg cx, di
seg000:0F47 mov dx, [bp+var_82]
seg000:0F4B cmp dx, cx
seg000:0F4D jg short loc_10F51
seg000:0F4F mov dx, cx
seg000:0F51
seg000:0F51 loc_10F51: ; CODE XREF: printf+238 j
seg000:0F51 jmp loc_10FE2
seg000:0F54 ; ---------------------------------------------------------------------------
seg000:0F54
seg000:0F54 loc_10F54: ; CODE XREF: printf+82 j
seg000:0F54 ; DATA XREF: printf:off_10D9C o
seg000:0F54 mov [bp+arg_2], si ; jumptable 00010D97 case 15
seg000:0F57 mov [bp+var_86], dl
seg000:0F5B mov di, [bp+arg_0]
seg000:0F5E mov ax, [di]
seg000:0F60 add [bp+arg_0], 2
seg000:0F64 push ss
seg000:0F65 pop es
seg000:0F66 lea di, [bp+var_79]
seg000:0F69 mov ah, 0
seg000:0F6B mov [di], ax
seg000:0F6D mov cx, 1
seg000:0F70 jmp loc_1101C
seg000:0F73 ; ---------------------------------------------------------------------------
seg000:0F73
seg000:0F73 loc_10F73: ; CODE XREF: printf+82 j
seg000:0F73 ; DATA XREF: printf:off_10D9C o
seg000:0F73 mov [bp+arg_2], si ; jumptable 00010D97 case 16
seg000:0F76 mov [bp+var_86], dl
seg000:0F7A mov di, [bp+arg_0]
seg000:0F7D test [bp+var_80], 20h
seg000:0F81 jnz short loc_10F8F
seg000:0F83 mov di, [di]
seg000:0F85 add [bp+arg_0], 2
seg000:0F89 push ds
seg000:0F8A pop es
seg000:0F8B or di, di
seg000:0F8D jmp short loc_10F99
seg000:0F8F ; ---------------------------------------------------------------------------
seg000:0F8F
seg000:0F8F loc_10F8F: ; CODE XREF: printf+26C j
seg000:0F8F les di, [di]
seg000:0F91 assume es:nothing
seg000:0F91 add [bp+arg_0], 4
seg000:0F95 mov ax, es
seg000:0F97 or ax, di
seg000:0F99
seg000:0F99 loc_10F99: ; CODE XREF: printf+278 j
seg000:0F99 jnz short loc_10FA0
seg000:0F9B push ds
seg000:0F9C pop es
seg000:0F9D assume es:dseg
seg000:0F9D mov di, offset aNull ; "(null)"
seg000:0FA0
seg000:0FA0 loc_10FA0: ; CODE XREF: printf:loc_10F99 j
seg000:0FA0 call $+3
seg000:0FA3 jmp loc_11140
seg000:0FA6 ; ---------------------------------------------------------------------------
seg000:0FA6 cmp cx, [bp+var_82]
seg000:0FAA jbe short loc_10FB0
seg000:0FAC mov cx, [bp+var_82]
seg000:0FB0
seg000:0FB0 loc_10FB0: ; CODE XREF: printf+295 j
seg000:0FB0 jmp short loc_1101C
seg000:0FB0 ; ---------------------------------------------------------------------------
seg000:0FB2 db 90h
seg000:0FB3 ; ---------------------------------------------------------------------------
seg000:0FB3
seg000:0FB3 loc_10FB3: ; CODE XREF: printf+82 j
seg000:0FB3 ; DATA XREF: printf:off_10D9C o
seg000:0FB3 mov [bp+arg_2], si ; jumptable 00010D97 case 14
seg000:0FB6 mov [bp+var_86], dl
seg000:0FBA mov di, [bp+arg_0]
seg000:0FBD mov cx, [bp+var_82]
seg000:0FC1 or cx, cx
seg000:0FC3 jge short loc_10FC8
seg000:0FC5 mov cx, 6
seg000:0FC8
seg000:0FC8 loc_10FC8: ; CODE XREF: printf+2AE j
seg000:0FC8 push di
seg000:0FC9 push cx
seg000:0FCA lea bx, [bp+var_79]
seg000:0FCD push bx
seg000:0FCE push dx
seg000:0FCF mov ax, 1
seg000:0FD2 and al, [bp+var_80]
seg000:0FD5 push ax
seg000:0FD6 call sub_10B50
seg000:0FD9 add [bp+arg_0], 8
seg000:0FDD push ss
seg000:0FDE pop es
seg000:0FDF lea di, [bp+var_79]
seg000:0FE2
seg000:0FE2 loc_10FE2: ; CODE XREF: printf+1EB j
seg000:0FE2 ; printf:loc_10F51 j
seg000:0FE2 test [bp+var_80], 8
seg000:0FE6 jz short loc_10FFD
seg000:0FE8 mov dx, [bp+var_84]
seg000:0FEC or dx, dx
seg000:0FEE jle short loc_10FFD
seg000:0FF0
seg000:0FF0 loc_10FF0: ; CODE XREF: printf:loc_10F03 j
seg000:0FF0 call $+3
seg000:0FF3 jmp loc_11140
seg000:0FF6 ; ---------------------------------------------------------------------------
seg000:0FF6 sub dx, cx
seg000:0FF8 jle short loc_10FFD
seg000:0FFA mov [bp+var_7E], dx
seg000:0FFD
seg000:0FFD loc_10FFD: ; CODE XREF: printf+2D1 j
seg000:0FFD ; printf+2D9 j ...
seg000:0FFD mov al, [bp+var_7F]
seg000:1000 or al, al
seg000:1002 jz short loc_11016
seg000:1004 cmp byte ptr es:[di], 2Dh ; '-'
seg000:1008 jz short loc_11016
seg000:100A dec di
seg000:100B sub [bp+var_7E], 1
seg000:100F adc [bp+var_7E], 0
seg000:1013 mov es:[di], al
seg000:1016
seg000:1016 loc_11016: ; CODE XREF: printf+2ED j
seg000:1016 ; printf+2F3 j
seg000:1016 call $+3
seg000:1019 jmp loc_11140
seg000:101C ; ---------------------------------------------------------------------------
seg000:101C
seg000:101C loc_1101C: ; CODE XREF: printf+25B j
seg000:101C ; printf:loc_10FB0 j
seg000:101C mov si, di
seg000:101E mov di, [bp+var_88]
seg000:1022 mov bx, [bp+var_84]
seg000:1026 mov al, 5
seg000:1028 and al, [bp+var_80]
seg000:102B cmp al, 5
seg000:102D jnz short loc_11061
seg000:102F mov ah, [bp+var_86]
seg000:1033 cmp ah, 6Fh ; 'o'
seg000:1036 jnz short loc_11045
seg000:1038 cmp [bp+var_7E], 0
seg000:103C jg short loc_11061
seg000:103E mov [bp+var_7E], 1
seg000:1043 jmp short loc_11061
seg000:1045 ; ---------------------------------------------------------------------------
seg000:1045
seg000:1045 loc_11045: ; CODE XREF: printf+321 j
seg000:1045 cmp ah, 78h ; 'x'
seg000:1048 jz short loc_1104F
seg000:104A cmp ah, 58h ; 'X'
seg000:104D jnz short loc_11061
seg000:104F
seg000:104F loc_1104F: ; CODE XREF: printf+333 j
seg000:104F or [bp+var_80], 40h
seg000:1053 sub bx, 2
seg000:1056 sub [bp+var_7E], 2
seg000:105A jge short loc_11061
seg000:105C mov [bp+var_7E], 0
seg000:1061
seg000:1061 loc_11061: ; CODE XREF: printf+318 j
seg000:1061 ; printf+327 j ...
seg000:1061 add cx, [bp+var_7E]
seg000:1064 test [bp+var_80], 2
seg000:1068 jnz short loc_11079
seg000:106A jmp short loc_11075
seg000:106C ; ---------------------------------------------------------------------------
seg000:106C
seg000:106C loc_1106C: ; CODE XREF: printf+362 j
seg000:106C mov al, 20h ; ' '
seg000:106E call $+3
seg000:1071 jmp loc_11152
seg000:1074 ; ---------------------------------------------------------------------------
seg000:1074 dec bx
seg000:1075
seg000:1075 loc_11075: ; CODE XREF: printf+355 j
seg000:1075 cmp bx, cx
seg000:1077 jg short loc_1106C
seg000:1079
seg000:1079 loc_11079: ; CODE XREF: printf+353 j
seg000:1079 test [bp+var_80], 40h
seg000:107D jz short loc_11091
seg000:107F mov al, 30h ; '0'
seg000:1081 call $+3
seg000:1084 jmp loc_11152
seg000:1087 ; ---------------------------------------------------------------------------
seg000:1087 mov al, [bp+var_86]
seg000:108B call $+3
seg000:108E jmp loc_11152
seg000:1091 ; ---------------------------------------------------------------------------
seg000:1091
seg000:1091 loc_11091: ; CODE XREF: printf+368 j
seg000:1091 mov dx, [bp+var_7E]
seg000:1094 or dx, dx
seg000:1096 jle short loc_110C5
seg000:1098 sub cx, dx
seg000:109A sub bx, dx
seg000:109C mov al, es:[si]
seg000:109F cmp al, 2Dh ; '-'
seg000:10A1 jz short loc_110AB
seg000:10A3 cmp al, 20h ; ' '
seg000:10A5 jz short loc_110AB
seg000:10A7 cmp al, 2Bh ; '+'
seg000:10A9 jnz short loc_110B5
seg000:10AB
seg000:10AB loc_110AB: ; CODE XREF: printf+38C j
seg000:10AB ; printf+390 j
seg000:10AB lods byte ptr es:[si]
seg000:10AD call $+3
seg000:10B0 jmp loc_11152
seg000:10B3 ; ---------------------------------------------------------------------------
seg000:10B3 dec cx
seg000:10B4 dec bx
seg000:10B5
seg000:10B5 loc_110B5: ; CODE XREF: printf+394 j
seg000:10B5 xchg cx, dx
seg000:10B7 jcxz short loc_110C3
seg000:10B9
seg000:10B9 loc_110B9: ; CODE XREF: printf+3AC j
seg000:10B9 mov al, 30h ; '0'
seg000:10BB call $+3
seg000:10BE jmp loc_11152
seg000:10C1 ; ---------------------------------------------------------------------------
seg000:10C1 loop loc_110B9
seg000:10C3
seg000:10C3 loc_110C3: ; CODE XREF: printf+3A2 j
seg000:10C3 xchg cx, dx
seg000:10C5
seg000:10C5 loc_110C5: ; CODE XREF: printf+381 j
seg000:10C5 sub bx, cx
seg000:10C7 jcxz short loc_110DB
seg000:10C9
seg000:10C9 loc_110C9: ; CODE XREF: printf:loc_110D9 j
seg000:10C9 lods byte ptr es:[si]
seg000:10CB mov [di], al
seg000:10CD inc di
seg000:10CE dec [bp+var_51]
seg000:10D1 jg short loc_110D9
seg000:10D3 call $+3
seg000:10D6 jmp loc_11160
seg000:10D9 ; ---------------------------------------------------------------------------
seg000:10D9
seg000:10D9 loc_110D9: ; CODE XREF: printf+3BC j
seg000:10D9 loop loc_110C9
seg000:10DB
seg000:10DB loc_110DB: ; CODE XREF: printf+3B2 j
seg000:10DB or bx, bx
seg000:10DD jle short loc_110EB
seg000:10DF mov cx, bx
seg000:10E1
seg000:10E1 loc_110E1: ; CODE XREF: printf+3D4 j
seg000:10E1 mov al, 20h ; ' '
seg000:10E3 call $+3
seg000:10E6 jmp short loc_11152
seg000:10E6 ; ---------------------------------------------------------------------------
seg000:10E8 db 90h
seg000:10E9 ; ---------------------------------------------------------------------------
seg000:10E9 loop loc_110E1
seg000:10EB
seg000:10EB loc_110EB: ; CODE XREF: printf+3C8 j
seg000:10EB jmp loc_10D34
seg000:10EE ; ---------------------------------------------------------------------------
seg000:10EE
seg000:10EE loc_110EE: ; CODE XREF: printf+82 j
seg000:10EE ; DATA XREF: printf:off_10D9C o
seg000:10EE mov [bp+arg_2], si ; jumptable 00010D97 case 17
seg000:10F1 mov di, [bp+arg_0]
seg000:10F4 test [bp+var_80], 20h
seg000:10F8 jnz short loc_11104
seg000:10FA mov di, [di]
seg000:10FC add [bp+arg_0], 2
seg000:1100 push ds
seg000:1101 pop es
seg000:1102 jmp short loc_1110A
seg000:1104 ; ---------------------------------------------------------------------------
seg000:1104
seg000:1104 loc_11104: ; CODE XREF: printf+3E3 j
seg000:1104 les di, [di]
seg000:1106 assume es:nothing
seg000:1106 add [bp+arg_0], 4
seg000:110A
seg000:110A loc_1110A: ; CODE XREF: printf+3ED j
seg000:110A mov ax, 50h ; 'P'
seg000:110D sub al, [bp+var_51]
seg000:1110 add ax, [bp+var_54]
seg000:1113 mov es:[di], ax
seg000:1116 jmp loc_10D30
seg000:1119 ; ---------------------------------------------------------------------------
seg000:1119
seg000:1119 loc_11119: ; CODE XREF: printf+7B j
seg000:1119 ; printf+82 j ...
seg000:1119 mov si, [bp+var_7C] ; default
seg000:1119 ; jumptable 00010D97 cases 18-20
seg000:111C mov di, [bp+var_88]
seg000:1120 mov al, 25h ; '%'
seg000:1122
seg000:1122 loc_11122: ; CODE XREF: printf+416 j
seg000:1122 call $+3
seg000:1125 jmp short loc_11152
seg000:1125 ; ---------------------------------------------------------------------------
seg000:1127 align 2
seg000:1128 lodsb
seg000:1129 or al, al
seg000:112B jnz short loc_11122
seg000:112D
seg000:112D loc_1112D: ; CODE XREF: printf:loc_10D50 j
seg000:112D cmp [bp+var_51], 50h ; 'P'
seg000:1131 jge short loc_11139
seg000:1133 call $+3
seg000:1136 jmp short loc_11160
seg000:1136 ; ---------------------------------------------------------------------------
seg000:1138 db 90h
seg000:1139 ; ---------------------------------------------------------------------------
seg000:1139
seg000:1139 loc_11139: ; CODE XREF: printf+41C j
seg000:1139 pop es
seg000:113A mov ax, [bp+var_54]
seg000:113D jmp short loc_11188
seg000:113D ; ---------------------------------------------------------------------------
seg000:113F align 2
seg000:1140
seg000:1140 loc_11140: ; CODE XREF: printf+28E j
seg000:1140 ; printf+2DE j ...
seg000:1140 push di
seg000:1141 mov cx, 0FFFFh
seg000:1144 mov al, 0
seg000:1146 repne scasb
seg000:1148 not cx
seg000:114A dec cx
seg000:114B pop di
seg000:114C pop ax
seg000:114D add ax, 3
seg000:1150 jmp ax
seg000:1152 ; ---------------------------------------------------------------------------
seg000:1152
seg000:1152 loc_11152: ; CODE XREF: printf+35C j
seg000:1152 ; printf+36F j ...
seg000:1152 mov [di], al
seg000:1154 inc di
seg000:1155 dec [bp+var_51]
seg000:1158 jle short loc_11160
seg000:115A pop ax
seg000:115B add ax, 3
seg000:115E jmp ax
seg000:1160 ; ---------------------------------------------------------------------------
seg000:1160
seg000:1160 loc_11160: ; CODE XREF: printf+36 j
seg000:1160 ; printf+3C1 j ...
seg000:1160 push bx
seg000:1161 push cx
seg000:1162 push dx
seg000:1163 push es
seg000:1164 lea ax, [bp+var_50]
seg000:1167 sub di, ax
seg000:1169 lea ax, [bp+var_50]
seg000:116C push ax
seg000:116D push di
seg000:116E push [bp+arg_4]
seg000:1171 call [bp+arg_6]
seg000:1174 mov [bp+var_51], 50h ; 'P'
seg000:1178 add [bp+var_54], di
seg000:117B lea di, [bp+var_50]
seg000:117E pop es
seg000:117F pop dx
seg000:1180 pop cx
seg000:1181 pop bx
seg000:1182 pop ax
seg000:1183 add ax, 3
seg000:1186 jmp ax
seg000:1188 ; ---------------------------------------------------------------------------
seg000:1188
seg000:1188 loc_11188: ; CODE XREF: printf+428 j
seg000:1188 mov sp, bp
seg000:118A pop bp
seg000:118B pop di
seg000:118C pop si
seg000:118D retn 8
seg000:118D printf endp
seg000:118D
seg000:118D seg000 ends
seg000:118D
dseg:0000 ; ===========================================================================
dseg:0000
dseg:0000 ; Segment type: Pure data
dseg:0000 dseg segment para public 'DATA' use16
dseg:0000 assume cs:dseg
dseg:0000 db 0
dseg:0001 db 0
dseg:0002 stdout db 0 ; DATA XREF: write_to_file+2 o
dseg:0003 db 0
dseg:0004 aTurboCCopyrigh db 'Turbo-C - Copyright (c) 1987 Borland Intl.',0
dseg:002F aNullPointerAss db 'Null pointer assignment',0Dh,0Ah ; DATA XREF: sub_1010B+2E o
dseg:002F db 'Divide error',0Dh,0Ah
dseg:002F db 'Abnormal program termination',0Dh,0Ah,0
dseg:0075 db 0
dseg:0076 unk_11206 db 0 ; DATA XREF: start+84 w
dseg:0077 db 0
dseg:0078 word_11208 dw 0 ; DATA XREF: start+100 r
dseg:0078 ; sub_10B5A+8E w
dseg:007A word_1120A dw 0 ; DATA XREF: start+FC r
dseg:007A ; sub_10B5A+AB w
dseg:007C word_1120C dw 0 ; DATA XREF: start+F8 r
dseg:007C ; sub_10C43+2C w
dseg:007E word_1120E dw 0 ; DATA XREF: start+69 w
dseg:007E ; sub_10B5A+6D r ...
dseg:0080 word_11210 dw 0 ; DATA XREF: start+1D w
dseg:0080 ; sub_10B5A+7E r ...
dseg:0082 word_11212 dw 0 ; DATA XREF: start+76 w
dseg:0082 ; sub_10C43+1F r
dseg:0084 word_11214 dw 0 ; DATA XREF: start+19 w
dseg:0084 ; start+D0 r ...
dseg:0086 word_11216 dw 0 ; DATA XREF: start+16 w
dseg:0086 ; sub_10B5A+77 r
dseg:0088 word_11218 dw 0 ; DATA XREF: sub_107EF:loc_10804 w
dseg:0088 ; sub_1080F:loc_10832 w
dseg:008A word_1121A dw 0 ; DATA XREF: start+25 w
dseg:008A ; start+4B w ...
dseg:008C off_1121C dw 1670h ; DATA XREF: sub_107EF+10 w
dseg:008C ; sub_1080F+3 r ...
dseg:008E align 4
dseg:0090 word_11220 dw 0 ; DATA XREF: start+C8 w
dseg:0092 align 4
dseg:0094 word_11224 dw 0 ; DATA XREF: start+CC w
dseg:0096 align 4
dseg:0098 word_11228 dw 0 ; DATA XREF: start+21 w
dseg:009A aNumberOfMaze db 'Number of maze: ',0 ; DATA XREF: sub_10174+11 o
dseg:00AB a2d db '%2d',0 ; DATA XREF: sub_10174+27 o
dseg:00AF aMazeD db 'Maze: %d',0 ; DATA XREF: sub_10174+E8 o
dseg:00B8 aMoves db 'Moves: ',0 ; DATA XREF: sub_10174+10D o
dseg:00C0 aStoneMoves db 'Stone moves: ',0 ; DATA XREF: sub_10174+122 o
dseg:00CE aD db '%d',0 ; DATA XREF: sub_10174+14B o
dseg:00D1 aD_0 db '%d',0 ; DATA XREF: sub_10174+171 o
dseg:00D4 aCongratulation db 'Congratulations !!!',0 ; DATA XREF: sub_10174+36D o
dseg:00E8 symbols db 20h ; DATA XREF: draw_symbol_center_xy+24 r
dseg:00E8 ; draw_symbol_xy+1A r
dseg:00E9 db 3
dseg:00EA db 0B1h ; ±
dseg:00EB db 1
dseg:00EC db 2Eh ; .
dseg:00ED db 6
dseg:00EE db 23h ; #
dseg:00EF db 1
dseg:00F0 db 20h
dseg:00F1 db 0
dseg:00F2 colors db 0 ; DATA XREF: draw_symbol_center_xy+1B r
dseg:00F2 ; draw_symbol_xy+11 r
dseg:00F3 db 0Eh
dseg:00F4 db 64h ; d
dseg:00F5 db 0Ch
dseg:00F6 db 20h
dseg:00F7 db 2Eh ; .
dseg:00F8 db 64h ; d
dseg:00F9 db 24h ; $
dseg:00FA db 0
dseg:00FB db 0
dseg:00FC level_01 db 16h, 0Bh, 0A2h, 0DFh, 38h, 32h, 1Fh, 38h, 2Ah, 3, 0E6h
dseg:00FC ; DATA XREF: print_level+13 o
dseg:00FC db 12h, 0C0h, 0A5h, 0F2h, 83h, 2, 81h, 3, 0E4h, 12h, 82h
dseg:00FC db 25h, 6, 0CDh, 64h, 22h, 51h, 0ACh, 11h, 0A1h, 0Ah, 5
dseg:00FC db 0E5h, 11h, 0B1h, 14h, 82h, 29h, 82h, 31h, 0A0h, 0E1h
dseg:00FC db 2Ch, 18h, 0D1h, 0CFh, 80h, 0Ch, 8
dseg:012E level_02 db 0Eh, 0Ah, 0F6h, 58h, 0Ch, 68h, 0Dh, 94h, 0C6h, 80h
dseg:012E db 85h, 2, 82h, 18h, 0D0h, 15h, 4Ch, 10h, 0C6h, 0C2h, 18h
dseg:012E db 21h, 8Dh, 1, 6, 4, 39h, 10h, 0A0h, 81h, 80h, 85h, 2
dseg:012E db 8, 20h, 60h, 34h, 1Bh, 0Ch, 1Eh, 0CAh, 7, 4
dseg:0159 level_03 db 11h, 0Ah, 0E3h, 9Fh, 0Eh, 7, 0C2h, 11h, 42h, 1Fh, 8
dseg:0159 db 50h, 23h, 0E0h, 85h, 4, 0Ch, 1Eh, 84h, 8, 0A6h, 0B4h
dseg:0159 db 10h, 85h, 2, 82h, 59h, 0D4h, 28h, 14h, 90h, 0D6h, 83h
dseg:0159 db 0DFh, 7Ch, 0Eh, 1
dseg:017E level_04 db 16h, 0Dh, 0F2h, 0CEh, 7Ch, 0B0h, 0C1h, 58h, 0C9h, 0ECh
dseg:017E db 0B0h, 56h, 32h, 1Ah, 0Ch, 8, 29h, 2Bh, 19h, 8, 98h
dseg:017E db 0A8h, 10h, 30h, 56h, 32h, 18h, 15h, 88h, 18h, 2Bh, 19h
dseg:017E db 8, 88h, 14h, 10h, 5Eh, 0CBh, 2, 6, 0C3h, 0A1h, 90h
dseg:017E db 8Fh, 74h, 34h, 28h, 21h, 0F2h, 42h, 22h, 31h, 40h, 7Ch
dseg:017E db 90h, 0C8h, 64h, 87h, 0C9h, 3Dh, 0F2h, 80h, 8, 0Ah
dseg:01BE level_05 db 11h, 0Dh, 0E2h, 0DFh, 24h, 32h, 5Bh, 0C1h, 5, 43h, 1
dseg:01BE db 0E0h, 0D8h, 87h, 0A4h, 4Bh, 24h, 35h, 0A0h, 84h, 28h
dseg:01BE db 15h, 35h, 0A8h, 42h, 21h, 8, 35h, 0A0h, 85h, 40h, 0A0h
dseg:01BE db 23h, 0D8h, 14h, 10h, 0F8h, 42h, 0Ah, 3, 0E4h, 0A2h
dseg:01BE db 10h, 7Ch, 80h, 0D0h, 7Ch, 83h, 10h, 0Eh, 7
dseg:01F1 level_06 db 0Ch, 0Bh, 0C6h, 9, 41h, 8Dh, 1, 10h, 89h, 63h, 41h
dseg:01F1 db 2Ch, 90h, 0C6h, 0B2h, 21h, 0Ch, 68h, 8, 21h, 8, 63h
dseg:01F1 db 4Ah, 8, 42h, 0D0h, 81h, 50h, 19h, 0Ch, 8, 84h, 0Ch
dseg:01F1 db 84h, 28h, 14h, 6, 43h, 4, 32h, 19h, 3Dh, 9, 1
dseg:021D level_07 db 0Dh, 0Ch, 0D2h, 0D8h, 35h, 92h, 90h, 60h, 84h, 44h
dseg:021D db 21h, 0A1h, 61h, 0Ch, 0Ah, 9, 64h, 0A4h, 5Ah, 0A9h, 0Ah
dseg:021D db 9, 44h, 62h, 8, 41h, 4, 27h, 10h, 68h, 96h, 71h, 4
dseg:021D db 44h, 8, 33h, 88h, 30h, 4Ah, 2Dh, 14h, 0F8h, 5, 2
dseg:0249 level_08 db 10h, 11h, 82h, 9Fh, 24h, 30h, 7Bh, 0Ch, 6, 85h, 22h
dseg:0249 db 8, 18h, 8, 44h, 20h, 60h, 50h, 18h, 0Ch, 8, 28h, 0Dh
dseg:0249 db 14h, 84h, 41h, 82h, 91h, 8, 28h, 20h, 0A0h, 86h, 48h
dseg:0249 db 68h, 40h, 0A3h, 21h, 12h, 0C0h, 0A8h, 41h, 4, 8, 0A6h
dseg:0249 db 0Fh, 60h, 96h, 9, 78h, 38h, 1Eh, 0Eh, 7, 83h, 98h, 0F0h
dseg:0249 db 73h, 1Eh, 0Eh, 63h, 0C7h, 38h, 0, 1, 6
dseg:028B level_09 db 11h, 12h, 0F0h, 6Bh, 0E0h, 30h, 4Eh, 38h, 5Bh, 4, 0E3h
dseg:028B db 81h, 0C2h, 71h, 0C0h, 0C1h, 0Ch, 13h, 8Eh, 10h, 88h
dseg:028B db 60h, 9Ch, 6Ch, 94h, 73h, 61h, 13h, 8, 6Ch, 0B6h, 4
dseg:028B db 10h, 0D6h, 42h, 82h, 90h, 0C9h, 0Ch, 0Ah, 5, 42h, 81h
dseg:028B db 0Dh, 44h, 41h, 0Bh, 6Ch, 21h, 50h, 7Ch, 0A4h, 4Bh, 0E4h
dseg:028B db 86h, 3, 0E5h, 6, 3, 0E5h, 6, 3, 0E5h, 14h, 0D8h, 1
dseg:028B db 0Ah
dseg:02CE level_10 db 15h, 14h, 0F2h, 0CAh, 7Ch, 93h, 18h, 0Fh, 92h, 1Dh
dseg:02CE db 0Fh, 92h, 18h, 29h, 12h, 0C1h, 2Ch, 16h, 89h, 68h, 22h
dseg:02CE db 11h, 4Ch, 93h, 3, 41h, 4, 45h, 24h, 41h, 48h, 6Bh, 4Bh
dseg:02CE db 4, 0C6h, 85h, 1, 0BDh, 8, 52h, 11h, 10h, 88h, 1Bh, 0D4h
dseg:02CE db 0C8h, 60h, 54h, 1Bh, 0C6h, 3, 21h, 8, 20h, 81h, 0BCh
dseg:02CE db 60h, 23h, 51h, 2Dh, 0E3h, 1, 90h, 0C0h, 82h, 80h, 0DEh
dseg:02CE db 30h, 4Ah, 8, 88h, 20h, 0B5h, 0A0h, 83h, 2, 0C0h, 0F0h
dseg:02CE db 41h, 13h, 9, 81h, 0E0h, 83h, 0A1h, 7, 82h, 3Dh, 7, 83h
dseg:02CE db 0E4h, 7, 8Fh, 69h, 0A0h, 2, 5
dseg:032F level_11 db 13h, 0Fh, 0F0h, 53h, 0E0h, 0A4h, 18h, 0Fh, 12h, 0C1h
dseg:032F db 2Ah, 7, 48h, 70h, 50h, 1Ch, 21h, 81h, 8, 0A1h, 10h
dseg:032F db 0E0h, 60h, 2Ah, 1Bh, 0Eh, 4, 10h, 84h, 40h, 89h, 6Ch
dseg:032F db 32h, 20h, 60h, 21h, 0Fh, 68h, 30h, 44h, 0Ch, 96h, 88h
dseg:032F db 42h, 0F2h, 16h, 0A2h, 58h, 3Dh, 8Ch, 23h, 11h, 4Eh
dseg:032F db 86h, 71h, 63h, 0E4h, 86h, 0F1h, 0F2h, 4Dh, 7Ch, 90h
dseg:032F db 7, 3
dseg:0370 level_12 db 0Dh, 10h, 83h, 0DAh, 0Bh, 0B3h, 97h, 67h, 34h, 16h
dseg:0370 db 76h, 76h, 76h, 34h, 17h, 67h, 67h, 67h, 34h, 16h, 76h
dseg:0370 db 76h, 76h, 34h, 17h, 67h, 67h, 67h, 34h, 4Bh, 24h, 0B8h
dseg:0370 db 19h, 0Dh, 18h, 8Dh, 7Ch, 82h, 10h, 82h, 8, 20h, 84h
dseg:0370 db 0A1h, 4, 10h, 42h, 10h, 50h, 41h, 4, 11h, 80h, 0C8h
dseg:0370 db 82h, 90h, 0C0h, 60h, 0B6h, 3, 5, 32h, 52h, 0, 6, 0Dh
dseg:03B2 level_13 db 14h, 0Dh, 0A3h, 0DFh, 25h, 92h, 18h, 2Dh, 92h, 5Ch
dseg:03B2 db 0Ch, 6, 4Bh, 60h, 88h, 14h, 0Ch, 6, 9, 0C2h, 10h, 60h
dseg:03B2 db 44h, 28h, 41h, 5, 8Bh, 8, 60h, 84h, 15h, 1, 0A2h, 70h
dseg:03B2 db 84h, 23h, 42h, 4, 10h, 58h, 0B0h, 86h, 88h, 60h, 85h
dseg:03B2 db 4, 27h, 8, 42h, 10h, 0C8h, 60h, 28h, 0B1h, 61h, 28h
dseg:03B2 db 8Ah, 5, 22h, 81h, 4Eh, 4, 15h, 6, 34h, 43h, 1, 6, 43h
dseg:03B2 db 47h, 0A4h, 5Bh, 0E5h, 80h, 7, 4
dseg:03FE level_14 db 11h, 0Dh, 0F7h, 50h, 7Ch, 0B0h, 82h, 8, 0C6h, 0C2h
dseg:03FE db 8, 30h, 20h, 82h, 8, 0C0h, 41h, 6, 44h, 14h, 90h, 89h
dseg:03FE db 41h, 5, 4, 14h, 0B3h, 0A1h, 6, 44h, 14h, 10h, 0CEh
dseg:03FE db 84h, 4Bh, 30h, 42h, 19h, 0D0h, 0D8h, 44h, 22h, 19h
dseg:03FE db 0D8h, 0C9h, 8, 86h, 71h, 0A2h, 0DBh, 25h, 0E0h, 0D8h
dseg:03FE db 7Ch, 1Ah, 0C0h, 7, 4
dseg:0438 level_15 db 11h, 11h, 0D2h, 9Fh, 5, 30h, 1Fh, 21h, 80h, 0C0h, 7Ch
dseg:0438 db 30h, 20h, 81h, 0D2h, 50h, 54h, 94h, 0D0h, 60h, 50h
dseg:0438 db 42h, 0A4h, 34h, 18h, 0Ch, 88h, 10h, 8Dh, 6, 3, 82h
dseg:0438 db 14h, 88h, 45h, 2Ah, 1Bh, 8, 21h, 1Bh, 0C4h, 19h, 8
dseg:0438 db 30h, 29h, 0CEh, 0C1h, 11h, 6Ch, 6, 0F1h, 90h, 0C0h
dseg:0438 db 64h, 94h, 6Bh, 1, 11h, 40h, 60h, 3Ah, 18h, 0Dh, 87h
dseg:0438 db 4Ch, 64h, 3Eh, 49h, 6Eh, 80h, 6, 6
dseg:0480 level_16 db 0Eh, 0Fh, 0B7h, 0C3h, 24h, 3Ch, 1Ah, 0Ch, 14h, 0C0h
dseg:0480 db 42h, 82h, 98h, 0Ch, 6, 8, 82h, 91h, 18h, 25h, 80h, 0AAh
dseg:0480 db 21h, 80h, 0C1h, 0Ch, 8, 21h, 8, 21h, 41h, 8, 84h, 31h
dseg:0480 db 6, 2, 0A1h, 50h, 16h, 22h, 59h, 14h, 68h, 58h, 0C0h
dseg:0480 db 68h, 2Ch, 0F3h, 8Ch, 4, 44h, 0Dh, 0E3h, 1, 83h, 0D8h
dseg:0480 db 0Ch, 7, 0C1h, 4Fh, 0, 3, 5
dseg:04BF level_17 db 12h, 10h, 0D3h, 5Bh, 35h, 0B0h, 0D8h, 6Ch, 21h, 4, 0Dh
dseg:04BF db 86h, 20h, 64h, 0F4h, 11h, 2Eh, 68h, 64h, 20h, 0C8h
dseg:04BF db 0B3h, 42h, 8, 20h, 89h, 73h, 59h, 2Ch, 94h, 89h, 41h
dseg:04BF db 52h, 0C0h, 54h, 86h, 5, 1, 4, 18h, 10h, 9Ah, 2, 14h
dseg:04BF db 20h, 83h, 22h, 8, 4Bh, 10h, 20h, 8Bh, 6Ch, 52h, 10h
dseg:04BF db 6Ch, 94h, 4Bh, 21h, 7, 43h, 61h, 90h, 0E9h, 0CCh, 7
dseg:04BF db 0CBh, 29h, 0, 0Ah, 2
dseg:0506 level_18 db 16h, 0Dh, 0C3h, 0D9h, 7Ch, 6, 6, 82h, 19h, 0Fh, 80h
dseg:0506 db 82h, 0DAh, 1Bh, 31h, 10h, 0CEh, 22h, 99h, 21h, 82h
dseg:0506 db 19h, 0D4h, 0D9h, 68h, 42h, 19h, 0D4h, 20h, 60h, 50h
dseg:0506 db 43h, 64h, 61h, 8, 22h, 11h, 0Ch, 16h, 0A9h, 51h, 0Ah
dseg:0506 db 3, 21h, 10h, 89h, 60h, 34h, 42h, 84h, 40h, 83h, 1, 92h
dseg:0506 db 20h, 41h, 8, 10h, 0A1h, 6, 3, 0E7h, 86h, 0Fh, 79h, 80h
dseg:0506 db 0F9h, 0E5h, 20h, 0Fh, 2
dseg:054D level_19 db 1Ch, 14h, 0E3h, 1Fh, 3Ch, 0A0h, 0D1h, 4Fh, 9Ch, 5Ah
dseg:054D db 14h, 87h, 0CEh, 0Ch, 90h, 0D1h, 4Fh, 96h, 10h, 0A1h
dseg:054D db 82h, 1Ah, 0Fh, 96h, 19h, 0Ch, 16h, 83h, 0E5h, 84h, 18h
dseg:054D db 82h, 0A0h, 83h, 0E5h, 86h, 4, 10h, 94h, 10h, 7Ch, 0B0h
dseg:054D db 83h, 22h, 80h, 82h, 0Fh, 96h, 10h, 60h, 28h, 0C8h, 41h
dseg:054D db 0F2h, 88h, 45h, 32h, 10h, 41h, 0F2h, 83h, 2, 82h, 0D0h
dseg:054D db 41h, 14h, 0E9h, 0Dh, 0Ah, 0C5h, 4, 0B0h, 7Bh, 4, 0A1h
dseg:054D db 4, 42h, 6, 4Bh, 0D0h, 0D9h, 0Eh, 6, 8, 60h, 37h, 0A1h
dseg:054D db 15h, 51h, 8Ah, 86h, 42h, 0D0h, 0B4h, 0B4h, 43h, 0E5h
dseg:054D db 86h, 0B1h, 10h, 0C1h, 0EEh, 32h, 56h, 30h, 18h, 0Fh
dseg:054D db 94h, 5Bh, 4, 30h, 53h, 0E7h, 14h, 80h, 0Ch, 1
dseg:05C2 level_20 db 14h, 14h, 0D3h, 0D9h, 78h, 3Fh, 98h, 0E1h, 2Bh, 16h
dseg:05C2 db 2Ch, 58h, 0C6h, 38h, 19h, 3Fh, 1Ch, 0Ch, 8, 20h, 83h
dseg:05C2 db 0B3h, 0B1h, 0B3h, 51h, 0ACh, 14h, 0C8h, 68h, 86h, 3
dseg:05C2 db 4, 34h, 20h, 68h, 21h, 8, 41h, 80h, 0A2h, 25h, 12h
dseg:05C2 db 0A9h, 25h, 0Ah, 4, 14h, 84h, 20h, 82h, 10h, 0C0h, 42h
dseg:05C2 db 10h, 0E8h, 50h, 86h, 45h, 4Ah, 0A5h, 43h, 5, 0B0h, 43h
dseg:05C2 db 21h, 0A0h, 0C0h, 64h, 28h, 43h, 21h, 4, 45h, 1, 90h
dseg:05C2 db 0C8h, 42h, 6, 5, 41h, 92h, 50h, 44h, 40h, 0C0h, 84h
dseg:05C2 db 0B6h, 10h, 68h, 21h, 8, 74h, 23h, 90h, 78h, 3Eh, 3
dseg:05C2 db 0C7h, 0B2h, 0C8h, 6, 4
dseg:0628 level_21 db 10h, 0Eh, 93h, 0D3h, 81h, 8Dh, 1, 90h, 0E0h, 63h, 60h
dseg:0628 db 70h, 31h, 0A0h, 30h, 53h, 26h, 0B0h, 18h, 21h, 80h
dseg:0628 db 0F9h, 21h, 80h, 0C0h, 60h, 86h, 3, 5, 0A2h, 18h, 29h
dseg:0628 db 12h, 0C0h, 0A0h, 0B4h, 18h, 21h, 4, 28h, 14h, 4, 28h
dseg:0628 db 21h, 81h, 40h, 0A4h, 32h, 62h, 21h, 1Ah, 0D0h, 68h
dseg:0628 db 3Eh, 0Ch, 74h, 2, 0Ah
dseg:0662 level_22 db 16h, 14h, 0F2h, 4Ah, 74h, 0F6h, 58h, 2Dh, 90h, 0D0h
dseg:0662 db 60h, 30h, 28h, 0Ch, 90h, 0C0h, 42h, 8, 28h, 10h, 21h
dseg:0662 db 5, 21h, 82h, 14h, 14h, 86h, 2, 14h, 88h, 11h, 2Ch, 9Eh
dseg:0662 db 0CAh, 21h, 6, 4, 11h, 80h, 0E6h, 021h, 18h, 8, 32h
dseg:0662 db 18h, 0Eh, 68h, 41h, 80h, 0C1h, 8, 84h, 11h, 78h, 0C0h
dseg:0662 db 60h, 20h, 0E0h, 0B3h, 4, 0Ch, 4, 10h, 84h, 20h, 0E6h
dseg:0662 db 30h, 18h, 0Ch, 8, 23h, 1, 0CCh, 42h, 30h, 10h, 0A4h
dseg:0662 db 30h, 42h, 0ADh, 80h, 0C0h, 42h, 8, 52h, 10h, 50h, 20h
dseg:0662 db 8Ch, 10h, 83h, 62h, 8, 20h, 0A4h, 94h, 18h, 31h, 0Ah
dseg:0662 db 85h, 41h, 7, 0C2h, 35h, 4, 6Ah, 0Ah, 0F0h, 1Dh, 0Ch
dseg:0662 db 9Eh, 0C3h, 0A5h, 0BEh, 0, 0Bh, 4
dseg:06D7 level_23 db 19h, 0Eh, 0D3h, 5Fh, 3Ch, 30h, 18h, 29h, 0F3h, 2, 11h
dseg:06D7 db 40h, 0C1h, 0Eh, 9Ch, 0C0h, 60h, 32h, 7Bh, 5Ah, 2, 11h
dseg:06D7 db 40h, 0C0h, 8Ch, 6, 48h, 6Bh, 10h, 6Ch, 2Ah, 3, 84h
dseg:06D7 db 31h, 8Bh, 50h, 8Ch, 4, 2Ah, 0Ah, 82h, 19h, 0D0h, 43h
dseg:06D7 db 1, 40h, 0A8h, 0Ch, 6, 48h, 6Bh, 8, 42h, 36h, 2Fh, 75h
dseg:06D7 db 80h, 0C4h, 54h, 7, 0CBh, 8, 46h, 3, 2, 3Eh, 58h, 60h
dseg:06D7 db 30h, 19h, 0Fh, 96h, 53h, 5, 0BEh, 71h, 4Fh, 90h, 0
dseg:06D7 db 5, 7
dseg:0728 level_24 db 15h, 13h, 93h, 0D3h, 0E4h, 7, 0B5h, 3Ch, 16h, 2Ch, 6Bh
dseg:0728 db 18h, 0Fh, 7, 0B4h, 40h, 0F0h, 6Ch, 69h, 60h, 0A6h, 4Fh
dseg:0728 db 60h, 40h, 0C8h, 64h, 36h, 29h, 10h, 50h, 20h, 64h, 30h
dseg:0728 db 1Ah, 0Ch, 8, 23h, 1, 92h, 11h, 6Ch, 86h, 3, 1, 90h
dseg:0728 db 85h, 61h, 92h, 90h, 60h, 86h, 4, 64h, 22h, 18h, 0Ch
dseg:0728 db 6, 3, 44h, 2Ah, 5Ah, 0Ch, 10h, 82h, 15h, 8, 18h, 0Ch
dseg:0728 db 6, 42h, 2Dh, 0A0h, 88h, 41h, 10h, 88h, 68h, 28h, 83h
dseg:0728 db 2, 81h, 5, 21h, 0A0h, 83h, 2, 33h, 40h, 64h, 34h, 4Bh
dseg:0728 db 2, 0C2h, 0DCh, 21h, 80h, 0C0h, 60h, 3Eh, 41h, 0E9h
dseg:0728 db 0A0h, 5, 0Fh
dseg:0790 level_25 db 17h, 11h, 0F3h, 0Ah, 7Ch, 0B3h, 18h, 2Dh, 0A3h, 5Dh
dseg:0790 db 0Ch, 86h, 83h, 82h, 8, 42h, 8, 20h, 0D0h, 60h, 0A4h
dseg:0790 db 28h, 0Dh, 8Ch, 68h, 38h, 20h, 41h, 10h, 0B1h, 63h, 44h
dseg:0790 db 2Ah, 94h, 10h, 42h, 16h, 2Ch, 68h, 36h, 1Ah, 29h, 69h
dseg:0790 db 68h, 21h, 49h, 8Ch, 5, 8Bh, 6Bh, 34h, 3Ah, 16h, 2Dh
dseg:0790 db 0Eh, 6, 82h, 8Ah, 95h, 83h, 42h, 29h, 6, 0EAh, 8, 9Dh
dseg:0790 db 8, 34h, 2Bh, 0Ch, 84h, 4Eh, 84h, 19h, 21h, 10h, 0D9h
dseg:0790 db 2Ch, 0E8h, 46h, 2Bh, 18h, 35h, 0E0h, 0D0h, 60h, 36h
dseg:0790 db 7Ah, 68h, 0A6h, 0C0h, 11h, 9
dseg:07ED level_26 db 0Fh, 0Fh, 0F7h, 3, 0A1h, 0C0h, 0E9h, 4Ch, 90h, 8Ah
dseg:07ED db 41h, 80h, 0C9h, 8, 22h, 1Ah, 0Ch, 84h, 4Ch, 14h, 11h
dseg:07ED db 19h, 0Ch, 4, 42h, 14h, 6, 43h, 1, 10h, 0C0h, 87h, 30h
dseg:07ED db 4Ch, 11h, 80h, 83h, 24h, 32h, 56h, 20h, 83h, 21h, 6
dseg:07ED db 30h, 62h, 0Ch, 84h, 11h, 0Ch, 0E2h, 2Dh, 0Ah, 3, 38h
dseg:07ED db 0D9h, 0Ch, 96h, 0E1h, 6Dh, 0, 4, 4
dseg:082C level_27 db 17h, 0Dh, 1Eh, 0F3h, 81h, 9Dh, 21h, 0A0h, 0C9h, 2Ch
dseg:082C db 90h, 0DEh, 81h, 42h, 8, 21h, 3, 21h, 0CCh, 60h, 50h
dseg:082C db 18h, 14h, 6, 43h, 98h, 0C0h, 60h, 20h, 82h, 21h, 83h
dseg:082C db 0D0h, 0A0h, 40h, 83h, 4, 0B0h, 1Bh, 0Ah, 85h, 8, 44h
dseg:082C db 32h, 11h, 0Ch, 8Ah, 82h, 14h, 0Ah, 42h, 8, 30h, 42h
dseg:082C db 25h, 6, 0Bh, 51h, 4, 10h, 84h, 56h, 29h, 15h, 84h, 10h
dseg:082C db 0A8h, 50h, 0A1h, 0C8h, 23h, 5Ah, 21h, 0C2h, 5Dh, 31h
dseg:082C db 0F0h, 0, 0Ah, 0Bh
dseg:087C level_28 db 0Fh, 11h, 0B3h, 5Eh, 0Ch, 6, 3, 0C1h, 0Ah, 43h, 0A4h
dseg:087C db 0A2h, 10h, 68h, 0A4h, 28h, 8, 86h, 43h, 0A1h, 82h, 18h
dseg:087C db 8, 41h, 52h, 10h, 30h, 11h, 10h, 30h, 18h, 11h, 80h
dseg:087C db 0A8h, 14h, 85h, 40h, 44h, 30h, 44h, 64h, 88h, 4Ah, 22h
dseg:087C db 80h, 0C0h, 60h, 42h, 1Bh, 29h, 0Ah, 8, 60h, 2Ah, 18h
dseg:087C db 0D0h, 0C9h, 48h, 63h, 5Ah, 0D8h, 8, 0DDh, 0Dh, 6, 0B4h
dseg:087C db 91h, 8Dh, 1Eh, 0C3h, 0, 6, 1
dseg:08C5 level_29 db 18h, 0Bh, 0F3h, 4Bh, 7Ch, 18h, 89h, 64h, 0A6h, 4Bh
dseg:08C5 db 68h, 94h, 20h, 0A0h, 42h, 0D8h, 21h, 5, 5, 42h, 6, 48h
dseg:08C5 db 6Bh, 49h, 10h, 41h, 40h, 0A4h, 2Ah, 58h, 0C0h, 88h
dseg:08C5 db 41h, 92h, 55h, 8, 30h, 43h, 5Ah, 82h, 25h, 0A0h, 0D1h
dseg:08C5 db 0Dh, 6Ah, 8, 86h, 5, 4, 0A8h, 43h, 1Bh, 18h, 14h, 6
dseg:08C5 db 0Ah, 46h, 34h, 19h, 25h, 0D0h, 0F9h, 0EEh, 20h, 13h
dseg:08C5 db 9
dseg:0907 level_30 db 0Eh, 14h, 16h, 0F8h, 64h, 0D6h, 42h, 10h, 96h, 43h
dseg:0907 db 21h, 0Ah, 88h, 81h, 92h, 11h, 4Ch, 86h, 9, 41h, 80h
dseg:0907 db 89h, 60h, 32h, 18h, 8, 86h, 42h, 22h, 0A1h, 3, 21h
dseg:0907 db 90h, 82h, 10h, 0F4h, 19h, 0Ch, 4, 19h, 15h, 32h, 10h
dseg:0907 db 60h, 56h, 28h, 8, 86h, 4Bh, 44h, 23h, 0D3h, 4, 0B5h
dseg:0907 db 88h, 50h, 21h, 0Dh, 0E2h, 22h, 30h, 43h, 18h, 46h, 21h
dseg:0907 db 40h, 84h, 37h, 94h, 86h, 9, 60h, 0F4h, 8Ah, 7Ch, 8
dseg:0907 db 6
dseg:0954 level_31 db 0Fh, 0Ch, 1Ah, 0F0h, 60h, 30h, 5Bh, 24h, 30h, 18h, 0Ch
dseg:0954 db 0E9h, 41h, 81h, 18h, 0Ch, 0E8h, 8, 21h, 3, 10h, 9Dh
dseg:0954 db 1, 6, 4, 60h, 33h, 83h, 10h, 64h, 21h, 7Ah, 56h, 88h
dseg:0954 db 21h, 2Ch, 6, 8, 81h, 90h, 8Ch, 60h, 86h, 20h, 70h, 38h
dseg:0954 db 43h, 87h, 20h, 0Dh, 9
dseg:0987 level_32 db 12h, 10h, 82h, 9Fh, 2Ch, 30h, 7Bh, 64h, 30h, 43h, 1
dseg:0987 db 90h, 0D8h, 60h, 44h, 20h, 0A4h, 0A6h, 2, 0A0h, 50h
dseg:0987 db 10h, 82h, 30h, 53h, 2, 84h, 14h, 15h, 90h, 0C0h, 60h
dseg:0987 db 20h, 0C9h, 34h, 10h, 85h, 42h, 81h, 42h, 2Dh, 8, 20h
dseg:0987 db 51h, 80h, 0C0h, 64h, 86h, 9, 60h, 95h, 3, 41h, 80h
dseg:0987 db 0D6h, 0B0h, 0D1h, 4Eh, 6Ah, 70h, 35h, 0A9h, 0F0h, 0CEh
dseg:0987 db 87h, 0C9h, 0Ch, 0E3h, 0E5h, 16h, 0F8h, 0, 8, 2
dseg:09D1 level_33 db 0Dh, 0Fh, 0C2h, 9Bh, 2Dh, 80h, 0D1h, 0Dh, 88h, 0C9h
dseg:09D1 db 8, 50h, 42h, 25h, 4, 20h, 81h, 0Ah, 2, 29h, 10h, 0C8h
dseg:09D1 db 8Ch, 6, 0B1h, 41h, 3, 1, 0ACh, 64h, 46h, 3, 5Ah, 8
dseg:09D1 db 84h, 20h, 0CEh, 4, 29h, 8, 0C5h, 5, 1, 0C0h, 0C9h, 2Eh
dseg:09D1 db 5, 9, 74h, 30h, 1Fh, 29h, 90h, 1, 4
dseg:0A08 level_34 db 0Ch, 0Fh, 0F6h, 0DBh, 21h, 82h, 59h, 14h, 88h, 5Ah
dseg:0A08 db 21h, 11h, 8, 64h, 40h, 0D1h, 8, 98h, 11h, 6Ch, 84h
dseg:0A08 db 10h, 84h, 0B0h, 18h, 0Ch, 8, 42h, 11h, 8, 0D1h, 0Ch
dseg:0A08 db 91h, 88h, 0E6h, 30h, 40h, 88h, 6Fh, 10h, 88h, 96h, 0B1h
dseg:0A08 db 81h, 0Ah, 63h, 43h, 47h, 0B4h, 80h, 0Ah, 0Ah
dseg:0A3C level_35 db 14h, 10h, 0F6h, 58h, 35h, 90h, 0D0h, 45h, 35h, 0A1h
dseg:0A3C db 92h, 23h, 0A5h, 0E8h, 64h, 22h, 59h, 21h, 15h, 0A5h
dseg:0A3C db 10h, 89h, 60h, 32h, 56h, 20h, 84h, 15h, 84h, 42h, 29h
dseg:0A3C db 6, 4, 14h, 30h, 1Dh, 2Dh, 6, 0Ah, 44h, 22h, 11h, 0Ch
dseg:0A3C db 4, 15h, 24h, 22h, 1Ah, 21h, 0Ah, 5, 1, 10h, 8Eh, 41h
dseg:0A3C db 8, 2Ah, 8, 38h, 18h, 10h, 84h, 42h, 8, 38h, 11h, 15h
dseg:0A3C db 91h, 40h, 70h, 84h, 42h, 25h, 0Ah, 3, 0A1h, 0A0h, 83h
dseg:0A3C db 41h, 0D3h, 11h, 8Eh, 0, 0Ah, 1
dseg:0A91 level_36 db 12h, 13h, 0B2h, 9Fh, 24h, 96h, 8, 78h, 0A6h, 5, 1, 0E0h
dseg:0A91 db 0C8h, 82h, 82h, 9Bh, 8, 52h, 10h, 0A4h, 22h, 0D8h, 0Ch
dseg:0A91 db 6, 44h, 8, 31h, 0A5h, 45h, 0Ah, 55h, 31h, 88h, 32h
dseg:0A91 db 5Ah, 21h, 13h, 88h, 28h, 88h, 44h, 22h, 18h, 23h, 10h
dseg:0A91 db 41h, 0A1h, 59h, 38h, 83h, 25h, 22h, 58h, 23h, 11h, 28h
dseg:0A91 db 84h, 18h, 21h, 13h, 8Ch, 10h, 0A1h, 4Ah, 12h, 0C6h
dseg:0A91 db 30h, 19h, 21h, 0A0h, 83h, 18h, 88h, 44h, 50h, 0C0h
dseg:0A91 db 81h, 14h, 83h, 65h, 40h, 0E0h, 42h, 12h, 0D0h, 70h
dseg:0A91 db 32h, 11h, 8Eh, 16h, 0F9h, 20h, 7, 8
dseg:0AEF level_37 db 15h, 0Fh, 0F6h, 1Fh, 1, 0CDh, 27h, 0B0h, 1Ch, 0D2h
dseg:0AEF db 18h, 21h, 90h, 0C0h, 63h, 4Ah, 15h, 0Ah, 0C3h, 1, 9Ch
dseg:0AEF db 10h, 40h, 0C1h, 2Ch, 86h, 3, 38h, 0ABh, 68h, 30h, 18h
dseg:0AEF db 25h, 0A0h, 0C8h, 54h, 4, 29h, 60h, 30h, 44h, 10h, 50h
dseg:0AEF db 28h, 60h, 40h, 0C0h, 60h, 52h, 14h, 60h, 86h, 83h, 4
dseg:0AEF db 0A2h, 10h, 60h, 43h, 59h, 0Ch, 8, 21h, 8, 87h, 0C3h
dseg:0AEF db 42h, 81h, 40h, 7Ch, 86h, 42h, 0Ch, 87h, 0C1h, 68h, 0B7h
dseg:0AEF db 0CBh, 25h, 0F0h, 0, 9, 0Dh
dseg:0B41 level_38 db 0Eh, 0Fh, 1Eh, 0D8h, 6Bh, 49h, 0Dh, 5, 8Bh, 18h, 10h
dseg:0B41 db 86h, 8, 6Bh, 10h, 60h, 84h, 11h, 58h, 0C0h, 60h, 96h
dseg:0B41 db 0C2h, 84h, 28h, 4Ah, 25h, 81h, 50h, 41h, 50h, 20h, 82h
dseg:0B41 db 30h, 10h, 41h, 81h, 4, 21h, 4, 18h, 25h, 82h, 18h, 8
dseg:0B41 db 34h, 42h, 21h, 10h, 83h, 2, 6, 5, 1, 82h, 54h, 14h
dseg:0B41 db 92h, 0D0h, 60h, 0B7h, 0Ah, 74h, 0Ah, 3
dseg:0B82 level_39 db 17h, 12h, 0F2h, 0C9h, 7Ch, 0F0h, 42h, 0D2h, 0F9h, 0C1h
dseg:0B82 db 0ACh, 6Ch, 0F6h, 9Ah, 0C6h, 88h, 64h, 86h, 0C8h, 6Bh
dseg:0B82 db 63h, 4, 50h, 0C0h, 0A0h, 86h, 0B5h, 10h, 0E1h, 10h
dseg:0B82 db 46h, 0Ah, 0C6h, 48h, 60h, 42h, 11h, 10h, 20h, 0D6h
dseg:0B82 db 30h, 4Bh, 2, 10h, 85h, 1, 10h, 89h, 60h, 22h, 11h, 68h
dseg:0B82 db 97h, 0C2h, 21h, 91h, 40h, 85h, 0A2h, 58h, 8, 21h, 4Bh
dseg:0B82 db 1, 16h, 82h, 29h, 6, 45h, 21h, 0D0h, 0E0h, 60h, 40h
dseg:0B82 db 0A0h, 82h, 96h, 3, 81h, 13h, 10h, 0A4h, 22h, 9Ch, 0Dh
dseg:0B82 db 6, 8, 81h, 0F2h, 0Ch, 64h, 97h, 0CDh, 2Dh, 0F2h, 80h
dseg:0B82 db 0Bh, 5
dseg:0BE4 level_40 db 0Bh, 0Bh, 0C2h, 91h, 0ACh, 4, 1Bh, 14h, 4, 19h, 14h
dseg:0BE4 db 21h, 11h, 0Ah, 33h, 88h, 30h, 10h, 0A7h, 40h, 60h, 20h
dseg:0BE4 db 0B0h, 62h, 21h, 6, 42h, 0Ah, 4, 15h, 2, 0A0h, 83h, 6
dseg:0BE4 db 0A2h, 9Ch, 0, 8, 1
dseg:0C0B level_41 db 14h, 0Fh, 0F2h, 0Bh, 7Ch, 0B2h, 19h, 21h, 0F2h, 48h
dseg:0C0B db 6Ch, 3Eh, 41h, 0Ch, 11h, 40h, 7Ch, 10h, 88h, 0A0h, 40h
dseg:0C0B db 0F8h, 8, 54h, 20h, 64h, 0A6h, 43h, 24h, 42h, 0D0h, 60h
dseg:0C0B db 0E4h, 43h, 41h, 6, 37h, 90h, 4Ch, 8, 2Ch, 46h, 0A2h
dseg:0C0B db 19h, 21h, 5, 88h, 0D5h, 81h, 41h, 53h, 0FAh, 30h, 32h
dseg:0C0B db 21h, 0EEh, 30h, 28h, 0Fh, 94h, 43h, 4, 0BEh, 59h, 4Ch
dseg:0C0B db 0, 11h, 8
dseg:0C4F level_42 db 0Dh, 12h, 1Ch, 0D8h, 44h, 32h, 53h, 1, 0Ah, 45h, 21h
dseg:0C4F db 80h, 0C0h, 82h, 13h, 18h, 8, 88h, 83h, 21h, 10h, 0AAh
dseg:0C4F db 14h, 84h, 18h, 14h, 17h, 4Ah, 15h, 20h, 0C9h, 0Ch, 0Ah
dseg:0C4F db 0B1h, 92h, 11h, 0Dh, 63h, 10h, 84h, 43h, 5Ah, 49h, 64h
dseg:0C4F db 0ACh, 60h, 22h, 10h, 6Bh, 18h, 8Ch, 4, 1Ah, 0C6h, 3
dseg:0C4F db 1, 0F0h, 0C1h, 48h, 85h, 4Bh, 61h, 0A0h, 0E9h, 8Ch
dseg:0C4F db 80h, 2, 1
dseg:0C93 level_43 db 11h, 10h, 0A3h, 0D9h, 6Ch, 3Eh, 8, 68h, 30h, 10h, 62h
dseg:0C93 db 0Ah, 3, 41h, 40h, 0A3h, 4, 30h, 19h, 21h, 10h, 82h
dseg:0C93 db 10h, 22h, 19h, 0Ch, 88h, 15h, 1, 6, 83h, 21h, 0Ah, 42h
dseg:0C93 db 0Dh, 10h, 84h, 14h, 90h, 83h, 41h, 80h, 0C1h, 0Ch, 8
dseg:0C93 db 1Ah, 0Dh, 10h, 88h, 88h, 23h, 18h, 0A4h, 32h, 10h, 6Bh
dseg:0C93 db 18h, 39h, 5, 8Ch, 0E1h, 0Fh, 6, 0B4h, 87h, 83h, 5Ah
dseg:0C93 db 43h, 0C7h, 0BCh, 0, 0Fh, 3
dseg:0CDC level_44 db 19h, 13h, 0C3h, 1Fh, 34h, 0B6h, 43h, 0E6h, 86h, 42h
dseg:0CDC db 8, 0B7h, 0C9h, 8, 40h, 0C0h, 0A8h, 0C7h, 8, 54h, 12h
dseg:0CDC db 88h, 74h, 34h, 4Bh, 4, 41h, 4, 0Ch, 10h, 0C9h, 8Eh
dseg:0CDC db 8Ah, 4Ch, 44h, 32h, 43h, 7, 20h, 0D0h, 41h, 80h, 89h
dseg:0CDC db 44h, 0B8h, 52h, 0Ah, 20h, 0C0h, 41h, 12h, 8Ah, 44h
dseg:0CDC db 31h, 81h, 91h, 8, 41h, 81h, 40h, 0A0h, 2Ah, 18h, 0C0h
dseg:0CDC db 0A8h, 60h, 84h, 18h, 8, 20h, 0D9h, 1Ah, 11h, 8, 40h
dseg:0CDC db 8Ah, 64h, 22h, 10h, 63h, 1Ah, 14h, 6, 8Bh, 68h, 31h
dseg:0CDC db 88h, 20h, 0C1h, 0Fh, 18h, 0C6h, 32h, 11h, 0Fh, 96h
dseg:0CDC db 18h, 0D6h, 0C0h, 7Ch, 0B0h, 0C6h, 0D0h, 0F9h, 64h, 30h
dseg:0CDC db 4Bh, 4, 3Eh, 61h, 0ECh, 0, 0Dh, 7
dseg:0D4E level_45 db 13h, 0Bh, 0E3h, 5Eh, 2Dh, 80h, 0C1h, 4Dh, 86h, 43h
dseg:0D4E db 22h, 0A0h, 0C1h, 48h, 31h, 8, 44h, 30h, 11h, 0Eh, 4
dseg:0D4E db 18h, 21h, 14h, 0C1h, 28h, 45h, 40h, 0A0h, 50h, 43h
dseg:0D4E db 3Ah, 82h, 21h, 80h, 0C9h, 0Ch, 0E3h, 81h, 12h, 89h
dseg:0D4E db 67h, 18h, 25h, 81h, 40h, 0A0h, 0F4h, 43h, 21h, 90h
dseg:0D4E db 0F8h, 3Dh, 9, 7
dseg:0D85 level_46 db 16h, 11h, 0A3h, 0D8h, 29h, 0D0h, 0C9h, 0Ch, 14h, 0C0h
dseg:0D85 db 74h, 32h, 29h, 0Ch, 0Ah, 3, 0A1h, 80h, 88h, 41h, 0B2h
dseg:0D85 db 9Ah, 21h, 0Ah, 44h, 22h, 20h, 0C8h, 68h, 0A6h, 3, 1
dseg:0D85 db 8, 29h, 31h, 82h, 9Ah, 25h, 9Dh, 0Ch, 85h, 3, 1, 14h
dseg:0D85 db 0DEh, 87h, 3, 1, 4, 43h, 7Bh, 50h, 60h, 2Ah, 49h, 67h
dseg:0D85 db 19h, 0Ch, 90h, 82h, 11h, 90h, 0CEh, 30h, 43h, 0A2h
dseg:0D85 db 81h, 11h, 68h, 84h, 4Dh, 0Ch, 4, 29h, 0Dh, 86h, 43h
dseg:0D85 db 1, 12h, 0C1h, 2Dh, 86h, 45h, 1, 50h, 53h, 0A5h, 0B0h
dseg:0D85 db 19h, 0Fh, 96h, 73h, 0E0h, 0Bh, 0Eh
dseg:0DE4 level_47 db 13h, 0Fh, 16h, 0F9h, 61h, 90h, 0F9h, 61h, 4, 63h, 0E1h
dseg:0DE4 db 0C1h, 0Ch, 68h, 21h, 8, 50h, 96h, 43h, 41h, 14h, 85h
dseg:0DE4 db 42h, 6, 82h, 2Dh, 6, 2, 86h, 30h, 52h, 21h, 58h, 43h
dseg:0DE4 db 2, 30h, 28h, 8, 84h, 42h, 21h, 0F0h, 83h, 38h, 8Dh
dseg:0DE4 db 60h, 96h, 9, 0D0h, 1Bh, 29h, 4, 19h, 0C4h, 1Fh, 1, 12h
dseg:0DE4 db 82h, 0Fh, 80h, 0E8h, 7Ch, 1Eh, 80h, 9, 3
dseg:0E26 level_48 db 10h, 0Fh, 0D2h, 9Fh, 24h, 30h, 43h, 0E4h, 6, 48h, 7Ch
dseg:0E26 db 4, 44h, 21h, 0D2h, 55h, 2, 10h, 0C9h, 4Dh, 0Ah, 42h
dseg:0E26 db 25h, 80h, 8Bh, 60h, 20h, 0D0h, 41h, 0ACh, 81h, 4, 19h
dseg:0E26 db 10h, 0ACh, 41h, 6, 4, 8, 2Ch, 0F1h, 88h, 22h, 58h, 29h
dseg:0E26 db 12h, 83h, 25h, 30h, 28h, 21h, 50h, 0D9h, 28h, 56h, 1Dh
dseg:0E26 db 0Ch, 10h, 0C8h, 74h, 0F4h, 7, 0Bh
dseg:0E65 level_49 db 13h, 10h, 0C3h, 0D9h, 70h, 86h, 35h, 6, 43h, 64h, 31h
dseg:0E65 db 9Ch, 2Ah, 10h, 34h, 43h, 19h, 0D8h, 82h, 0Ah, 10h, 0D0h
dseg:0E65 db 63h, 3Bh, 10h, 41h, 0Ah, 2, 29h, 9Ch, 60h, 34h, 10h
dseg:0E65 db 41h, 82h, 10h, 7Ch, 4, 18h, 10h, 42h, 58h, 8, 22h, 10h
dseg:0E65 db 42h, 91h, 48h, 41h, 90h, 0C1h, 2Ch, 52h, 10h, 41h, 4
dseg:0E65 db 1Ah, 0Ch, 8Ah, 42h, 8, 0B6h, 2, 11h, 16h, 0E0h, 60h
dseg:0E65 db 2Ah, 43h, 21h, 90h, 0C0h, 60h, 30h, 4Bh, 24h, 36h, 18h
dseg:0E65 db 0Ch, 7, 3, 44h, 30h, 53h, 86h, 20h, 2, 7
dseg:0EBD level_50 db 15h, 10h, 0B3h, 0DAh, 78h, 34h, 4Bh, 41h, 0E0h, 0D8h
dseg:0EBD db 82h, 82h, 9Ah, 29h, 6, 44h, 15h, 6, 48h, 42h, 80h, 0AAh
dseg:0EBD db 42h, 8, 11h, 2Ch, 84h, 19h, 25h, 81h, 2, 8, 50h, 28h
dseg:0EBD db 0Ch, 0Ah, 2, 29h, 4, 42h, 0A9h, 5, 18h, 14h, 14h, 88h
dseg:0EBD db 60h, 94h, 10h, 41h, 81h, 41h, 0Dh, 8Ah, 45h, 21h, 8
dseg:0EBD db 11h, 8Ch, 6, 8, 60h, 21h, 18h, 0Ch, 6, 70h, 0B5h, 40h
dseg:0EBD db 60h, 20h, 0C0h, 77h, 11h, 10h, 28h, 10h, 60h, 3Bh, 8Fh
dseg:0EBD db 86h, 3, 0BBh, 58h, 21h, 83h, 0DBh, 29h, 0, 5, 9
dseg:0F18 level_51 db 10h, 0Eh, 0B4h, 53h, 81h, 9Ch, 41h, 82h, 99h, 0Ch, 0E9h
dseg:0F18 db 60h, 50h, 19h, 0Dh, 68h, 42h, 81h, 4Ah, 21h, 0ADh, 0Ch
dseg:0F18 db 8Ah, 2, 25h, 9Ch, 21h, 8, 20h, 41h, 10h, 0D0h, 60h
dseg:0F18 db 50h, 10h, 60h, 84h, 11h, 28h, 0B4h, 20h, 41h, 50h, 2Ah
dseg:0F18 db 21h, 81h, 48h, 0A8h, 50h, 43h, 21h, 8, 44h, 10h, 0A6h
dseg:0F18 db 0Ch, 60h, 96h, 2, 21h, 0A2h, 9Ah, 25h, 0F2h, 80h, 5
dseg:0F18 db 9
dseg:0F5B level_52 db 15h, 0Eh, 14h, 0F9h, 0A4h, 30h, 5Bh, 0E4h, 87h, 42h
dseg:0F5B db 2Dh, 0C0h, 85h, 2Ch, 12h, 0C8h, 70h, 31h, 8Ch, 8, 83h
dseg:0F5B db 1, 7, 3, 18h, 0E1h, 11h, 12h, 0D0h, 59h, 0C8h, 30h
dseg:0F5B db 14h, 15h, 18h, 0C6h, 30h, 43h, 64h, 28h, 0C9h, 0Bh
dseg:0F5B db 3Ah, 81h, 2, 21h, 81h, 59h, 0Ch, 68h, 60h, 52h, 19h
dseg:0F5B db 35h, 67h, 85h, 43h, 25h, 0B6h, 18h, 0D0h, 21h, 6Fh
dseg:0F5B db 86h, 3, 21h, 0F2h, 8Eh, 7Ch, 0A0h, 5, 0Ch
dseg:0FA3 level_53 db 0Dh, 13h, 93h, 0D3h, 21h, 82h, 59h, 0Ch, 84h, 29h, 14h
dseg:0FA3 db 6, 43h, 5, 2Ah, 19h, 21h, 6, 3, 1, 82h, 18h, 0Bh, 3Ch
dseg:0FA3 db 86h, 3, 4, 31h, 8Ch, 6, 3, 21h, 67h, 22h, 18h, 8, 28h
dseg:0FA3 db 0C6h, 28h, 18h, 8, 40h, 0C6h, 30h, 18h, 8, 20h, 0C7h
dseg:0FA3 db 30h, 18h, 8, 40h, 0C6h, 2Ah, 18h, 0Dh, 0Ch, 0E6h, 2
dseg:0FA3 db 25h, 80h, 0C0h, 60h, 96h, 8Ah, 60h, 86h, 0Dh, 54h, 0A1h
dseg:0FA3 db 60h, 0A0h, 86h, 8, 64h, 32h, 7Bh, 68h, 4, 7
dseg:0FF3 level_54 db 17h, 14h, 1Eh, 0FBh, 2Ch, 6, 48h, 60h, 32h, 19h, 0Ch
dseg:0FF3 db 86h, 2, 15h, 8Ah, 45h, 22h, 93h, 50h, 60h, 32h, 4Ah
dseg:0FF3 db 21h, 54h, 0C8h, 44h, 2Bh, 19h, 0Ch, 90h, 85h, 21h, 19h
dseg:0FF3 db 8Ch, 84h, 21h, 28h, 30h, 11h, 9Ah, 0D9h, 25h, 1Eh, 0C6h
dseg:0FF3 db 32h, 11h, 4Fh, 80h, 0C6h, 21h, 48h, 60h, 22h, 11h, 28h
dseg:0FF3 db 96h, 34h, 20h, 0C1h, 48h, 32h, 19h, 21h, 8Dh, 8, 96h
dseg:0FF3 db 8, 7Ch, 0Ah, 31h, 0D2h, 10h, 64h, 32h, 43h, 1, 92h
dseg:0FF3 db 18h, 31h, 1Eh, 0DAh, 25h, 0F0h, 19h, 0Dh, 8, 42h, 14h
dseg:0FF3 db 4, 20h, 82h, 90h, 83h, 44h, 20h, 0A8h, 42h, 30h, 42h
dseg:0FF3 db 21h, 0A0h, 88h, 60h, 42h, 21h, 48h, 50h, 20h, 41h, 10h
dseg:0FF3 db 0F8h, 0Ch, 87h, 0Fh, 7Dh, 0C4h, 4, 0Bh
dseg:1069 level_55 db 16h, 0Fh, 1Eh, 0FBh, 6Fh, 9Eh, 8, 68h, 40h, 0E1h, 8
dseg:1069 db 32h, 43h, 6, 22h, 58h, 0Ah, 84h, 52h, 8Ch, 90h, 0A3h
dseg:1069 db 5Ah, 42h, 8, 30h, 1Ah, 10h, 35h, 0A1h, 4, 10h, 42h
dseg:1069 db 4, 10h, 41h, 0ADh, 0Ch, 84h, 10h, 81h, 8Ah, 43h, 5Ah
dseg:1069 db 14h, 41h, 4, 10h, 82h, 85h, 1Ah, 0D0h, 0C8h, 41h, 92h
dseg:1069 db 69h, 0Dh, 63h, 41h, 6, 4, 64h, 23h, 10h, 0A5h, 10h
dseg:1069 db 0C0h, 44h, 0B1h, 40h, 0A4h, 40h, 0C1h, 0Dh, 84h, 28h
dseg:1069 db 10h, 86h, 43h, 25h, 0B2h, 19h, 35h, 0D3h, 0DEh, 0, 5
dseg:1069 db 8
dseg:10C1 level_56 db 0Eh, 10h, 0F4h, 0D0h, 78h, 0A4h, 11h, 88h, 30h, 4Ah
dseg:10C1 db 8, 41h, 5, 2, 10h, 0E8h, 54h, 94h, 0A8h, 22h, 30h, 4Bh
dseg:10C1 db 1, 82h, 10h, 42h, 86h, 48h, 51h, 91h, 40h, 68h, 30h
dseg:10C1 db 20h, 84h, 0B4h, 10h, 64h, 50h, 1Ah, 8, 86h, 42h, 0Ch
dseg:10C1 db 90h, 0C1h, 68h, 32h, 1Fh, 0Ch, 87h, 74h, 0B2h, 1Dh
dseg:10C1 db 0C6h, 0CFh, 64h, 0Bh, 7
dseg:10FC level_57 db 12h, 0Bh, 0F2h, 9Ch, 3Dh, 82h, 1Ah, 21h, 81h, 60h, 86h
dseg:10FC db 32h, 42h, 21h, 92h, 19h, 0D0h, 83h, 10h, 42h, 22h, 0A1h
dseg:10FC db 9Dh, 8, 3Ah, 19h, 27h, 43h, 2, 22h, 58h, 0A4h, 9Dh
dseg:10FC db 8, 50h, 45h, 2, 10h, 0D6h, 0A5h, 69h, 0ACh, 6, 0Dh
dseg:10FC db 78h, 0A7h, 0C9h, 0, 7, 5
dseg:112E level_58 db 1Bh, 14h, 0F2h, 0CCh, 7Ch, 0E2h, 0DAh, 0Fh, 9Ch, 18h
dseg:112E db 21h, 6, 0Bh, 7Ch, 0A0h, 0C8h, 0ECh, 63h, 19h, 0Dh, 16h
dseg:112E db 8Ah, 42h, 2Ch, 67h, 50h, 68h, 32h, 4Bh, 4, 20h, 0BDh
dseg:112E db 68h, 44h, 34h, 10h, 0B0h, 84h, 18h, 0C6h, 34h, 20h
dseg:112E db 0D1h, 88h, 32h, 10h, 5Dh, 0ADh, 6, 83h, 21h, 8, 0A2h
dseg:112E db 8, 31h, 0ADh, 6, 82h, 14h, 0Ah, 0C2h, 0Bh, 0B5h, 4
dseg:112E db 1Ah, 21h, 10h, 0C0h, 84h, 0A0h, 0C1h, 0Ch, 4, 1Bh, 0Ch
dseg:112E db 0Ah, 4, 25h, 16h, 88h, 41h, 0B2h, 55h, 2Ah, 96h, 0Ah
dseg:112E db 44h, 20h, 0D1h, 48h, 3Eh, 4Bh, 1, 6, 83h, 2, 6, 5, 4Ch
dseg:112E db 12h, 0C4h, 46h, 38h, 20h, 41h, 82h, 98h, 0Ah, 32h, 5Ah
dseg:112E db 0Ch, 8, 83h, 0E5h, 86h, 43h, 2, 80h, 88h, 60h, 86h
dseg:112E db 0Eh, 64h, 86h, 9, 60h, 0E7h, 0C8h, 29h, 0F3h, 0C0h
dseg:112E db 15h, 0Eh
dseg:11B3 level_59 db 1Dh, 14h, 0F2h, 9Fh, 3Ch, 0D0h, 0C0h, 7Ch, 0F3h, 43h
dseg:11B3 db 7, 3Eh, 49h, 0ACh, 7, 3, 0E4h, 86h, 42h, 8, 20h, 83h
dseg:11B3 db 24h, 3Eh, 40h, 42h, 0B1h, 41h, 0Ch, 8, 1Fh, 4, 0A1h
dseg:11B3 db 10h, 60h, 20h, 0D9h, 0ECh, 6, 5, 1, 81h, 10h, 44h, 40h
dseg:11B3 db 0C8h, 41h, 80h, 88h, 41h, 90h, 0D9h, 2Dh, 8, 10h, 60h
dseg:11B3 db 20h, 0C0h, 54h, 84h, 4Bh, 1, 80h, 88h, 88h, 30h, 10h
dseg:11B3 db 68h, 50h, 85h, 1, 92h, 10h, 0A0h, 20h, 8Ch, 50h, 40h
dseg:11B3 db 0D1h, 0Ch, 6, 45h, 44h, 68h, 60h, 34h, 4Ah, 8, 41h
dseg:11B3 db 9, 60h, 95h, 9Eh, 1Bh, 21h, 82h, 2Ah, 15h, 90h, 0D6h
dseg:11B3 db 86h, 8, 60h, 86h, 45h, 1, 46h, 8, 6Bh, 3Bh, 4Ah, 0Ch
dseg:11B3 db 0Ah, 2, 8, 50h, 0C1h, 0Dh, 67h, 6Bh, 44h, 30h, 28h
dseg:11B3 db 8, 40h, 0C0h, 6Bh, 3Bh, 4Bh, 1, 0A1h, 0Ah, 64h, 22h
dseg:11B3 db 0B3h, 0B4h, 0B4h, 19h, 0Ch, 6, 3, 1, 82h, 33h, 0B4h
dseg:11B3 db 0B8h, 73h, 7, 0B0h, 0F0h, 0Dh, 0Dh
dseg:124B level_60 db 1Ah, 10h, 0E2h, 0DFh, 3Ch, 90h, 0C9h, 4Fh, 9Eh, 10h
dseg:124B db 0A8h, 0A6h, 0Ah, 7Ch, 32h, 10h, 8Ch, 14h, 0C0h, 47h
dseg:124B db 0B0h, 83h, 22h, 90h, 0C8h, 41h, 8Dh, 61h, 0Ah, 0Ah
dseg:124B db 41h, 80h, 0C0h, 41h, 8Ch, 0A0h, 32h, 28h, 0Ch, 8, 10h
dseg:124B db 83h, 42h, 0Bh, 39h, 4, 20h, 84h, 30h, 43h, 41h, 63h
dseg:124B db 1, 8Ch, 54h, 86h, 48h, 68h, 88h, 16h, 30h, 18h, 0C4h
dseg:124B db 20h, 0A0h, 41h, 8, 64h, 84h, 31h, 80h, 0B3h, 0C4h, 8
dseg:124B db 86h, 44h, 0Ah, 21h, 2, 0C6h, 3, 18h, 0E1h, 0Ch, 86h
dseg:124B db 0C2h, 0C6h, 3, 1Bh, 58h, 25h, 18h, 0B4h, 20h, 88h, 0BCh
dseg:124B db 0F1h, 0DAh, 58h, 3Dh, 0F6h, 8, 0D6h, 0F9h, 0A6h, 20h
dseg:124B db 6, 8
dseg:12B7 level_61 db 0
dseg:12B8 db 25h ; %
dseg:12B9 db 0B2h ; ²
dseg:12BA db 19h
dseg:12BB db 35h ; 5
dseg:12BC db 0D3h ; Ó
dseg:12BD db 0DEh ; Þ
dseg:12BE db 0
dseg:12BF db 5
dseg:12C0 db 8
dseg:12C1 db 0Eh
dseg:12C2 db 10h
dseg:12C3 db 0F4h ; ô
dseg:12C4 db 0D0h ; Ð
dseg:12C5 db 78h ; x
dseg:12C6 db 0A4h ; ¤
dseg:12C7 db 11h
dseg:12C8 db 88h ; ˆ
dseg:12C9 db 30h ; 0
dseg:12CA db 4Ah ; J
dseg:12CB db 8
dseg:12CC db 41h ; A
dseg:12CD db 5
dseg:12CE db 2
dseg:12CF db 10h
dseg:12D0 db 0E8h ; è
dseg:12D1 db 54h ; T
dseg:12D2 db 94h ; ”
dseg:12D3 db 0A8h ; ¨
dseg:12D4 db 22h ; "
dseg:12D5 db 30h ; 0
dseg:12D6 db 4Bh ; K
dseg:12D7 db 1
dseg:12D8 db 82h ; ‚
dseg:12D9 db 10h
dseg:12DA db 42h ; B
dseg:12DB db 86h ; †
dseg:12DC db 48h ; H
dseg:12DD db 51h ; Q
dseg:12DE db 91h ; ‘
dseg:12DF db 40h ; @
dseg:12E0 db 68h ; h
dseg:12E1 db 30h ; 0
dseg:12E2 db 20h
dseg:12E3 db 84h ; „
dseg:12E4 db 0B4h ; ´
dseg:12E5 db 10h
dseg:12E6 db 64h ; d
dseg:12E7 db 50h ; P
dseg:12E8 db 1Ah
dseg:12E9 db 8
dseg:12EA db 86h ; †
dseg:12EB db 42h ; B
dseg:12EC db 0Ch
dseg:12ED db 90h ; 
dseg:12EE db 0C1h ; Á
dseg:12EF db 68h ; h
dseg:12F0 db 32h ; 2
dseg:12F1 db 1Fh
dseg:12F2 db 0Ch
dseg:12F3 db 87h ; ‡
dseg:12F4 db 74h ; t
dseg:12F5 db 0B2h ; ²
dseg:12F6 db 1Dh
dseg:12F7 db 0C6h ; Æ
dseg:12F8 db 0CFh ; Ï
dseg:12F9 db 64h ; d
dseg:12FA db 0Bh
dseg:12FB db 7
dseg:12FC db 12h
dseg:12FD db 0Bh
dseg:12FE db 0F2h ; ò
dseg:12FF db 9Ch ; œ
dseg:1300 db 3Dh ; =
dseg:1301 db 82h ; ‚
dseg:1302 db 1Ah
dseg:1303 db 21h ; !
dseg:1304 db 81h ; 
dseg:1305 db 60h ; `
dseg:1306 db 86h ; †
dseg:1307 db 32h ; 2
dseg:1308 db 42h ; B
dseg:1309 db 21h ; !
dseg:130A db 92h ; ’
dseg:130B db 19h
dseg:130C db 0D0h ; Ð
dseg:130D db 83h ; ƒ
dseg:130E db 10h
dseg:130F db 42h ; B
dseg:1310 db 22h ; "
dseg:1311 db 0A1h ; ¡
dseg:1312 db 9Dh ; 
dseg:1313 db 8
dseg:1314 db 3Ah ; :
dseg:1315 db 19h
dseg:1316 db 27h ; '
dseg:1317 db 43h ; C
dseg:1318 db 2
dseg:1319 db 22h ; "
dseg:131A db 58h ; X
dseg:131B db 0A4h ; ¤
dseg:131C db 9Dh ; 
dseg:131D db 8
dseg:131E db 50h ; P
dseg:131F db 45h ; E
dseg:1320 db 2
dseg:1321 db 10h
dseg:1322 db 0D6h ; Ö
dseg:1323 db 0A5h ; ¥
dseg:1324 db 69h ; i
dseg:1325 db 0ACh ; ¬
dseg:1326 db 6
dseg:1327 db 0Dh
dseg:1328 db 78h ; x
dseg:1329 db 0A7h ; §
dseg:132A db 0C9h ; É
dseg:132B db 0
dseg:132C db 7
dseg:132D db 5
dseg:132E db 1Bh
dseg:132F db 14h
dseg:1330 db 0F2h ; ò
dseg:1331 db 0CCh ; Ì
dseg:1332 db 7Ch ; |
dseg:1333 db 0E2h ; â
dseg:1334 db 0DAh ; Ú
dseg:1335 db 0Fh
dseg:1336 db 9Ch ; œ
dseg:1337 db 18h
dseg:1338 db 21h ; !
dseg:1339 db 6
dseg:133A db 0Bh
dseg:133B db 7Ch ; |
dseg:133C db 0A0h ;  
dseg:133D db 0C8h ; È
dseg:133E db 0ECh ; ì
dseg:133F db 63h ; c
dseg:1340 db 19h
dseg:1341 db 0Dh
dseg:1342 db 16h
dseg:1343 db 8Ah ; Š
dseg:1344 db 42h ; B
dseg:1345 db 2Ch ; ,
dseg:1346 db 67h ; g
dseg:1347 db 50h ; P
dseg:1348 db 68h ; h
dseg:1349 db 32h ; 2
dseg:134A db 4Bh ; K
dseg:134B db 4
dseg:134C db 20h
dseg:134D db 0BDh ; ½
dseg:134E db 68h ; h
dseg:134F db 44h ; D
dseg:1350 db 34h ; 4
dseg:1351 db 10h
dseg:1352 db 0B0h ; °
dseg:1353 db 84h ; „
dseg:1354 db 18h
dseg:1355 db 0C6h ; Æ
dseg:1356 db 34h ; 4
dseg:1357 db 20h
dseg:1358 db 0D1h ; Ñ
dseg:1359 db 88h ; ˆ
dseg:135A db 32h ; 2
dseg:135B db 10h
dseg:135C db 5Dh ; ]
dseg:135D db 0ADh ; ­
dseg:135E db 6
dseg:135F db 83h ; ƒ
dseg:1360 db 21h ; !
dseg:1361 db 8
dseg:1362 db 0A2h ; ¢
dseg:1363 db 8
dseg:1364 db 31h ; 1
dseg:1365 db 0ADh ; ­
dseg:1366 db 6
dseg:1367 db 82h ; ‚
dseg:1368 db 14h
dseg:1369 db 0Ah
dseg:136A db 0C2h ; Â
dseg:136B db 0Bh
dseg:136C db 0B5h ; µ
dseg:136D db 4
dseg:136E db 1Ah
dseg:136F db 21h ; !
dseg:1370 db 10h
dseg:1371 db 0C0h ; À
dseg:1372 db 84h ; „
dseg:1373 db 0A0h ;  
dseg:1374 db 0C1h ; Á
dseg:1375 db 0Ch
dseg:1376 db 4
dseg:1377 db 1Bh
dseg:1378 db 0Ch
dseg:1379 db 0Ah
dseg:137A db 4
dseg:137B db 25h ; %
dseg:137C db 16h
dseg:137D db 88h ; ˆ
dseg:137E db 41h ; A
dseg:137F db 0B2h ; ²
dseg:1380 db 55h ; U
dseg:1381 db 2Ah ; *
dseg:1382 db 96h ; –
dseg:1383 db 0Ah
dseg:1384 db 44h ; D
dseg:1385 db 20h
dseg:1386 db 0D1h ; Ñ
dseg:1387 db 48h ; H
dseg:1388 db 3Eh ; >
dseg:1389 db 4Bh ; K
dseg:138A db 1
dseg:138B db 6
dseg:138C db 83h ; ƒ
dseg:138D db 2
dseg:138E db 6
dseg:138F db 5
dseg:1390 db 4Ch ; L
dseg:1391 db 12h
dseg:1392 db 0C4h ; Ä
dseg:1393 db 46h ; F
dseg:1394 db 38h ; 8
dseg:1395 db 20h
dseg:1396 db 41h ; A
dseg:1397 db 82h ; ‚
dseg:1398 db 98h ; ˜
dseg:1399 db 0Ah
dseg:139A db 32h ; 2
dseg:139B db 5Ah ; Z
dseg:139C db 0Ch
dseg:139D db 8
dseg:139E db 83h ; ƒ
dseg:139F db 0E5h ; å
dseg:13A0 db 86h ; †
dseg:13A1 db 43h ; C
dseg:13A2 db 2
dseg:13A3 db 80h ; €
dseg:13A4 db 88h ; ˆ
dseg:13A5 db 60h ; `
dseg:13A6 db 86h ; †
dseg:13A7 db 0Eh
dseg:13A8 db 64h ; d
dseg:13A9 db 86h ; †
dseg:13AA db 9
dseg:13AB db 60h ; `
dseg:13AC db 0E7h ; ç
dseg:13AD db 0C8h ; È
dseg:13AE db 29h ; )
dseg:13AF db 0F3h ; ó
dseg:13B0 db 0C0h ; À
dseg:13B1 db 15h
dseg:13B2 db 0Eh
dseg:13B3 db 1Dh
dseg:13B4 db 14h
dseg:13B5 db 0F2h ; ò
dseg:13B6 db 9Fh ; Ÿ
dseg:13B7 db 3Ch ; <
dseg:13B8 db 0D0h ; Ð
dseg:13B9 db 0C0h ; À
dseg:13BA db 7Ch ; |
dseg:13BB db 0F3h ; ó
dseg:13BC db 43h ; C
dseg:13BD db 7
dseg:13BE db 3Eh ; >
dseg:13BF db 49h ; I
dseg:13C0 db 0ACh ; ¬
dseg:13C1 db 7
dseg:13C2 db 3
dseg:13C3 db 0E4h ; ä
dseg:13C4 db 86h ; †
dseg:13C5 db 42h ; B
dseg:13C6 db 8
dseg:13C7 db 20h
dseg:13C8 db 83h ; ƒ
dseg:13C9 db 24h ; $
dseg:13CA db 3Eh ; >
dseg:13CB db 40h ; @
dseg:13CC db 42h ; B
dseg:13CD db 0B1h ; ±
dseg:13CE db 41h ; A
dseg:13CF db 0Ch
dseg:13D0 db 8
dseg:13D1 db 1Fh
dseg:13D2 db 4
dseg:13D3 db 0A1h ; ¡
dseg:13D4 db 10h
dseg:13D5 db 60h ; `
dseg:13D6 db 20h
dseg:13D7 db 0D9h ; Ù
dseg:13D8 db 0ECh ; ì
dseg:13D9 db 6
dseg:13DA db 5
dseg:13DB db 1
dseg:13DC db 81h ; 
dseg:13DD db 10h
dseg:13DE db 44h ; D
dseg:13DF db 40h ; @
dseg:13E0 db 0C8h ; È
dseg:13E1 db 41h ; A
dseg:13E2 db 80h ; €
dseg:13E3 db 88h ; ˆ
dseg:13E4 db 41h ; A
dseg:13E5 db 90h ; 
dseg:13E6 db 0D9h ; Ù
dseg:13E7 db 2Dh ; -
dseg:13E8 db 8
dseg:13E9 db 10h
dseg:13EA db 60h ; `
dseg:13EB db 20h
dseg:13EC db 0C0h ; À
dseg:13ED db 54h ; T
dseg:13EE db 84h ; „
dseg:13EF db 4Bh ; K
dseg:13F0 db 1
dseg:13F1 db 80h ; €
dseg:13F2 db 88h ; ˆ
dseg:13F3 db 88h ; ˆ
dseg:13F4 db 30h ; 0
dseg:13F5 db 10h
dseg:13F6 db 68h ; h
dseg:13F7 db 50h ; P
dseg:13F8 db 85h ; …
dseg:13F9 db 1
dseg:13FA db 92h ; ’
dseg:13FB db 10h
dseg:13FC db 0A0h ;  
dseg:13FD db 20h
dseg:13FE db 8Ch ; Œ
dseg:13FF db 50h ; P
dseg:1400 db 40h ; @
dseg:1401 db 0D1h ; Ñ
dseg:1402 db 0Ch
dseg:1403 db 6
dseg:1404 db 45h ; E
dseg:1405 db 44h ; D
dseg:1406 db 68h ; h
dseg:1407 db 60h ; `
dseg:1408 db 34h ; 4
dseg:1409 db 4Ah ; J
dseg:140A db 8
dseg:140B db 41h ; A
dseg:140C db 9
dseg:140D db 60h ; `
dseg:140E db 95h ; •
dseg:140F db 9Eh ; ž
dseg:1410 db 1Bh
dseg:1411 db 21h ; !
dseg:1412 db 82h ; ‚
dseg:1413 db 2Ah ; *
dseg:1414 db 15h
dseg:1415 db 90h ; 
dseg:1416 db 0D6h ; Ö
dseg:1417 db 86h ; †
dseg:1418 db 8
dseg:1419 db 60h ; `
dseg:141A db 86h ; †
dseg:141B db 45h ; E
dseg:141C db 1
dseg:141D db 46h ; F
dseg:141E db 8
dseg:141F db 6Bh ; k
dseg:1420 db 3Bh ; ;
dseg:1421 db 4Ah ; J
dseg:1422 db 0Ch
dseg:1423 db 0Ah
dseg:1424 db 2
dseg:1425 db 8
dseg:1426 db 50h ; P
dseg:1427 db 0C1h ; Á
dseg:1428 db 0Dh
dseg:1429 db 67h ; g
dseg:142A db 6Bh ; k
dseg:142B db 44h ; D
dseg:142C db 30h ; 0
dseg:142D db 28h ; (
dseg:142E db 8
dseg:142F db 40h ; @
dseg:1430 db 0C0h ; À
dseg:1431 db 6Bh ; k
dseg:1432 db 3Bh ; ;
dseg:1433 db 4Bh ; K
dseg:1434 db 1
dseg:1435 db 0A1h ; ¡
dseg:1436 db 0Ah
dseg:1437 db 64h ; d
dseg:1438 db 22h ; "
dseg:1439 db 0B3h ; ³
dseg:143A db 0B4h ; ´
dseg:143B db 0B4h ; ´
dseg:143C db 19h
dseg:143D db 0Ch
dseg:143E db 6
dseg:143F db 3
dseg:1440 db 1
dseg:1441 db 82h ; ‚
dseg:1442 db 33h ; 3
dseg:1443 db 0B4h ; ´
dseg:1444 db 0B8h ; ¸
dseg:1445 db 73h ; s
dseg:1446 db 7
dseg:1447 db 0B0h ; °
dseg:1448 db 0F0h ; ð
dseg:1449 db 0Dh
dseg:144A db 0Dh
dseg:144B db 1Ah
dseg:144C db 10h
dseg:144D db 0E2h ; â
dseg:144E db 0DFh ; ß
dseg:144F db 3Ch ; <
dseg:1450 db 90h ; 
dseg:1451 db 0C9h ; É
dseg:1452 db 4Fh ; O
dseg:1453 db 9Eh ; ž
dseg:1454 db 10h
dseg:1455 db 0A8h ; ¨
dseg:1456 db 0A6h ; ¦
dseg:1457 db 0Ah
dseg:1458 db 7Ch ; |
dseg:1459 db 32h ; 2
dseg:145A db 10h
dseg:145B db 8Ch ; Œ
dseg:145C db 14h
dseg:145D db 0C0h ; À
dseg:145E db 47h ; G
dseg:145F db 0B0h ; °
dseg:1460 db 83h ; ƒ
dseg:1461 db 22h ; "
dseg:1462 db 90h ; 
dseg:1463 db 0C8h ; È
dseg:1464 db 41h ; A
dseg:1465 db 8Dh ; 
dseg:1466 db 61h ; a
dseg:1467 db 0Ah
dseg:1468 db 0Ah
dseg:1469 db 41h ; A
dseg:146A db 80h ; €
dseg:146B db 0C0h ; À
dseg:146C db 41h ; A
dseg:146D db 8Ch ; Œ
dseg:146E db 0A0h ;  
dseg:146F db 32h ; 2
dseg:1470 db 28h ; (
dseg:1471 db 0Ch
dseg:1472 db 8
dseg:1473 db 10h
dseg:1474 db 83h ; ƒ
dseg:1475 db 42h ; B
dseg:1476 db 0Bh
dseg:1477 db 39h ; 9
dseg:1478 db 4
dseg:1479 db 20h
dseg:147A db 84h ; „
dseg:147B db 30h ; 0
dseg:147C db 43h ; C
dseg:147D db 41h ; A
dseg:147E db 63h ; c
dseg:147F db 1
dseg:1480 level_offsets dw 0 ; DATA XREF: print_level+F r
dseg:1482 dw 32h
dseg:1484 dw 5Dh
dseg:1486 dw 82h
dseg:1488 dw 0C2h
dseg:148A dw 0F5h
dseg:148C dw 121h
dseg:148E dw 14Dh
dseg:1490 dw 18Fh
dseg:1492 dw 1D2h
dseg:1494 dw 233h
dseg:1496 dw 274h
dseg:1498 dw 2B6h
dseg:149A dw 302h
dseg:149C dw 33Ch
dseg:149E dw 384h
dseg:14A0 dw 3C3h
dseg:14A2 dw 40Ah
dseg:14A4 dw 451h
dseg:14A6 dw 4C6h
dseg:14A8 dw 52Ch
dseg:14AA dw 566h
dseg:14AC dw 5DBh
dseg:14AE dw 62Ch
dseg:14B0 dw 694h
dseg:14B2 dw 6F1h
dseg:14B4 dw 730h
dseg:14B6 dw 780h
dseg:14B8 dw 7C9h
dseg:14BA dw 80Bh
dseg:14BC dw 858h
dseg:14BE dw 88Bh
dseg:14C0 dw 8D5h
dseg:14C2 dw 90Ch
dseg:14C4 dw 940h
dseg:14C6 dw 995h
dseg:14C8 dw 9F3h
dseg:14CA dw 0A45h
dseg:14CC dw 0A86h
dseg:14CE dw 0AE8h
dseg:14D0 dw 0B0Fh
dseg:14D2 dw 0B53h
dseg:14D4 dw 0B97h
dseg:14D6 dw 0BE0h
dseg:14D8 dw 0C52h
dseg:14DA dw 0C89h
dseg:14DC dw 0CE8h
dseg:14DE dw 0D2Ah
dseg:14E0 dw 0D69h
dseg:14E2 dw 0DC1h
dseg:14E4 dw 0E1Ch
dseg:14E6 dw 0E5Fh
dseg:14E8 dw 0EA7h
dseg:14EA dw 0EF7h
dseg:14EC dw 0F6Dh
dseg:14EE dw 0FC5h
dseg:14F0 dw 1000h
dseg:14F2 dw 1032h
dseg:14F4 dw 10B7h
dseg:14F6 dw 114Fh
dseg:14F8 dw 11BBh
dseg:14FA bit_masks dw 1 ; DATA XREF: sub_10728+23 r
dseg:14FC dw 2
dseg:14FE dw 4
dseg:1500 dw 8
dseg:1502 dw 10h
dseg:1504 dw 20h
dseg:1506 dw 40h
dseg:1508 dw 80h
dseg:150A unk_1269A db 0 ; DATA XREF: seg000:07CE r
dseg:150A ; seg000:07DD r ...
dseg:150B db 0
dseg:150C aPrintfFloatingPointFormats db 'printf : floating point formats not linked',0Dh,0Ah
dseg:150C db 'scanf : floating point formats not linked',0Dh,0Ah,0
dseg:1564 word_126F4 dw 878h ; DATA XREF: exit:loc_10893 r
dseg:1566 word_126F6 dw 878h ; DATA XREF: exit+1E r
dseg:1568 word_126F8 dw 878h ; DATA XREF: exit+22 r
dseg:156A unk_126FA db 0 ; DATA XREF: keyin+3 w
dseg:156A ; seg000:0956 w ...
dseg:156B db 0
dseg:156C db 0
dseg:156D db 0
dseg:156E db 6Ch ; l
dseg:156F db 15h
dseg:1570 unk_12700 db 6Ch ; l ; DATA XREF: free+B r
dseg:1570 ; free:loc_1093B w ...
dseg:1571 db 15h
dseg:1572 unk_12702 db 0 ; DATA XREF: start+98 r
dseg:1573 db 10h
dseg:1574 aNull db '(null)',0 ; DATA XREF: printf+288 o
dseg:157B a0123456789abcd db '0123456789ABCDEF',0
dseg:158C db 13h
dseg:158D db 13h
dseg:158E db 1
dseg:158F db 13h
dseg:1590 db 14h
dseg:1591 db 13h
dseg:1592 db 13h
dseg:1593 db 13h
dseg:1594 db 13h
dseg:1595 db 2
dseg:1596 db 0
dseg:1597 db 13h
dseg:1598 db 3
dseg:1599 db 4
dseg:159A db 13h
dseg:159B db 8
dseg:159C db 5
dseg:159D db 5
dseg:159E db 5
dseg:159F db 5
dseg:15A0 db 5
dseg:15A1 db 5
dseg:15A2 db 5
dseg:15A3 db 5
dseg:15A4 db 5
dseg:15A5 db 13h
dseg:15A6 db 13h
dseg:15A7 db 13h
dseg:15A8 db 13h
dseg:15A9 db 13h
dseg:15AA db 13h
dseg:15AB db 13h
dseg:15AC db 13h
dseg:15AD db 13h
dseg:15AE db 13h
dseg:15AF db 9
dseg:15B0 db 0Eh
dseg:15B1 db 16h
dseg:15B2 db 0Eh
dseg:15B3 db 7
dseg:15B4 db 9
dseg:15B5 db 13h
dseg:15B6 db 13h
dseg:15B7 db 13h
dseg:15B8 db 13h
dseg:15B9 db 15h
dseg:15BA db 13h
dseg:15BB db 13h
dseg:15BC db 13h
dseg:15BD db 13h
dseg:15BE db 13h
dseg:15BF db 13h
dseg:15C0 db 13h
dseg:15C1 db 13h
dseg:15C2 db 13h
dseg:15C3 db 0Ch
dseg:15C4 db 13h
dseg:15C5 db 13h
dseg:15C6 db 13h
dseg:15C7 db 13h
dseg:15C8 db 13h
dseg:15C9 db 13h
dseg:15CA db 13h
dseg:15CB db 13h
dseg:15CC db 13h
dseg:15CD db 13h
dseg:15CE db 0Fh
dseg:15CF db 9
dseg:15D0 db 0Eh
dseg:15D1 db 0Eh
dseg:15D2 db 0Eh
dseg:15D3 db 7
dseg:15D4 db 9
dseg:15D5 db 13h
dseg:15D6 db 13h
dseg:15D7 db 6
dseg:15D8 db 13h
dseg:15D9 db 11h
dseg:15DA db 0Ah
dseg:15DB db 0Dh
dseg:15DC db 13h
dseg:15DD db 13h
dseg:15DE db 10h
dseg:15DF db 13h
dseg:15E0 db 0Bh
dseg:15E1 db 13h
dseg:15E2 db 13h
dseg:15E3 db 0Ch
dseg:15E4 db 13h
dseg:15E5 db 13h
dseg:15E6 db 13h
dseg:15E7 db 13h
dseg:15E8 db 13h
dseg:15E9 db 13h
dseg:15EA db 13h
dseg:15EB db 0
dseg:15EC off_1277C dw offset sub_10871 ; DATA XREF: start+94 r
dseg:15EE off_1277E dw offset sub_10871 ; DATA XREF: sub_1010B+F r
dseg:15F0 off_12780 dw offset sub_10855 ; DATA XREF: sub_10B50 r
dseg:15F2 db 5Eh
dseg:15F3 db 8
dseg:15F4 db 5Eh ; ^
dseg:15F5 db 8
dseg:15F6 db 5Eh ; ^
dseg:15F7 db 8
dseg:15F8 sprintf_buf db 1Eh dup(?) ; DATA XREF: sub_10174+2B o
dseg:15F8 ; sub_10174+39 o ...
dseg:1616 level_size_y dw ? ; DATA XREF: print_level+2E w
dseg:1616 ; print_level+38 r ...
dseg:1618 man_x dw ? ; DATA XREF: sub_10174+BB r
dseg:1618 ; sub_10174+1F3 r ...
dseg:161A level_size_x dw ? ; DATA XREF: sub_10174+B3 r
dseg:161A ; sub_10174+1E5 r ...
dseg:161C number_of_places dw ? ; DATA XREF: sub_10174:loc_102B2 r
dseg:161C ; sub_10174+2BB w ...
dseg:161E man_y dw ? ; DATA XREF: sub_10174+B0 r
dseg:161E ; sub_10174+1FC r ...
dseg:1620 level_map dw ? ; DATA XREF: sub_10174+B7 r
dseg:1620 ; sub_10174+35E r ...
dseg:1622 word_127B2 dw ? ; DATA XREF: next_level_char+B r
dseg:1622 ; next_level_char+59 w ...
dseg:1624 word_127B4 dw ? ; DATA XREF: sub_10728+D w
dseg:1624 ; sub_10728:loc_10742 r
dseg:1626 level_address dw ? ; DATA XREF: print_level+16 w
dseg:1626 ; print_level+19 r ...
dseg:1628 center_x_offset dw ? ; DATA XREF: draw_symbol_center_xy+E r
dseg:1628 ; print_level+51 w
dseg:162A word_127BA dw ? ; DATA XREF: print_level+64 w
dseg:162A ; sub_10728 w ...
dseg:162C center_y_offset dw ? ; DATA XREF: draw_symbol_center_xy+6 r
dseg:162C ; print_level+61 w
dseg:162E word_127BE dw ? ; DATA XREF: print_level+6A w
dseg:162E ; next_level_char r ...
dseg:1630 word_127C0 dw ? ; DATA XREF: seg000:07E3 w
dseg:1632 db 3Eh dup(?)
dseg:1632 dseg ends
dseg:1632
seg002:0000 ; ===========================================================================
seg002:0000
seg002:0000 ; Segment type: Uninitialized
seg002:0000 seg002 segment byte stack 'STACK' use16
seg002:0000 assume cs:seg002
seg002:0000 assume es:nothing, ss:nothing, ds:dseg, fs:nothing, gs:nothing
seg002:0000 byte_12800 db 80h dup(?)
seg002:0000 seg002 ends
seg002:0000
seg002:0000
seg002:0000 end start