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