PAGE 60,132
data_39a = 39Ah
data_3a0 = 3A0h
data_78b = 78Bh
data_7d2f = 7D2Fh
;ÄÄÄÄÄÄÄÄÄÄ CODE_SEG_1 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
CODE_SEG_1 segment para public
assume CS:CODE_SEG_1, DS:CODE_SEG_1, SS:CODE_SEG_1, ES:CODE_SEG_1
org 100h
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
;±
;± ENTRY POINT
;±
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
;±
;± PROCEDURE proc_start
;±
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
proc_start proc far
start: ; N-Ref=0
call near ptr proc_5
mov DI,3A3h
mov CL,0C8h
loop_loc_1: ; N-Ref=1
call near ptr proc_1
mov Word Ptr [DI],DX
mov Byte Ptr [DI+4],AH
add DI,+5
loop loop_loc_1 ; Loop if CX > 0
mov AL,13h
int 10h ; BIOS Service func ( ah ) = 0FFFFh
; Screen function
mov AX,1124h
mov BL,1
int 10h ; BIOS Service func ( ah ) = 11h
; Screen function
mov AX,0A000h
mov ES,AX
;ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
assume ES:nothing
;ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
loc_2: ; N-Ref=1
mov DX,3DAh
loc_3: ; N-Ref=1
in AL,DX ; Input to AX from port [DX]
test AL,8
je loc_3 ; Jump if equal ( = )
mov DI,3A3h
xor SI,SI
mov CX,0C8h
loop_loc_4: ; N-Ref=1
mov BX,Word Ptr [DI]
cmp Byte Ptr ES:[BX+SI],22h ; '"'
je loc_5 ; Jump if equal ( = )
mov AL,Byte Ptr [DI+4]
mov Byte Ptr ES:[BX+SI],AL
loc_5: ; N-Ref=1
mov AX,Word Ptr [DI+2]
sub BX,AX
jnb loc_6 ; Jump if not below ( >= )
add BX,140h
call near ptr proc_1
loc_6: ; N-Ref=1
mov Word Ptr [DI],BX
mov AH,Byte Ptr ES:[BX+SI]
mov Byte Ptr [DI+4],AH
or AH,AH
jne loc_7 ; Jump if not equal ( != )
shl AL,1 ; Shift left
add AL,0Eh
mov Byte Ptr ES:[BX+SI],AL
loc_7: ; N-Ref=1
add DI,+5
add SI,140h
loop loop_loc_4 ; Loop if CX > 0
call near ptr proc_2
call near ptr proc_3
mov AH,1
int 16h ; BIOS Service func ( ah ) = 1
; Kbd char ready report
;AH-scan code AL-char code
je loc_2 ; Jump if equal ( = )
mov AH,0
int 16h ; BIOS Service func ( ah ) = 0
; Read next kbd char
;AH-scan code AL-char code
mov AX,3
int 10h ; BIOS Service func ( ah ) = 0
; Set video mode
;AL = video mode
retn
proc_start endp
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
;±
;± PROCEDURE proc_1
;±
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
proc_1 proc near
mov AX,5B9Ch
proc_1 endp
dw 0C0C1h, 503h, 7, 84A3h
dw 501h, 35B9h, 681h, 190h
dw 0A0A5h, 0EC1h, 190h, 3307h
dw 0BDD2h, 140h, 0F5F7h, 725h
dw 4000h, 4589h, 0C302h
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
;±
;± PROCEDURE proc_2
;±
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
proc_2 proc near
inc Byte Ptr DS:data_78b ; [703A:078B] = 8080h
and Byte Ptr DS:data_78b,3 ; [703A:078B] = 8080h
jne loc_10 ; Jump if not equal ( != )
mov SI,Word Ptr var1_1e0 ; [703A:01E0] = 1E2h
lodsb ; Load byte at DS:SI to AL
or AL,AL
jne loc_8 ; Jump if not equal ( != )
mov SI,offset var1_220
lodsb ; Load byte at DS:SI to AL
loc_8: ; N-Ref=1
cmp AL,20h ; ' '
jnb loc_9 ; Jump if not below ( >= )
mov AH,AL
lodsb ; Load byte at DS:SI to AL
mov DX,AX
mov AH,2
xor BH,BH
int 10h ; BIOS Service func ( ah ) = 2
; Set cursor pos
;BH-page DH-row DL-clmn
lodsb ; Load byte at DS:SI to AL
loc_9: ; N-Ref=1
mov Word Ptr var1_1e0,SI ; [703A:01E0] = 1E2h
mov BX,22h
mov AH,0Eh
int 10h ; BIOS Service func ( ah ) = 0Eh
; Write char as TTY
;AL-char BH-page BL-color
loc_10: ; N-Ref=1
retn
proc_2 endp
var1_1e0 dw 1E2h, 0F04h
var1_1e4 db 4 dup (20h)
db '417 '
db 5, 0Fh
var1_1f0 db ' ERDOGAN '
db 6, 0Ch
var1_1fc db 7 dup (20h)
db 'TAN '
db 7, 0Ch
var1_20e db ' TURKISH RATIONAL '
var1_220 dw 1304h
var1_222 db '417 '
db 4, 13h
var1_22a db 'DOS '
db 4, 13h
var1_230 db ' '
db 4 dup (0)
var1_237 db 0E0h, 20h, 21h, 0, 0C3h, 0B6h
db 0F5h, 0F6h, 3, 3, 2
var1_242 db 40h, 0, 0, 0, 0FAh, 0D9h
db 37h, 4, 0, 0, 0, 80h
db 84h, 0FCh, 8, 99h, 21h, 0A5h
db 1Eh, 99h, 1Bh, 0A3h, 18h, 0A5h
db 15h, 99h, 21h, 0A5h, 28h, 99h
db 2Fh, 7Dh, 0FEh, 0FCh, 4, 80h
db 0C0h, 7Dh, 0FCh, 10h, 8Dh, 90h
db 7Dh, 0FEh
var1_26e dw 24Fh, 24Fh, 263h
var1_274 dw 24Fh, 24Dh, 263h
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
;±
;± PROCEDURE proc_3
;±
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
proc_3 proc near
xor Byte Ptr var1_393,1 ; [703A:0393] = 100h
jne loc_12 ; Jump if not equal ( != )
xor DI,DI
loc_11: ; N-Ref=2
call near ptr proc_4
inc DI
cmp DI,+3
jne loc_11 ; Jump if not equal ( != )
loc_12: ; N-Ref=2
retn
proc_3 endp
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
;±
;± PROCEDURE proc_4
;±
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
proc_4 proc near
mov BX,DI
shl BX,1 ; Shift left
mov SI,Word Ptr var1_274[BX]
dec Byte Ptr var1_394[DI]
jne loc_12 ; Jump if not equal ( != )
mov Byte Ptr var1_394[DI],8
loc_13: ; N-Ref=4
lodsb ; Load byte at DS:SI to AL
cmp AL,7Dh ; '}'
jne loc_14 ; Jump if not equal ( != )
dec Byte Ptr data_3a0[DI]
je loc_13 ; Jump if equal ( = )
mov SI,Word Ptr data_39a[BX]
jmp short loc_13
loc_14: ; N-Ref=1
cmp AL,0FCh
jne loc_15 ; Jump if not equal ( != )
lodsb ; Load byte at DS:SI to AL
mov Byte Ptr data_3a0[DI],AL
mov Word Ptr data_39a[BX],SI
jmp short loc_13
loc_15: ; N-Ref=1
cmp AL,0FEh
jne loc_16 ; Jump if not equal ( != )
mov SI,Word Ptr var1_26e[BX]
jmp short loc_13
loc_16: ; N-Ref=1
push AX
lodsb ; Load byte at DS:SI to AL
rol AL,1 ; Rotate left
shr AL,1 ; Shift right ( fill zeros )
jnb loc_17 ; Jump if not below ( >= )
mov Byte Ptr var1_394[DI],AL
jmp short loc_18
loc_17: ; N-Ref=1
mov AH,AL
mov AL,40h ; '@'
call near ptr proc_7
loc_18: ; N-Ref=1
pop AX
and AL,7Fh
je loc_notfound ; Jump if equal ( = )
push AX
mov AH,Byte Ptr var1_397[DI]
mov AL,0B0h
call near ptr proc_7
pop AX
dec AL
xor AH,AH
mov BL,0Ch
div BL ; AL=AX/data AH=AX%data
mov BX,AX
proc_4 endp
dw 0EBC1h, 0C107h, 0AE0h, 870Bh
dw 370h, 0A588h, 397h, 0CC80h
dw 8A20h, 0B0D8h, 0E8B0h, 47h
dw 0A0B0h, 0E38Ah, 40E8h
db 0
loc_notfound:
db 0D1h, 0E7h, 89h
dw 74B5h, 0D102h, 0C3EFh
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
;±
;± PROCEDURE proc_5
;±
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
proc_5 proc near
mov AX,2001h
call near ptr proc_8
mov AX,8
call near ptr proc_8
mov AX,0C0BDh
call near ptr proc_8
xor DI,DI
mov SI,offset var1_237
call near ptr proc_6
mov Byte Ptr [SI+3],8
call near ptr proc_6
mov SI,offset var1_242
;ÍÍÍÍÍÍÍÍÍÍ External Entry into current procedure ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
proc_6:
xor BX,BX
loc_19: ; N-Ref=2
mov AL,Byte Ptr var1_388[BX]
mov AH,Byte Ptr [BX+SI]
call near ptr proc_7
inc BX
cmp BX,+0Bh
jb loc_19 ; Jump if below ( < )
inc DI
retn
proc_5 endp
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
;±
;± PROCEDURE proc_7
;±
;±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
proc_7 proc near
add AX,DI
;ÍÍÍÍÍÍÍÍÍÍ External Entry into current procedure ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
proc_8:
mov DX,388h
out DX,AL ; Output to port [DX] from AX
in AL,DX ; Input to AX from port [DX]
in AL,DX ; Input to AX from port [DX]
in AL,DX ; Input to AX from port [DX]
in AL,DX ; Input to AX from port [DX]
inc DL
mov AL,AH
out DX,AL ; Output to port [DX] from AX
dec DL
mov CX,14h
loop_loc_20: ; N-Ref=1
in AL,DX ; Input to AX from port [DX]
loop loop_loc_20 ; Loop if CX > 0
retn
proc_7 endp
dw 157h, 16Bh, 181h, 198h
dw 1B0h, 1CAh, 1E5h, 202h
dw var1_220, 241h, 263h, 287h
var1_388 db ' #@C`c'
db 80h, 83h, 0E0h, 0E3h, 0C0h
var1_393 db 0
var1_394 db 1, 1, 1
var1_397 db 1Ah
CODE_SEG_1 ends
end start