; 国度源码
;
.386
.model tiny
code segment byte public 'CODE' use16
assume cs:code,ds:code
org 100h
public start
start proc near
mov ax, 13h
int 10h
push 0A000h
pop es
push 9000h
pop fs
push 8000h
pop gs
mov ax, 0FF00h
mov dx, 3C8h
out dx, al
inc dx
xor bx, bx
loc_11D:
mov al, bl
sar al, 2
out dx, al
out dx, al
out dx, al
mov fs:[bx], ah
dec bx
jnz short loc_11D
xor edx, edx
xor esi, esi
loc_131:
mov al, 10h
sub fs:[bx], al
jnb short loc_13C
dec ax
mov fs:[bx], al
loc_13C:
mov eax, esi
add ax, 75h
imul edx, eax
sar edx, 4
add edx, 47Bh
mov al, dl
and ax, 3
jnz short loc_15A
dec bl
loc_15A:
dec ax
jnz short loc_15F
dec bh
loc_15F:
dec ax
jnz short loc_164
inc bl
loc_164:
dec ax
jnz short loc_169
inc bh
loc_169:
inc esi
cmp esi, 22E09h
jnz short loc_131
loc_174:
mov dx, 3DAh
loc_177:
in al, dx
test al, 8
jz short loc_177
xor di, di
mov cx, 7D00h
loc_181:
mov ax, gs:[di]
mov gs:[di], bp
stosw
loop loc_181
mov al, 0C8h
mov di, 200h
mov bx, 280h
loc_192:
mov [bx+di], ax
dec bx
dec bx
jnz short loc_192
mov cx, 320h
loc_19B:
push di
mov bp, 13Fh
loc_19F:
mov [si], cx
fild word ptr [si]
mov ax, bp
sub ax, 0A0h
shl ax, 4
cwd
idiv cx
fild word_1FE
fdiv st, st(1)
fiadd word ptr [si+4]
fistp dword ptr [si]
xor ah, ah
mov bh, [si]
mov bl, al
mov al, fs:[bx]
add ax, 80h
mov [si], ax
fild word ptr [si]
fmulp st(1), st
fidiv word_1FC
fistp dword ptr [si]
mov bx, [si]
cmp [di], bx
jl short loc_1E4
mov [di], bx
sub al, 80h
imul bx, 140h
add bx, bp
mov gs:[bx], al
loc_1E4:
inc di
inc di
dec bp
jnz short loc_19F
pop di
dec cx
cmp cx, 50h
jnz short loc_19B
inc byte ptr [si+4]
mov ah, 1
int 16h
jz loc_174
retn
start endp
word_1FC dw 258h
word_1FE dw 0FA0h
db 76h, 4, 3, 0F3h, 26h, 89h, 94h, 24h,4
db 26h, 89h, 84h, 22h, 4, 83h, 0FFh
code ends
end start