/programs/develop/SPForth/MACROS.INC |
---|
0,0 → 1,264 |
; new application structure |
macro meos_app_start |
{ |
use32 |
org 0x0 |
db 'MENUET01' |
dd 0x01 |
dd __start |
dd __end |
dd __memory |
dd __stack |
if used __params & ~defined __params |
dd __params |
else |
dd 0x0 |
end if |
dd 0x0 |
} |
MEOS_APP_START fix meos_app_start |
macro code |
{ |
__start: |
} |
CODE fix code |
macro data |
{ |
__data: |
} |
DATA fix data |
macro udata |
{ |
if used __params & ~defined __params |
__params: |
db 0 |
__end: |
rb 255 |
else |
__end: |
end if |
__udata: |
} |
UDATA fix udata |
macro meos_app_end |
{ |
align 32 |
rb 2048 |
__stack: |
__memory: |
} |
MEOS_APP_END fix meos_app_end |
; macro for defining multiline text data |
struc mstr [sstring] |
{ |
forward |
local ssize |
virtual at 0 |
db sstring |
ssize = $ |
end virtual |
dd ssize |
db sstring |
common |
dd -1 |
} |
; strings |
macro sz name,[data] { ; from MFAR [mike.dld] |
common |
if used name |
label name |
end if |
forward |
if used name |
db data |
end if |
common |
if used name |
.size = $-name |
end if |
} |
macro lsz name,[lng,data] { ; from MFAR [mike.dld] |
common |
label name |
forward |
if lang eq lng |
db data |
end if |
common |
.size = $-name |
} |
; easy system call macro |
macro mpack dest, hsrc, lsrc |
{ |
if (hsrc eqtype 0) & (lsrc eqtype 0) |
mov dest, (hsrc) shl 16 + lsrc |
else |
if (hsrc eqtype 0) & (~lsrc eqtype 0) |
mov dest, (hsrc) shl 16 |
add dest, lsrc |
else |
mov dest, hsrc |
shl dest, 16 |
add dest, lsrc |
end if |
end if |
} |
macro __mov reg,a,b { ; mike.dld |
if (~a eq)&(~b eq) |
mpack reg,a,b |
else if (~a eq)&(b eq) |
mov reg,a |
end if |
} |
macro mcall a,b,c,d,e,f { ; mike.dld |
__mov eax,a |
__mov ebx,b |
__mov ecx,c |
__mov edx,d |
__mov esi,e |
__mov edi,f |
int 0x40 |
} |
; language for programs |
;lang fix ru ; ru en fr ge fi |
; optimize the code for size |
__regs fix <eax,ebx,ecx,edx,esi,edi,ebp,esp> |
macro add arg1,arg2 |
{ |
if (arg2 eqtype 0) |
if (arg2) = 1 |
inc arg1 |
else |
add arg1,arg2 |
end if |
else |
add arg1,arg2 |
end if |
} |
macro sub arg1,arg2 |
{ |
if (arg2 eqtype 0) |
if (arg2) = 1 |
dec arg1 |
else |
sub arg1,arg2 |
end if |
else |
sub arg1,arg2 |
end if |
} |
macro mov arg1,arg2 |
{ |
if (arg1 in __regs) & (arg2 eqtype 0) |
if (arg2) = 0 |
xor arg1,arg1 |
else if (arg2) = 1 |
xor arg1,arg1 |
inc arg1 |
else if (arg2) = -1 |
or arg1,-1 |
else if (arg2) > -128 & (arg2) < 128 |
push arg2 |
pop arg1 |
else |
mov arg1,arg2 |
end if |
else |
mov arg1,arg2 |
end if |
} |
macro struct name |
{ |
virtual at 0 |
name name |
sizeof.#name = $ - name |
end virtual |
} |
; structures used in MeOS |
struc process_information |
{ |
.cpu_usage dd ? ; +0 |
.window_stack_position dw ? ; +4 |
.window_stack_value dw ? ; +6 |
.not_used1 dw ? ; +8 |
.process_name rb 12 ; +10 |
.memory_start dd ? ; +22 |
.used_memory dd ? ; +26 |
.PID dd ? ; +30 |
.x_start dd ? ; +34 |
.y_start dd ? ; +38 |
.x_size dd ? ; +42 |
.y_size dd ? ; +46 |
.slot_state dw ? ; +50 |
rb (1024-52) |
} |
struct process_information |
struc system_colors |
{ |
.frame dd ? |
.grab dd ? |
.grab_button dd ? |
.grab_button_text dd ? |
.grab_text dd ? |
.work dd ? |
.work_button dd ? |
.work_button_text dd ? |
.work_text dd ? |
.work_graph dd ? |
} |
struct system_colors |
; constants |
; events |
EV_IDLE = 0 |
EV_TIMER = 0 |
EV_REDRAW = 1 |
EV_KEY = 2 |
EV_BUTTON = 3 |
EV_EXIT = 4 |
EV_BACKGROUND = 5 |
EV_MOUSE = 6 |
EV_IPC = 7 |
EV_STACK = 8 |
; event mask bits for function 40 |
EVM_REDRAW = 1b |
EVM_KEY = 10b |
EVM_BUTTON = 100b |
EVM_EXIT = 1000b |
EVM_BACKGROUND = 10000b |
EVM_MOUSE = 100000b |
EVM_IPC = 1000000b |
EVM_STACK = 10000000b |
/programs/develop/SPForth/amain.asm |
---|
0,0 → 1,417 |
reserve EQU Mreserve-main_task |
amain: |
MOV [ByeLevel],ESP |
mov edi, main_task |
call cfa_INIT |
ret |
TIB_SIZE EQU 1027 |
PAD_SIZE EQU 1027 |
include 'img.asm' |
cfa_AHEADER 0,"BYE",_BYE |
MOV ESP,[ByeLevel] |
RET |
cfa_AHEADER 0,"_SLITERAL-CODE",_SLITERALminusCODE |
LEA EBP, [EBP-8] |
MOV [EBP+4], EAX |
POP EBX |
MOVZX EAX, BYTE [EBX] |
LEA EBX, [EBX+1] |
MOV [EBP], EBX |
LEA EBX, [EBX+EAX] |
LEA EBX, [EBX+1] |
JMP EBX |
cfa_AHEADER 0,"_CONSTANT-CODE",_CONSTANTminusCODE |
LEA EBP,[EBP-4] |
MOV [EBP],EAX |
POP EAX |
MOV EAX,[EAX] |
RET |
cfa_AHEADER 0,"_CREATE-CODE",_CREATEminusCODE |
DB 083H ,0EDH ,4 |
DB 089H ,045H ,0 |
DB 058H |
DB 0C3H |
cfa_AHEADER 0,"_TOVALUE-CODE",_TOVALUEminusCODE |
DB 05BH |
DB 08DH ,05BH ,0F7H |
DB 089H ,03 |
DB 08BH ,045H ,00 |
DB 08DH ,06DH ,04 |
DB 0C3H |
cfa_AHEADER 0,"TOVALUE-CODE",TOVALUEminusCODE |
call cfa__CONSTANTminusCODE |
DD cfa__TOVALUEminusCODE |
call cfa__TOVALUEminusCODE |
cfa_AHEADER 0,"VECT-CODE",VECTminusCODE |
call cfa__CONSTANTminusCODE |
DD cfa__VECTminusCODE |
call cfa__TOVALUEminusCODE |
cfa_AHEADER 0,"_VECT-CODE",_VECTminusCODE |
DB 05BH |
DB 0FFH ,023H |
cfa_AHEADER 0,"_USER-VALUE-CODE", _USERminusVALUEminusCODE |
LEA EBP,[EBP-4] |
MOV [EBP],EAX |
POP EAX |
MOV EAX,[EAX] |
LEA EAX,[EDI+EAX] |
MOV EAX,[EAX] |
RET |
cfa_AHEADER 0,"USER-VALUE-CODE",USERminusVALUEminusCODE |
call cfa__CONSTANTminusCODE |
DD cfa__USERminusVALUEminusCODE |
call cfa__TOVALUEminusCODE |
cfa_AHEADER 0,"_TOUSER-VALUE-CODE",_TOUSERminusVALUEminusCODE |
DB 05BH |
DB 083H ,0EBH ,09 |
DB 08BH ,01BH |
DB 03 ,0DFH |
DB 089H ,03 |
DB 08BH ,045H ,00 |
DB 083H ,0C5H ,04 |
DB 0C3H |
cfa_AHEADER 0,"TOUSER-VALUE-CODE",TOUSERminusVALUEminusCODE |
call cfa__CONSTANTminusCODE |
DD cfa__TOUSERminusVALUEminusCODE |
call cfa__TOVALUEminusCODE |
cfa_AHEADER 0,"_USER-CODE", _USERminusCODE |
LEA EBP,[EBP-4] |
MOV [EBP],EAX |
POP EAX |
MOV EAX,[EAX] |
LEA EAX,[EDI+EAX] |
RET |
cfa_AHEADER 0,"DOES>A",DOESgreatA |
call cfa__USERminusCODE |
DD T_DOESgreatA-main_task |
cfa_AHEADER 0,"USER-CODE",USERminusCODE |
call cfa__CONSTANTminusCODE |
DD cfa__USERminusCODE |
call cfa__TOVALUEminusCODE |
cfa_AHEADER 0,"CREATE-CODE",CREATEminusCODE |
call cfa__CONSTANTminusCODE |
DD cfa__CREATEminusCODE |
call cfa__TOVALUEminusCODE |
cfa_AHEADER 0,"CONSTANT-CODE",CONSTANTminusCODE |
call cfa__CONSTANTminusCODE |
DD cfa__CONSTANTminusCODE |
call cfa__TOVALUEminusCODE |
cfa_AHEADER 0,"_CLITERAL-CODE",_CLITERALminusCODE |
DB 083H ,0EDH ,04 |
DB 089H ,045H ,00 |
DB 058H |
DB 0FH ,0B6H ,018H |
DB 08DH ,05CH ,03 ,02 |
DB 0FFH ,0E3H |
cfa_AHEADER 0,"CLITERAL-CODE",CLITERALminusCODE |
call cfa__CONSTANTminusCODE |
DD cfa__CLITERALminusCODE |
call cfa__TOVALUEminusCODE |
cfa_AHEADER 0,'BASE',BASE |
call cfa__USERminusCODE |
DD T_BASE-main_task |
cfa_AHEADER 0,'PAD',PAD |
call cfa__USERminusCODE |
DD T_PAD-main_task |
cfa_AHEADER 0,'LAST',LAST |
call cfa__CREATEminusCODE |
DD LastNFA |
cfa_AHEADER 0,'DP',DP |
call cfa__CONSTANTminusCODE |
DD CP_P ; DP_BUFF |
cfa_AHEADER 0,'''DROP_V',ticDROP_V |
call cfa__CONSTANTminusCODE+00H |
DD cfa_DROP |
call cfa__TOVALUEminusCODE+00H |
cfa_AHEADER 0,'''DUP_V',ticDUP_V |
call cfa__CONSTANTminusCODE |
DD cfa_DUP |
call cfa__TOVALUEminusCODE+00H |
cfa_AHEADER 0,'CONTEXT',_CONTEXT |
call cfa__USERminusVALUEminusCODE |
DD T_CONTEXT-main_task |
call cfa__TOUSERminusVALUEminusCODE |
cfa_AHEADER 0,'>IN',greatIN |
call cfa__USERminusCODE |
DD T_greatIN-main_task |
cfa_AHEADER 0,'>OUT',greatOUT |
call cfa__CREATEminusCODE |
TO_OUT dd 0 |
cfa_AHEADER 0,'CURFILE',CURFILE |
call cfa__USERminusCODE |
DD T_CURFILE-main_task |
cfa_AHEADER 0,'S0',S0 |
call cfa__USERminusCODE |
DD T_S0-main_task |
cfa_AHEADER 0,'R0',R0 |
call cfa__USERminusCODE |
DD T_R0-main_task |
cfa_AHEADER 0,'SOURCE-ID',SOURCEminusID |
call cfa__USERminusVALUEminusCODE |
DD T_SOURCEminusID-main_task |
call cfa__TOUSERminusVALUEminusCODE |
cfa_AHEADER 0,'TIB',TIB |
call cfa__USERminusVALUEminusCODE |
DD T_TIB-main_task |
call cfa__TOUSERminusVALUEminusCODE |
cfa_AHEADER 0,'#TIN',nTIB |
call cfa__USERminusCODE |
DD T_nTIB-main_task |
cfa_AHEADER 0,'CURSTR',CURSTR |
call cfa__USERminusCODE |
DD T_CURSTR-main_task |
cfa_AHEADER 0,'SLITERAL-CODE',SLITERALminusCODE |
call cfa__CONSTANTminusCODE |
DD cfa__SLITERALminusCODE |
call cfa__TOVALUEminusCODE |
cfa_AHEADER 0,'USER-OFFS',USERminusOFFS |
call cfa__CREATEminusCODE |
DD reserve+MUSEROFFS |
cfa_AHEADER 0,'HANDLER',HANDLER |
call cfa__USERminusCODE |
DD T_HANDLER-main_task |
cfa_AHEADER 0,'STATE',STATE |
call cfa__USERminusCODE |
DD T_STATE-main_task |
cfa_AHEADER 0,'CURRENT',CURRENT |
call cfa__USERminusCODE |
DD T_CURRENT-main_task |
cfa_AHEADER 0,'W-CNT',WminusCNT |
call cfa__USERminusCODE |
DD T_WminusCNT-main_task |
cfa_AHEADER 0,'S-O',SminusO |
call cfa__USERminusCODE |
DD T_SminusO-main_task |
cfa_AHEADER 0,'ER-U',ERminusU |
call cfa__USERminusCODE |
DD T_ERminusU-main_task |
cfa_AHEADER 0,'ER-A',ERminusA |
call cfa__USERminusCODE |
DD T_ERminusA-main_task |
cfa_AHEADER 0,'FORTH-WORDLIST',FORTHminusWORDLIST |
call cfa__CONSTANTminusCODE |
DD T_FORTH+4 |
call cfa__TOVALUEminusCODE |
cfa_AHEADER 0,'VOC-LIST',VOCminusLIST |
call cfa__CREATEminusCODE |
DD T_FORTH |
cfa_AHEADER 0,'WARNING',WARNING |
call cfa__USERminusCODE |
DD T_WARNING-main_task |
;cfa_AHEADER 0,'LAST_KEY',LAST_KEY |
; call cfa__CREATEminusCODE |
; DD last_key |
cfa_AHEADER 0,"BLK",BLK |
call cfa__USERminusCODE |
DD T_BLK-main_task |
;cfa_AHEADER 0,"UZERO",UZERO_M |
; call cfa__CONSTANTminusCODE |
; DD UZERO |
cfa_AHEADER 0,"UPP",UPP_M |
call cfa__CONSTANTminusCODE |
DD UPP |
cfa_AHEADER 0,"ULAST",ULAST_M |
call cfa__CONSTANTminusCODE |
DD ULAST |
cfa_AHEADER 0,"SPP",SPP_M |
call cfa__CONSTANTminusCODE |
DD SPP |
cfa_AHEADER 0,"TIBB",TIBB_M |
call cfa__CONSTANTminusCODE |
DD TIBB |
cfa_AHEADER 0,"#TIB",NTIB_M |
call cfa__CONSTANTminusCODE |
DD NTIB_P |
cfa_AHEADER 0,"sbuf",screen_buf_M |
call cfa__CONSTANTminusCODE |
DD screen_buf |
cfa_AHEADER 0,"cursor",cursor_M |
call cfa__CONSTANTminusCODE |
DD cursor |
cfa_AHEADER 0,"FINFO",FINFO |
call cfa__CREATEminusCODE |
DD FINFO |
cfa_AHEADER 0,"ROWH",ROWH |
call cfa__CONSTANTminusCODE |
DD ROWH |
call cfa__TOVALUEminusCODE |
cfa_AHEADER 0,"ROWW",ROWW |
call cfa__CONSTANTminusCODE |
DD 6 |
call cfa__TOVALUEminusCODE |
cfa_AHEADER 0,"MEMS",MEMS |
call cfa__CONSTANTminusCODE |
DD MEMS |
cfa_AHEADER 0,"draw_window",draw_window |
PUSH EDI |
CALL draw_window |
POP EDI |
RET |
; cfa_AHEADER 0,'MEBLK',MEBLK |
; call cfa__USERminusCODE |
; DD BLK_P-main_task |
main_task: |
T_R0: |
DD 0 |
T_S0: |
DD SPP ;STACK0 |
T_WARNING: |
DD -1 |
T_STATE: |
DD 0 |
T_BLK: |
DD 0 |
T_CURFILE: |
DD 0 |
T_HANDLER: |
DD 0 |
T_HLD: |
DD 5 |
T_BASE: |
DD 0AH |
DD PAD_SIZE DUP (0) |
T_PAD: |
DD PAD_SIZE DUP (0) |
T_ERminusA: |
DD 0 |
T_ERminusU: |
DD 0 |
T_DOESgreatA: |
DD 0 |
;T_ALIGNminusBYTES: |
DD 0 |
T_nTIB: |
DD 0 |
T_greatIN: |
DD 5 |
T_TIB: |
DD T_ATIB |
T_ATIB: |
DD TIB_SIZE DUP (0) |
T_SOURCEminusID: |
DD 0 |
T_CURSTR: |
DD 0 |
T_WBWminusNFA: |
DD 0 |
T_WBWminusOFFS: |
DD 0 |
T_CURRENT: |
DD T_FORTH+4 |
T_SminusO: |
DD T_FORTH+4,T_FORTH+4 |
DD 16 DUP (0) |
T_CONTEXT: |
DD T_SminusO |
T_greatOUT: |
DD 0 |
T_WminusCNT: |
DD 0 |
T_NNN: |
DD 0 |
Mreserve: |
DD MUSEROFFS DUP (0) |
UPP: |
BASE_P DD BASEE |
TEMP_P DD 0 |
INN_P DD 0 |
NTIB_P DD 0 |
TIB_P DD TIBB |
;TEVAL_P DD INTER |
HLD_P DD 0 |
CNTXT_P DD 0 |
CP_P DD CTOP |
;LAST_P DD LASTN ;LAST |
EMIT_PROC_P DD -1 ; EMITPROC |
reg_struc_P DD 0 |
; BLK_P DD FILE_B |
; fi_struc_P DD FINFO |
workarea_P DD os_work |
DD 1000 DUP (0) |
T_FORTH: |
DD 0 ; ¤«ï VOC-LIST |
DD LastNFA ; ¤à¥á ¯®á«¥¤¥£® ¨¬¥¨ !!!!!!!! |
DD 0 ; ¯à¥¤®ª |
DD 0 ; ª« áá |
ByeLevel DD 0 |
/programs/develop/SPForth/build.bat |
---|
0,0 → 1,5 |
spf4.exe src/gspf.f S" img.asm" TSAVE CR BYE |
call mbuild.bat |
pause |
/programs/develop/SPForth/debug.inc |
---|
0,0 → 1,137 |
macro debug_print str |
{ |
local ..string, ..label |
jmp ..label |
..string db str,0 |
..label: |
pushf |
pushad |
mov edx,..string |
call debug_outstr |
popad |
popf |
} |
dps fix debug_print |
macro debug_print_dec arg |
{ |
pushf |
pushad |
if ~arg eq eax |
mov eax,arg |
end if |
call debug_outdec |
popad |
popf |
} |
dpd fix debug_print_dec |
;--------------------------------- |
debug_outdec: ;(eax - num, edi-str) |
push 10 ;2 |
pop ecx ;1 |
push -'0' ;2 |
.l0: |
xor edx,edx ;2 |
div ecx ;2 |
push edx ;1 |
test eax,eax ;2 |
jnz .l0 ;2 |
.l1: |
pop eax ;1 |
add al,'0' ;2 |
call debug_outchar ; stosb |
jnz .l1 ;2 |
ret ;1 |
;--------------------------------- |
debug_outchar: ; al - char |
pushf |
pushad |
mov cl,al |
mov eax,63 |
mov ebx,1 |
int 0x40 |
popad |
popf |
ret |
debug_outstr: |
mov eax,63 |
mov ebx,1 |
@@: |
mov cl,[edx] |
test cl,cl |
jz @f |
int 40h |
inc edx |
jmp @b |
@@: |
ret |
_debug_crlf db 13, 10, 0 |
macro newline |
{ |
pushf |
pushad |
mov edx, _debug_crlf |
call debug_outstr |
popad |
popf |
} |
macro print message |
{ |
dps message |
newline |
} |
macro pregs |
{ |
dps "EAX: " |
dpd eax |
dps " EBX: " |
dpd ebx |
newline |
dps "ECX: " |
dpd ecx |
dps " EDX: " |
dpd edx |
newline |
} |
macro debug_print_hex arg |
{ |
pushf |
pushad |
if ~arg eq eax |
mov eax, arg |
end if |
call debug_outhex |
popad |
popf |
} |
dph fix debug_print_hex |
debug_outhex: |
; eax - number |
mov edx, 8 |
.new_char: |
rol eax, 4 |
movzx ecx, al |
and cl, 0x0f |
mov cl, [__hexdigits + ecx] |
pushad |
mcall 63, 1 |
popad |
dec edx |
jnz .new_char |
ret |
__hexdigits: |
db '0123456789ABCDEF' |
/programs/develop/SPForth/devel/~ac/lib/LOCALS.F |
---|
0,0 → 1,193 |
lib\ext\locals.f \EOF |
( 28.Mar.2000 Andrey Cherezov Copyright [C] RU FIG |
Èñïîëüçîâàíû èäåè ñëåäóþùèõ àâòîðîâ: |
Ruvim Pinka; Dmitry Yakimov; Oleg Shalyopa; Yuriy Zhilovets; |
Konstantin Tarasov |
!! Ðàáîòàåò, òîëüêî íà÷èíàÿ ñ 30 áèëäà SPF/3.75: VERSION . 375030 Ok |
) |
( Ïðîñòîå ðàñøèðåíèå ÑÏ-Ôîðòà ëîêàëüíûìè ïåðåìåííûìè. |
Ðåàëèçîâàíî áåç èñïîëüçîâàíèÿ LOCALS ñòàíäàðòà 94. |
Îáúÿâëåíèå âðåìåííûõ ïåðåìåííûõ, âèäèìûõ òîëüêî âíóòðè |
òåêóùåãî ñëîâà è îãðàíè÷åííûõ âðåìåíåì âûçîâà äàííîãî |
ñëîâà âûïîëíÿåòñÿ ñ ïîìîùüþ ñëîâà "{". Âíóòðè îïðåäåëåíèÿ |
ñëîâà èñïîëüçóåòñÿ êîíñòðóêöèÿ, ïîäîáíàÿ ñòåêîâîé íîòàöèè Ôîðòà |
{ ñïèñîê_èíèöèàëèçèðîâàííûõ_ëîêàëîâ \ ñï.íåèíèö.ëîêàëîâ -- ÷òî óãîäíî } |
Íàïðèìåð: |
{ a b c d \ e f -- i j } |
×àñòü "\ ñï.íåèíèö.ëîêàëîâ" ìîæåò îòñóòñòâîâàòü, íàïðèìåð: |
{ item1 item2 -- } |
Ýòî çàñòàâëÿåò ÑÏ-Ôîðò àâòîìàòè÷åñêè âûäåëÿòü ìåñòî â |
ñòåêå âîçâðàòîâ äëÿ ýòèõ ïåðåìåííûõ â ìîìåíò âûçîâà ñëîâà |
è àâòîìàòè÷åñêè îñâîáîæäàòü ìåñòî ïðè âûõîäå èç íåãî. |
Îáðàùåíèå ê òàêèì ëîêàëüíûì ïåðåìåííûì - êàê ê VALUE-ïåðåìåííûì |
ïî èìåíè. Åñëè íóæåí àäðåñ ïåðåìåííîé, òî èñïîëüçóåòñÿ "^ èìÿ". |
Ïðèìåðû: |
: TEST { a b c d \ e f -- } a . b . c . b c + -> e e . f . ^ a @ . ; |
Ok |
1 2 3 4 TEST |
1 2 3 5 0 1 Ok |
: TEST { a b -- } a . b . CR 5 0 DO I . a . b . CR LOOP ; |
Ok |
12 34 TEST |
12 34 |
0 12 34 |
1 12 34 |
2 12 34 |
3 12 34 |
4 12 34 |
Ok |
: TEST { a b } a . b . ; |
Ok |
1 2 TEST |
1 2 Ok |
: TEST { a b \ c } a . b . c . ; |
Ok |
1 2 TEST |
1 2 0 Ok |
: TEST { a b -- } a . b . ; |
Ok |
1 2 TEST |
1 2 Ok |
: TEST { a b \ c -- d } a . b . c . ; |
Ok |
1 2 TEST |
1 2 0 Ok |
: TEST { \ a b } a . b . 1 -> a 2 -> b a . b . ; |
Ok |
TEST |
0 0 1 2 Ok |
Èìåíà ëîêàëüíûõ ïåðåìåííûõ ñóùåñòâóþò â äèíàìè÷åñêîì |
âðåìåííîì ñëîâàðå òîëüêî â ìîìåíò êîìïèëÿöèè ñëîâà, à |
ïîñëå ýòîãî âû÷èùàþòñÿ è áîëåå íåäîñòóïíû. |
Èñïîëüçîâàòü êîíñòðóêöèþ "{ ... }" âíóòðè îäíîãî îïðåäåëåíèÿ ìîæíî |
òîëüêî îäèí ðàç. |
Êîìïèëÿöèÿ ýòîé áèáëèîòåêè äîáàâëÿåò â òåêóùèé ñëîâàðü êîìïèëÿöèè |
Òîëüêî äâà ñëîâà: |
ñëîâàðü "vocLocalsSupport" è "{" |
Âñå îñòàëüíûå äåòàëè "ñïðÿòàíû" â ñëîâàðå, èñïîëüçîâàòü èõ |
íå ðåêîìåíäóåòñÿ. |
) |
VOCABULARY vocLocalsSupport |
GET-CURRENT ALSO vocLocalsSupport DEFINITIONS |
USER widLocals |
USER uLocalsCnt |
USER uLocalsUCnt |
USER uPrevCurrent |
USER uAddDepth |
: (Local^) ( N -- ADDR ) |
RP@ + |
; |
: LocalOffs ( n -- offs ) |
uLocalsCnt @ SWAP - CELLS CELL+ uAddDepth @ + |
; |
: CompileLocalsInit |
uPrevCurrent @ SET-CURRENT |
uLocalsCnt @ uLocalsUCnt @ - ?DUP IF CELLS LIT, POSTPONE DRMOVE THEN |
uLocalsUCnt @ ?DUP IF LIT, POSTPONE (RALLOT) THEN |
uLocalsCnt @ ?DUP |
IF CELLS LIT, POSTPONE >R ['] (LocalsExit) LIT, POSTPONE >R THEN |
; |
: CompileLocal@ ( n -- ) |
LocalOffs LIT, POSTPONE RP+@ |
; |
: LocalsStartup |
TEMP-WORDLIST widLocals ! |
GET-CURRENT uPrevCurrent ! |
ALSO vocLocalsSupport |
ALSO widLocals @ CONTEXT ! DEFINITIONS |
uLocalsCnt 0! |
uLocalsUCnt 0! |
uAddDepth 0! |
; |
: LocalsCleanup |
PREVIOUS PREVIOUS |
widLocals @ FREE-WORDLIST |
; |
: LocalsDoes@ |
uLocalsCnt @ , |
uLocalsCnt 1+! |
DOES> @ CompileLocal@ |
; |
: ;; POSTPONE ; ; IMMEDIATE |
: ^ ' >BODY @ LocalOffs LIT, POSTPONE RP+ ; IMMEDIATE |
: -> ' >BODY @ LocalOffs LIT, POSTPONE RP+! ; IMMEDIATE |
: â POSTPONE -> ; IMMEDIATE |
WARNING @ WARNING 0! |
\ === |
\ ïåðåîïðåäåëåíèå ñîîòâåòñòâóþùèõ ñëîâ äëÿ âîçìîæíîñòè èñïîëüçîâàòü |
\ âðåìåííûå ïåðåìåííûå âíóòðè öèêëà DO LOOP è íåçàâèñèìî îò èçìåíåíèÿ |
\ ñîäåðæèìîãî ñòåêà âîçâðàòîâ ñëîâàìè >R R> |
: DO POSTPONE DO [ 3 CELLS ] LITERAL uAddDepth +! ; IMMEDIATE |
: ?DO POSTPONE ?DO [ 3 CELLS ] LITERAL uAddDepth +! ; IMMEDIATE |
: LOOP POSTPONE LOOP [ -3 CELLS ] LITERAL uAddDepth +! ; IMMEDIATE |
: +LOOP POSTPONE +LOOP [ -3 CELLS ] LITERAL uAddDepth +! ; IMMEDIATE |
: >R POSTPONE >R [ 1 CELLS ] LITERAL uAddDepth +! ; IMMEDIATE |
: R> POSTPONE R> [ -1 CELLS ] LITERAL uAddDepth +! ; IMMEDIATE |
: RDROP POSTPONE RDROP [ -1 CELLS ] LITERAL uAddDepth +! ; IMMEDIATE |
\ === |
: ; LocalsCleanup POSTPONE ; ; IMMEDIATE |
WARNING ! |
\ ===================================================================== |
SET-CURRENT |
: { |
LocalsStartup |
BEGIN |
BL SKIP PeekChar DUP [CHAR] \ <> |
OVER [CHAR] - <> AND |
SWAP [CHAR] } <> AND |
WHILE |
CREATE LocalsDoes@ IMMEDIATE |
REPEAT |
PeekChar >IN 1+! DUP [CHAR] } <> |
IF |
[CHAR] \ = |
IF |
BEGIN |
BL SKIP PeekChar DUP [CHAR] - <> SWAP [CHAR] } <> AND |
WHILE |
CREATE LocalsDoes@ IMMEDIATE |
uLocalsUCnt 1+! |
REPEAT |
THEN |
[CHAR] } PARSE 2DROP |
ELSE DROP THEN |
CompileLocalsInit |
;; IMMEDIATE |
PREVIOUS |
/programs/develop/SPForth/devel/~ac/lib |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/SPForth/devel/~ac |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/SPForth/devel/~af/lib/comments.f |
---|
0,0 → 1,9 |
\ $Id: comments.f,v 1.2 2002/06/18 14:50:22 anfilat Exp $ |
\ ¥é¥ ®¤¨ ¬®£®áâà®çë© ª®¬¥â ਩ :-) (~ruvim) |
: (* ( -- ) |
BEGIN |
NextWord DUP 0= |
IF NIP REFILL 0= IF DROP TRUE THEN |
ELSE S" *)" COMPARE 0= THEN |
UNTIL |
; IMMEDIATE |
/programs/develop/SPForth/devel/~af/lib |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/SPForth/devel/~af |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/SPForth/devel/~mak/CompIF.f |
---|
0,0 → 1,25 |
: [ELSE] |
1 |
BEGIN |
NextWord DUP |
IF |
2DUP S" [IF]" COMPARE 0= IF 2DROP 1+ ELSE |
2DUP S" [ELSE]" COMPARE 0= IF 2DROP 1- DUP IF 1+ THEN ELSE |
S" [THEN]" COMPARE 0= IF 1- THEN |
THEN THEN |
ELSE 2DROP REFILL AND \ SOURCE TYPE |
THEN DUP 0= |
UNTIL DROP ; IMMEDIATE |
: [IF] 0= IF [COMPILE] [ELSE] THEN ; IMMEDIATE |
: [THEN] ; IMMEDIATE |
C" \S" FIND NIP 0= |
[IF] |
: \S \ comment to end of file |
SOURCE-ID FILE-SIZE DROP |
SOURCE-ID REPOSITION-FILE DROP |
[COMPILE] \ ; IMMEDIATE |
[THEN] |
/programs/develop/SPForth/devel/~mak/DIS486.F |
---|
0,0 → 1,1559 |
\ 80386 DISASSEMBLER |
\ ANDREW MCKEWAN, APRIL 1994 |
\ TOM ZIMMER, 05/18/94 PORT TO WIN32F |
\ MODIFIED TO WORD IN DECIMAL 08/03/94 10:04 TJZ |
\ 06-??-95 SMUB NEXT SEQUENCE DEFINED IN FKERNEL |
\ 06-21-95 SMUB REMOVED REDUNDANT COUNT CALLS FROM TXB, LXS. |
\ 04-??-97 EXTENDED BY C.L. TO INCLUDE P6 AND MMX INSTRUCTIONS |
\ |
REQUIRE MAXSTRING ~mak\UTILS_.F |
CR .( LOADING 80486 DISASSEMBLER...) |
ONLY FORTH ALSO DEFINITIONS |
0 VALUE DEFAULT-16BIT? |
: DEFAULT-16BIT ( -- ) |
TRUE TO DEFAULT-16BIT? ; |
: DEFAULT-32BIT ( -- ) |
FALSE TO DEFAULT-16BIT? ; |
VECT SHOW-NAME ( CFA -- ) \ DISPLAY NEAREST SYMBOL |
0 VALUE BASE-ADDR |
VOCABULARY DISASSEMBLER |
DISASSEMBLER ALSO DEFINITIONS |
DECIMAL |
CREATE S-BUF MAXSTRING ALLOT |
: >S ( A1 N1 -- ) |
S-BUF +PLACE ; |
: 0>S ( -- ) \ RESET S-BUF |
S-BUF OFF ; |
: SSPACES ( N1 -- ) |
SPCS SWAP S-BUF +PLACE ; |
: SSPACE ( -- ) |
1 SSPACES ; |
: EMIT>S ( C1 -- ) |
S-BUF C+PLACE ; |
: S> ( -- A1 N1 ) |
S-BUF COUNT ; |
: (.S") ( addr len -- ) |
S-BUF +PLACE ; |
: .S" ( 'TEXT' -- ) |
[CHAR] " PARSE |
POSTPONE SLITERAL |
POSTPONE (.S") ; IMMEDIATE |
: D.R>S ( D W -- ) |
>R (D.) R> OVER - SSPACES >S ; |
: .R>S ( N W -- ) |
>R S>D R> D.R>S ; |
: U.R>S ( U W -- ) |
0 SWAP D.R>S ; |
: H.>S ( U -- ) |
BASE @ SWAP HEX 0 (D.) >S SSPACE BASE ! ; |
: H.R>S ( N1 N2 -- ) |
BASE @ >R HEX >R |
0 <# #S #> R> OVER - SSPACES >S |
R> BASE ! ; |
: ?.NAME>S ( CFA -- ) |
\ ELIMINATE " 0X" |
DUP 1 H.R>S SSPACE |
DUP WordByAddr |
>R TUCK 1- NAME> = |
IF .S" ( " R> >S .S" ) " |
ELSE RDROP DROP |
THEN |
; |
' ?.NAME>S TO SHOW-NAME |
\ 32 CONSTANT COMMENT-COL |
0 VALUE SIZE |
0 VALUE 16-BIT-DATA |
0 VALUE 16-BIT-ADDR |
0 VALUE PREFIX-OP |
0 VALUE MMX-REG |
: @+ ( ADDR -- ADDR N ) DUP CELL+ SWAP @ ; |
: W@+ ( ADDR -- ADDR N ) DUP 2 + SWAP W@ ; |
: SEXT ( BYTE -- N ) DUP 128 AND IF 0xFFFFFF00 OR THEN ; |
: MOD/SIB ( MOD-R-R/M -- R/M R MOD ) \ R INCLUDING GENERAL, SPECIAL, SEGMENT, MMX |
( MOD-OP-R/M -- R/M OP MOD ) |
( S-I-B -- B I S ) |
255 AND 8 /MOD 8 /MOD ; |
: ??? ( N1 -- ) |
.S" ??? " DROP ; |
: SS. ( N ADR LEN W ) >R DROP SWAP R@ * + R> >S SSPACE ; |
: TTTN ( CODE -- ) 15 AND S" O NOB AEE NEBEA S NSP NPL GELEG " 2 SS. ; |
: SREG ( SREG -- ) 3 RSHIFT 7 AND S" ESCSSSDSFSGSXXXX" 2 SS. ; |
: CREG ( EEE -- ) 3 RSHIFT 7 AND S" CR0???CR2CR3CR4?????????" 3 SS. ; |
: DREG ( EEE -- ) 3 RSHIFT 7 AND S" DR0DR1DR2DR3??????DR6DR7" 3 SS. ; |
: TREG ( EEE -- ) 3 RSHIFT 7 AND S" ?????????TR3TR4TR5TR6TR7" 3 SS. ; \ OBSOLETE |
: MREG ( N -- ) 7 AND S" MM0MM1MM2MM3MM4MM5MM6MM7" 3 SS. ; |
: REG8 ( N -- ) 7 AND S" ALCLDLBLAHCHDHBH" 2 SS. ; |
: REG16 ( N -- ) 7 AND S" AXCXDXBXSPBPSIDI" 2 SS. ; |
: REG32 ( N -- ) 7 AND S" EAXECXEDXEBXESPEBPESIEDI" 3 SS. ; |
: REG16/32 ( N -- ) |
16-BIT-DATA |
IF REG16 |
ELSE REG32 |
THEN ; |
: REG ( A N -- A ) |
MMX-REG |
IF MREG |
ELSE SIZE |
IF REG16/32 |
ELSE REG8 |
THEN |
THEN |
; |
: [BASE16] ( R/M -- ) 4 - S" [SI][DI][BP][BX]" 4 SS. ; |
\ R/M = 4 , 5 , 6 , 7 |
: [IND16] ( R/M -- ) S" [BX+SI][BX+DI][BP+SI][BP+DI]" 7 SS. ; |
\ R/M = 0 , 1 , 2 , 3 |
: [REG16] ( R/M -- ) DUP 4 < |
IF [IND16] |
ELSE [BASE16] |
THEN ; |
: [REG32] ( N -- ) 7 AND S" [EAX][ECX][EDX][EBX][ESP][EBP][ESI][EDI]" 5 SS. ; |
\ : [REG] ( R/M -- ) 16-BIT-ADDR |
\ IF [REG16] |
\ ELSE [REG32] |
\ THEN SSPACE ; |
\ : [REG] ( N -- ) |
\ 7 AND |
\ 16-BIT-ADDR |
\ IF S" [BX+SI] [BX+DI] [BP+SI] [BP+DI] [SI] [DI] [BP] [BX]" |
\ ROT 0 |
\ ?DO BL SKIP BL SCAN |
\ LOOP BL SKIP 2DUP BL SCAN NIP - >S 2 SSPACES |
\ ELSE S" [EAX][ECX][EDX][EBX][ESP][EBP][ESI][EDI]" 5 SS. SSPACE |
\ THEN ; |
: [REG*2] ( I -- ) S" [EAX*2][ECX*2][EDX*2][EBX*2][XXX*2][EBP*2][ESI*2][EDI*2]" 7 SS. ; |
: [REG*4] ( I -- ) S" [EAX*4][ECX*4][EDX*4][EBX*4][XXX*4][EBP*4][ESI*4][EDI*4]" 7 SS. ; |
: [REG*8] ( I -- ) S" [EAX*8][ECX*8][EDX*8][EBX*8][XXX*8][EBP*8][ESI*8][EDI*8]" 7 SS. ; |
: [INDEX] ( SIB -- ) MOD/SIB OVER 4 = |
IF 2DROP \ NO ESP SCALED INDEX |
ELSE CASE ( S ) |
0 OF [REG32] ENDOF |
1 OF [REG*2] ENDOF |
2 OF [REG*4] ENDOF |
3 OF [REG*8] ENDOF |
ENDCASE |
THEN DROP ; |
: DISP8 ( ADR -- ADR' ) COUNT H.>S ; |
: DISP16 ( ADR -- ADR' ) W@+ SHOW-NAME ; |
: DISP32 ( ADR -- ADR' ) @+ ( BODY> ) SHOW-NAME ; |
: DISP16/32 ( ADR -- ADR' ) |
16-BIT-ADDR |
IF DISP16 |
ELSE DISP32 |
THEN ; |
: ., ( -- ) .S" , " ; |
: .# ., .S" # " ; |
: IMM8 ( ADR -- ADR' ) .# COUNT H.>S ; |
\ : IMM16 ( ADR -- ADR' ) .# W@+ H.>S ; |
: IMM16/32 ( ADR -- ADR' ) |
.# 16-BIT-DATA |
IF W@+ |
ELSE @+ |
THEN H.>S ; |
: SIB ( ADR MOD -- ADR ) |
>R COUNT TUCK 7 AND 5 = R@ 0= AND |
IF DISP32 SWAP [INDEX] R> DROP \ EBP BASE AND MOD = 00 |
ELSE R> CASE ( MOD ) |
1 OF DISP8 ENDOF |
2 OF DISP32 ENDOF |
ENDCASE |
SWAP DUP [REG32] [INDEX] |
THEN ; |
\ : [*] ( SIB -- ) |
\ .S" SIB = " H.>S ; |
\ : SIB ( ADR EXT -- ADR' ) |
\ ?? WRONG VERSION |
\ SWAP COUNT >R SWAP 6 RSHIFT 3 AND |
\ ?DUP IF 1 = IF DISP8 ELSE DISP32 THEN THEN |
\ R> DUP 7 AND DUP 5 = |
\ IF DROP [*] |
\ ELSE [REG] |
\ DUP 0x38 AND 0x20 = |
\ IF DROP |
\ ELSE .S" [" DUP 3 RSHIFT REG32 -1 S-BUF C+! |
\ 5 RSHIFT 6 AND |
\ DUP 6 = IF 2 + THEN |
\ ?DUP IF .S" *" 0 .R>S THEN .S" ] " |
\ THEN |
\ THEN ; |
: MOD-R/M32 ( ADR R/M MOD -- ADR' ) |
DUP 3 = |
IF DROP REG \ MOD = 3, REGISTER CASE |
ELSE OVER 4 = |
IF NIP SIB \ R/M = 4, SIB CASE |
ELSE 2DUP 0= SWAP 5 = AND \ MOD = 0, R/M = 5, |
IF 2DROP DISP32 \ DISP32 CASE |
ELSE ROT SWAP |
CASE ( MOD ) |
1 OF DISP8 ENDOF |
2 OF DISP32 ENDOF |
ENDCASE |
SWAP [REG32] |
THEN |
THEN |
THEN ; |
: MOD-R/M16 ( ADR R/M MOD -- ADR' ) |
2DUP 0= SWAP 6 = AND |
IF 2DROP DISP16 \ DISP16 CASE |
ELSE CASE ( MOD ) |
0 OF [REG16] ENDOF |
1 OF SWAP DISP8 SWAP [REG16] ENDOF |
2 OF SWAP DISP16 SWAP [REG16] ENDOF |
3 OF REG ENDOF |
ENDCASE |
THEN ; |
: MOD-R/M ( ADR MODR/M -- ADR' ) |
MOD/SIB NIP 16-BIT-ADDR |
IF MOD-R/M16 |
ELSE MOD-R/M32 |
THEN ; |
\ : MOD-R/M ( ADR EXT -- ADR' ) |
\ DUP 0xC7 AND 5 = \ 32BIT DISPLACEMENT |
\ 16-BIT-ADDR 0= AND \ AND NOT 16BIT ADDRESSING |
\ IF DROP DISP32 .S" [] " |
\ EXIT |
\ THEN |
\ DUP 0xC0 AND 0xC0 < OVER 7 AND 4 = AND |
\ 16-BIT-ADDR 0= AND \ AND NOT 16BIT ADDRESSING |
\ IF SIB |
\ EXIT |
\ THEN |
\ DUP 0xC7 AND 6 = \ 16BIT DISPLACEMENT |
\ 16-BIT-ADDR AND \ AND 16BIT ADDRESSING |
\ IF DROP DISP32 .S" [] " |
\ EXIT |
\ THEN |
\ DUP 6 RSHIFT |
\ CASE |
\ 0 OF .S" 0 " [REG] ENDOF |
\ 1 OF SWAP DISP8 SWAP [REG] ENDOF |
\ 2 OF SWAP DISP32 SWAP [REG] ENDOF |
\ 3 OF REG ENDOF |
\ ENDCASE ; |
: R/M8 0 TO SIZE MOD-R/M ; |
: R/M16/32 1 TO SIZE MOD-R/M ; |
: R/M16 TRUE TO 16-BIT-DATA R/M16/32 ; |
: R,R/M ( ADR -- ADR' ) |
COUNT DUP 3 RSHIFT REG ., MOD-R/M ; |
: R/M,R ( ADR -- ADR' ) |
COUNT DUP>R MOD-R/M ., R> 3 RSHIFT REG ; |
: R/M ( ADR OP -- ADR' ) |
2 AND |
IF R,R/M |
ELSE R/M,R |
THEN ; |
\ -------------------- SIMPLE OPCODES -------------------- |
: INH ( -<NAME>- ) |
CREATE |
BL WORD COUNT HERE PLACE |
HERE C@ 1+ ALLOT |
DOES> COUNT >S SSPACE DROP ; |
INH CLC CLC |
INH STC STC |
INH CLD CLD |
INH STD STD |
\ INH RPNZ REPNZ |
\ INH REPZ REPZ |
INH CBW CBW |
INH CDQ CDQ |
INH DAA DAA |
INH DAS DAS |
INH AAA AAA |
INH AAS AAS |
\ INH LOCK LOCK |
INH INB INSB |
INH OSB OUTSB |
INH SAH SAHF |
INH LAH LAHF |
\ INH AAM AAM |
\ INH AAD AAD |
INH HLT HLT |
INH CMC CMC |
INH XLT XLAT |
INH CLI CLI |
INH STI STI |
INH CLT CLTS |
INH INV INVD |
INH WIV WBINVD |
INH UD2 UD2 |
INH WMR WRMSR |
INH RTC RDTSC |
INH RMR RDMSR |
INH RPC RDPMC |
INH EMS EMMS |
INH RSM RSM |
INH CPU CPUID |
INH UD1 UD1 |
\ INH LSS LSS |
\ INH LFS LFS |
\ INH LGS LGS |
\ INH D16: D16: |
\ INH A16: A16: |
\ INH ES: ES: |
\ INH CS: CS: |
\ INH DS: DS: |
\ INH FS: FS: |
\ INH GS: GS: |
: AAM ( ADR CODE -- ADR' ) |
.S" AAM" DROP COUNT DROP ; |
: AAD ( ADR CODE -- ADR' ) |
.S" AAD" DROP COUNT DROP ; |
: D16 ( ADR CODE -- ADR' ) |
DROP .S" D16:" |
TRUE TO 16-BIT-DATA |
TRUE TO PREFIX-OP |
; |
: A16 ( ADR CODE -- ADR' ) |
DROP .S" A16:" |
TRUE TO 16-BIT-ADDR |
TRUE TO PREFIX-OP |
; |
: RPZ ( ADR CODE -- ADR' ) |
DROP .S" REPNZ" |
TRUE TO PREFIX-OP |
; |
: REP ( ADR CODE -- ADR' ) |
DROP .S" REPZ" |
TRUE TO PREFIX-OP |
; |
: LOK ( ADR CODE -- ADR' ) \ THIS SHOULD HAVE ERROR CHECKING ADDED |
DROP .S" LOCK" |
TRUE TO PREFIX-OP |
; |
: CS: ( ADR CODE -- ADR' ) |
DROP .S" CS:" |
TRUE TO PREFIX-OP |
; |
: DS: ( ADR CODE -- ADR' ) |
DROP .S" DS:" |
TRUE TO PREFIX-OP |
; |
: SS: ( ADR CODE -- ADR' ) |
DROP .S" SS:" |
TRUE TO PREFIX-OP |
; |
: ES: ( ADR CODE -- ADR' ) |
DROP .S" ES:" |
TRUE TO PREFIX-OP |
; |
: GS: ( ADR CODE -- ADR' ) |
DROP .S" GS:" |
TRUE TO PREFIX-OP |
; |
: FS: ( ADR CODE -- ADR' ) |
DROP .S" FS:" |
TRUE TO PREFIX-OP |
; |
: ISD ( ADR CODE -- ADR' ) |
DROP 16-BIT-DATA |
IF .S" INSW " |
ELSE .S" INSD " |
THEN ; |
: OSD ( ADR CODE -- ADR' ) |
DROP 16-BIT-DATA |
IF .S" OUTSW " |
ELSE .S" OUTSD " |
THEN ; |
: INP ( ADDR CODE -- ADDR' ) |
.S" IN " 1 AND |
IF 16-BIT-DATA |
IF .S" AX , " |
ELSE .S" EAX , " |
THEN |
ELSE .S" AL , " |
THEN |
COUNT H.>S ; |
: OTP ( ADDR CODE -- ADDR' ) |
.S" OUT " 1 AND |
IF COUNT H.>S 16-BIT-DATA |
IF .S" , AX" |
ELSE .S" , EAX" |
THEN |
ELSE COUNT H.>S .S" , AL" |
THEN |
; |
: IND ( ADDR CODE -- ADDR' ) |
.S" IN " 1 AND |
IF 16-BIT-DATA |
IF .S" AX , DX" |
ELSE .S" EAX , DX" |
THEN |
ELSE .S" AL , DX" |
THEN |
; |
: OTD ( ADDR CODE -- ADDR' ) |
.S" OUT " 1 AND |
IF 16-BIT-DATA |
IF .S" DX , AX" |
ELSE .S" DX , EAX" |
THEN |
ELSE .S" DX , AL" |
THEN |
; |
\ -------------------- ALU OPCODES -------------------- |
: .ALU ( N -- ) |
7 AND S" ADDOR ADCSBBANDSUBXORCMP" 3 SS. 4 SSPACES |
; |
: ALU ( ADR OP -- ADR' ) |
DUP 3 RSHIFT .ALU R/M ; |
: ALI ( ADR OP -- ADR' ) |
>R COUNT |
DUP 3 RSHIFT .ALU |
MOD-R/M |
R> 3 AND ?DUP |
IF 1 = |
IF IMM16/32 |
ELSE .# COUNT SEXT 0 .R>S SSPACE |
THEN |
ELSE IMM8 |
THEN ; |
: ALA ( ADR OP -- ADR' ) |
DUP 3 RSHIFT .ALU |
1 AND IF 0 REG IMM16/32 ELSE 0 REG8 IMM8 THEN ; |
\ -------------------- TEST/XCHG -------------------- |
: TXB ( ADDR OP -- ADDR' ) |
DUP 3 AND S" TESTTESTXCHGXCHG" 4 SS. 3 SSPACES |
1 AND |
IF 1 TO SIZE R,R/M \ SMUB REMOVED COUNT |
ELSE 0 TO SIZE R,R/M \ SMUB REMOVED COUNT |
THEN |
; |
: TST ( ADDR OP -- ADDR' ) |
.S" TEST " 1 AND |
IF 16-BIT-DATA |
IF .S" AX , " |
ELSE .S" EAX , " |
THEN |
IMM16/32 |
ELSE .S" AL , " IMM8 |
THEN |
; |
\ -------------------- INC/DEC ---------------------- |
: INC ( ADDR OP -- ADDR' ) |
.S" INC " REG16/32 ; |
: DEC ( ADDR OP -- ADDR' ) |
.S" DEC " REG16/32 ; |
\ -------------------- PUSH/POP -------------------- |
: PSH ( ADDR OP -- ADDR' ) |
.S" PUSH " REG16/32 ; |
: POP ( ADDR OP -- ADDR' ) |
.S" POP " REG16/32 ; |
: PSS ( ADDR OP -- ADDR' ) |
.S" PUSH " SREG ; |
: PPS ( ADDR OP -- ADDR' ) |
.S" POP " SREG ; |
: PSA ( ADDR OP -- ADDR' ) |
DROP 16-BIT-DATA |
IF .S" PUSHA " |
ELSE .S" PUSHAD " |
THEN ; |
: PPA ( ADDR OP -- ADDR' ) |
DROP 16-BIT-DATA |
IF .S" POPA " |
ELSE .S" POPAD " |
THEN ; |
: PSI ( ADDR OP -- ADDR' ) |
.S" PUSH " 2 AND |
IF IMM8 |
ELSE IMM16/32 |
THEN ; |
: PSF ( ADDR OP -- ADDR' ) |
DROP 16-BIT-DATA |
IF .S" PUSHF " |
ELSE .S" PUSHFD " |
THEN ; |
: PPF ( ADDR OP -- ADDR' ) |
DROP 16-BIT-DATA |
IF .S" POPF " |
ELSE .S" POPFD " |
THEN ; |
: 8F. ( ADDR OP -- ADDR' ) |
DROP COUNT .S" POP " R/M16/32 ; |
\ -------------------- MOVE -------------------- |
: MOV ( ADDR OP -- ADDR' ) |
.S" MOV " R/M ; |
: MRI ( ADDR OP -- ADDR' ) ( MOV REGISTER, IMM ) |
.S" MOV " DUP 8 AND |
IF REG16/32 IMM16/32 |
ELSE REG8 IMM8 |
THEN ; |
: MVI ( ADR OP -- ADR' ) ( MOV MEM, IMM ) |
.S" MOV " DROP COUNT MOD-R/M |
SIZE |
IF IMM16/32 |
ELSE IMM8 |
THEN |
; |
: MRS ( ADDR OP -- ADDR' ) |
\ ? REMOVE REDUNDANT >R , R> |
16-BIT-DATA |
IF .S" MOV " DROP |
1 TO SIZE |
COUNT DUP MOD-R/M ., |
SREG |
ELSE ??? |
THEN ; |
: MSR ( ADDR OP -- ADDR' ) |
16-BIT-DATA |
IF .S" MOV " DROP |
1 TO SIZE |
COUNT DUP SREG ., |
MOD-R/M |
ELSE ??? |
THEN ; |
: MRC ( ADDR OP -- ADDR' ) |
.S" MOV " |
DROP COUNT DUP REG32 .S" , " |
CREG ; |
: MCR ( ADDR OP -- ADDR' ) |
.S" MOV " |
DROP COUNT DUP CREG .S" , " |
REG32 ; |
: MRD ( ADDR OP -- ADDR' ) |
.S" MOV " |
DROP COUNT DUP REG32 .S" , " |
DREG ; |
: MDR ( ADDR OP -- ADDR' ) |
.S" MOV " |
DROP COUNT DUP DREG .S" , " |
REG32 ; |
: MRT ( ADDR OP -- ADDR' ) |
\ OBSOLETE |
.S" MOV " |
DROP COUNT DUP REG32 .S" , " |
TREG ; |
: MTR ( ADDR OP -- ADDR' ) |
\ OBSOLETE |
.S" MOV " |
DROP COUNT DUP TREG .S" , " |
REG32 ; |
: MV1 ( ADDR OP -- ADDR' ) |
.S" MOV " 1 AND |
IF 16-BIT-DATA |
IF .S" AX , " |
ELSE .S" EAX , " |
THEN |
ELSE .S" AL , " |
THEN |
DISP16/32 ; |
: MV2 ( ADDR OP -- ADDR' ) |
>R .S" MOV " DISP16/32 ., |
R> 1 AND |
IF 16-BIT-DATA |
IF .S" AX" |
ELSE .S" EAX" |
THEN |
ELSE .S" AL" |
THEN |
; |
: LEA ( ADDR OP -- ADDR' ) |
.S" LEA " DROP 1 TO SIZE R,R/M ; |
: LXS ( ADDR OP -- ADDR' ) |
1 AND |
IF .S" LDS " |
ELSE .S" LES " |
THEN |
R,R/M \ SMUB REMOVED COUNT |
; |
: BND ( ADDR OP -- ADDR' ) |
.S" BOUND " DROP 1 TO SIZE R,R/M ; |
: ARP ( ADDR OP -- ADDR' ) |
.S" ARPL " DROP |
1 TO SIZE |
TRUE TO 16-BIT-DATA |
R,R/M |
; |
: MLI ( ADDR OP -- ADDR' ) |
1 TO SIZE |
.S" IMUL " 0x69 = |
IF R,R/M IMM16/32 |
ELSE R,R/M IMM8 |
THEN ; |
\ -------------------- JUMPS AND CALLS -------------------- |
0 VALUE MAX_REFERENCE |
: >MAX_R |
\ DUP HERE |
DUP MAX_REFERENCE UMAX TO MAX_REFERENCE ; |
: REL8 ( ADDR OP -- ADDR' ) |
COUNT SEXT OVER + >MAX_R H.>S ; |
: REL16/32 ( ADDR OP -- ADDR' ) |
16-BIT-ADDR |
IF W@+ |
ELSE @+ |
THEN OVER + BASE-ADDR - >MAX_R SHOW-NAME ; |
: JSR ( ADDR OP -- ADDR' ) |
MAX_REFERENCE >R |
.S" CALL " DROP REL16/32 |
R> TO MAX_REFERENCE ; |
: JMP ( ADDR OP -- ADDR' ) |
.S" JMP " 2 AND IF REL8 ELSE REL16/32 THEN ; |
: .JXX ( ADDR OP -- ADDR' ) |
.S" J" TTTN 4 SSPACES ; |
: BRA ( ADDR OP -- ADDR' ) |
.JXX REL8 ; |
: LUP ( ADDR OP -- ADDR' ) |
3 AND S" LOOPNZLOOPZ LOOP JECXZ " 6 SS. 1 SSPACES REL8 ; |
: LBR ( ADDR OP -- ADDR' ) |
.JXX REL16/32 ; |
: RTN ( ADDR OP -- ADDR' ) |
.S" RET NEAR " 1 AND 0= |
IF W@+ H.>S |
THEN ; |
: RTF ( ADDR OP -- ADDR' ) |
.S" RET FAR " 1 AND 0= |
IF W@+ H.>S |
THEN ; |
: ENT ( ADDR OP -- ADDR' ) |
.S" ENTER " W@+ . ., COUNT H.>S ; |
: CIS ( ADDR OP -- ADDR' ) |
0x9A = |
IF .S" CALL " |
ELSE .S" JMP " |
THEN |
16-BIT-DATA |
IF .S" PTR16:16 " |
ELSE .S" PTR16:32 " |
THEN |
COUNT MOD-R/M ; |
: NT3 ( ADDR OP -- ADDR' ) |
DROP .S" INT 3 " |
; |
: INT ( ADDR OP -- ADDR' ) |
DROP .S" INT " |
COUNT H.>S ; |
INH LEV LEAVE |
INH IRT IRET |
INH NTO INTO |
\ -------------------- STRING OPS -------------------- |
: STR INH DOES> COUNT >S 1 AND IF .S" D" ELSE .S" B" THEN ; |
STR MVS MOVS |
STR CPS CMPS |
STR STS STOS |
STR LDS LODS |
STR SCS SCAS |
\ -------------------- EXCHANGE -------------------- |
: XGA ( ADDR OP -- ADDR' ) |
.S" XCHG EAX, " REG16/32 ; |
\ : XCH ( ADDR OP -- ADDR' ) |
\ .S" XCHG " DROP R,R/M ; |
\ -------------------- SHIFTS & ROTATES -------------------- |
: .SHIFT ( N -- ) |
7 AND S" ROLRORRCLRCRSHLSHRXXXSAR" 3 SS. 4 SSPACES ; |
: SHF ( ADDR OP -- ADDR' ) |
>R COUNT |
DUP 3 RSHIFT .SHIFT |
MOD-R/M ., |
R> 0xD2 AND |
CASE |
0xC0 OF COUNT H.>S ENDOF |
0xD0 OF 1 H.>S ENDOF |
0xD2 OF 1 REG8 ENDOF |
ENDCASE ; |
\ -------------------- EXTENDED OPCODES -------------------- |
: WF1 ( ADDR -- ADDR' ) |
1+ COUNT DUP |
0x0C0 < |
IF DUP |
3 RSHIFT 7 AND |
CASE 6 OF .S" FSTENV " MOD-R/M ENDOF |
7 OF .S" FSTCW WORD " MOD-R/M ENDOF |
2DROP 2 - DUP .S" FWAIT " |
ENDCASE |
ELSE DROP 2 - .S" FWAIT " |
THEN ; |
: WF2 ( ADDR -- ADDR' ) |
1+ COUNT |
CASE 0xE2 OF .S" FCLEX " ENDOF |
0xE3 OF .S" FINIT " ENDOF |
SWAP 2 - SWAP .S" FWAIT " |
ENDCASE ; |
: WF3 ( ADDR -- ADDR' ) |
1+ COUNT DUP 3 RSHIFT 7 AND |
CASE 6 OF .S" FSAVE " MOD-R/M ENDOF |
7 OF .S" FSTSW WORD " MOD-R/M ENDOF |
2DROP 2 - DUP .S" FWAIT " |
ENDCASE ; |
: WF4 ( ADDR -- ADDR' ) |
1+ COUNT 0xE0 = |
IF .S" FSTSW AX " |
ELSE 2 - .S" FWAIT " |
THEN ; |
: FWAITOPS ( ADDR OP -- ADDR' ) |
CASE 0xD9 OF WF1 ENDOF |
0xDB OF WF2 ENDOF |
0xDD OF WF3 ENDOF |
0xDF OF WF4 ENDOF |
.S" FWAIT " |
ENDCASE ; |
: W8F ( ADDR OP -- ADDR' ) |
DROP DUP C@ DUP 0xF8 AND 0xD8 = |
IF FWAITOPS |
ELSE DROP .S" WAIT " |
THEN ; |
: FALU1 ( XOPCODE -- ) |
3 RSHIFT 7 AND |
S" FADD FMUL FCOM FCOMPFSUB FSUBRFDIV FDIVR" |
5 SS. 2 SSPACES ; |
: FALU5 ( XOPCODE -- ) |
3 RSHIFT 7 AND |
S" FADD FMUL ???? ???? FSUBRFSUB FDIVRFDIV " |
5 SS. 2 SSPACES ; |
: STI. ( OP -- ) |
7 AND .S" ST(" 1 .R>S .S" )"; |
\ : STI.ST ( OP -- ) |
\ 7 AND |
\ .S" ST(" 1 .R>S .S" )" .S" ST " ; |
: FD8 ( ADDR OPCODE -- ADDR' ) |
DROP COUNT DUP FALU1 |
DUP 0xC0 < |
IF .S" FLOAT " MOD-R/M |
ELSE DUP 0xF0 AND 0xD0 = |
IF STI. |
ELSE .S" ST , " STI. |
THEN |
THEN ; |
: FDC ( ADDR OPCODE -- ADDR' ) |
DROP COUNT |
DUP DUP 0xC0 < |
IF FALU1 .S" DOUBLE " MOD-R/M |
ELSE FALU5 STI. .S" , ST" |
THEN ; |
: FNULLARY-F ( OP -- ) |
0x0F AND DUP 8 < |
IF |
S" F2XM1 FYL2X FPTAN FPATAN FXTRACTFPREM1 FDECSTPFINCSTP" |
ELSE 8 - |
S" FPREM FYL2XP1FSQRT FSINCOSFRNDINTFSCALE FSIN FCOS " |
THEN |
7 SS. ; |
: FNULLARY-E ( OP -- ) |
0x0F AND DUP 8 < |
IF |
S" FCHS FABS ??? ??? FTST FXAM ??? ??? " |
ELSE 8 - |
S" FLD1 FLDL2T FLDL2E FLDPI FLDLG2 FLDLN2 FLDZ ??? " |
THEN |
7 SS. ; |
: FNULLARY ( OP -- ) |
DUP 0xEF > |
IF FNULLARY-F EXIT |
THEN |
DUP 0xE0 < |
IF 0xD0 = |
IF .S" FNOP" |
ELSE DUP ??? |
THEN |
EXIT |
THEN |
FNULLARY-E ; |
\ : FALU2 ( OP -- ) |
\ 3 RSHIFT 7 AND |
\ S" FLD ??? FST FSTP FLDENV FLDCW FNSTENVFNSTCW " |
\ 7 SS. ; |
: FD9 ( ADDR OP -- ADDR' ) |
DROP COUNT DUP 0xC0 < |
IF DUP 0x38 AND |
CASE |
0x00 OF .S" FLD FLOAT " ENDOF |
0x10 OF .S" FST FLOAT " ENDOF |
0x18 OF .S" FSTP FLOAT " ENDOF |
0x20 OF .S" FLDENV " ENDOF |
0x28 OF .S" FLDCW WORD " ENDOF |
0x30 OF .S" FNSTENV " ENDOF |
0x38 OF .S" FNSTCW WORD " ENDOF |
DUP ??? |
ENDCASE |
MOD-R/M |
ELSE |
DUP 0xD0 < |
IF DUP 0xC8 < |
IF .S" FLD " |
ELSE .S" FXCH " |
THEN |
STI. |
ELSE FNULLARY |
THEN |
THEN ; |
: FALU3 ( OP -- ) |
3 RSHIFT 7 AND |
S" FIADD FIMUL FICOM FICOMPFISUB FISUBRFIDIV FIDIVR" |
6 SS. 1 SSPACES ; |
: FCMOVA ( OP -- ) |
3 RSHIFT 7 AND |
S" FCMOVB FCMOVE FCMOVBEFCMOVU ??? ??? ??? ??? " |
7 SS. ; |
: FDA ( ADDR OP -- ) |
DROP COUNT DUP 0xC0 < |
IF DUP FALU3 .S" DWORD " MOD-R/M |
ELSE 0xE9 = |
IF .S" FUCOMPP" DROP |
ELSE DUP FCMOVA STI. |
THEN |
THEN ; |
: FALU7 ( OP -- ) |
3 RSHIFT 7 AND |
S" FADDP FMULP ??? ??? FSUBRPFSUBP FDIVRPFDIVP " |
6 SS. SSPACE ; |
: FDE ( ADDR OP -- ADDR' ) |
DROP COUNT DUP 0xC0 < |
IF DUP FALU3 .S" WORD " MOD-R/M |
ELSE DUP 0xD9 = |
IF .S" FCOMPP" DROP |
ELSE DUP FALU7 STI. |
THEN |
THEN ; |
: FCMOVB ( OP -- ) |
3 RSHIFT 7 AND |
S" FCMOVNB FCMOVNE FCMOVNBEFCMOVNU ??? FUCOMI FCOMI ??? " |
8 SS. ; |
: FDB ( ADDR OP -- ADDR' ) |
DROP COUNT DUP 0xC0 < |
IF DUP 0x38 AND |
CASE 0x00 OF .S" FILD DWORD " ENDOF |
0x10 OF .S" FIST DWORD " ENDOF |
0x18 OF .S" FISTP DWORD " ENDOF |
0x28 OF .S" FLD EXTENDED " ENDOF |
0x38 OF .S" FSTP EXTENDED " ENDOF |
DUP ??? |
ENDCASE |
MOD-R/M |
ELSE |
CASE 0xE2 OF .S" FNCLEX" ENDOF |
0xE3 OF .S" FNINIT" ENDOF |
DUP DUP FCMOVB STI. |
ENDCASE |
THEN ; |
: FALU6 ( OP -- ) |
3 RSHIFT 7 AND |
S" FFREE ??? FST FSTP FUCOM FUCOMP??? ??? " |
6 SS. SSPACE ; |
: FDD ( ADDR OP -- ADDR' ) |
DROP COUNT DUP 0xC0 < |
IF DUP 0x38 AND |
CASE 0x00 OF .S" FLD DOUBLE " ENDOF |
0x10 OF .S" FST DOUBLE " ENDOF |
0x18 OF .S" FSTP DOUBLE " ENDOF |
0x20 OF .S" FRSTOR " ENDOF |
0x30 OF .S" FNSAVE " ENDOF |
0x38 OF .S" FNSTSW WORD " ENDOF |
DUP ??? |
ENDCASE |
MOD-R/M |
ELSE DUP FALU6 STI. |
THEN ; |
: FDF ( ADDR OP -- ADDR' ) |
DROP COUNT DUP 0xC0 < |
IF DUP 0x38 AND |
CASE 0x00 OF .S" FILD WORD " ENDOF |
0x10 OF .S" FIST WORD " ENDOF |
0x18 OF .S" FISTP WORD " ENDOF |
0x20 OF .S" FBLD TBYTE " ENDOF |
0x28 OF .S" FILD QWORD " ENDOF |
0x30 OF .S" FBSTP TBYTE " ENDOF |
0x38 OF .S" FISTP QWORD " ENDOF |
DUP ??? |
ENDCASE |
MOD-R/M |
ELSE DUP 0xE0 = |
IF .S" FNSTSW AX " DROP |
ELSE DUP 0x38 AND |
CASE 0x28 OF .S" FUCOMIP " STI. ENDOF |
0x30 OF .S" FCOMIP " STI. ENDOF |
??? |
ENDCASE |
THEN |
THEN ; |
: GP6 ( ADDR OP -- ADDR' ) |
DROP COUNT DUP 3 RSHIFT |
7 AND S" SLDTSTR LLDTLTR VERRVERW??? ???" 4 SS. 3 SSPACES |
R/M16 ; |
: GP7 ( ADDR OP -- ADDR' ) |
DROP COUNT DUP 3 RSHIFT |
7 AND DUP S" SGDT SIDT LGDT LIDT SMSW ??? LMSW INVLPG" 6 SS. 1 SSPACES |
4 AND 4 = |
IF R/M16 |
ELSE R/M16/32 |
THEN ; |
: BTX. ( N -- ) |
3 RSHIFT |
3 AND S" BT BTSBTRBTC" 3 SS. 4 SSPACES ; |
: GP8 ( ADDR OP -- ADDR' ) |
DROP COUNT DUP BTX. |
R/M16/32 IMM8 ; |
: LAR ( ADDR OP -- ADDR' ) |
.S" LAR " DROP R,R/M ; |
: LSL ( ADDR OP -- ADDR' ) |
.S" LSL " DROP R,R/M ; |
: LSS ( ADDR OP -- ADDR' ) |
.S" LSS " DROP R,R/M ; |
: LFS ( ADDR OP -- ADDR' ) |
.S" LFS " DROP R,R/M ; |
: LGS ( ADDR OP -- ADDR' ) |
.S" LGS " DROP R,R/M ; |
: BTX ( ADDR OP -- ADDR' ) |
BTX. R/M,R ; |
: SLI ( ADDR OP -- ADDR' ) |
.S" SHLD " DROP R/M,R IMM8 ; |
: SRI ( ADDR OP -- ADDR' ) |
.S" SHRD " DROP R/M,R IMM8 ; |
: SLC ( ADDR OP -- ADDR' ) |
.S" SHLD " DROP R/M,R .S" , CL" ; |
: SRC ( ADDR OP -- ADDR' ) |
.S" SHRD " DROP R/M,R .S" , CL" ; |
: IML ( ADDR OP -- ADDR' ) |
.S" IMUL " DROP R,R/M ; |
: CXC ( ADDR OP -- ADDR' ) |
.S" CMPXCHG " 1 AND TO SIZE R/M,R ; |
: MVX ( ADDR OP -- ADDR' ) |
DUP 8 AND |
IF .S" MOVSX " |
ELSE .S" MOVZX " |
THEN |
1 AND >R |
COUNT MOD/SIB R> \ SIZE BIT |
IF SWAP REG32 ., \ WORD TO DWORD CASE |
3 = |
IF REG16 |
ELSE .S" WORD PTR " MOD-R/M |
THEN |
ELSE SWAP REG16/32 ., \ BYTE CASE |
3 = |
IF REG8 |
ELSE .S" BYTE PTR " MOD-R/M |
THEN |
THEN ; |
: XAD ( ADDR OP -- ADDR' ) |
.S" XADD " 1 AND TO SIZE R/M,R ; |
: BSF ( ADDR OP -- ADDR' ) |
.S" BSF " DROP R,R/M ; |
: BSR ( ADDR OP -- ADDR' ) |
.S" BSR " DROP R,R/M ; |
: CX8 ( ADDR OP -- ADDR' ) |
.S" CMPXCHG8B " DROP COUNT R/M16/32 ; |
: BSP ( ADDR OP -- ADDR' ) |
.S" BSWAP " REG32 ; |
\ : 0F. ( ADDR OP -- ADDR' ) |
\ DROP COUNT |
\ CASE |
\ 0x00 OF GP6 ENDOF |
\ 0x01 OF GP7 ENDOF |
\ 0x02 OF .S" LAR " 1 TO SIZE R,R/M ENDOF |
\ 0x03 OF .S" LSL " 1 TO SIZE R,R/M ENDOF |
\ 0x06 OF .S" CLTS " ENDOF |
\ 0x08 OF .S" INVD " ENDOF |
\ 0x09 OF .S" WBINVD " ENDOF |
\ 0x20 OF MRC ENDOF |
\ 0x21 OF MRD ENDOF |
\ 0x22 OF MCR ENDOF |
\ 0x23 OF MDR ENDOF |
\ 0x24 OF MRT ENDOF \ OBSOLETE |
\ 0x26 OF MTR ENDOF \ OBSOLETE |
\ 0x30 OF .S" WRMSR " ENDOF |
\ 0x31 OF .S" RDTSC " ENDOF |
\ 0x32 OF .S" RDMSR " ENDOF |
\ 0x80 OF .S" JO " REL16/32 ENDOF |
\ 0x81 OF .S" JNO " REL16/32 ENDOF |
\ 0x82 OF .S" JC " REL16/32 ENDOF |
\ 0x83 OF .S" JNC " REL16/32 ENDOF |
\ 0x84 OF .S" JZ " REL16/32 ENDOF |
\ 0x85 OF .S" JNE " REL16/32 ENDOF |
\ 0x86 OF .S" JBE " REL16/32 ENDOF |
\ 0x87 OF .S" JA " REL16/32 ENDOF |
\ 0x88 OF .S" JS " REL16/32 ENDOF |
\ 0x89 OF .S" JNS " REL16/32 ENDOF |
\ 0x8A OF .S" JPE " REL16/32 ENDOF |
\ 0x8B OF .S" JPO " REL16/32 ENDOF |
\ 0x8C OF .S" JNGE " REL16/32 ENDOF |
\ 0x8D OF .S" JGE " REL16/32 ENDOF |
\ 0x8E OF .S" JNG " REL16/32 ENDOF |
\ 0x8F OF .S" JG " REL16/32 ENDOF |
\ 0x90 OF .S" SETO BYTE " R/M8 ENDOF |
\ 0x91 OF .S" SETNO BYTE " R/M8 ENDOF |
\ 0x92 OF .S" SETC BYTE " R/M8 ENDOF |
\ 0x93 OF .S" SETNC BYTE " R/M8 ENDOF |
\ 0x94 OF .S" SETZ BYTE " R/M8 ENDOF |
\ 0x95 OF .S" SETNZ BYTE " R/M8 ENDOF |
\ 0x96 OF .S" SETBE BYTE " R/M8 ENDOF |
\ 0x97 OF .S" SETA BYTE " R/M8 ENDOF |
\ 0x98 OF .S" SETS BYTE " R/M8 ENDOF |
\ 0x99 OF .S" SETNS BYTE " R/M8 ENDOF |
\ 0x9A OF .S" SETP BYTE " R/M8 ENDOF |
\ 0x9B OF .S" SETNP BYTE " R/M8 ENDOF |
\ 0x9C OF .S" SETL BYTE " R/M8 ENDOF |
\ 0x9D OF .S" SETGE BYTE " R/M8 ENDOF |
\ 0x9E OF .S" SETLE BYTE " R/M8 ENDOF |
\ 0x9F OF .S" SETG BYTE " R/M8 ENDOF |
\ 0xA0 OF .S" PUSH FS " ENDOF |
\ 0xA1 OF .S" POP FS " ENDOF |
\ 0xA2 OF .S" CPUID " ENDOF |
\ 0xA3 OF .S" BT " 1 TO SIZE R/M,R ENDOF |
\ 0xA4 OF .S" SHLD " R/M,R IMM8 ENDOF |
\ 0xA5 OF .S" SHLD " R/M,R .S" , CL" ENDOF |
\ 0xA8 OF .S" PUSH GS " ENDOF |
\ 0xA9 OF .S" POP GS " ENDOF |
\ 0xAA OF .S" RSM " ENDOF |
\ 0xAB OF .S" BTS " 1 TO SIZE R/M,R ENDOF |
\ 0xAC OF .S" SHRD " R/M,R IMM8 ENDOF |
\ 0xAD OF .S" SHRD " R/M,R .S" , CL" ENDOF |
\ 0xAF OF .S" IMUL " R,R/M ENDOF |
\ 0xB0 OF .S" CMPXCH " 0 TO SIZE R/M,R ENDOF |
\ 0xB1 OF .S" CMPXCH " 1 TO SIZE R/M,R ENDOF |
\ 0xB2 OF .S" LSS " 1 TO SIZE R,R/M ENDOF |
\ 0xB3 OF .S" BTR " 1 TO SIZE R/M,R ENDOF |
\ 0xB4 OF .S" LFS " 1 TO SIZE R,R/M ENDOF |
\ 0xB5 OF .S" LGS " 1 TO SIZE R,R/M ENDOF |
\ 0xB6 OF .S" MOVZX " 0 TO SIZE R,R/M ENDOF |
\ 0xB7 OF .S" MOVZX " 1 TO SIZE R,R/M ENDOF |
\ 0xBA OF GP8 ENDOF |
\ 0xBB OF .S" BTC " 1 TO SIZE R/M,R ENDOF |
\ 0xBC OF .S" BSF " 1 TO SIZE R,R/M ENDOF |
\ 0xBD OF .S" BSR " 1 TO SIZE R,R/M ENDOF |
\ 0xBE OF .S" MOVSX " 0 TO SIZE R,R/M ENDOF |
\ 0xBF OF .S" MOVSX " 1 TO SIZE R,R/M ENDOF |
\ 0xC0 OF .S" XADD " 0 TO SIZE R/M,R ENDOF |
\ 0xC1 OF .S" XADD " 1 TO SIZE R/M,R ENDOF |
\ 0xC7 OF .S" CMPXCHG8B " R/M16/32 ENDOF |
\ 0xC8 OF .S" BSWAP EAX " ENDOF |
\ 0xC9 OF .S" BSWAP ECX " ENDOF |
\ 0xCA OF .S" BSWAP EDX " ENDOF |
\ 0xCB OF .S" BSWAP EBX " ENDOF |
\ 0xCC OF .S" BSWAP ESP " ENDOF |
\ 0xCD OF .S" BSWAP EBP " ENDOF |
\ 0xCE OF .S" BSWAP ESI " ENDOF |
\ 0xCF OF .S" BSWAP EDI " ENDOF |
\ ( ELSE ) DUP ??? |
\ ENDCASE |
\ ; |
: F6. ( ADDR OP -- ADDR' ) |
\ ?? |
>R COUNT |
DUP 3 RSHIFT 7 AND DUP>R S" TESTXXXXNOT NEG MUL IMULDIV IDIV" 4 SS. 3 SSPACES |
MOD-R/M |
R> 0= IF |
R@ 1 AND IF IMM16/32 |
ELSE IMM8 |
THEN |
THEN |
R> DROP ; |
: FE. ( ADDR OP -- ADDR' ) |
DROP COUNT |
DUP 3 RSHIFT 7 AND |
CASE |
0 OF .S" INC " ENDOF |
1 OF .S" DEC " ENDOF |
??? |
ENDCASE R/M8 ; |
: FF. ( ADDR OP -- ADDR' ) |
DROP COUNT |
DUP 3 RSHIFT 7 AND |
CASE |
0 OF .S" INC " ENDOF |
1 OF .S" DEC " ENDOF |
2 OF .S" CALL " ENDOF |
3 OF .S" CALL FAR " ENDOF |
4 OF .S" JMP " ENDOF |
5 OF .S" JMP FAR " ENDOF |
6 OF .S" PUSH " ENDOF |
??? |
ENDCASE R/M16/32 ; |
\ --------------------- CONDITIONAL MOVE --------------- |
: SET ( ADR OP -- ) |
.S" SET" |
TTTN 2 SSPACES |
COUNT R/M8 ; |
: CMV ( ADR OP -- ) |
.S" CMOV" |
TTTN 1 SSPACES |
COUNT R,R/M ; |
\ --------------------- MMX OPERATIONS ----------------- |
: MMX-SIZE ( OP -- ) |
3 AND S" BWDQ" 1 SS. ; |
: UPL ( ADR OP -- ADR' ) |
3 AND S" PUNPCKLBWPUNPCKLWDPUNPCKLDQ" 9 SS. R,R/M ; |
: UPH ( ADR OP -- ADR' ) |
3 AND S" PUNPCKHBWPUNPCKHWDPUNPCKHDQ" 9 SS. R,R/M ; |
: CGT ( ADR OP -- ADR' ) |
.S" PCMPGT" MMX-SIZE R,R/M ; |
: CEQ ( ADR OP -- ADR' ) |
.S" PCMPEQ" MMX-SIZE R,R/M ; |
: PSH. ( OP -- ) |
0x30 AND |
CASE |
0x10 OF .S" PSRL" ENDOF |
0x20 OF .S" PSRA" ENDOF |
0x30 OF .S" PSLL" ENDOF |
ENDCASE ; |
: GPA ( ADR OP -- ADR' ) |
>R COUNT DUP PSH. R> MMX-SIZE 2 SSPACES MREG IMM8 ; |
: PUW ( ADR OP -- ADR' ) |
.S" PACKUSDW " DROP R,R/M ; |
: PSB ( ADR OP -- ADR' ) |
.S" PACKSSWB " DROP R,R/M ; |
: PSW ( ADR OP -- ADR' ) |
.S" PACKSSDW " DROP R,R/M ; |
: MPD ( ADR OP -- ADR' ) |
.S" MOVD " DROP COUNT MOD/SIB |
SWAP MREG ., 3 = |
IF REG32 |
ELSE MOD-R/M |
THEN ; |
: MDP ( ADR OP -- ADR' ) |
.S" MOVD " DROP COUNT MOD/SIB |
3 = |
IF SWAP REG32 |
ELSE SWAP MOD-R/M |
THEN ., MREG ; |
: MPQ ( ADR OP -- ADR' ) |
.S" MOVQ " DROP R,R/M ; |
: MQP ( ADR OP -- ADR' ) |
.S" MOVQ " DROP R/M,R ; |
: SHX ( ADR OP -- ADR' ) |
DUP PSH. MMX-SIZE 2 SSPACES R,R/M ; |
: MLL ( ADR OP -- ADR' ) |
.S" PMULLW " DROP R,R/M ; |
: MLH ( ADR OP -- ADR' ) |
.S" PMULHW " DROP R,R/M ; |
: MAD ( ADR OP -- ADR' ) |
.S" PMADDWD " DROP R,R/M ; |
: SUS ( ADR OP -- ADR' ) |
.S" PSUBUS" MMX-SIZE R,R/M ; |
: SBS ( ADR OP -- ADR' ) |
.S" PSUBS" MMX-SIZE SSPACE R,R/M ; |
: SUB ( ADR OP -- ADR' ) |
.S" PSUB" MMX-SIZE 2 SSPACES R,R/M ; |
: AUS ( ADR OP -- ADR' ) |
.S" PADDUS" MMX-SIZE R,R/M ; |
: ADS ( ADR OP -- ADR' ) |
.S" PADDS" MMX-SIZE SSPACE R,R/M ; |
: ADD ( ADR OP -- ADR' ) |
.S" PADD" MMX-SIZE 2 SSPACES R,R/M ; |
: PAD ( ADR OP -- ADR' ) |
.S" PAND " DROP R,R/M ; |
: POR ( ADR OP -- ADR' ) |
.S" POR " DROP R,R/M ; |
: PAN ( ADR OP -- ADR' ) |
.S" PANDN " DROP R,R/M ; |
: PXR ( ADR OP -- ADR' ) |
.S" PXOR " DROP R,R/M ; |
\ -------------------- OPCODE TABLE -------------------- |
: OPS 0x10 0 DO ' , LOOP ; |
CREATE OP-TABLE2 |
\ 0 1 2 3 4 5 6 7 8 9 A B C D E F |
OPS GP6 GP7 LAR LSL ??? ??? CLT ??? INV WIV ??? UD2 ??? ??? ??? ??? \ 0 |
OPS ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? \ 1 |
OPS MRC MRD MCR MDR MRT ??? MTR ??? ??? ??? ??? ??? ??? ??? ??? ??? \ 2 |
OPS WMR RTC RMR RPC ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? \ 3 |
OPS CMV CMV CMV CMV CMV CMV CMV CMV CMV CMV CMV CMV CMV CMV CMV CMV \ 4 |
OPS ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? \ 5 |
OPS UPL UPL UPL PUW CGT CGT CGT PSB UPH UPH UPH PSW ??? ??? MPD MPQ \ 6 |
OPS ??? GPA GPA GPA CEQ CEQ CEQ EMS ??? ??? ??? ??? ??? ??? MDP MQP \ 7 |
OPS LBR LBR LBR LBR LBR LBR LBR LBR LBR LBR LBR LBR LBR LBR LBR LBR \ 8 |
OPS SET SET SET SET SET SET SET SET SET SET SET SET SET SET SET SET \ 9 |
OPS PSS PPS CPU BTX SLI SLC ??? ??? PSS PPS RSM BTX SRI SRC ??? IML \ A |
OPS CXC CXC LSS BTX LFS LGS MVX MVX ??? UD1 GP8 BTX BSF BSR MVX MVX \ B |
OPS XAD XAD ??? ??? ??? ??? ??? CX8 BSP BSP BSP BSP BSP BSP BSP BSP \ C |
OPS ??? SHX SHX SHX ??? MLL ??? ??? SUS SUS ??? PAD AUS AUS ??? PAN \ D |
OPS ??? SHX SHX ??? ??? MLH ??? ??? SBS SBS ??? POR ADS ADS ??? PXR \ E |
OPS ??? ??? SHX SHX ??? MAD ??? ??? SUB SUB SUB ??? ADD ADD ADD ??? \ F |
\ 0 1 2 3 4 5 6 7 8 9 A B C D E F |
: 0F. ( ADR CODE -- ) |
DROP COUNT DUP |
DUP 0x70 AND 0x50 0x80 WITHIN TO MMX-REG |
CELLS OP-TABLE2 + @ EXECUTE |
0 TO MMX-REG ; |
CREATE OP-TABLE |
\ 0 1 2 3 4 5 6 7 8 9 A B C D E F |
OPS ALU ALU ALU ALU ALA ALA PSS PPS ALU ALU ALU ALU ALA ALA PSS 0F. \ 0 |
OPS ALU ALU ALU ALU ALA ALA PSS PPS ALU ALU ALU ALU ALA ALA PSS PPS \ 1 |
OPS ALU ALU ALU ALU ALA ALA ES: DAA ALU ALU ALU ALU ALA ALA CS: DAS \ 2 |
OPS ALU ALU ALU ALU ALA ALA SS: AAA ALU ALU ALU ALU ALA ALA DS: AAS \ 3 |
OPS INC INC INC INC INC INC INC INC DEC DEC DEC DEC DEC DEC DEC DEC \ 4 |
OPS PSH PSH PSH PSH PSH PSH PSH PSH POP POP POP POP POP POP POP POP \ 5 |
OPS PSA PPA BND ARP FS: GS: D16 A16 PSI MLI PSI MLI INB ISD OSB OSD \ 6 |
OPS BRA BRA BRA BRA BRA BRA BRA BRA BRA BRA BRA BRA BRA BRA BRA BRA \ 7 |
OPS ALI ALI ??? ALI TXB TXB TXB TXB MOV MOV MOV MOV MRS LEA MSR 8F. \ 8 |
OPS XGA XGA XGA XGA XGA XGA XGA XGA CBW CDQ CIS W8F PSF PPF SAH LAH \ 9 |
OPS MV1 MV1 MV2 MV2 MVS MVS CPS CPS TST TST STS STS LDS LDS SCS SCS \ A |
OPS MRI MRI MRI MRI MRI MRI MRI MRI MRI MRI MRI MRI MRI MRI MRI MRI \ B |
OPS SHF SHF RTN RTN LXS LXS MVI MVI ENT LEV RTF RTF NT3 INT NTO IRT \ C |
OPS SHF SHF SHF SHF AAM AAD ??? XLT FD8 FD9 FDA FDB FDC FDD FDE FDF \ D |
OPS LUP LUP LUP LUP INP INP OTP OTP JSR JMP CIS JMP IND IND OTD OTD \ E |
OPS LOK ??? RPZ REP HLT CMC F6. F6. CLC STC CLI STI CLD STD FE. FF. \ F |
\ 0 1 2 3 4 5 6 7 8 9 A B C D E F |
: DIS-OP ( ADR -- ADR' ) |
0>S |
FALSE TO PREFIX-OP \ SMUB |
COUNT |
DUP 1 AND TO SIZE |
DUP CELLS OP-TABLE + @ EXECUTE |
PREFIX-OP 0= |
IF DEFAULT-16BIT? 0= |
IF FALSE TO 16-BIT-DATA |
FALSE TO 16-BIT-ADDR |
ELSE TRUE TO 16-BIT-DATA |
TRUE TO 16-BIT-ADDR |
THEN |
THEN ; |
0 VALUE NEXT-INST |
: X". ( ADDR -- ADDR' ) |
CR DUP BASE-ADDR - 6 H.R SPACE |
." A; " DUP COUNT DUP . ." C, " 1+ OVER + SWAP |
DO I C@ . ." C, " LOOP |
COUNT + 1+ ; |
: INST ( ADR -- ADR' ) |
DUP TO NEXT-INST |
COLS 0x29 < |
IF DIS-OP |
S-BUF COUNT TYPE |
ELSE DUP DIS-OP |
OVER BASE-ADDR - 6 H.R SPACE |
DUP ROT |
2DUP - DUP>R 0x10 U> ABORT" DECOMPILER ERROR" |
DO I C@ 2 H.N LOOP |
R> 5 < IF 9 EMIT THEN |
9 EMIT S-BUF COUNT TYPE |
THEN NEXT-INST C@ 0xE8 = |
IF NEXT-INST 1+ @+ SWAP + |
CASE |
CLITERAL-CODE OF X". ENDOF |
SLITERAL-CODE OF X". ENDOF |
ENDCASE |
THEN ; |
: DIS-DB CR .S" DB " COUNT H.>S ; |
: DIS-DW CR .S" DW " W@+ H.>S ; |
: DIS-DD CR .S" DD " @+ H.>S ; |
: DIS-DS CR .S" STRING " 0x22 EMIT>S COUNT 2DUP >S + 0x22 EMIT>S ; |
: DIS ( ADR -- ) |
BEGIN |
DUP |
CR INST |
KEY UPC DUP 0x1B = OVER [CHAR] Q = OR INVERT |
WHILE |
CASE |
[CHAR] B OF DROP DIS-DB ENDOF |
[CHAR] W OF DROP DIS-DW ENDOF |
[CHAR] D OF DROP DIS-DD ENDOF |
[CHAR] S OF DROP DIS-DS ENDOF |
ROT DROP |
ENDCASE |
REPEAT 2DROP DROP ; |
\ CREATE STOPCODE 8 C, \ COUNT OF LENGTH |
\ 0xAD C, 0x8B C, 0x0C C, 0x38 C, |
\ 0x03 C, 0xCF C, 0xFF C, 0xE1 C, |
0 VALUE SHOW-NEXT? \ DEFAULT TO NOT SHOWING NEXT INSTRUCTIONS |
DECIMAL |
FORTH DEFINITIONS |
TRUE VALUE SEE-KET-FL |
VARIABLE COUNT-LINE |
: REST ( ADR -- ) |
20 COUNT-LINE ! |
0 TO MAX_REFERENCE |
DUP TO NEXT-INST |
BEGIN |
CR |
NEXT-INST C@ |
DUP 0xC3 <> |
SWAP 0xE9 <> AND \ NEXT, BEHIND US? |
NEXT-INST MAX_REFERENCE U< OR |
OVER HERE U< AND |
WHILE INST |
COUNT-LINE @ 1- DUP 0= SEE-KET-FL AND |
IF 9 EMIT ." \ PRESS ENTER | Q | ANY" KEY |
DUP 0xD = IF 2DROP 1 ELSE |
[CHAR] Q = IF ABORT THEN |
DROP 20 THEN |
THEN |
COUNT-LINE ! |
REPEAT DROP ." END-CODE " |
; |
: SEE ( -- ) |
' REST ; |
ONLY FORTH ALSO DEFINITIONS |
/programs/develop/SPForth/devel/~mak/acceptgo.f |
---|
0,0 → 1,24 |
REQUIRE ACCEPTHistory ~micro/lib/key/accept.f |
: REFILL ( -- flag ) \ 94 FILE EXT |
SOURCE-ID IF |
REFILL |
ELSE |
H-STDIN [ H-STDIN ] LITERAL <> IF |
REFILL |
ELSE |
TIB 79 ACCEPT #TIB ! >IN 0! <PRE> -1 EXIT |
THEN |
THEN |
; |
: MAIN2 ( -- ) |
BEGIN |
REFILL |
WHILE |
INTERPRET OK |
REPEAT BYE |
; |
' MAIN2 TO <MAIN> |
/programs/develop/SPForth/devel/~mak/asm/ASM.FRT |
---|
0,0 → 1,1502 |
( § SMAL32 |
®¤¨ä¨æ¨à®¢ ® ªá¨¬®¢ë¬ .. |
email:mak@rtc.ru |
http://forth.spb.su:8888 |
â ¤ {812}705-92-03 |
â à {812}552-47-64 |
) |
REQUIRE [IF] ~MAK\CompIF.f |
REQUIRE PLACE ~MAK\PLACE.f |
REQUIRE CASE lib\ext\case.f |
VOCABULARY S_ASSEM |
C" HIDDEN" FIND NIP 0= |
[IF] VOCABULARY HIDDEN |
[THEN] |
ALSO HIDDEN DEFINITIONS |
C" FLOAD" FIND NIP |
[IF] FLOAD asmbase.f |
[ELSE] REQUIRE S= ~mak\asm\asmbase.f |
[THEN] |
: 1Op1 ( name ( byte --> ) |
( --> ) |
CREATE C, DOES> C@ C, |
; |
4 VALUE *DefDatasz |
\ 4 VALUE *DefDatasz |
: 1Op1W ( name ( byte --> ) |
( --> ) |
CREATE C, DOES> C@ C, *DefDatasz 4 = IF 0x66 C, THEN |
; |
: 1Op1D ( name ( byte --> ) |
( --> ) |
CREATE C, DOES> C@ C, *DefDatasz 2 = IF 0x66 C, THEN |
; |
: 1Op2 ( name ( word --> ) |
( --> ) |
CREATE W, DOES> W@ W, |
; |
: REF-ERROR IF 87 THROW THEN ; |
: #OPER-ERROR SWAP IF H. 94 THROW THEN DROP ; |
0x2E 1Op1 CS: |
0x3E 1Op1 DS: |
0x26 1Op1 ES: |
0x64 1Op1 FS: |
0x65 1Op1 GS: |
0x36 1Op1 SS: |
: IFIND ( c-addr --> xt -1 | c-addr 0 ) |
DUP COUNT CONTEXT @ SEARCH-WORDLIST |
IF NIP -1 |
ELSE 0 |
THEN ; |
0 VALUE *OpcSize |
0 VALUE *OpCode |
0 VALUE *Mod |
0 VALUE *Reg |
0 VALUE *R/M |
0 VALUE *Scale |
0 VALUE *Index |
0 VALUE *Base |
0 VALUE *OpSize |
0 VALUE *ImSize |
0 VALUE *AdSize |
0 VALUE *Imm |
0 VALUE *OfSize |
0 VALUE *Offset |
0 VALUE *SegReg |
0 VALUE *OpArray |
0 VALUE *OfRel |
0 VALUE *OpRel |
CREATE *OffName 256 ALLOT |
CREATE *ImmName 256 ALLOT |
CREATE *GenName 256 ALLOT |
: (OthSz) ( n1 --> n2 ) 6 XOR ; |
: *OpSize>DEF *OpSize 4 = IF *DefDatasz TO *OpSize THEN ; |
: (Seg) ( --> ) |
*SegReg CASE |
0 OF ES: ENDOF |
1 OF CS: ENDOF |
2 OF SS: ENDOF |
3 OF DS: ENDOF |
4 OF FS: ENDOF |
5 OF GS: ENDOF |
ENDCASE |
; |
: CompileCommand ( --> ) |
*OpcSize IF |
*AdSize *DefDatasz (OthSz) = IF 0x67 C, THEN |
*OpSize *DefDatasz (OthSz) = IF 0x66 C, THEN |
*SegReg 0< IFNOT (Seg) THEN |
*OpCode HERE ! *OpcSize ALLOT |
*Mod 0< IFNOT *Mod 3 AND 0x40 * *Reg 7 AND 8 * *R/M 7 AND OR OR C, THEN |
*Scale 0< *Mod 0< OR IFNOT |
*Scale 3 AND 0x40 * *Index 7 AND 8 * *Base 7 AND OR OR C, |
THEN |
*OfRel IF |
*OfSize *DefDatasz <> IF 0x54 THROW THEN |
*OffName C@ IFNOT 1 *OffName 1+ C! THEN |
*OffName 1+ C@ IF *OffName HERE 2 AddStrObject |
ELSE |
*OffName C@ 1- *OffName 1+ C! |
*OffName 1+ HERE 5 AddStrObject |
THEN |
THEN |
*Offset HERE ! *OfSize ALLOT |
*OpRel IF |
*ImSize *DefDatasz <> IF 0x55 THROW THEN |
*ImmName C@ IFNOT 1 *ImmName 1+ C! THEN |
*ImmName 1+ C@ IF *ImmName HERE 2 AddStrObject |
ELSE |
*ImmName C@ 1- *ImmName 1+ C! |
*ImmName 1+ HERE 5 AddStrObject |
THEN |
THEN |
*Imm HERE ! *ImSize ALLOT |
THEN |
; |
: InitCommand ( --> ) |
0 TO *OpcSize 0 TO *AdSize 0 TO *OpSize 0 TO *ImSize 0 TO *OfSize |
0 TO *OfRel 0 TO *OpRel 0 TO *Offset 0 TO *Imm -1 TO *SegReg -1 TO *Mod |
-1 TO *Scale -1 TO *Base -1 TO *Index *OffName 0! *ImmName 0! *GenName 0! |
; |
: GetOp ( --> c-addr|char|n type ) |
(GetOp) CASE |
1 OF |
1+ C@ DUP [CHAR] ; = IF SOURCE >IN ! 2DROP NullString 0 ELSE 1 THEN |
ENDOF |
2 OF |
BASE @ >R |
DUP C@ OVER + C@ CASE |
[CHAR] H OF 16 BASE ! DUP 1-! ENDOF |
[CHAR] B OF 2 BASE ! DUP 1-! ENDOF |
[CHAR] O OF 8 BASE ! DUP 1-! ENDOF |
[CHAR] D OF 10 BASE ! DUP 1-! ENDOF |
ENDCASE |
VAL 0= IF 0x61 THROW THEN DROP R> BASE ! 2 |
ENDOF |
4 OF COUNT ConvertString OVER 1- C! 1- 4 ENDOF |
5 OF COUNT ConvertString OVER 1- C! 1- 5 ENDOF |
\ HEX |
DUP |
\ [ HERE DROP ] |
ENDCASE |
; |
: SCopy ( c-addr1 c-addr2 --> ) |
OVER C@ 1+ CMOVE |
; |
: ?Reg8 ( --> n true | false ) |
IN>R GetOp 3 = IF |
C" AL" S= 0 ?S= |
C" CL" S= 1 ?S= |
C" DL" S= 2 ?S= |
C" BL" S= 3 ?S= |
C" AH" S= 4 ?S= |
C" CH" S= 5 ?S= |
C" DH" S= 6 ?S= |
C" BH" S= 7 ?S= |
THEN |
DROP FALSE R>IN |
; |
: ?Reg16 ( --> n true | FALSE ) |
IN>R GetOp 3 = IF |
C" AX" S= 0 ?S= |
C" CX" S= 1 ?S= |
C" DX" S= 2 ?S= |
C" BX" S= 3 ?S= |
C" SP" S= 4 ?S= |
C" BP" S= 5 ?S= |
C" SI" S= 6 ?S= |
C" DI" S= 7 ?S= |
THEN |
DROP FALSE R>IN |
; |
: ?Reg32 ( --> n true | FALSE ) |
IN>R GetOp 3 = IF |
C" EAX" S= 0 ?S= |
C" ECX" S= 1 ?S= |
C" EDX" S= 2 ?S= |
C" EBX" S= 3 ?S= |
C" ESP" S= 4 ?S= |
C" EBP" S= 5 ?S= |
C" ESI" S= 6 ?S= |
C" EDI" S= 7 ?S= |
THEN |
DROP FALSE R>IN |
; |
: ?SegReg ( --> n true | FALSE ) |
IN>R GetOp 3 = IF |
C" ES" S= 0 ?S= |
C" CS" S= 1 ?S= |
C" SS" S= 2 ?S= |
C" DS" S= 3 ?S= |
C" FS" S= 4 ?S= |
C" GS" S= 5 ?S= |
THEN |
DROP FALSE R>IN |
; |
: SEG ( --> ) |
?SegReg 0= IF 104 THROW THEN (Seg) |
; |
: (?Ptr_) ( --> n true | FALSE ) |
IN>R GetOp 3 = IF |
C" DWORD" S= 4 ?S= |
C" BYTE" S= 1 ?S= |
C" WORD" S= 2 ?S= |
THEN |
DROP FALSE R>IN |
; |
' (?Ptr_) ->VECT (?Ptr) |
: ?Ptr ( --> flag ) |
(?Ptr) IF |
*OpSize IF *OpSize <> IF 0x50 THROW THEN ELSE TO *OpSize THEN |
IN>R GetOp 3 = IF |
C" PTR" S= IF RDROP TRUE EXIT ELSE DROP THEN |
ELSE DROP THEN |
R>IN TRUE |
ELSE FALSE THEN |
; |
: ?FWord ( ? --> ? ) |
IN>R GetOp 3 = IF |
C" FWORD" S= IF |
RDROP IN>R GetOp 3 = IF |
C" PTR" S= IF RDROP ELSE R>IN DROP THEN |
ELSE R>IN DROP THEN TRUE EXIT |
ELSE DROP FALSE THEN |
ELSE DROP FALSE THEN R>IN |
; |
: ?Reg ( --> flag ) |
?Reg32 IF |
*OpSize 1 2 BETWEEN IF 0x50 THROW THEN 4 TO *OpSize TO *Reg TRUE |
ELSE |
?Reg8 IF |
*OpSize 2 4 BETWEEN IF 0x50 THROW THEN 1 TO *OpSize TO *Reg TRUE |
ELSE |
?Reg16 IF |
*OpSize 4 = *OpSize 1 = OR IF 0x50 THROW THEN 2 TO *OpSize TO *Reg TRUE |
ELSE FALSE THEN |
THEN |
THEN |
; |
: Comma ( --> ) |
GetOp 1 = IF [CHAR] , = ?EXIT THEN 0x51 THROW |
; |
: ?Colon ( --> flag ) |
IN>R GetOp 1 = IF [CHAR] : = ELSE DROP FALSE THEN |
DUP IF RDROP ELSE R>IN THEN |
; |
: ?Bracket[ ( --> flag ) |
IN>R GetOp 1 = IF [CHAR] [ = IF RDROP TRUE EXIT THEN |
ELSE DROP THEN R>IN FALSE |
; |
: (?Label) ( --> addr|0 TRUE | FALSE ) |
IN>R GetOp DUP 3 = IF |
DROP DUP 1 FindStrObject IF RDROP NIP TRUE |
ELSE |
RDROP \ DUP FIND IF |
\ SWAP >R DUP >Name Off_Attr + @ 0x1000000 AND IF \ IF PUBLIC |
\ RDROP EXECUTE TRUE |
\ ELSE |
\ *GenName C@ REF-ERROR R> *GenName SCopy DROP 0 TRUE |
\ THEN |
\ ELSE |
( DROP ) *GenName C@ REF-ERROR *GenName SCopy 0 TRUE |
\ THEN |
THEN |
ELSE |
DUP 1 = IF |
DROP [CHAR] $ = IF RDROP HERE TRUE |
ELSE R>IN FALSE THEN |
ELSE |
4 = IF |
*GenName C@ REF-ERROR |
*GenName 1+ SCopy *GenName 1+ C@ 1+ *GenName W! RDROP 0 TRUE |
ELSE DROP R>IN FALSE THEN |
THEN |
THEN |
; |
: 'XFA ( --> cfa ) |
GetOp 3 5 BETWEEN IF |
CONTEXT @ >R PREVIOUS FIND ALSO R> CONTEXT ! |
0= IF 0x64 THROW THEN |
ELSE 0x63 THROW THEN |
; |
: ?Label ( --> addr|0 TRUE | FALSE ) |
IN>R GetOp |
\ DUP 1 = |
\ IF DROP [CHAR] { = |
\ IF RDROP [CHAR] } PARSE EVALUATE TRUE |
\ ELSE R>IN FALSE |
\ THEN EXIT |
\ ELSE |
3 = IF |
C" OFFSET" S= IF RDROP (?Label) 0= IF 0x5D THROW THEN TRUE EXIT |
THEN |
C" CFA" S= IF RDROP 'XFA TRUE EXIT THEN |
C" PFA" S= IF RDROP 'XFA >BODY TRUE EXIT THEN |
C" NFA" S= IF RDROP 'XFA >NAME TRUE EXIT THEN |
THEN |
\ THEN |
DROP R>IN (?Label) |
; |
: ?Number ( --> n TRUE | FALSE ) |
IN>R GetOp CASE |
2 OF TRUE RDROP ENDOF |
1 OF DUP |
[CHAR] { = IF DROP [CHAR] } PARSE EVALUATE TRUE RDROP ELSE |
[CHAR] - = IF GetOp 2 = IF NEGATE TRUE RDROP |
ELSE DROP FALSE R>IN THEN ELSE |
FALSE R>IN THEN THEN |
ENDOF |
5 OF DUP C@ IF 1+ C@ ELSE DROP 0 THEN TRUE RDROP ENDOF |
3 OF 7 FindStrObject IF RDROP TRUE ELSE FALSE R>IN THEN ENDOF |
2DROP FALSE DUP R>IN |
ENDCASE |
; |
VARIABLE *Sign |
: Imm ( --> ) |
*Sign 0! 0 TO *Imm 0 TO *OpRel *GenName 0! |
BEGIN |
?Number IF |
\ *Sign @ IF -To *Imm ELSE +To *Imm THEN |
*Sign @ IF NEGATE THEN *Imm + TO *Imm |
ELSE |
?Label IF |
*GenName C@ IF |
*ImmName C@ REF-ERROR *GenName *ImmName SCopy |
*Sign @ REF-ERROR *GenName 0! |
THEN |
\ *Sign @ IF 1-To *OpRel -To *Imm ELSE 1+To *OpRel +To *Imm THEN |
*Sign @ IF *OpRel 1- TO *OpRel NEGATE |
ELSE *OpRel 1+ TO *OpRel |
THEN *Imm + TO *Imm |
ELSE |
GetOp IF 0x59 ELSE 0x66 THEN THROW |
THEN |
THEN |
*OpRel 0 1 BETWEEN 0= REF-ERROR |
*OpRel IF |
*OpSize 1 = |
*OpSize *DefDatasz (OthSz) = OR IF 0x50 THROW THEN |
*DefDatasz TO *OpSize |
THEN |
GetOp DUP 1 > REF-ERROR |
IF |
CASE |
[CHAR] + OF *Sign 0! FALSE ENDOF |
[CHAR] - OF *Sign ON FALSE ENDOF |
[CHAR] , OF TRUE >IN 1-! ENDOF |
0x59 THROW |
ENDCASE |
ELSE DROP TRUE THEN |
UNTIL |
*OpRel IF *DefDatasz TO *ImSize EXIT THEN |
*OpSize CASE |
1 OF *Imm -256 AND IF 0x5A THROW THEN 1 TO *ImSize ENDOF |
2 OF |
\ *Imm -65536 AND IF 0x5A THROW THEN |
*Imm -128 AND DUP 0= SWAP -128 = OR IF 1 ELSE 2 THEN TO *ImSize |
ENDOF |
4 OF |
*Imm -128 AND DUP 0= SWAP -128 = OR IF 1 ELSE 4 THEN TO *ImSize |
ENDOF |
DROP *Imm -32768 AND DUP 0= SWAP -32768 = OR |
IF 0x5C THROW THEN |
*DefDatasz TO *OpSize *DefDatasz TO *ImSize |
DUP |
ENDCASE |
; |
: Mult ( n1 --> n2 ) |
CASE |
1 OF 0 ENDOF |
2 OF 1 ENDOF |
4 OF 2 ENDOF |
8 OF 3 ENDOF |
TRUE IF 0x58 THROW THEN |
ENDCASE |
; |
0 VALUE *OldReg |
: ?MemReg ( --> flag ) |
*Reg ?Reg IF |
*Reg TO *R/M TO *Reg 3 TO *Mod |
ELSE |
DROP ?Ptr *Sign ! *SegReg TO *OldReg IN>R |
?SegReg IF |
TO *SegReg |
?Colon IFNOT |
*Sign @ IF 82 THROW THEN *OldReg TO *SegReg R>IN FALSE EXIT |
THEN |
*Sign ON |
THEN |
RDROP ?Bracket[ DUP *Sign @ OR *Sign ! |
*Sign @ IFNOT DROP FALSE EXIT THEN |
0= IF 0x56 THROW THEN *Sign 0! 0 TO *Offset |
BEGIN |
?Reg32 IF |
*Sign @ REF-ERROR |
*AdSize 2 = IF 0x50 THROW THEN 4 TO *AdSize IN>R |
GetOp 1 = SWAP [CHAR] * = AND IF |
*Index 0< 0= REF-ERROR |
GetOp 2 <> REF-ERROR |
Mult TO *Scale TO *Index RDROP |
*Index 4 = REF-ERROR |
ELSE |
R>IN *Base 0< IFNOT |
*Index 0< 0= REF-ERROR |
0 TO *Scale *Base TO *Index |
*Index 4 = REF-ERROR |
THEN TO *Base |
THEN |
ELSE |
?Reg16 IF |
*Sign @ REF-ERROR |
*AdSize 4 = IF 0x50 THROW THEN |
2 TO *AdSize |
CASE |
3 OF *Base 0< 0= REF-ERROR 3 TO *Base ENDOF |
5 OF *Base 0< 0= REF-ERROR 5 TO *Base ENDOF |
6 OF *Index 0< 0= REF-ERROR 6 TO *Index ENDOF |
7 OF *Index 0< 0= REF-ERROR 7 TO *Index ENDOF |
TRUE REF-ERROR |
ENDCASE |
ELSE |
?Number IF |
*AdSize IFNOT *DefDatasz TO *AdSize THEN |
*Sign @ IF NEGATE *Offset + TO *Offset |
ELSE |
IN>R GetOp 1 = SWAP [CHAR] * = AND IF |
*Index 0< 0= REF-ERROR |
?Reg32 0= REF-ERROR |
TO *Index Mult TO *Scale RDROP |
*Index 4 = REF-ERROR |
ELSE R>IN *Offset + TO *Offset THEN |
THEN |
ELSE |
?Label IF |
*AdSize 2 = IF 0x50 THROW THEN |
*DefDatasz TO *AdSize |
*GenName C@ IF |
*OffName C@ REF-ERROR |
*GenName *OffName SCopy |
DUP HERE <> IF *Sign @ REF-ERROR THEN *GenName 0! |
THEN |
*Sign @ IF *OfRel 1- TO *OfRel NEGATE |
ELSE *OfRel 1+ TO *OfRel THEN *Offset + TO *Offset |
ELSE 89 THROW THEN |
THEN |
THEN |
THEN |
*OfRel 0 1 BETWEEN 0= REF-ERROR |
GetOp 1 <> REF-ERROR |
CASE |
[CHAR] + OF *Sign 0! FALSE ENDOF |
[CHAR] - OF *Sign ON FALSE ENDOF |
[CHAR] ] OF TRUE ENDOF |
89 THROW |
ENDCASE |
UNTIL |
THEN |
*OfSize IFNOT |
*Offset IF |
*Offset 127 > *Offset -128 < OR IF |
*DefDatasz TO *OfSize |
*AdSize 2 = IF |
*Offset 32767 > *Offset -32768 < OR |
IF 91 THROW |
ELSE 2 TO *OfSize |
THEN |
THEN |
ELSE 1 TO *OfSize THEN |
THEN |
THEN |
*OfRel IF *DefDatasz TO *OfSize THEN |
*AdSize *DefDatasz = IF |
*Base 0< IF |
0 TO *Mod |
*Index 0< IF 5 TO *R/M ELSE 4 TO *R/M 5 TO *Base THEN |
*DefDatasz TO *OfSize |
ELSE |
*OfSize 4 = IF 2 ELSE *OfSize THEN TO *Mod |
*Base 5 = *Mod 0= AND IF 0 TO *Offset 1 TO *Mod 1 TO *OfSize THEN |
*Index 0< IF |
*Base 4 = IF 0 TO *Scale 4 TO *Index 4 TO *R/M THEN |
*Base TO *R/M |
ELSE 4 TO *R/M THEN |
THEN |
ELSE |
*AdSize 2 = IF |
*OfSize TO *Mod |
*Base 6 = *Index 0< *OfSize 0= AND AND IF |
1 TO *Mod 0 TO *Offset 1 TO *OfSize |
THEN |
*Base CASE |
3 OF |
*Index CASE |
6 OF 0 ENDOF |
7 OF 1 ENDOF |
DROP 7 DUP |
ENDCASE |
ENDOF |
5 OF |
*Index CASE |
6 OF 2 ENDOF |
7 OF 3 ENDOF |
DROP 6 DUP |
ENDCASE |
ENDOF |
*Index CASE |
6 OF 4 ENDOF |
7 OF 5 ENDOF |
DROP 0 TO *Mod 2 TO *OfSize 6 DUP |
ENDCASE |
ENDCASE |
TO *R/M |
THEN |
THEN TRUE |
; |
ALSO S_ASSEM DEFINITIONS PREVIOUS |
: FCALL ( --> ) |
0xE8 C, \ ¬ è¨ ï ª®¬ ¤ CALL |
' HERE CELL+ - , ; |
: FOR |
CONTEXT @ >R PREVIOUS |
INTERPRET |
ALSO R> CONTEXT ! ; |
: EQU ( --> ) |
LSP @ C@ 1 = |
LSP @ 3 + @ |
HERE \ *DefDatasz 2 = IF 0xFFFF AND THEN |
= AND IF |
InitCommand *DefDatasz TO *OpSize |
Imm *Imm LSP @ 3 + ! |
*OpRel IFNOT 7 LSP @ C! THEN |
ELSE 93 THROW THEN |
; |
: DD ( --> ) |
BEGIN |
InitCommand 4 TO *OpSize |
Imm 4 TO *ImSize |
*OpRel IF *DefDatasz 4 <> REF-ERROR |
*ImSize 4 <> IF 85 THROW THEN |
*ImmName C@ IFNOT 1 *ImmName 1+ C! THEN |
*ImmName 1+ C@ IF *ImmName HERE 2 AddStrObject |
ELSE |
*ImmName C@ 1- *ImmName 1+ C! |
*ImmName 1+ HERE 5 AddStrObject |
THEN |
THEN |
*Imm , |
IN>R GetOp 1 = SWAP [CHAR] , = AND IF RDROP FALSE |
ELSE R>IN TRUE THEN |
UNTIL |
; |
: DW ( --> ) |
BEGIN |
InitCommand 4 TO *OpSize |
Imm *OpRel REF-ERROR |
2 TO *OpSize 2 TO *ImSize |
\ *Imm -65536 AND DUP 0= SWAP -65536 = OR 0= IF 0x5A THROW THEN |
*Imm W, |
IN>R GetOp 1 = SWAP [CHAR] , = AND IF RDROP FALSE |
ELSE R>IN TRUE THEN |
UNTIL |
; |
: DS ( --> ) |
InitCommand 4 TO *OpSize |
Imm 4 TO *ImSize |
*OpRel IF 101 THROW THEN |
HERE *Imm DUP ALLOT ERASE |
; |
: DB ( --> ) |
BEGIN |
InitCommand |
IN>R GetOp 1 INVERT AND 4 = IF |
RDROP COUNT ?DUP IF HERE SWAP DUP ALLOT CMOVE ELSE DROP THEN |
ELSE |
DROP R>IN 4 TO *OpSize |
Imm *OpRel REF-ERROR |
1 TO *OpSize |
*Imm -128 AND DUP 0= SWAP -128 = OR *Imm 256 U< OR 0= |
IF 0x5A THROW THEN |
*Imm C, |
THEN |
IN>R GetOp 1 = SWAP [CHAR] , = AND IF RDROP FALSE |
ELSE R>IN TRUE THEN |
UNTIL |
; |
HIDDEN DEFINITIONS |
0 VALUE ?ENDCODE |
: DEF+! ( N ADDR -- ) |
*DefDatasz 4 = IF +! ELSE DUP>R @ + R> W! THEN ; |
: DEF! ( N ADDR -- ) |
*DefDatasz 4 = IF ! ELSE W! THEN ; |
: ENDCODE ( 0x5030F8 --> ) |
TRUE TO ?ENDCODE |
PREVIOUS 0x5030F8 ?PAIRS LSP @ >R |
BEGIN |
R@ C@ WHILE |
R@ C@ 5 = IF |
NullString R@ 3 + @ 2 AddStrObject |
R@ 7 + 9 FindStrObject IF |
R@ 3 + @ DEF+! 10 R@ C! |
ELSE |
HERE R@ 3 + @ DEF+! HERE R@ 3 + ! |
R@ 8 + HERE R@ 7 + C@ DUP ALLOT CMOVE 9 R@ C! |
THEN |
THEN |
R@ 1+ W@ R> + >R |
REPEAT |
RDROP LSP @ >R |
BEGIN |
R@ C@ WHILE |
R@ C@ 8 = IF |
NullString R@ 3 + @ 2 AddStrObject |
NullString HERE 2 AddStrObject |
HERE R@ 3 + @ DEF! R@ 7 + @ , |
THEN |
R@ 1+ W@ R> + >R |
REPEAT |
RDROP LSP @ >R |
BEGIN |
R@ C@ WHILE |
R@ C@ 2 = IF |
R@ 7 + C@ IF |
R@ 7 + 1 FindStrObject IF |
R@ 3 + @ DEF+! 0 R@ 7 + C! |
ELSE |
\ R@ 7 + >ASCIIZ 0x21 - ErrNo ! 0x53 Error |
." ASM: Label not found:" R@ 7 + COUNT TYPE ERR_ |
THEN |
THEN |
\ R@ 3 + @ LAST @ Name> - RMark |
ELSE |
R@ C@ 4 = IF |
R@ 7 + 1 FindStrObject IF |
R@ 3 + @ - 1- DUP -128 AND DUP 0= SWAP -128 = OR IF |
R@ 3 + @ C! |
ELSE 96 THROW THEN |
ELSE |
\ R@ 7 + >ASCIIZ 0x21 - ErrNo ! 0x53 Error |
." ASM: Label not found:" R@ 7 + COUNT TYPE ERR_ |
THEN |
ELSE |
R@ C@ 3 = IF |
R@ 7 + 1 FindStrObject IF |
R@ 3 + @ - *DefDatasz - R@ 3 + @ DEF! |
ELSE |
\ R@ 7 + >ASCIIZ 0x21 - ErrNo ! 0x53 Error |
." ASM: Label not found:" R@ 7 + COUNT TYPE ERR_ |
THEN |
THEN |
THEN |
THEN |
R@ 1+ W@ R> + >R |
REPEAT |
RDROP ( Save-Input) LSP @ >R |
BEGIN |
R@ C@ WHILE |
R@ C@ 6 = IF |
R@ 7 + 1 FindStrObject IF |
\ R@ 7 + COUNT SetStream VALUE 5 RMark Public |
ELSE |
R@ 7 + 7 FindStrObject IF |
\ R@ 7 + COUNT SetStream VALUE Public |
ELSE |
\ R@ 7 + >ASCIIZ 0x21 - ErrNo ! 0x62 Error |
." ASM: Unresolved PUBLIC reference: R@ 7 + COUNT TYPE ERR_ |
THEN |
THEN |
THEN |
R@ 1+ W@ R> + >R |
REPEAT |
RDROP ( Restore-Input DROP ) |
; |
: STARTCODE ( -- ) |
ALSO S_ASSEM FALSE TO ?ENDCODE |
LSP @ >R 0x5030F8 0 >L |
BEGIN |
BEGIN |
GetOp DUP WHILE |
DUP 3 = IF |
DROP IFIND IF |
EXECUTE |
?ENDCODE IF |
R> LSP ! EXIT |
THEN |
ELSE |
*GenName SCopy GetOp 1 = SWAP [CHAR] : = AND IF |
*GenName 1 FindStrObject IF |
\ *GenName >ASCIIZ 0x21 - ErrNo ! 0x5F Error |
." ASM: Label already defined:" R@ 7 + COUNT TYPE ERR_ |
ELSE *GenName HERE \ *DefDatasz 2 = IF 0xFFFF AND THEN |
1 AddStrObject THEN |
ELSE -321 THROW THEN |
THEN |
ELSE |
1 = IF |
[CHAR] [ = IF |
[CHAR] ] WORD COUNT EVALUATE |
ELSE -321 THROW THEN |
ELSE -321 THROW THEN |
THEN |
REPEAT |
2DROP REFILL 0= ABORT" endcode not found" |
AGAIN |
; |
: PUBLIC ( --> ) |
BEGIN |
GetOp 3 = IF 0 6 AddStrObject ELSE 0x5D THROW THEN |
IN>R GetOp 1 = SWAP [CHAR] , = AND IF RDROP FALSE |
ELSE R>IN TRUE THEN |
UNTIL |
; |
: 2Op ( name ( c1opc c1reg ... c9opc c9reg --> ) |
( --> ) |
\ One-byte opcodes only, but with possible "reg" modIFier |
CREATE 9 0 DO SWAP C, C, LOOP |
DOES> |
TO *OpArray InitCommand 1 TO *OpcSize |
?Reg IF |
Comma ?MemReg IF |
*OpSize CASE |
1 OF *OpArray 2+ ENDOF |
2 OF *OpArray ENDOF |
4 OF *OpArray ENDOF |
0x5C THROW |
ENDCASE |
ELSE |
3 TO *Mod *Reg TO *R/M |
Imm *OpSize |
CASE |
1 OF |
*OpArray |
*Reg IF 12 ELSE -1 TO *Mod -1 TO *Scale 0 TO *OfSize 16 THEN + |
DUP 1+ C@ TO *Reg |
ENDOF |
2 OF |
*OpArray |
*Reg IF *ImSize 1 = IF 8 ELSE 10 THEN |
ELSE -1 TO *Mod -1 TO *Scale 0 TO *OfSize *OpSize TO *ImSize 14 THEN + |
DUP 1+ C@ TO *Reg |
ENDOF |
4 OF |
*OpArray |
*Reg *ImSize 1 = OR IF *ImSize 1 = IF 8 ELSE 10 THEN |
ELSE -1 TO *Mod -1 TO *Scale 0 TO *OfSize *OpSize TO *ImSize 14 THEN + |
DUP 1+ C@ TO *Reg |
ENDOF |
0x5C THROW |
ENDCASE |
THEN |
ELSE |
?MemReg 0= IF 94 THROW THEN |
Comma ?Reg IF |
*OpSize CASE |
1 OF *OpArray 6 + ENDOF |
2 OF *OpArray CELL+ ENDOF |
4 OF *OpArray CELL+ ENDOF |
0x5C THROW |
ENDCASE |
ELSE |
Imm *OpSize CASE |
1 OF *OpArray 12 + DUP 1+ C@ TO *Reg ENDOF |
2 OF |
*OpArray *ImSize 1 = IF 8 ELSE 10 THEN + DUP 1+ C@ TO *Reg |
ENDOF |
4 OF |
*OpArray *ImSize 1 = IF 8 ELSE 10 THEN + DUP 1+ C@ TO *Reg |
ENDOF |
0x5C THROW |
ENDCASE |
THEN |
THEN |
C@ DUP TO *OpCode 0xF7 = IF *OpSize TO *ImSize THEN |
CompileCommand |
; |
: PUSH ( --> ) |
InitCommand |
?MemReg IF |
1 TO *OpcSize |
*OpSize 2 < IF 0x50 THROW THEN |
*Mod 3 = IF -1 TO *Mod *R/M 0x50 + TO *OpCode |
ELSE 0xFF TO *OpCode 6 TO *Reg THEN |
ELSE |
?SegReg IF |
CASE |
0 OF 1 0x06 ENDOF |
1 OF 1 0x0E ENDOF |
2 OF 1 0x16 ENDOF |
3 OF 1 0x1E ENDOF |
4 OF 2 0xA00F ENDOF |
5 OF 2 0xA80F ENDOF |
DUP |
ENDCASE |
TO *OpCode TO *OpcSize |
ELSE |
*DefDatasz TO *OpSize Imm 1 TO *OpcSize |
*ImSize 4 = *Imm -32768 AND DUP 0= SWAP -32768 = OR AND *OpRel 0= AND |
IF 2 TO *ImSize THEN |
*ImSize TO *OpSize |
*ImSize 1 = IF 0x6A ELSE 0x68 THEN TO *OpCode |
THEN |
THEN |
CompileCommand |
; |
: POP ( --> ) |
InitCommand |
?MemReg IF |
1 TO *OpcSize |
*OpSize 2 < IF 0x50 THROW THEN |
*Mod 3 = IF -1 TO *Mod *R/M 0x58 + TO *OpCode |
ELSE 0x8F TO *OpCode 0 TO *Reg THEN |
ELSE |
?SegReg IF |
CASE |
0 OF 1 0x07 ENDOF |
1 OF TRUE 1 #OPER-ERROR ENDOF |
2 OF 1 0x17 ENDOF |
3 OF 1 0x1F ENDOF |
4 OF 2 0xA10F ENDOF |
5 OF 2 0xA90F ENDOF |
DUP |
ENDCASE |
TO *OpCode TO *OpcSize |
ELSE 92 THROW THEN |
THEN |
CompileCommand |
; |
: IncDec ( name ( byte_opc b_reg word_opc w_reg reg_baseopc dummy --> ) |
( --> ) |
\ One-byte opcodes only, but with possible "reg" modIFier |
CREATE 3 0 DO SWAP C, C, LOOP |
DOES> |
TO *OpArray InitCommand |
?MemReg IF |
*OpSize 0= IF 92 THROW THEN |
1 TO *OpcSize |
*Mod 3 = *OpSize 1 > AND IF -1 TO *Mod *OpArray C@ *R/M + |
ELSE *OpSize 1 = IF 4 ELSE 2 THEN *OpArray + DUP 1+ C@ TO *Reg C@ THEN |
TO *OpCode |
ELSE TRUE 2 #OPER-ERROR THEN |
CompileCommand |
; |
: NegNot ( name ( byte_opc b_reg word_opc w_reg --> ) |
( --> ) |
\ One-byte opcodes only, but with possible "reg" modIFier |
CREATE 2 0 DO SWAP C, C, LOOP |
DOES> |
TO *OpArray InitCommand |
?MemReg IF |
*OpSize 0= IF 92 THROW THEN |
1 TO *OpcSize |
*OpArray *OpSize 1 = IF 2 + THEN DUP 1+ C@ TO *Reg C@ TO *OpCode |
ELSE TRUE 3 #OPER-ERROR THEN |
CompileCommand |
; |
: MOV ( --> ) |
InitCommand 1 TO *OpcSize |
?MemReg IF |
Comma *Mod 3 = IF |
*R/M TO *Reg -1 TO *Mod |
?MemReg IF |
*Reg 0= *Mod 0= *R/M 5 = AND AND IF |
-1 TO *Mod *OpSize 1 = IF 0xA0 ELSE 0xA1 THEN |
ELSE |
*OpSize 1 = IF 0x8A ELSE 0x8B THEN |
THEN |
ELSE |
?SegReg IF |
*OpSize 2 < IF 0x50 THROW THEN |
*Reg TO *R/M 3 TO *Mod TO *Reg 0x8C |
ELSE |
Imm *OpSize TO *ImSize |
*Reg *OpSize 1 = IF 0xB0 ELSE 0xB8 THEN + |
THEN |
THEN |
ELSE |
?Reg IF |
*Reg 0= *Mod 0= *R/M 5 = AND AND IF |
-1 TO *Mod *OpSize 1 = IF 0xA2 ELSE 0xA3 THEN |
ELSE |
*OpSize 1 = IF 0x88 ELSE 0x89 THEN |
THEN |
ELSE |
Imm *OpSize TO *ImSize 0 TO *Reg |
*OpSize 1 = IF 0xC6 ELSE 0xC7 THEN |
THEN |
THEN |
ELSE |
?SegReg IF |
Comma TO *Reg |
?MemReg IF *DefDatasz TO *OpSize 0x8E ELSE TRUE 4 #OPER-ERROR THEN |
ELSE TRUE 5 #OPER-ERROR THEN |
THEN |
TO *OpCode CompileCommand |
; |
: INT ( --> ) |
InitCommand 1 TO *OpSize |
Imm *Imm 3 = IF 0xCC C, ELSE 0xCD C, *Imm C, THEN |
; |
: OUT ( --> ) |
InitCommand |
?Reg IF |
*Reg 2 = *OpSize 2 = AND IF |
Comma InitCommand |
?Reg IF |
*Reg IF TRUE 6 #OPER-ERROR THEN |
*OpSize CASE |
1 OF 0xEE C, ENDOF |
2 OF 0xEF66 W, ENDOF |
4 OF 0xEF C, ENDOF |
DUP |
ENDCASE |
ELSE TRUE 7 #OPER-ERROR THEN |
ELSE TRUE 8 #OPER-ERROR THEN |
ELSE |
1 TO *OpSize Imm Comma *Imm >R InitCommand |
?Reg IF |
*Reg IF TRUE 9 #OPER-ERROR THEN |
*OpSize CASE |
1 OF 0xE6 C, ENDOF |
2 OF 0xE766 W, ENDOF |
4 OF 0xE7 C, ENDOF |
DUP |
ENDCASE |
ELSE TRUE 10 #OPER-ERROR THEN |
R> C, |
THEN |
; |
: IN ( --> ) |
InitCommand |
?Reg IF *Reg 11 #OPER-ERROR ELSE TRUE 12 #OPER-ERROR THEN |
Comma *OpSize >R InitCommand |
?Reg IF |
*Reg 2 = *OpSize 2 = AND 0= 13 #OPER-ERROR |
R> CASE |
1 OF 0xEC C, ENDOF |
2 OF 0xED66 W, ENDOF |
4 OF 0xED C, ENDOF |
DUP |
ENDCASE |
ELSE |
1 TO *OpSize Imm |
R> CASE |
1 OF 0xE4 C, ENDOF |
2 OF 0xE566 W, ENDOF |
4 OF 0xE5 C, ENDOF |
DUP |
ENDCASE |
*Imm C, |
THEN |
; |
: LxS ( name ( opcode opcsize --> ) |
( --> ) |
CREATE C, W, |
DOES> |
InitCommand |
DUP C@ TO *OpcSize 1+ W@ TO *OpCode |
?Reg IF |
*OpSize TO *OpArray |
Comma *OpSize 2 < IF 0x50 THROW THEN |
*OpSize 2 = *OpCode 0x8D = OR IF \ Opcode 8D belongs TO LEA |
*OpCode 0x8D = IF 0 ELSE 4 THEN TO *OpSize |
?MemReg IF |
*Mod 3 = 14 #OPER-ERROR |
*OpCode 0x8D = IF *OpArray ELSE 2 THEN TO *OpSize |
ELSE TRUE 15 #OPER-ERROR THEN |
ELSE |
?Ptr IF 0x50 THROW THEN |
?FWord DROP *DefDatasz TO *OpSize |
?MemReg IF *Mod 3 = 16 #OPER-ERROR |
ELSE TRUE 17 #OPER-ERROR THEN |
THEN |
ELSE TRUE 18 #OPER-ERROR THEN |
CompileCommand |
; |
: JShort ( --> ) |
*OpArray C@ 0= 19 #OPER-ERROR |
*DefDatasz TO *OpSize |
Imm *ImmName C@ IF |
*OpArray 1+ W@ HERE ! *OpArray C@ ALLOT |
*ImmName HERE 4 AddStrObject |
0 C, |
ELSE |
*Imm HERE 2+ - -128 AND DUP 0= SWAP -128 = OR IF |
*Imm HERE 2+ - *OpArray 1+ W@ HERE ! *OpArray C@ ALLOT C, |
ELSE 96 THROW THEN |
THEN |
; |
: Jxx ( name ( indir_opcsize i_opc i_reg near_sze n_opc short_sz s_opc --> ) |
( --> ) |
CREATE SWAP C, W, SWAP C, W, ROT C, SWAP W, C, |
DOES> |
TO *OpArray |
InitCommand |
IN>R GetOp 3 = IF C" SHORT" S= IF RDROP JShort EXIT THEN THEN DROP R>IN |
0 TO *AdSize |
?MemReg IF |
*OpArray 6 + C@ ?DUP IF TO *OpcSize ELSE 20 #OPER-ERROR THEN |
*OpArray 7 + W@ TO *OpCode *OpArray 9 + C@ TO *Reg |
CompileCommand EXIT |
THEN |
*DefDatasz TO *OpSize |
Imm *OpSize>DEF *OpArray C@ *OpArray 3 + C@ OR 0= 21 #OPER-ERROR |
*ImmName C@ IF |
*OpArray 3 + C@ IF |
*OpArray CELL+ W@ HERE ! *OpArray 3 + C@ ALLOT |
*ImmName HERE 3 AddStrObject 0 *DefDatasz 4 = IF , ELSE W, THEN |
ELSE |
*OpArray 1+ W@ HERE ! *OpArray C@ ALLOT |
*ImmName HERE 4 AddStrObject 0 C, |
THEN |
ELSE |
\ *Imm 0x100 KernelSize + LAST @ Name> BETWEEN IF |
\ 0 TO *OpRel *OffName 0! *ImmName 0! 0 TO *ImSize 0 TO *Offset 4 TO *OfSize |
\ 4 TO *AdSize -1 TO *Base -1 TO *Index -1 TO *Scale 5 TO *R/M 0 TO *Mod |
\ *OpArray 6 + C@ ?DUP 0= ABORT" ASM: External address reference not allowed" |
\ TO *OpcSize |
\ *OpArray 7 + W@ TO *OpCode *OpArray 9 + C@ TO *Reg |
\ *Imm HERE *OpcSize + 1+ 8 AddNumObject |
\ CompileCommand EXIT |
\ THEN |
*OpArray C@ *Imm HERE 2+ - -128 AND DUP 0= SWAP -128 = OR AND IF |
*Imm HERE 1+ *OpArray C@ + - *OpArray 1+ W@ HERE ! *OpArray C@ ALLOT C, |
ELSE |
*OpArray 3 + C@ IF |
*Imm HERE *DefDatasz 4 = IF CELL+ THEN *OpArray 3 + C@ + - |
*OpArray CELL+ W@ HERE ! *OpArray 3 + C@ ALLOT |
*DefDatasz 4 = IF , ELSE W, THEN |
ELSE 96 THROW THEN |
THEN |
THEN |
; |
: ShIFt ( name ( reg --> ) |
( --> ) |
\ Hardcoded opcodes - "reg" modIFiers only |
CREATE C, |
DOES> |
InitCommand |
C@ TO *Reg |
?MemReg IF |
Comma ?Reg8 IF |
1 <> 22 #OPER-ERROR |
*OpSize 1 = IF 0xD2 ELSE 0xD3 THEN |
ELSE |
Imm *Imm 0xFF U> IF 90 THROW THEN |
*Imm 1 = IF |
*OpSize 1 = IF 0xD0 ELSE 0xD1 THEN 0 TO *ImSize |
ELSE |
*OpSize 1 = IF 0xC0 ELSE 0xC1 THEN 1 TO *ImSize |
THEN |
THEN |
ELSE TRUE 23 #OPER-ERROR THEN |
TO *OpCode 1 TO *OpcSize |
CompileCommand |
; |
: XCHG ( --> ) |
InitCommand |
?MemReg IF |
Comma *Mod 3 = IF |
-1 TO *Mod *R/M TO *Reg |
?MemReg IF |
*Mod 3 = *R/M 0= *Reg 0= OR AND *OpSize 1 > AND IF |
*OpSize 2 = IF 0x66 C, THEN |
0x90 *Reg + *R/M + C, EXIT |
THEN |
ELSE TRUE 24 #OPER-ERROR THEN |
ELSE |
?Reg 0= 25 #OPER-ERROR |
THEN |
ELSE 25 #OPER-ERROR THEN |
*OpSize 1 = IF 0x86 ELSE 0x87 THEN TO *OpCode 1 TO *OpcSize |
CompileCommand |
; |
: IMUL ( --> ) |
InitCommand |
?MemReg IF |
IN>R GetOp 1 = SWAP [CHAR] , = AND IF |
RDROP *Mod 3 <> 26 #OPER-ERROR |
*OpSize 1 > 0= 27 #OPER-ERROR |
*R/M TO *Reg -1 TO *Mod |
?MemReg IF |
IN>R GetOp 1 = SWAP [CHAR] , = AND IF |
RDROP Imm 1 TO *OpcSize |
*ImSize 1 = IF 0x6B ELSE 0x69 THEN TO *OpCode |
ELSE |
R>IN 0xAF0F TO *OpCode 2 TO *OpcSize |
THEN |
ELSE |
Imm 3 TO *Mod *Reg TO *R/M 1 TO *OpcSize |
*ImSize 1 = IF 0x6B ELSE 0x69 THEN TO *OpCode |
THEN |
ELSE |
R>IN *OpSize 1 = IF 0xF6 ELSE 0xF7 THEN TO *OpCode 1 TO *OpcSize 5 TO *Reg |
THEN |
ELSE TRUE 28 #OPER-ERROR THEN |
CompileCommand |
; |
: MOVxx ( name ( opc1 opc2 --> ) |
( --> ) |
\ Two-byte opcodes only |
CREATE W, W, |
DOES> |
InitCommand |
TO *OpArray 2 TO *OpcSize |
?Reg IF |
*OpSize >R 0 TO *OpSize |
Comma ?MemReg IF |
*OpSize 4 = IF 0x50 THROW THEN |
*OpSize 2 = R> TO *OpSize IF |
*OpSize 4 <> IF 0x50 THROW THEN |
*OpArray W@ TO *OpCode |
ELSE *OpArray 2+ W@ TO *OpCode THEN |
ELSE TRUE 29 #OPER-ERROR THEN |
ELSE TRUE 29 #OPER-ERROR THEN |
CompileCommand |
; |
: Bit ( name ( c1opc c1reg c2opc c2reg --> ) |
( --> ) |
\ Two-byte opcodes only, with possible "reg" modIFier |
CREATE SWAP W, C, SWAP W, C, |
DOES> |
InitCommand |
TO *OpArray 2 TO *OpcSize |
?MemReg IF |
*OpSize 2 < 30 #OPER-ERROR |
Comma ?Reg IF *OpArray 3 + |
ELSE |
Imm *Imm 0xFF > IF 90 THROW THEN |
1 TO *ImSize *OpArray 2+ C@ TO *Reg *OpArray |
THEN |
W@ TO *OpCode |
ELSE TRUE 31 #OPER-ERROR THEN |
CompileCommand |
; |
: SETxx ( name ( opc --> ) |
( --> ) |
\ Two-byte opcodes only |
CREATE W, |
DOES> |
InitCommand |
W@ TO *OpCode 2 TO *OpcSize |
?MemReg IF |
*OpSize 1 <> 33 #OPER-ERROR |
0 TO *Reg |
ELSE TRUE 34 #OPER-ERROR THEN |
CompileCommand |
; |
: SHxD ( name ( opc1 opc2 --> ) |
( --> ) |
\ Two-byte opcodes only |
CREATE W, W, |
DOES> |
InitCommand |
TO *OpArray 2 TO *OpcSize |
?MemReg IF |
*OpSize 2 < 0= 35 #OPER-ERROR |
Comma ?Reg IF |
Comma ?Reg8 IF 1 <> 36 #OPER-ERROR *OpArray |
ELSE Imm *Imm 0xFF > IF 90 THROW THEN *OpArray 2+ THEN |
ELSE TRUE 37 #OPER-ERROR THEN |
ELSE TRUE 38 #OPER-ERROR THEN |
W@ TO *OpCode |
CompileCommand |
; |
: BSx ( name ( WORD --> ) |
( --> ) |
CREATE W, |
DOES> |
InitCommand W@ TO *OpCode 2 TO *OpcSize |
?Reg IF |
*OpSize 2 < 39 #OPER-ERROR |
Comma ?MemReg 0= TRUE 40 #OPER-ERROR |
ELSE TRUE 41 #OPER-ERROR THEN |
CompileCommand |
; |
: Rxx ( name ( opc --> ) |
( --> ) |
CREATE C, DOES> C@ C, 1 C, 0xC3 C, |
; |
: ALIGN ( --> ) |
InitCommand *DefDatasz TO *OpSize Imm 4 TO *ImSize |
*OpRel IF 101 THROW THEN |
BEGIN |
HERE *Imm MOD WHILE |
0 C, |
REPEAT |
; |
: I' BL WORD IFIND 0= IF -321 THROW THEN ( -? ) ; |
ALSO S_ASSEM DEFINITIONS |
S" ~mak\asm\ASM_SIF.F" INCLUDED |
0xC9 1Op1 LEAVE |
0xCC 1Op1 INT3 |
0xCE 1Op1 INTO |
0x37 1Op1 AAA |
0x3F 1Op1 AAS |
0x99 1Op1D CDQ |
0x98 1Op1D CWDE |
0xF8 1Op1 CLC |
0xFC 1Op1 CLD |
0xFA 1Op1 CLI |
0xF5 1Op1 CMC |
0xA6 1Op1 CMPSB |
0xA7 1Op1D CMPSD |
0x27 1Op1 DAA |
0x2F 1Op1 DAS |
0xF4 1Op1 HLT |
0x6C 1Op1 INSB |
0x6D 1Op1D INSD |
0xCF 1Op1D IRETD |
0x9F 1Op1 LAHF |
0xAC 1Op1 LODSB |
0xAD 1Op1D LODSD |
0xA4 1Op1 MOVSB |
0xA5 1Op1D MOVSD |
0x90 1Op1 NOP |
0x6E 1Op1 OUTSB |
0x6F 1Op1D OUTSD |
0x61 1Op1D POPAD |
0x60 1Op1D PUSHAD |
0x9D 1Op1D POPFD |
0x9C 1Op1D PUSHFD |
0xC3 1Op1 RET |
0xCB 1Op1 RETF |
0x9E 1Op1 SAHF |
0xAE 1Op1 SCASB |
0xAF 1Op1D SCASD |
0xF9 1Op1 STC |
0xFD 1Op1 STD |
0xFB 1Op1 STI |
0xAA 1Op1 STOSB |
0xAB 1Op1D STOSD |
0x9B 1Op1 WAIT |
0xD7 1Op1 XLAT |
0xD7 1Op1 XLATB |
0xF0 1Op1 LOCK |
0xF3 1Op1 REP |
0xF3 1Op1 REPE |
0xF3 1Op1 REPZ |
0xF2 1Op1 REPNE |
0xF2 1Op1 REPNZ |
0x0AD5 1Op2 AAD |
0x0AD4 1Op2 AAM |
0x310F 1Op2 RDTSC |
0x98 1Op1W CBW |
0x99 1Op1W CWD |
0xA7 1Op1W CMPSW |
0x6D 1Op1W INSW |
0xCF 1Op1W IRET |
0xAD 1Op1W LODSW |
0xA5 1Op1W MOVSW |
0x6F 1Op1W OUTSW |
0x61 1Op1W POPA |
0x60 1Op1W PUSHA |
0x9D 1Op1W POPF |
0x9C 1Op1W PUSHF |
0xAF 1Op1W SCASW |
0xAB 1Op1W STOSW |
0x14 0 0x15 0 0x80 2 0x81 2 0x83 2 0x10 0 0x11 0 0x12 0 0x13 0 2Op ADC |
0x04 0 0x05 0 0x80 0 0x81 0 0x83 0 0x00 0 0x01 0 0x02 0 0x03 0 2Op ADD |
0x24 0 0x25 0 0x80 4 0x81 4 0x83 4 0x20 0 0x21 0 0x22 0 0x23 0 2Op AND |
0x3C 0 0x3D 0 0x80 7 0x81 7 0x83 7 0x38 0 0x39 0 0x3A 0 0x3B 0 2Op CMP |
0x1C 0 0x1D 0 0x80 3 0x81 3 0x83 3 0x18 0 0x19 0 0x1A 0 0x1B 0 2Op SBB |
0x2C 0 0x2D 0 0x80 5 0x81 5 0x83 5 0x28 0 0x29 0 0x2A 0 0x2B 0 2Op SUB |
0x34 0 0x35 0 0x80 6 0x81 6 0x83 6 0x30 0 0x31 0 0x32 0 0x33 0 2Op XOR |
0x0C 0 0x0D 0 0x80 1 0x81 1 0x83 1 0x08 0 0x09 0 0x0A 0 0x0B 0 2Op OR |
0xA8 0 0xA9 0 0xF6 0 0xF7 0 0xF7 0 0x84 0 0x85 0 0x84 0 0x85 0 2Op TEST |
0xFE 0 0xFF 0 0x40 0 IncDec INC |
0xFE 1 0xFF 1 0x48 0 IncDec DEC |
0xF6 3 0xF7 3 NegNot NEG |
0xF6 2 0xF7 2 NegNot NOT |
0xF6 4 0xF7 4 NegNot MUL |
0xF6 6 0xF7 6 NegNot DIV |
0xF6 7 0xF7 7 NegNot IDIV |
0x8D 1 LxS LEA |
0xC5 1 LxS LDS |
0xC4 1 LxS LES |
0xB20F 2 LxS LSS |
0xB40F 2 LxS LFS |
0xB50F 2 LxS LGS |
1 0xFF 4 1 0xE9 1 0xEB Jxx JMP |
1 0xFF 2 1 0xE8 0 0 Jxx CALL |
0 0 0 0 0 1 0xE3 Jxx JECXZ |
0 0 0 0 0 2 0xE367 Jxx JCXZ |
0 0 0 0 0 1 0xE2 Jxx LOOP |
0 0 0 0 0 1 0xE1 Jxx LOOPZ |
0 0 0 0 0 1 0xE0 Jxx LOOPNZ |
0 0 0 2 0x840F 1 0x74 Jxx JZ |
0 0 0 2 0x800F 1 0x70 Jxx JO |
0 0 0 2 0x810F 1 0x71 Jxx JNO |
0 0 0 2 0x820F 1 0x72 Jxx JC |
0 0 0 2 0x830F 1 0x73 Jxx JNC |
0 0 0 2 0x850F 1 0x75 Jxx JNZ |
0 0 0 2 0x860F 1 0x76 Jxx JNA |
0 0 0 2 0x870F 1 0x77 Jxx JA |
0 0 0 2 0x880F 1 0x78 Jxx JS |
0 0 0 2 0x890F 1 0x79 Jxx JNS |
0 0 0 2 0x8A0F 1 0x7A Jxx JPE |
0 0 0 2 0x8B0F 1 0x7B Jxx JPO |
0 0 0 2 0x8C0F 1 0x7C Jxx JL |
0 0 0 2 0x8D0F 1 0x7D Jxx JGE |
0 0 0 2 0x8E0F 1 0x7E Jxx JLE |
0 0 0 2 0x8F0F 1 0x7F Jxx JG |
: JE JZ ; |
: JB JC ; |
: JNAE JC ; |
: JAE JNC ; |
: JNB JNC ; |
: JNE JNZ ; |
: JBE JNA ; |
: JNBE JA ; |
: JP JPE ; |
: JNP JPO ; |
: JNGE JL ; |
: JNL JGE ; |
: JNG JLE ; |
: JNLE JG ; |
: LOOPE LOOPZ ; |
: LOOPNE LOOPNZ ; |
0x02 ShIFt RCL |
0x03 ShIFt RCR |
0x00 ShIFt ROL |
0x01 ShIFt ROR |
0x04 ShIFt SAL |
0x07 ShIFt SAR |
0x04 ShIFt SHL |
0x05 ShIFt SHR |
0xBE0F 0xBF0F MOVxx MOVSX |
0xB60F 0xB70F MOVxx MOVZX |
0 0xA30F 4 0xBA0F Bit BT |
0 0xBB0F 7 0xBA0F Bit BTC |
0 0xB30F 6 0xBA0F Bit BTR |
0 0xAB0F 5 0xBA0F Bit BTS |
0x970F SETxx SETA |
0x930F SETxx SETAE |
0x920F SETxx SETC |
0x960F SETxx SETNA |
0x940F SETxx SETZ |
0x9F0F SETxx SETG |
0x9D0F SETxx SETGE |
0x9C0F SETxx SETL |
0x9E0F SETxx SETLE |
0x950F SETxx SETNZ |
0x900F SETxx SETO |
0x910F SETxx SETNO |
0x980F SETxx SETS |
0x990F SETxx SETNS |
0x9A0F SETxx SETP |
0x9B0F SETxx SETNP |
: SETNBE SETA ; |
: SETNB SETAE ; |
: SETNC SETAE ; |
: SETB SETC ; |
: SETNAE SETC ; |
: SETBE SETNA ; |
: SETE SETZ ; |
: SETNLE SETG ; |
: SETNL SETGE ; |
: SETNGE SETL ; |
: SETNG SETLE ; |
: SETNE SETNZ ; |
: SETPE SETP ; |
: SETPO SETNP ; |
0xA40F 0xA50F SHxD SHLD |
0xAC0F 0xAD0F SHxD SHRD |
0xBC0F BSx BSF |
0xBD0F BSx BSR |
0x73 Rxx RC |
0x72 Rxx RNC |
0x75 Rxx RZ |
0x74 Rxx RNZ |
0x76 Rxx RA |
0x77 Rxx RNA |
0x7A Rxx RPO |
0x7B Rxx RPE |
0x71 Rxx RO |
0x70 Rxx RNO |
0x7E Rxx RG |
0x7F Rxx RNG |
0x7D Rxx RL |
0x7C Rxx RNL |
: RE RZ ; |
: RB RC ; |
: RNAE RC ; |
: RAE RNC ; |
: RNB RNC ; |
: RNE RNZ ; |
: RBE RNA ; |
: RNBE RA ; |
: RP RPE ; |
: RNP RPO ; |
: RNGE RL ; |
: RGE RNL ; |
: RLE RNG ; |
: RNLE RG ; |
PREVIOUS |
ALSO FORTH DEFINITIONS |
: Code ( -- ) |
HEADER STARTCODE ; |
: STARTCODE STARTCODE ; |
: USE16 ( --> ) |
2 TO *DefDatasz |
; |
: USE32 ( --> ) |
4 TO *DefDatasz |
; |
S_ASSEM DEFINITIONS |
: MOVSD 0xA5 C, *DefDatasz 2 = IF 0x66 C, THEN ; |
: MOVSW 0xA5 C, *DefDatasz 4 = IF 0x66 C, THEN ; |
: SEG SEG ; |
: PUBLIC PUBLIC ; |
: ENDCODE ENDCODE ; |
: PUSH PUSH ; |
: POP POP ; |
: MOV MOV ; |
: INT INT ; |
: OUT OUT ; |
: IN IN ; |
: XCHG XCHG ; |
: IMUL IMUL ; |
: ALIGN ALIGN ; |
PREVIOUS |
PREVIOUS DEFINITIONS |
\EOF |
USE16 |
Code ZZ |
mov bp, msg |
msg: ; EQU 4444H |
RET |
ENDCODE |
\EOF |
C" DBG" FIND NIP |
[IF] |
ALSO S_ASSEM |
mov Ebp, msg |
USE16 |
DBG mov bp, msg |
[THEN] |
\S |
Code ZZ |
ADD EBX, {KEY} |
ADD EBX, 44H |
ADD EBX, 4444444H |
WWW: MOV EAX, WWW+4 |
MOV EAX, [EBP+EDX*4] |
FOR 0x44444 , |
JMP SHORT SS1 |
SS1: JMP SS2 |
SS2: |
EndCode |
' ZZ 20 DUMP |
\ 4B22AE 09C0 OR EAX , EAX |
\ http://win32asm.chat.ru/ |
/programs/develop/SPForth/devel/~mak/asm/ASM_SIF.F |
---|
0,0 → 1,40 |
REQUIRE [IF] ~MAK\CompIF.f |
C" I'" FIND NIP |
[IF] |
: I' BL WORD FIND 0= IF -321 THROW THEN ( -? ) ; |
[THEN] |
0x75 CONSTANT 0= 0x74 CONSTANT 0<> 0x79 CONSTANT 0< |
0x78 CONSTANT 0>= 0x7D CONSTANT < 0x7C CONSTANT >= |
0x7F CONSTANT <= 0x7E CONSTANT > 0x73 CONSTANT U< |
0x72 CONSTANT U>= 0x77 CONSTANT U<= 0x76 CONSTANT U> |
0x71 CONSTANT OV 0x70 CONSTANT NOV 0xE1 CONSTANT <>C0= |
0xE2 CONSTANT C0= 0xE0 CONSTANT ?C0= 0xE3 CONSTANT C0<> |
: SIF ( - a) I' EXECUTE C, HERE ( origin) 0 C, ( blank) ; |
: SWHILE ( a1 "opcode" - a2 a1) SIF SWAP ; |
: STHEN ( a -) HERE OVER 1+ - SWAP C! ; |
: SELSE ( a - a') 0xEB ( short jmp) C, |
HERE OVER - SWAP C! HERE 0 C, ; |
: SBEGIN ( - a) HERE ; |
: SUNTIL_ ( a opc -) C, HERE 1+ - C, ; |
: SUNTIL ( a -) I' EXECUTE SUNTIL_ ; |
: SAGAIN ( a -) 0xEB SUNTIL_ ; |
: SREPEAT ( a a1 -) SAGAIN STHEN ; |
: SLOOP ( a -) 0xE2 SUNTIL_ ; |
: SLOOPZ ( a -) 0xE1 SUNTIL_ ; |
: SLOOPNZ ( a -) 0xE0 SUNTIL_ ; |
: LIF ( opcode - a) I' EXECUTE 0xF10 + W, HERE ( origin) 0 , ( blank) ; |
: LWHILE ( a1 opcode - a2 a1) LIF SWAP ; |
: LTHEN ( a -) HERE OVER CELL+ - SWAP ! ; |
: LELSE ( a - a') 0xE9 ( short jmp) C, |
HERE OVER - SWAP ! HERE 0 , ; |
: LUNTIL ( a opc -) I' EXECUTE 0xF10 + W, HERE CELL+ - , ; |
: LAGAIN ( a -) 0xE9 C, HERE CELL+ - , ; |
: LREPEAT ( a -) LAGAIN LTHEN ; |
: II BL WORD FIND1 0= ; |
/programs/develop/SPForth/devel/~mak/asm/asmbase.f |
---|
0,0 → 1,237 |
~mak\utils.f |
CREATE GetOp_STR 80 ALLOT |
C" SkipDelimiters" FIND NIP 0= |
[IF] |
: 2+ 2 + ; |
: 0! OFF ; |
: 1+! incr ; |
: 1-! DECR ; |
: EndOfChunk ( -- flag ) |
>IN @ SOURCE NIP < 0= \ >IN ¥ ¬¥ìè¥, 祬 ¤«¨ ç ª |
; |
: CharAddr ( -- c-addr ) |
SOURCE DROP >IN @ + |
; |
: PeekChar ( -- char ) |
CharAddr C@ \ ᨬ¢®« ¨§ ⥪ã饣® § 票ï >IN |
; |
: GetChar ( -- char flag ) |
EndOfChunk |
IF 0 FALSE |
ELSE PeekChar TRUE THEN |
; |
: IsDelimiter ( char -- flag ) |
BL 1+ < ; |
: OnDelimiter ( -- flag ) |
GetChar SWAP IsDelimiter AND |
; |
: SkipDelimiters ( -- ) \ ¯à®¯ãáâ¨âì ¯à®¡¥«ìë¥ á¨¬¢®«ë |
BEGIN |
OnDelimiter |
WHILE |
>IN 1+! |
REPEAT |
; |
: RDROP POSTPONE R>DROP ; IMMEDIATE |
[THEN] |
: OnNotDelimiter_ ( C -- flag ) |
DUP [CHAR] 0 U< IF DROP FALSE EXIT THEN |
DUP [CHAR] : U< IF DROP TRUE EXIT THEN |
DUP [CHAR] @ U< IF DROP FALSE EXIT THEN |
DUP [CHAR] [ U< IF DROP TRUE EXIT THEN |
DUP [CHAR] _ = IF DROP TRUE EXIT THEN |
DUP [CHAR] a U< IF DROP FALSE EXIT THEN |
DUP [CHAR] { U< IF DROP TRUE EXIT THEN |
DROP FALSE |
; |
: SkipWord_ ( -- ) \ ¯à®¯ãáâ¨âì term ᨬ¢®«ë |
BEGIN |
GetChar IF OnNotDelimiter_ THEN |
WHILE |
>IN 1+! |
REPEAT ; |
: ParseWord_ ( -- c-addr u ) |
CharAddr >IN @ |
SkipWord_ |
>IN @ - NEGATE ; |
C" UPPER" FIND NIP 0= |
[IF] |
BASE @ HEX |
: UPC ( c -- c' ) |
DUP [CHAR] Z U> |
IF DF AND |
THEN ; |
BASE ! |
: UPPER ( ADDR LEN -- ) |
0 ?DO COUNT UPC OVER 1- C! LOOP DROP ; |
[THEN] |
: IN>R POSTPONE >IN |
POSTPONE @ |
POSTPONE >R ; IMMEDIATE |
: R>IN POSTPONE R> |
POSTPONE >IN |
POSTPONE ! ; IMMEDIATE |
: GetOp_BS ParseWord_ GetOp_STR PLACE GetOp_STR ; |
: non-term 1 GetOp_STR C! PeekChar GetOp_STR 1+ C! >IN 1+! GetOp_STR ; |
: TERM-STR CharAddr SkipWord_ CharAddr OVER - |
GetOp_STR PLACE GetOp_STR DUP COUNT UPPER ; |
\ types: 1 - non-term (comments, etc.) |
\ 2 - number |
\ 3 - name |
\ 4 - "-bracketed string |
\ 5 - '-bracketed string |
CREATE XXX 0 , |
: (GetOp) ( --> string type ) |
SkipDelimiters |
GetChar 0= IF DROP XXX FALSE EXIT THEN |
DUP [CHAR] 0 < |
IF DUP [CHAR] " = |
IF [CHAR] " GetOp_BS 4 EXIT |
THEN |
[CHAR] ' = |
IF [CHAR] ' GetOp_BS 5 EXIT |
THEN non-term 1 EXIT |
THEN |
DUP [CHAR] : < |
IF DROP TERM-STR 2 EXIT |
THEN |
OnNotDelimiter_ |
IF TERM-STR 3 EXIT |
THEN non-term 1 ; |
: IFNOT POSTPONE 0= |
POSTPONE IF ; IMMEDIATE |
1000 ALLOT |
HERE CONSTANT LS0 |
VARIABLE LSP |
LS0 LSP ! |
: ADDNUMOBJECT ( name addr type --> ) |
-11 LSP +! |
LSP @ C! |
11 LSP @ 1+ W! |
LSP @ 3 + ! |
LSP @ 7 + ! ; |
: AddStrObject ( name addr type --> ) |
ROT |
DUP C@ 1+ NEGATE LSP +! |
COUNT LSP @ PLACE \ addr type |
-7 LSP +! |
LSP @ C! |
LSP @ 7 + C@ 8 + |
LSP @ 1+ W! |
LSP @ 3 + ! ; |
0 |
1 FIELD L_TYPE |
2 FIELD L_SIZE |
4 FIELD L_ADDR |
0 FIELD L_NAME |
DROP |
: FindStrObject ( name type --> addr true | false ) |
LSP @ >R |
BEGIN R@ L_SIZE W@ |
WHILE |
DUP R@ L_TYPE C@ = |
IF OVER R@ L_SIZE W@ 7 - |
R@ L_NAME R@ L_SIZE W@ 7 - COMPARE 0= |
IF 2DROP R> L_ADDR @ TRUE EXIT |
THEN |
THEN R@ L_SIZE W@ R> + >R |
REPEAT 2DROP RDROP FALSE ; |
CREATE NullString 0 , |
: ConvertString ; |
: S= ( c-addr1 c-addr2 --> true | c-addr1 false ) |
OVER COUNT ROT COUNT |
COMPARE |
IF FALSE |
ELSE DROP TRUE |
THEN ; |
: ?S= ( flag n R: >IN --> R: >IN | -->> n true ) |
SWAP |
IF 2R> 2DROP TRUE EXIT |
THEN DROP |
; |
ALSO FORTH DEFINITIONS |
: VAL ( ADDR -- UD2 FLAG ) |
0 0 ROT COUNT >NUMBER NIP 0= ; |
VARIABLE CUR-PAB |
HERE 0 , CUR-PAB ! |
: ?PABLIC ( CFA -- FLAG ) |
CUR-PAB @ |
BEGIN 2DUP @ U< |
WHILE @ |
REPEAT CELL+ @ = ; |
: PABLIC ( -- ) |
HERE CUR-PAB @ , LAST @ NAME> , CUR-PAB ! ; |
: >L |
-4 LSP +! |
LSP @ ! ; |
: L> |
LSP @ @ |
4 LSP +! ; |
: ERR_ TRUE ABORT" " ; |
C" 1-!" FIND NIP 0= |
[IF] |
: 1-! ( ADDR -- ) |
DUP>R @ 1- R> ! ; |
[THEN] |
C" ON" FIND NIP 0= |
[IF] |
: ON ( ADDR -- ) |
TRUE SWAP ! ; |
[THEN] |
C" ?PAIRS" FIND NIP 0= |
[IF] |
: ?PAIRS XOR ABORT" conditionals not paired" ; |
[THEN] |
\ : 'Alias ' Alias ; |
PREVIOUS DEFINITIONS |
/programs/develop/SPForth/devel/~mak/asm |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/SPForth/devel/~mak/author.txt |
---|
0,0 → 1,0 |
Mihail Maksimov [mak@rtc.ru] |
/programs/develop/SPForth/devel/~mak/case.f |
---|
0,0 → 1,33 |
VARIABLE CSP \ Óêàçàòåëü ñòåêà êîíòðîëÿ |
: CASE |
CSP @ SP@ CSP ! ; IMMEDIATE |
: ?OF_ |
POSTPONE IF POSTPONE DROP ; IMMEDIATE |
: OF |
POSTPONE OVER POSTPONE = POSTPONE ?OF_ ; IMMEDIATE |
: ENDOF |
POSTPONE ELSE ; IMMEDIATE |
: DUPENDCASE |
BEGIN SP@ CSP @ <> WHILE POSTPONE THEN REPEAT |
CSP ! ; IMMEDIATE |
: ENDCASE |
POSTPONE DROP POSTPONE DUPENDCASE |
; IMMEDIATE |
: OF\ |
POSTPONE OVER POSTPONE <> POSTPONE IF ; IMMEDIATE |
: OF; |
POSTPONE OVER POSTPONE = POSTPONE IF 2>R |
POSTPONE DUPENDCASE 2R> |
POSTPONE DROP ; IMMEDIATE |
HEX |
/programs/develop/SPForth/devel/~mak/djgpp/gdis.F |
---|
0,0 → 1,637 |
\ HSSSS H. |
[IFNDEF] BREAK |
: BREAK POSTPONE EXIT POSTPONE THEN ; IMMEDIATE |
[THEN] |
C" VECT-CODE" FIND NIP 0= |
[IF] ' _VECT-CODE VALUE VECT-CODE |
[ELSE] ' _VECT-CODE TO VECT-CODE |
[THEN] |
C" USER-CODE" FIND NIP 0= |
[IF] ' _USER-CODE VALUE USER-CODE |
[ELSE] ' _USER-CODE TO USER-CODE |
[THEN] |
C" USER-VALUE-CODE" FIND NIP 0= |
[IF] ' _USER-VALUE-CODE VALUE USER-VALUE-CODE |
[ELSE] ' _USER-VALUE-CODE TO USER-VALUE-CODE |
[THEN] |
\ ' _CONSTANT-CODE TO CONSTANT-CODE |
\ ' _CREATE-CODE TO CREATE-CODE |
\ ' _CLITERAL-CODE TO CLITERAL-CODE |
\ ' _SLITERAL-CODE TO SLITERAL-CODE |
BASE @ HEX |
: DUP5B?0 ( C -- C FLAG ) |
DUP 0C7 AND 5 = \ ADD|OR|ADC|SBB|AND|SUB|XOR|CMP EAX, # X |
OVER 0FC AND 0B8 = OR \ MOV EAX|EBX|ECX|EDX, # X |
; |
: DUP5B?1 ( C -- C FLAG ) |
DUP 0FD AND 0A1 = \ MOV EAX, X | X , EAX |
; |
: DUP6B?0 ( W -- W FLAG ) |
DUP C3FF AND C081 = \ ADD|OR|ADC|SBB|AND|SUB|XOR|CMP EAX, # X |
OVER 0C7 = OR \ MOV [EAX], # X |
\ OVER 878B = OR \ MOV EAX, X [EDI] |
\ OVER 878D = OR \ LEA EAX, X [EDI] |
\ OVER 873B = OR \ CMP EAX, X [EDI] |
; |
: DUP6B?1 ( W -- W FLAG ) |
DUP 00501 = \ ADD X , EAX |
OVER 053B = OR \ CMP EAX, X |
\ X00X.X101 1000.10X1 |
OVER 67FD AND 0589 = OR \ MOV X {[EBP]}, E(ACDB)X | E(ACDB)X , X {[EBP]} |
OVER 0589 = OR \ MOV X , EAX |
OVER 058D = OR \ MOV EAX, X |
OVER 1D8D = OR \ MOV EBX, X |
OVER 808B = OR \ MOV EAX, X [EAX] |
OVER 05FF = OR \ INC X |
\ OVER FCFF AND C0C7 = OR \ MOV EAX|EBX|ECX|EDX, # X |
; |
: UV> ' >BODY @ TlsIndex@ + POSTPONE LITERAL ; IMMEDIATE |
\ : GGGX H. ." -0x" TlsIndex@ H. ." -0x" RESERVE H. ; |
: .EDI ( ADDR n -- ADDR1 ) |
." [ |
DROP 2+ DUP @ |
\ ." XX" DUP H. |
TlsIndex@ + |
CASE |
R0 OF ." T_R0" ENDOF |
S0 OF ." T_S0" ENDOF |
WARNING OF ." T_WARNING" ENDOF |
STATE OF ." T_STATE" ENDOF |
BLK OF ." T_BLK" ENDOF |
CURFILE OF ." T_CURFILE" ENDOF |
HANDLER OF ." T_HANDLER" ENDOF |
HLD OF ." T_HLD" ENDOF |
BASE OF ." T_BASE" ENDOF |
PAD OF ." T_PAD" ENDOF |
ER-A OF ." T_ERminusA" ENDOF |
ER-U OF ." T_ERminusU" ENDOF |
DOES>A OF ." T_DOESgreatA" ENDOF |
#TIB OF ." T_nTIB" ENDOF |
>IN OF ." T_greatIN" ENDOF |
UV> TIB OF ." T_TIB" ENDOF |
ATIB OF ." T_ATIB" ENDOF |
UV> SOURCE-ID OF ." T_SOURCEminusID" ENDOF |
CURSTR OF ." T_CURSTR" ENDOF |
\ WBW-NFA OF ." T_WBWminusNFA" ENDOF |
\ WBW-OFFS OF ." T_WBWminusOFFS" ENDOF |
CURRENT OF ." T_CURRENT" ENDOF |
S-O OF ." T_SminusO" ENDOF |
UV> CONTEXT OF ." T_CONTEXT" ENDOF |
>OUT OF ." T_greatOUT" ENDOF |
W-CNT OF ." T_WminusCNT" ENDOF |
\ NNN OF ." T_NNN" ENDOF |
TlsIndex@ - RESERVE - DUP 0< IF CR ." (%edi) RESERVE " ABORT THEN |
." reserve+0x" |
H. ." +edi]" CELL+ EXIT |
ENDCASE ." -main_task+edi]" CELL+ |
; |
\ RESERVE - DUP 0< IF CR ." (%edi) RESERVE " |
\ TlsIndex@ H. RESERVE H. TlsIndex@ - H. H. ABORT THEN |
\ ." reserve+0x" GGGX ." +edi]" CELL+ EXIT |
\ ." reserve+0x" TlsIndex@ - H. RESERVE H. ." +edi]" CELL+ EXIT |
\ ENDCASE ." -main_task+edi]" CELL+ ; |
: H.-H ." 0" BASE @ HEX SWAP U>D (D.) TYPE BASE ! ." H" ; |
: 1_GD_STEP ( ADDR n -- ADDR1 ) |
CR ." DB " 0xFF AND H.-H 1+ ; |
: 2_GD_STEP ( ADDR -- ADDR1 ) |
1_GD_STEP ." ," DUP C@ H.-H 1+ ; |
: 3_GD_STEP ( ADDR -- ADDR1 ) |
2_GD_STEP ." ," DUP C@ H.-H 1+ ; |
: 4_GD_STEP ( ADDR -- ADDR1 ) |
3_GD_STEP ." ," DUP C@ H.-H 1+ ; |
[IFNDEF] OCTAL : OCTAL 8 BASE ! ; |
[THEN] |
: \ooo. ( n1 -- ) |
BASE @ >R DECIMAL |
0 (D.) TYPE |
R> BASE ! ; |
: ATYPE ( arrd len -- ) |
DUP 0= IF 2DROP BREAK |
[CHAR] ' EMIT |
0 ?DO COUNT DUP [CHAR] ' = IF ." '" THEN EMIT |
LOOP DROP |
[CHAR] ' EMIT |
; |
0x5F535953 CONSTANT 'SYS_' |
: GTYPE |
OVER @ 'SYS_' = IF 4 - SWAP 4 + SWAP TYPE BREAK |
." cfa_" |
2DUP S" CONTEXT" COMPARE 0= IF 2DROP ." _CONTEXT" BREAK |
2DUP S" WORD" COMPARE 0= IF 2DROP ." _WORD" BREAK |
2DUP S" LEAVE" COMPARE 0= IF 2DROP ." _LEAVE" BREAK |
2DUP S" REPEAT" COMPARE 0= IF 2DROP ." _REPEAT" BREAK |
2DUP S" exit" COMPARE 0= IF 2DROP ." _exit" BREAK |
2DUP S" CHAR" COMPARE 0= IF 2DROP ." _CHAR" BREAK |
2DUP S" IF" COMPARE 0= IF 2DROP ." _IF" BREAK |
2DUP S" ELSE" COMPARE 0= IF 2DROP ." _ELSE" BREAK |
2DUP S" WHILE" COMPARE 0= IF 2DROP ." _WHILE" BREAK |
2DUP S" RESIZE" COMPARE 0= IF 2DROP ." _RESIZE" BREAK |
2DUP S" free" COMPARE 0= IF 2DROP ." _free" BREAK |
2DUP S" write" COMPARE 0= IF 2DROP ." _write" BREAK |
2DUP S" KEY_EVENT" COMPARE 0= IF 2DROP ." _KEY_EVENT" BREAK |
2DUP S" PAGE" COMPARE 0= IF 2DROP ." _PAGE" BREAK |
2DUP S" PAGE_EXECUTE_READWRITE" COMPARE 0= IF 2DROP ." _PAGE_EXECUTE_READWRITE" BREAK |
2DUP S" MEM_COMMIT" COMPARE 0= IF 2DROP ." _MEM_COMMIT" BREAK |
2DUP S" MEM_RESERVE" COMPARE 0= IF 2DROP ." _MEM_RESERVE" BREAK |
2DUP S" INVALID_HANDLE_VALUE" COMPARE 0= IF 2DROP ." _INVALID_HANDLE_VALUE" BREAK |
2DUP S" FILE_ATTRIBUTE_ARCHIVE" COMPARE 0= IF 2DROP ." _FILE_ATTRIBUTE_ARCHIVE" BREAK |
2DUP S" CREATE_ALWAYS" COMPARE 0= IF 2DROP ." _CREATE_ALWAYS" BREAK |
2DUP S" OPEN_EXISTING" COMPARE 0= IF 2DROP ." _OPEN_EXISTING" BREAK |
2DUP S" FILE_BEGIN" COMPARE 0= IF 2DROP ." _FILE_BEGIN" BREAK |
2DUP S" FILE_CURRENT" COMPARE 0= IF 2DROP ." _FILE_CURRENT" BREAK |
2DUP S" EXTERN" COMPARE 0= IF 2DROP ." _EXTERN" BREAK |
2DUP S" EXPORT" COMPARE 0= IF 2DROP ." _EXPORT" BREAK |
2DUP S" BREAK" COMPARE 0= IF 2DROP ." _BREAK" BREAK |
2DUP S" ERR" COMPARE 0= IF 2DROP ." _ERR" BREAK |
0 DO COUNT |
CASE |
[CHAR] @ OF ." _ld" ENDOF |
[CHAR] ! OF ." save" ENDOF |
[CHAR] = OF ." _equ" ENDOF |
[CHAR] < OF ." less" ENDOF |
[CHAR] > OF ." great" ENDOF |
[CHAR] + OF ." plus" ENDOF |
[CHAR] - OF ." minus" ENDOF |
[CHAR] * OF ." _mul" ENDOF |
[CHAR] / OF ." _div" ENDOF |
[CHAR] . OF ." dot" ENDOF |
[CHAR] : OF ." dcoma" ENDOF |
[CHAR] ; OF ." _end" ENDOF |
[CHAR] ? OF ." que" ENDOF |
[CHAR] ( OF ." _c" ENDOF |
[CHAR] ) OF ." cend" ENDOF |
[CHAR] [ OF ." _x" ENDOF |
[CHAR] ] OF ." _y" ENDOF |
[CHAR] { OF ." lsk" ENDOF |
[CHAR] } OF ." rsk" ENDOF |
[CHAR] , OF ." com" ENDOF |
[CHAR] ' OF ." tic" ENDOF |
[CHAR] ~ OF ." til" ENDOF |
[CHAR] ^ OF ." pic" ENDOF |
[CHAR] " OF ." dtic" ENDOF |
[CHAR] | OF ." l" ENDOF |
[CHAR] # OF ." n" ENDOF |
[CHAR] $ OF ." dol" ENDOF |
[CHAR] \ OF ." sl" ENDOF |
[CHAR] & OF ." and_" ENDOF |
I IF EMIT ENDOF |
[CHAR] 0 OF ." _0" ENDOF |
[CHAR] 1 OF ." _1" ENDOF |
[CHAR] 2 OF ." _2" ENDOF |
[CHAR] 3 OF ." _3" ENDOF |
[CHAR] 4 OF ." _4" ENDOF |
[CHAR] 5 OF ." _5" ENDOF |
[CHAR] 6 OF ." _6" ENDOF |
[CHAR] 7 OF ." _7" ENDOF |
[CHAR] 8 OF ." _8" ENDOF |
[CHAR] 9 OF ." _9" ENDOF |
EMIT |
0 ENDCASE |
LOOP DROP ; |
0 VALUE #GN |
: GN. ( ADDR -- ) |
DUP 0x80 + 0xFFFFFF00 AND 0= \ ABS 0x7F < |
IF H.-H EXIT THEN |
DUP HERE U< |
IF DUP WordByAddr |
OVER >R GTYPE ." +" |
R> 1- NAME> - DUP TO #GN H.-H |
ELSE NEGATE DUP WordByAddr |
>R >R |
R@ 1- NAME> - DUP TO #GN H.-H |
." -" R> R> GTYPE |
THEN |
; |
: .INT ( ADDR -- ADDR1 ) |
CR DUP HSSSS @ + |
@ OVER @ \ ." I=" 2DUP H. H. CR |
= |
IF ." DD " DUP @ H.-H |
ELSE ." DD " DUP @ GN. |
THEN CELL+ ; |
: .ADR ( ADDR -- ADDR1 ) |
CR ." DD " DUP @ GN. CELL+ ; |
: .ADR68 ( ADDR -- ADDR1 ) |
CR ." DD 68 " DUP @ DUP H. GN. CELL+ ; |
: 5_GD_STEP0 ( ADDR -- ADDR1 ) |
1_GD_STEP .INT ; |
: 5_GD_STEP1 ( ADDR -- ADDR1 ) |
1_GD_STEP .ADR ; |
: 6_GD_STEP0 ( ADDR -- ADDR1 ) |
2_GD_STEP .INT ; |
: 6_GD_STEP1 ( ADDR -- ADDR1 ) |
2_GD_STEP .ADR ; |
: 7_GD_STEP ( ADDR -- ADDR1 ) |
3_GD_STEP .ADR ; |
: 1A_GD_STEP ( ADDR c -- ADDR1 ) |
DROP 1+ DUP REL@ CELL+ GN. CELL+ ; |
: 2A_GD_STEP ( ADDR W -- ADDR1 ) |
CR ." DW " |
H.-H 2+ DUP REL@ CELL+ |
CR ." DD " GN. ." -$-4" CELL+ ; |
C" C>S" FIND NIP 0= |
[IF] : C>S ( c -- n ) 0xFF AND [ 0x7F INVERT ] LITERAL XOR 0x80 + ; |
[THEN] |
: J_GD_STEP_ |
0x70 - 3 * |
C" jo jnojb jaeje jnejbeja js jnsjp jnpjl jgejlejg " 1+ + |
CR 3 TYPE ." " 1+ DUP C@ C>S OVER + 1+ GN. 1+ |
; \ short |
: J_GD_STEP |
DUP >R |
0x70 - 3 * |
C" jo jnojb jaeje jnejbeja js jnsjp jnpjl jgejlejg " 1+ + |
CR ." ;" 3 TYPE ." " 1+ DUP C@ C>S OVER + 1+ GN. 1+ |
2- R> |
#GN IF 2_GD_STEP EXIT THEN |
J_GD_STEP_ |
; \ short |
: GD-STEP ( CFA -- CFA+N ) |
\ DUP 9 EMIT H. |
DUP C@ \ CFA N' |
DUP 0C3 = IF 1_GD_STEP EXIT THEN \ RET |
DUP 066 = IF 1_GD_STEP EXIT THEN \ D16: |
DUP 064 = IF 1_GD_STEP EXIT THEN \ FS: |
DUP 068 = IF 1_GD_STEP .INT EXIT THEN \ push X |
\ LOOPNZ X LOOPZ X LOOP X JECXZ X IN AL, 0 IN EAX, 0 OUT 0 , AL OUT 0 , EAX |
\ 1110.0XXX |
DUP 0F8 AND 0E0 = IF 2_GD_STEP EXIT THEN |
\ 010X.XXXX |
DUP 0E0 AND 040 = IF 1_GD_STEP EXIT THEN \ INC|DEC|PUSH|POP E_X |
\ 0111.0XXX |
DUP 0F0 AND 070 = IF J_GD_STEP EXIT THEN \ JO short |
DUP 0EB = IF 2_GD_STEP EXIT THEN \ JMP |
DUP 090 = IF 1_GD_STEP EXIT THEN \ !!!!! |
DUP 099 = IF 1_GD_STEP EXIT THEN \ CDQ |
DUP 0A4 = IF 1_GD_STEP EXIT THEN \ |
DUP 0A5 = IF 1_GD_STEP EXIT THEN \ |
DUP 0A6 = IF 1_GD_STEP EXIT THEN \ |
DUP 0AA = IF 1_GD_STEP EXIT THEN \ |
DUP 0AB = IF 1_GD_STEP EXIT THEN \ |
DUP 0AC = IF 1_GD_STEP EXIT THEN \ |
DUP 0AE = IF 1_GD_STEP EXIT THEN \ |
DUP 024 = IF 2_GD_STEP EXIT THEN \ AND AL , # 1 |
DUP 02C = IF 2_GD_STEP EXIT THEN \ SUB AL , # 1 |
DUP 03C = IF 2_GD_STEP EXIT THEN \ CMP AL , # 1 |
DUP 0CD = IF 2_GD_STEP EXIT THEN \ INT X |
DUP 0B0 = IF 2_GD_STEP EXIT THEN \ |
DUP 0F2 = IF 1_GD_STEP EXIT THEN \ |
DUP 0F3 = IF 2_GD_STEP EXIT THEN \ REPZ CMPSB |
DUP 0FC = IF 1_GD_STEP EXIT THEN \ CLD |
DUP 0FD = IF 1_GD_STEP EXIT THEN \ STD |
DUP 09C = IF 1_GD_STEP EXIT THEN \ PUSHFD |
DUP 09D = IF 1_GD_STEP EXIT THEN \ POPFD |
DUP5B?0 IF 5_GD_STEP0 EXIT THEN |
DUP5B?1 IF 5_GD_STEP1 EXIT THEN |
DUP 0E9 = IF CR ." DB 0E9H" |
CR ." DD " 1A_GD_STEP ." -$-4" EXIT THEN \ JMP |
DUP 0E8 = IF CR ." call " 1A_GD_STEP |
DUP CELL- REL@ CELL+ |
DUP USER-VALUE-CODE = |
OVER USER-CODE = OR |
IF CR ." DD reserve+" |
DROP DUP @ RESERVE - H.-H CELL+ |
EXIT |
THEN |
CONSTANT-CODE = |
IF .INT EXIT |
THEN |
DUP CELL- REL@ CELL+ |
CREATE-CODE = |
IF .INT 2DUP U> |
IF DUP C@ 1_GD_STEP |
BEGIN 2DUP U> |
WHILE DUP 7 AND |
IF ." ," |
ELSE CR ." DB " |
THEN DUP C@ H.-H 1+ |
REPEAT |
THEN EXIT |
THEN |
DUP CELL- REL@ CELL+ |
DUP CLITERAL-CODE = |
OVER ALITERAL-CODE = OR |
SWAP SLITERAL-CODE = OR |
IF CR ." DB " DUP COUNT DUP>R DUP H.-H |
CR ." DB " ATYPE ." ,0" |
R> + 2+ EXIT |
THEN |
DUP CELL- REL@ CELL+ |
VECT-CODE = |
IF .ADR EXIT |
THEN |
EXIT THEN \ CALL |
\ 1110.11XX |
DUP FC AND EC = IF 1_GD_STEP EXIT THEN \ IN|OUT EAX AL, DX | DX, EAX EL |
DROP |
DUP W@ \ CR ." G=" DUP H. |
DUP3B?[EBP] IF 3_GD_STEP EXIT THEN |
DUP3B? IF 3_GD_STEP EXIT THEN |
DUP2B? IF 2_GD_STEP EXIT THEN |
DUP 0DB0A = IF 2_GD_STEP EXIT THEN \ OR BL, BL |
DUP 0C90A = IF 2_GD_STEP EXIT THEN \ OR CL, CL |
DUP 0038B = IF 2_GD_STEP EXIT THEN \ MOV EAX, [EBX] |
DUP 0EC87 = IF 2_GD_STEP EXIT THEN \ |
DUP 0188A = IF 2_GD_STEP EXIT THEN \ MOV BL, [EAX] |
DUP 07D8B = IF 3_GD_STEP EXIT THEN \ MOV EDI, X [EBP] |
DUP 0C58B = IF 2_GD_STEP EXIT THEN \ MOV EAX, EBP |
DUP 0E08B = IF 2_GD_STEP EXIT THEN \ MOV EAX, EBP |
DUP 0E88B = IF 2_GD_STEP EXIT THEN \ MOV EAX, EBP |
DUP 0458F = IF 3_GD_STEP EXIT THEN \ POP X [EBP] |
DUP 075FF = IF 3_GD_STEP EXIT THEN \ PUSH X [EBP] |
DUP 0C009 = IF 2_GD_STEP EXIT THEN \ OR EAX, EAX |
DUP 0E3FF = IF 2_GD_STEP EXIT THEN \ JMP EBX |
\ DUP 0D2FF = IF 2_GD_STEP EXIT THEN \ JMP EDX |
DUP 0E2FF = IF 2_GD_STEP EXIT THEN \ JMP EDX |
DUP 0D0FF = IF 2_GD_STEP EXIT THEN |
DUP 0D2FF = IF 2_GD_STEP EXIT THEN \ CALL EDX |
DUP 023FF = IF 2_GD_STEP EXIT THEN \ JMP [EBX] |
DUP 0F903 = IF 2_GD_STEP EXIT THEN \ ADD EDI, ECX |
DUP 0F103 = IF 2_GD_STEP EXIT THEN \ ADD ESI, ECX |
DUP 0F003 = IF 2_GD_STEP EXIT THEN \ ADD ESI, EAX |
DUP 0D703 = IF 2_GD_STEP EXIT THEN \ ADD EDX, EDI |
DUP 0C703 = IF 2_GD_STEP EXIT THEN \ ADD EAX, EDI |
DUP 0DF03 = IF 2_GD_STEP EXIT THEN \ ADD EBX, EDI |
DUP 0E103 = IF 2_GD_STEP EXIT THEN \ ADD ESP, ECX |
DUP 0E303 = IF 2_GD_STEP EXIT THEN \ ADD ESP, EBX |
DUP 0E803 = IF 2_GD_STEP EXIT THEN \ ADD EBP, EAX |
DUP 0EB03 = IF 2_GD_STEP EXIT THEN |
DUP 0F803 = IF 2_GD_STEP EXIT THEN \ ADD EDI, EAX |
DUP 0E903 = IF 2_GD_STEP EXIT THEN \ ADD EBP, ECX |
DUP 0523 = IF 2_GD_STEP .INT EXIT THEN \ AND EAX , 55C18F |
DUP 052B = IF 2_GD_STEP .INT EXIT THEN \ SUB EAX , 55C18F |
DUP 0C72B = IF 2_GD_STEP EXIT THEN \ SUB EAX, EDI |
DUP 0CD2B = IF 2_GD_STEP EXIT THEN \ SUB ECX, EBP |
DUP 0CF2B = IF 2_GD_STEP EXIT THEN \ SUB ECX, EDI |
DUP 0D72B = IF 2_GD_STEP EXIT THEN \ SUB EDX, EDI |
DUP 0F22B = IF 2_GD_STEP EXIT THEN \ SUB ESI, EDX |
DUP 0DE2B = IF 2_GD_STEP EXIT THEN \ SUB EBX, ESI |
DUP 0E32B = IF 2_GD_STEP EXIT THEN \ SUB ESP, EBX |
DUP 0E82B = IF 2_GD_STEP EXIT THEN \ SUB EBP, EAX |
DUP 0FF33 = IF 2_GD_STEP EXIT THEN \ xor EDI, EDI |
DUP 0D233 = IF 2_GD_STEP EXIT THEN \ xor EDX, EDX |
DUP 0F33B = IF 2_GD_STEP EXIT THEN \ CMP ESI, EBX |
DUP 0C13A = IF 2_GD_STEP EXIT THEN \ CMP AL, CL |
DUP 0C23A = IF 2_GD_STEP EXIT THEN \ CMP AL, DL |
DUP 0D83A = IF 2_GD_STEP EXIT THEN \ CMP BL, AL |
DUP 0EB80 = IF 3_GD_STEP EXIT THEN \ SUB BL, # X |
DUP 0FB80 = IF 3_GD_STEP EXIT THEN \ CMP BL, # X |
DUP 0C0C6 = IF 3_GD_STEP EXIT THEN \ MOV AL, # 0 |
DUP 00081 = IF 2_GD_STEP .INT EXIT THEN \ ADD [EAX] , # 800 |
DUP 0581 = IF 2_GD_STEP .ADR .INT EXIT THEN \ ADD X , # Y |
DUP 0E181 = IF 2_GD_STEP .INT EXIT THEN \ AND ECX, # FF |
DUP 0E281 = IF 2_GD_STEP .INT EXIT THEN \ AND EDX, # FF |
DUP 0F981 = IF 2_GD_STEP .INT EXIT THEN \ CMP ECX, # 1 |
DUP 04583 = IF 4_GD_STEP EXIT THEN \ ADD F8 [EBP] , # 2 |
DUP 0EB83 = IF 3_GD_STEP EXIT THEN \ SUB EBX, # X |
DUP 0FB83 = IF 3_GD_STEP EXIT THEN \ CMP EBX, # X |
DUP 0EE83 = IF 3_GD_STEP EXIT THEN \ SUB ESI, # X |
DUP 0E183 = IF 3_GD_STEP EXIT THEN \ AND ECX, # 3 |
DUP 0E383 = IF 3_GD_STEP EXIT THEN \ AND EBX, # 3 |
DUP 0EC83 = IF 3_GD_STEP EXIT THEN |
DUP 0F9C1 = IF 3_GD_STEP EXIT THEN \ SAR ECX, # 2 |
DUP 01889 = IF 2_GD_STEP EXIT THEN \ MOV [EAX], EBX |
DUP 04889 = IF 3_GD_STEP EXIT THEN \ MOV X [EAX], ECX |
DUP 04289 = IF 3_GD_STEP EXIT THEN \ MOV 4 [EDX], EAX |
DUP 04B89 = IF 3_GD_STEP EXIT THEN \ MOV 2 [EBX], ECX |
DUP 0468A = IF 3_GD_STEP EXIT THEN \ MOV AL, X [ESI] |
DUP 0088A = IF 2_GD_STEP EXIT THEN \ MOV CL, [EAX] |
DUP 0068B = IF 2_GD_STEP EXIT THEN \ MOV EAX, [ESI] |
DUP 01B8B = IF 2_GD_STEP EXIT THEN \ MOV EBX, [EBX] |
DUP DF8B = IF 2_GD_STEP EXIT THEN \ MOV EBX, EDI |
DUP EC8B = IF 2_GD_STEP EXIT THEN |
DUP 05089 = IF 3_GD_STEP EXIT THEN \ MOV X [EAX] , EDX |
DUP 0368B = IF 2_GD_STEP EXIT THEN \ MOV ESI, [ESI] |
DUP 0758B = IF 3_GD_STEP EXIT THEN \ MOV ESI, X [EBP] |
DUP 0408B = IF 3_GD_STEP EXIT THEN \ MOV EAX, X [EAX] |
DUP 0498B = IF 3_GD_STEP EXIT THEN \ MOV ECX, FC [ECX] |
DUP 04B8B = IF 3_GD_STEP EXIT THEN \ MOV ECX, 12 [EBX] |
DUP 0E58B = IF 2_GD_STEP EXIT THEN |
DUP 06D8D = IF 3_GD_STEP EXIT THEN \ LEA EBP, OFF-EBP [EBP] |
DUP 0C583 = IF 3_GD_STEP EXIT THEN \ ADD EBP, # OFF-EBP |
DUP 0ED83 = IF 3_GD_STEP EXIT THEN \ SUB EBP, # X |
DUP 0C483 = IF 3_GD_STEP EXIT THEN \ ADD ESP, # X |
DUP 0FA83 = IF 3_GD_STEP EXIT THEN \ CMP EDX, # 3 |
DUP 07D83 = IF 4_GD_STEP EXIT THEN \ CMP X [EBP] , # Y |
DUP 07D89 = IF 3_GD_STEP EXIT THEN \ MOV X [EBP], EDI |
DUP 0CC8B = IF 2_GD_STEP EXIT THEN |
DUP 0F58B = IF 2_GD_STEP EXIT THEN |
DUP 0FC8B = IF 2_GD_STEP EXIT THEN |
DUP 0F0FF AND |
0800F = IF 2A_GD_STEP EXIT THEN \ JNO X |
DUP 075F7 = IF 3_GD_STEP EXIT THEN \ DIV DWORD [EBP] |
DUP 0D9F7 = IF 2_GD_STEP EXIT THEN \ NEG ECX |
DUP 0DBF7 = IF 2_GD_STEP EXIT THEN \ NEG EBX |
DUP 0E3F7 = IF 2_GD_STEP EXIT THEN \ MUL EBX |
DUP 0EBF7 = IF 2_GD_STEP EXIT THEN \ IMUL EBX |
DUP 0FBF7 = IF 2_GD_STEP EXIT THEN \ IDIV EBX |
DUP 0F3F7 = IF 2_GD_STEP EXIT THEN \ DIV EBX |
DUP 0F60B = IF 2_GD_STEP EXIT THEN \ OR ESI, ESI |
DUP 0CE8B = IF 2_GD_STEP EXIT THEN \ MOV ECX, ESI |
DUP 0C48B = IF 2_GD_STEP EXIT THEN \ MOV EAX, ESP |
DUP 0F18B = IF 2_GD_STEP EXIT THEN \ MOV ESI, ECX |
DUP 0F08B = IF 2_GD_STEP EXIT THEN \ MOV ESI, EAX |
DUP 0D58B = IF 2_GD_STEP EXIT THEN \ MOV EDX, EBP |
DUP 0D78B = IF 2_GD_STEP EXIT THEN \ MOV EDX, EDI |
DUP 0DD8B = IF 2_GD_STEP EXIT THEN \ MOV EBX, EBP |
DUP 0FA8B = IF 2_GD_STEP EXIT THEN \ MOV EDI, EDX |
DUP 01A8B = IF 2_GD_STEP EXIT THEN \ MOV EBX, [EDX] |
DUP 0028B = IF 2_GD_STEP EXIT THEN \ MOV EAX, [EDX] |
DUP 0078B = IF 2_GD_STEP EXIT THEN \ MOV EAX, [EDI] |
DUP 088B = IF 2_GD_STEP EXIT THEN \ MOV ECX, [EAX] |
DUP 098B = IF 2_GD_STEP EXIT THEN \ MOV ECX, [ECX] |
DUP 0A8B = IF 2_GD_STEP EXIT THEN \ MOV ECX, [EDX] |
DUP 00C6 = IF 3_GD_STEP EXIT THEN \ MOV [EAX] , # x |
DUP 0688D = IF 3_GD_STEP EXIT THEN \ LEA EBP, 4 [EAX] |
DUP 0428D = IF 3_GD_STEP EXIT THEN \ LEA EAX , FE [EDX] |
DUP 0498D = IF 3_GD_STEP EXIT THEN \ LEA ECX, -1 [ECX] |
DUP 0488D = IF 3_GD_STEP EXIT THEN \ LEA ECX , FC [EAX] |
DUP 07F8D = IF 3_GD_STEP EXIT THEN \ LEA EDI, -1 [EDI] |
DUP 0528D = IF 3_GD_STEP EXIT THEN \ LEA EDX, -4 [EDX] |
\ DUP 01C8D = IF 3_GD_STEP EXIT THEN \ LEA EBX, [EDX] [EAX] |
DUP 0038F = IF 2_GD_STEP EXIT THEN \ POP [EBX] |
DUP 05DD1 = IF 3_GD_STEP EXIT THEN \ RCR [EBP], # 1 |
DUP 0D0D1 = IF 2_GD_STEP EXIT THEN \ RCL EAX, # 1 |
DUP 065D1 = IF 3_GD_STEP EXIT THEN \ SHL [EBP], # 1 |
DUP 0C0C1 = IF 3_GD_STEP EXIT THEN \ ROL [EBP], # 1 |
DUP 45FF = IF 3_GD_STEP EXIT THEN \ INC 0 [EBP] |
DUP 0310F = IF 2_GD_STEP EXIT THEN \ RDTSC |
DUP 873B = IF CR ." cmp " ." eax," .EDI EXIT THEN \ CMP EAX, X [EDI] |
DUP 878B = IF CR ." mov " ." eax," .EDI EXIT THEN \ MOV EAX, X [EDI] |
DUP 8F8B = IF CR ." mov " ." ecx," .EDI EXIT THEN \ MOV ECX, X [EDI] |
DUP 878D = IF CR ." lea " ." eax," .EDI EXIT THEN \ LEA EAX, X [EDI] |
DUP 87FF = IF CR ." inc DWORD" .EDI EXIT THEN \ INC 19F9 [EDI] |
DUP 8788 = IF CR ." mov al," .EDI EXIT THEN \ MOV 19F9 [EDI] , AL |
DUP 8789 = IF CR ." mov " .EDI ." ,eax" EXIT THEN \ MOV X [EDI], EAX |
DUP 8703 = IF CR ." add eax," .EDI EXIT THEN \ ADD EAX , X [EDI] |
DUP 8733 = IF CR ." xor eax," .EDI EXIT THEN \ XOR EAX , X [EDI] |
DUP 87C7 = IF CR ." mov " DROP DUP 6 + @ |
H. ." ," DUP @ .EDI 6 + EXIT THEN \ MOV X [EDI], # Y |
DUP 45C7 = IF 3_GD_STEP .INT EXIT THEN \ MOV X [EBP], # X |
DUP 3D83 = IF 2_GD_STEP .ADR DUP C@ 1_GD_STEP EXIT THEN \ MOV X [EBP], # X |
DUP 0533 = IF 2_GD_STEP .ADR EXIT THEN \ XOR X [EBP], X |
DUP 0503 = IF 2_GD_STEP .ADR EXIT THEN \ ADD EAX , X |
DUP 1501 = IF 2_GD_STEP .ADR EXIT THEN \ ADD X , EDX |
DUP 050B = IF 2_GD_STEP .ADR EXIT THEN \ OR EAX , X |
DUP 0D3B = IF 2_GD_STEP .ADR EXIT THEN \ CMP ECX , x |
DUP 2DF7 = IF 2_GD_STEP .ADR EXIT THEN \ IMUL x |
DUP 808D = IF 2_GD_STEP .INT EXIT THEN \ LEA EAX , 8700 [EAX] |
DUP 9A8D = IF 2_GD_STEP .INT EXIT THEN \ LEA EBX , 55C298 [EDX] |
DUP 01C7 = IF 2_GD_STEP .INT EXIT THEN \ MOV [ECX] , # 424648D |
DUP 0C0C7 = IF 2_GD_STEP .INT EXIT THEN \ MOV EAX, # X |
DUP 0C1C7 = IF 2_GD_STEP .INT EXIT THEN \ MOV ECX, # X |
DUP 0C069 = IF 2_GD_STEP .INT EXIT THEN \ IMUL EAX , EAX , # 4 |
DUP 0C3C7 = IF 2_GD_STEP .INT EXIT THEN \ MOV EBX, # X |
DUP 05C7 = IF 2_GD_STEP .ADR .INT EXIT THEN \ MOV 5746E5 ( OPT?+5 ) , # FFFFFFFF |
DUP6B?0 IF 6_GD_STEP0 EXIT THEN \ MOV EAX, # X |
DUP6B?1 IF 6_GD_STEP1 EXIT THEN |
DUP 00583 = IF 6_GD_STEP1 |
DUP C@ 1_GD_STEP EXIT THEN |
DROP |
DUP @ FFFFFF AND |
DUP 021C8D = IF 3_GD_STEP EXIT THEN |
DUP 240401 = IF 3_GD_STEP EXIT THEN \ ADD [ESP] , EAX |
DUP C09D0F = IF 3_GD_STEP EXIT THEN \ SETGE AL |
DUP C09E0F = IF 3_GD_STEP EXIT THEN \ SETLE AL |
DUP 8D1C8D = IF 7_GD_STEP EXIT THEN \ LEA EBX, [ECX*4] |
\ CMPXCHG [EAX] , AL| EAX |
\ LSS EAX , [EAX] |
\ BTR [EAX] , EAX |
\ LFS EAX , [EAX] |
\ LGS EAX , [EAX] |
\ MOVZX EAX , BYTE|WORD PTR [EAX] |
\ 0000.0000 1011.1XXX 0000.1111 |
DUP FFF8FF |
AND 00B00F = IF 3_GD_STEP EXIT THEN |
DUP 24442B = IF 4_GD_STEP EXIT THEN \ SUB EAX, X [ESP] |
DUP 24648D = IF 4_GD_STEP EXIT THEN \ LEA ESP, X [ESP] |
\ MOV|LEA EAX, X [E__] [E__*X] |
\ MOV|LEA X [E__] [E__*X], EAX |
\ POP X [E__] [E__*X] |
\ XXXX.X1XX 0100.0100 1000.1XX1 |
DUP 04FFF9 |
AND 044489 = IF 4_GD_STEP EXIT THEN |
DUP 035C8D = IF 4_GD_STEP EXIT THEN \ MOV EBX, X [EBX] [EAX] |
DUP 03448B = IF 4_GD_STEP EXIT THEN \ MOV EAX, X [EBX] [EAX] |
DUP 03B60F = IF 3_GD_STEP EXIT THEN \ MOVZX EAX, BYTE PTR [EBX] |
DUP 18B60F = IF 3_GD_STEP EXIT THEN \ MOVZX EBX, BYTE PTR [EAX] |
DUP 31348B = IF 3_GD_STEP EXIT THEN \ MOV ESI, [ESI+ECX] |
DUP 40B60F = IF 4_GD_STEP EXIT THEN \ MOVZX EAX , BYTE PTR x [EAX] |
DUP 345C8B = IF 4_GD_STEP EXIT THEN \ LEA EAX , [EAX] [ECX*4] |
DUP 0E348B = IF 3_GD_STEP EXIT THEN \ MOV ESI, [ESI] [ECX] |
DUP 03048D = IF 3_GD_STEP EXIT THEN \ LEA EAX, [EBX] [EAX] |
DUP 355C89 = IF 4_GD_STEP EXIT THEN \ MOV EBX, [ESI+ESP-4] |
DUP 30748B = IF 4_GD_STEP EXIT THEN \ MOV ESI, [1+ESI+EAX] |
DUP 88048D = IF 3_GD_STEP EXIT THEN \ LEA EAX , [EAX] [ECX*4] |
DUP 02048D = IF 3_GD_STEP EXIT THEN \ LEA EAX, [EDX] [EAX] |
DUP 06748B = IF 4_GD_STEP EXIT THEN \ MOV ESI, 1 [ESI] [EAX] |
DUP 245C8B = IF 4_GD_STEP EXIT THEN \ MOV EBX, 8 [ESP] |
DUP 244C8B = IF 4_GD_STEP EXIT THEN \ MOV ECX, 8 [ESP] |
DUP 2E5C89 = IF 4_GD_STEP EXIT THEN \ MOV -4 [ESI] [EBP], EBX |
DUP 045C89 = IF 4_GD_STEP EXIT THEN \ MOV 4 [ESP] [EAX], EBX |
DUP 2E74FF = IF 4_GD_STEP EXIT THEN \ PUSH -4 [ESI] [EBP] |
DUP 3574FF = IF 4_GD_STEP EXIT THEN \ PUSH -4 [EBP] [ESI] |
DUP 240CFF = IF 3_GD_STEP EXIT THEN \ DEC [ESP] |
DUP 09B70F = IF 3_GD_STEP EXIT THEN \ MOVZX ECX , WORD PTR X [ECX] |
DUP 40B70F = IF 4_GD_STEP EXIT THEN \ MOVZX EAX , WORD PTR X [EAX] |
DUP 42B60F = IF 4_GD_STEP EXIT THEN \ MOVZX EAX , WORD PTR X [EDX] |
DUP 24048B = IF 3_GD_STEP EXIT THEN \ MOV EAX, 0 [ESP] |
DUP 240C8B = IF 3_GD_STEP EXIT THEN \ MOV ECX , [ESP] |
DUP 1048B = IF 3_GD_STEP EXIT THEN \ MOV EAX , [ECX] [EAX] |
DUP 01048D = IF 3_GD_STEP EXIT THEN \ LEA EAX , [ECX] [EAX] |
DUP C0BE0F = IF 3_GD_STEP EXIT THEN \ MOV EAX, AL |
DUP 0045C7 = IF 3_GD_STEP .INT EXIT THEN \ MOV 0 [EBP], # 0 |
DUP 240481 = IF 3_GD_STEP .INT EXIT THEN \ ADD [ESP] , # 4 |
DUP B5348D = IF 3_GD_STEP .INT EXIT THEN \ LEA ESI, [ESI*4] |
DUP 8D0C8D = IF 3_GD_STEP .INT EXIT THEN \ LEA ECX, [ECX*4] |
DUP 84248D = IF 3_GD_STEP EXIT THEN \ LEA ESP, [ESP] [EAX*4] |
DUP 244C2B = IF 4_GD_STEP EXIT THEN \ SUB ECX , 4 [ESP] |
DUP 04B60F = IF 4_GD_STEP EXIT THEN \ MOVZX EAX, BYTE [EDI] [ESI] |
DUP 243C83 = IF 4_GD_STEP EXIT THEN \ CMP [ESP] , # 0 |
DUP7B? IF 7_GD_STEP EXIT THEN |
DUP 2404FF = IF 3_GD_STEP EXIT THEN \ INC [ESP] |
DUP 241C8B = IF 3_GD_STEP EXIT THEN \ MOV EBX, [ESP] |
DUP 240403 = IF 3_GD_STEP EXIT THEN \ ADD EAX , [ESP] |
DUP 87B60F = IF CR ." movzx eax,BYTE" DROP 1+ DUP .EDI EXIT THEN \ MOVZX EAX , BYTE PTR 19E3 [EDI] |
CR H. TRUE ABORT" UNKNOWN CODE" |
; |
: GDIS ( A-limit A-init -- ) |
\ CR ." VV=" 2DUP H. H. 2DUP - . |
BEGIN |
\ H-STDOUT 1 TO H-STDOUT ." ." TO H-STDOUT |
GD-STEP 2DUP U> 0= |
UNTIL 2DROP ; |
BASE ! |
\EOF |
2DUP S" MOD" COMPARE 0= IF 2DROP ." _MOD" BREAK |
2DUP S" DUP" COMPARE 0= IF 2DROP ." _DUP" BREAK |
2DUP S" OR" COMPARE 0= IF 2DROP ." _OR" BREAK |
2DUP S" XOR" COMPARE 0= IF 2DROP ." _XOR" BREAK |
2DUP S" AND" COMPARE 0= IF 2DROP ." _AND" BREAK |
2DUP S" CMOVE" COMPARE 0= IF 2DROP ." _CMOVE" BREAK |
2DUP S" TYPE" COMPARE 0= IF 2DROP ." _TYPE" BREAK |
2DUP S" ALIGN" COMPARE 0= IF 2DROP ." _ALIGN" BREAK |
2DUP S" TITLE" COMPARE 0= IF 2DROP ." _TITLE" BREAK |
2DUP S" LT" COMPARE 0= IF 2DROP ." _LT" BREAK |
2DUP S" BL" COMPARE 0= IF 2DROP ." _BL" BREAK |
2DUP S" DP" COMPARE 0= IF 2DROP ." _DP" BREAK |
2DUP S" TRUE" COMPARE 0= IF 2DROP ." _TRUE" BREAK |
2DUP S" FALSE" COMPARE 0= IF 2DROP ." _FALSE" BREAK |
2DUP S" LOOP" COMPARE 0= IF 2DROP ." _LOOP" BREAK |
/programs/develop/SPForth/devel/~mak/djgpp |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/SPForth/devel/~mak/do_want.f |
---|
0,0 → 1,13 |
WANT_BUFF COUNT SFIND [IF] DROP \EOF [THEN] |
[WANT] WDS ~mak\wds.f |
[WANT] SKIP : SKIP PSKIP ; |
[WANT] PSKIP : PSKIP SKIP ; |
[WANT] CASE ~mak\case.f |
[WANT] [IF] ~mak/CompIF.f |
[WANT] MS : MS 0 DO 100099 0 DO LOOP LOOP ; |
[WANT] #define : #define HEADER ['] _CONSTANT-CODE COMPILE, 0 PARSE EVALUATE , ; |
-321 THROW |
/programs/develop/SPForth/devel/~mak/lib/csr.f |
---|
0,0 → 1,25 |
[IFNDEF] CSP |
VARIABLE CSP \ Óêàçàòåëü ñòåêà êîíòðîëÿ |
[THEN] |
6 CONSTANT L-CAS# \ Äîïóñòèìûé óðîâåíü âëîæåííîñòè |
CREATE S-CSP L-CAS# CELLS ALLOT \ Ñòåê êîíòðîëÿ |
S-CSP CSP ! |
: +CSP ( -> P) \ Äîáàâèòü óðîâåíü |
CSP @ DUP CELL+ CSP ! |
; |
: -CSP ( -> ) \ Óáðàòü óðîâåíü |
CSP @ 1 CELLS - CSP ! |
; |
: !CSP ( -> ) \ Èíèöèàëèçèðîâàòü óðîâåíü |
SP@ +CSP ! |
; |
: CSP@ ( -> A) |
CSP @ 1 CELLS - @ |
; |
: ?CSP ( -> ) \ Ïðîâåðèòü âûäåðæàííîñòü ñòåêà |
SP@ CSP@ <> 37 ?ERROR ( ABORT" Ñáîé ñòåêà ïî CSP !") |
-CSP |
; |
/programs/develop/SPForth/devel/~mak/lib/locals-ans2.f |
---|
0,0 → 1,39 |
\ $Id: locals-ans.f,v 1.2 2003/01/10 16:44:16 anfilat Exp $ |
\ Work in spf3, spf4 |
\ LOCALS ñòàíäàðòà 94. |
\ Îáúÿâëåíèå - |
\ LOCALS| n1 n2 n3 | |
REQUIRE { ~mak/lib/locals4.f |
GET-CURRENT ALSO vocLocalsSupport_M DEFINITIONS |
: CompileANSLocInit |
uPrevCurrent @ SET-CURRENT |
uLocalsUCnt @ ?DUP |
IF NEGATE CELLS R_ALLOT, |
THEN |
uLocalsCnt @ uLocalsUCnt @ - ?DUP |
IF DUP CELLS NEGATE uAddDepth +! |
DUP 0 |
DO uLocalsCnt @ uLocalsUCnt @ - I - 1- |
LIT, S" PICK >R " EVALUATE LOOP |
0 DO POSTPONE DROP LOOP |
THEN |
;; |
SET-CURRENT |
: LOCALS| |
LocalsStartup |
BEGIN |
BL PSKIP PeekChar |
[CHAR] | <> |
WHILE |
CREATE LocalsDoes@ IMMEDIATE |
REPEAT |
[CHAR] | PARSE 2DROP |
CompileANSLocInit |
;; IMMEDIATE |
PREVIOUS |
/programs/develop/SPForth/devel/~mak/lib/locals4.f |
---|
0,0 → 1,401 |
( 28.Mar.2000 Andrey Cherezov Copyright [C] RU FIG |
ᯮ«ì§®¢ ë ¨¤¥¨ á«¥¤ãîé¨å ¢â®à®¢: |
Ruvim Pinka; Dmitry Yakimov; Oleg Shalyopa; Yuriy Zhilovets; |
Konstantin Tarasov; Michail Maximov. |
!! ¡®â ¥â ⮫쪮 ¢ SPF4. |
) |
( à®á⮥ à áè¨à¥¨¥ -®àâ «®ª «ì묨 ¯¥à¥¬¥ë¬¨. |
¥ «¨§®¢ ® ¡¥§ ¨á¯®«ì§®¢ ¨ï LOCALS áâ ¤ àâ 94. |
¡ê¥¨¥ ¢à¥¬¥ëå ¯¥à¥¬¥ëå, ¢¨¤¨¬ëå ⮫쪮 ¢ãâਠ|
⥪ã饣® á«®¢ ¨ ®£à ¨ç¥ëå ¢à¥¬¥¥¬ ¢ë§®¢ ¤ ®£® |
á«®¢ ¢ë¯®«ï¥âáï á ¯®¬®éìî á«®¢ "{". ãâਠ®¯à¥¤¥«¥¨ï |
á«®¢ ¨á¯®«ì§ã¥âáï ª®áâàãªæ¨ï, ¯®¤®¡ ï á⥪®¢®© ®â 樨 ®àâ |
{ ᯨ᮪_¨¨æ¨ «¨§¨à®¢ ëå_«®ª «®¢ \ á¯.¥¨¨æ.«®ª «®¢ -- ç⮠㣮¤® } |
¯à¨¬¥à: |
{ a b c d \ e f -- i j } |
«¨ { a b c d \ e f[ EVALUATE_¢ëà ¦¥¨¥ ] -- i j } |
â® § ç¨â çâ® ¤«ï ¯¥à¥¬¥®© f[ ¡ã¤¥â ¢ë¤¥«¥ á⥪¥ ¢®§¢à ⮢ ãç á⮪ |
¯ ¬ï⨠¤«¨®© n ¡ ©â. ᯮ«ì§®¢ ¨¥ ¯¥à¥¬¥®© f[ ¤ áâ ¤à¥á ç « í⮣® |
ãç á⪠. \ á⨫¥ MPE\ |
Ǭ { a b c d \ e [ 12 ] f -- i j } |
â® § ç¨â çâ® ¤«ï ¯¥à¥¬¥®© f ¡ã¤¥â ¢ë¤¥«¥ á⥪¥ ¢®§¢à ⮢ ãç á⮪ |
¯ ¬ï⨠¤«¨®© 12 ¡ ©â. ᯮ«ì§®¢ ¨¥ ¯¥à¥¬¥®© f ¤ áâ ¤à¥á ç « í⮣® |
ãç á⪠. |
áâì "\ á¯.¥¨¨æ.«®ª «®¢" ¬®¦¥â ®âáãâá⢮¢ âì, ¯à¨¬¥à: |
{ item1 item2 -- } |
â® § áâ ¢«ï¥â -®à⠢⮬ â¨ç¥áª¨ ¢ë¤¥«ïâì ¬¥áâ® ¢ |
á⥪¥ ¢®§¢à ⮢ ¤«ï íâ¨å ¯¥à¥¬¥ëå ¢ ¬®¬¥â ¢ë§®¢ á«®¢ |
¨ ¢â®¬ â¨ç¥áª¨ ®á¢®¡®¦¤ âì ¬¥áâ® ¯à¨ ¢ë室¥ ¨§ ¥£®. |
¡à 饨¥ ª â ª¨¬ «®ª «ìë¬ ¯¥à¥¬¥ë¬ - ª ª ª VALUE-¯¥à¥¬¥ë¬ |
¯® ¨¬¥¨. ᫨ 㦥 ¤à¥á ¯¥à¥¬¥®©, â® ¨á¯®«ì§ã¥âáï "^ ¨¬ï" |
¨«¨ "AT ¨¬ï". |
¬¥áâ® \ ¬®¦® ¨á¯®«ì§®¢ âì | |
¬¥áâ® -> ¬®¦® ¨á¯®«ì§®¢ âì TO |
ਬ¥àë: |
: TEST { a b c d \ e f -- } a . b . c . b c + -> e e . f . ^ a @ . ; |
Ok |
1 2 3 4 TEST |
1 2 3 5 0 1 Ok |
: TEST { a b -- } a . b . CR 5 0 DO I . a . b . CR LOOP ; |
Ok |
12 34 TEST |
12 34 |
0 12 34 |
1 12 34 |
2 12 34 |
3 12 34 |
4 12 34 |
Ok |
: TEST { a b } a . b . ; |
Ok |
1 2 TEST |
1 2 Ok |
: TEST { a b \ c } a . b . c . ; |
Ok |
1 2 TEST |
1 2 0 Ok |
: TEST { a b -- } a . b . ; |
Ok |
1 2 TEST |
1 2 Ok |
: TEST { a b \ c -- d } a . b . c . ; |
Ok |
1 2 TEST |
1 2 0 Ok |
: TEST { \ a b } a . b . 1 -> a 2 -> b a . b . ; |
Ok |
TEST |
0 0 1 2 Ok |
¬¥ «®ª «ìëå ¯¥à¥¬¥ëå áãé¥áâ¢ãîâ ¢ ¤¨ ¬¨ç¥áª®¬ |
¢à¥¬¥®¬ á«®¢ ॠ⮫쪮 ¢ ¬®¬¥â ª®¬¯¨«ï樨 á«®¢ , |
¯®á«¥ í⮣® ¢ëç¨é îâáï ¨ ¡®«¥¥ ¥¤®áâã¯ë. |
ᯮ«ì§®¢ âì ª®áâàãªæ¨î "{ ... }" ¢ãâਠ®¤®£® ®¯à¥¤¥«¥¨ï ¬®¦® |
⮫쪮 ®¤¨ à §. |
®¬¯¨«ïæ¨ï í⮩ ¡¨¡«¨®â¥ª¨ ¤®¡ ¢«ï¥â ¢ ⥪ã騩 á«®¢ àì ª®¬¯¨«ï樨 |
®«ìª® ¤¢ á«®¢ : |
á«®¢ àì "vocLocalsSupport" ¨ "{" |
ᥠ®áâ «ìë¥ ¤¥â «¨ "á¯àïâ ë" ¢ á«®¢ à¥, ¨á¯®«ì§®¢ âì ¨å |
¥ ४®¬¥¤ã¥âáï. |
) |
REQUIRE [IF] ~MAK\CompIF.f |
C" 'DROP_V" FIND NIP 0= |
[IF] ' DROP VALUE 'DROP_V |
: 'DROP 'DROP_V ; |
[THEN] |
C" 'DUP_V" FIND NIP 0= |
[IF] ' DUP VALUE 'DUP_V |
: 'DUP 'DUP_V ; |
[THEN] |
C" 'DROP" FIND NIP 0= |
[IF] ' DROP VALUE 'DROP |
[THEN] |
C" 'DUP" FIND NIP 0= |
[IF] ' DUP VALUE 'DUP |
[THEN] |
\ C" '(LocalsExit)_V" FIND NIP 0= |
\ [IF] ' (LocalsExit)_V VALUE '(LocalsExit)_V |
\ [THEN] |
MODULE: vocLocalsSupport_M |
VARIABLE uLocalsCnt |
VARIABLE uLocalsUCnt |
VARIABLE uPrevCurrent |
VARIABLE uAddDepth |
: LocalOffs ( n -- offs ) |
2+ CELLS uAddDepth @ + |
; |
BASE @ HEX |
' RP@ 7 + @ 0xC3042444 = |
[IF] |
: R_ALLOT, |
DUP SHORT? |
OPT_INIT SetOP |
IF 8D C, 64 C, 24 C, C, \ mov esp, offset [esp] |
ELSE 8D C, A4 C, 24 C, , \ mov esp, offset [esp] |
THEN |
OPT_CLOSE |
; |
C" MACRO," FIND NIP 0= |
[IF] : MACRO, INLINE, ; |
[THEN] |
: CompileLocalRec ( u -- ) |
LocalOffs DUP |
'DUP MACRO, |
SHORT? |
OPT_INIT SetOP |
IF 8D C, 44 C, 24 C, C, \ lea eax, offset [esp] |
ELSE 8D C, 84 C, 24 C, , \ lea eax, offset [esp] |
THEN OPT |
OPT_CLOSE |
; |
: CompileLocal@ ( n -- ) |
'DUP MACRO, |
LocalOffs DUP SHORT? |
OPT_INIT SetOP |
IF 8B C, 44 C, 24 C, C, \ mov eax, offset [esp] |
ELSE 8B C, 84 C, 24 C, , \ mov eax, offset [esp] |
THEN OPT |
OPT_CLOSE |
; |
: CompileLocal! ( n -- ) |
LocalOffs DUP SHORT? |
OPT_INIT SetOP |
IF 89 C, 44 C, 24 C, C, \ mov offset [esp], eax |
ELSE 89 C, 84 C, 24 C, , \ mov offset [esp], eax |
THEN OPT |
OPT_CLOSE |
'DROP MACRO, |
; |
\ : CompileLocal@ ( n -- ) |
\ LocalOffs LIT, POSTPONE RP+@ |
\ ; |
[ELSE] |
: R_ALLOT, |
] POSTPONE LITERAL S" RP@ + RP! " EVALUATE |
POSTPONE [ ; |
: CompileLocalRec ( u -- ) |
LocalOffs |
POSTPONE LITERAL |
\ S" RP@ + " EVALUATE |
; |
: CompileLocal@ ( n -- ) |
CompileLocalRec |
S" @ " EVALUATE |
; |
: CompileLocal! ( n -- ) |
CompileLocalRec |
S" ! " EVALUATE |
; |
[THEN] |
VARIABLE TEMP-DP |
: CompileLocalsInit |
TEMP-DP @ DP ! |
uPrevCurrent @ SET-CURRENT |
uLocalsUCnt @ ?DUP |
IF NEGATE CELLS R_ALLOT, |
THEN |
uLocalsCnt @ uLocalsUCnt @ - ?DUP |
IF DUP CELLS NEGATE uAddDepth +! 0 DO S" >R " EVALUATE LOOP THEN |
uLocalsCnt @ ?DUP |
IF CELLS POSTPONE LITERAL S" >R ['] (LocalsExit) >R" EVALUATE |
-2 CELLS uAddDepth +! |
THEN |
; |
\ : CompileLocal@ ( n -- ) |
\ LocalOffs LIT, POSTPONE RP+@ |
\ ; |
BASE ! |
WORDLIST CONSTANT widLocals@ |
CREATE TEMP-BUF 1000 ALLOT |
: LocalsStartup |
GET-CURRENT uPrevCurrent ! |
ALSO vocLocalsSupport_M |
ALSO widLocals@ CONTEXT ! DEFINITIONS |
HERE TEMP-DP ! |
TEMP-BUF DP ! |
widLocals@ 0! |
uLocalsCnt 0! |
uLocalsUCnt 0! |
uAddDepth 0! |
; |
: LocalsCleanup |
PREVIOUS PREVIOUS |
; |
: ProcessLocRec ( "name" -- u ) |
[CHAR] ] PARSE |
STATE 0! |
EVALUATE CELL 1- + CELL / \ ¤¥« ¥¬ ªà âë¬ 4 |
-1 STATE ! |
\ DUP uLocalsCnt +! |
uLocalsCnt @ |
; |
: CreateLocArray |
[CHAR] [ PSKIP |
ProcessLocRec |
CREATE , |
DUP uLocalsCnt +! |
; |
: LocalsRecDoes@ ( -- u ) |
DOES> @ CompileLocalRec |
; |
: LocalsRecDoes@2 ( -- u ) |
ProcessLocRec , |
DUP uLocalsCnt +! |
DOES> @ CompileLocalRec |
; |
: LocalsDoes@ |
uLocalsCnt @ , |
uLocalsCnt 1+! |
DOES> @ CompileLocal@ |
; |
: ;; POSTPONE ; ; IMMEDIATE |
: ^ |
' >BODY @ |
CompileLocalRec |
; IMMEDIATE |
: -> ' >BODY @ CompileLocal! ; IMMEDIATE |
WARNING DUP @ SWAP 0! |
: AT |
[COMPILE] ^ |
; IMMEDIATE |
: TO ( "name" -- ) |
>IN @ NextWord widLocals@ SEARCH-WORDLIST 1 = |
IF >BODY @ CompileLocal! DROP |
ELSE >IN ! [COMPILE] TO |
THEN |
; IMMEDIATE |
WARNING ! |
: ¢ POSTPONE -> ; IMMEDIATE |
WARNING @ WARNING 0! |
\ === |
\ ¯¥à¥®¯à¥¤¥«¥¨¥ ᮮ⢥âáâ¢ãîé¨å á«®¢ ¤«ï ¢®§¬®¦®á⨠¨á¯®«ì§®¢ âì |
\ ¢à¥¬¥ë¥ ¯¥à¥¬¥ë¥ ¢ãâਠ横« DO LOOP ¨ ¥§ ¢¨á¨¬® ®â ¨§¬¥¥¨ï |
\ ᮤ¥à¦¨¬®£® á⥪ ¢®§¢à ⮢ á«®¢ ¬¨ >R R> |
C" DO_SIZE" FIND NIP 0= |
[IF] 3 CELLS CONSTANT DO_SIZE |
[THEN] |
: DO POSTPONE DO DO_SIZE uAddDepth +! ; IMMEDIATE |
: ?DO POSTPONE ?DO DO_SIZE uAddDepth +! ; IMMEDIATE |
: LOOP POSTPONE LOOP DO_SIZE NEGATE uAddDepth +! ; IMMEDIATE |
: +LOOP POSTPONE +LOOP DO_SIZE NEGATE uAddDepth +! ; IMMEDIATE |
: >R POSTPONE >R [ 1 CELLS ] LITERAL uAddDepth +! ; IMMEDIATE |
: R> POSTPONE R> [ -1 CELLS ] LITERAL uAddDepth +! ; IMMEDIATE |
: RDROP POSTPONE RDROP [ -1 CELLS ] LITERAL uAddDepth +! ; IMMEDIATE |
: 2>R POSTPONE 2>R [ 2 CELLS ] LITERAL uAddDepth +! ; IMMEDIATE |
: 2R> POSTPONE 2R> [ -2 CELLS ] LITERAL uAddDepth +! ; IMMEDIATE |
\ === |
\ uLocalsCnt @ ?DUP |
\ IF CELLS RLIT, ['] (LocalsExit) RLIT, THEN |
: ; LocalsCleanup |
S" ;" EVAL-WORD |
; IMMEDIATE |
WARNING ! |
\ ===================================================================== |
EXPORT |
: { |
LocalsStartup |
BEGIN |
BL PSKIP PeekChar DUP [CHAR] \ <> |
OVER [CHAR] - <> AND |
OVER [CHAR] } <> AND |
OVER [CHAR] | <> AND |
SWAP [CHAR] ) XOR AND |
WHILE |
CREATE LocalsDoes@ IMMEDIATE |
REPEAT |
PeekChar >IN 1+! DUP [CHAR] } <> |
IF |
DUP [CHAR] \ = |
SWAP [CHAR] | = OR |
IF |
BEGIN |
BL PSKIP PeekChar DUP |
DUP [CHAR] - <> |
SWAP [CHAR] } <> AND |
SWAP [CHAR] ) XOR AND |
WHILE |
PeekChar [CHAR] [ = |
IF CreateLocArray LocalsRecDoes@ |
ELSE |
CREATE LATEST DUP C@ + C@ |
[CHAR] [ = |
IF |
LocalsRecDoes@2 |
ELSE |
LocalsDoes@ 1 |
THEN |
THEN DUP U. |
uLocalsUCnt +! |
IMMEDIATE |
REPEAT |
THEN |
[CHAR] } PARSE 2DROP |
ELSE DROP THEN |
CompileLocalsInit |
;; IMMEDIATE |
;MODULE |
/programs/develop/SPForth/devel/~mak/lib/map.f |
---|
0,0 → 1,35 |
\ ~mak/want.f WANT #define |
0 VALUE M#define-CODE |
: M#define CREATE PARSE-WORD EVALUATE , |
DOES> [ HERE 5 - TO M#define-CODE ] @ ; |
: Archive_ |
PARSE-WORD EVALUATE |
' DUP 1+ REL@ CELL+ M#define-CODE = |
IF |
>BODY ! EXIT |
THEN 1 THROW ; |
: Archive \ F7_ED |
BEGIN |
PARSE-WORD DUP 0= |
IF NIP REFILL 0= IF DROP TRUE THEN |
ELSE S" size" COMPARE 0= THEN |
UNTIL |
REFILL DROP |
BEGIN REFILL 0= IF \EOF EXIT THEN |
SOURCE NIP |
WHILE M#define |
REPEAT |
BEGIN REFILL |
WHILE SOURCE NIP 40 > |
IF |
['] Archive_ CATCH DROP |
THEN |
REPEAT POSTPONE \ |
; |
/programs/develop/SPForth/devel/~mak/lib/vt/colors.f |
---|
0,0 → 1,15 |
: (ESC) 27 EMIT TYPE ; |
: CLEAR S" [2J" (ESC) ; : HOME CLEAR S" [1;1H" (ESC) ; |
: NORMAL S" [0m" (ESC) ; : BOLD S" [1m" (ESC) ; |
: BLACK S" [30m" (ESC) ; : RED S" [31m" (ESC) ; |
: GREEN S" [32m" (ESC) ; : YELLOW S" [33m" (ESC) ; |
: BLUE S" [34m" (ESC) ; : MAGENTA S" [35m" (ESC) ; |
: CYAN S" [36m" (ESC) ; : WHITE S" [37m" (ESC) ; |
: ONBLACK S" [40m" (ESC) ; : ONRED S" [41m" (ESC) ; |
: ONGREEN S" [42m" (ESC) ; : ONYELLOW S" [43m" (ESC) ; |
: ONBLUE S" [44m" (ESC) ; : ONMAGENTA S" [45m" (ESC) ; |
: ONCYAN S" [46m" (ESC) ; : ONWHITE S" [47m" (ESC) ; |
/programs/develop/SPForth/devel/~mak/lib/vt |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/SPForth/devel/~mak/lib |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/SPForth/devel/~mak/listing3.f |
---|
0,0 → 1,161 |
REQUIRE PLACE ~mak/place.f |
REQUIRE [IF] ~mak/CompIF.f |
REQUIRE DISASSEMBLER lib/ext/disasm.f |
C" STREAM-FILE" FIND NIP |
[IF] |
: FROM_SOURCE-ID SOURCE-ID STREAM-FILE ; |
: TO_SOURCE-ID FILE>RSTREAM TO SOURCE-ID ; |
[ELSE] |
: FROM_SOURCE-ID SOURCE-ID ; |
: TO_SOURCE-ID TO SOURCE-ID ; |
[THEN] |
: INST [ ALSO DISASSEMBLER ] INST |
[ PREVIOUS ] ; |
C" -CELL" FIND NIP 0= |
[IF] -1 CELLS CONSTANT -CELL |
[THEN] |
CREATE FILE_NAME_L 120 ALLOT |
CREATE HERE-TAB 5000 CELLS ALLOT |
HERE CELL- CONSTANT HERE-TAB-MAX |
VARIABLE HERE-TAB-CUR |
HERE-TAB HERE-TAB-CUR ! |
VARIABLE S_STATE |
: HERE-TAB-CUR+ |
HERE-TAB-CUR @ CELL+ HERE-TAB-MAX UMIN |
HERE-TAB-CUR |
! |
\ [ .( XXXX) DIS-OPT KEY DROP ] |
; |
: HERE-TO-TAB DP @ HERE-TAB-CUR @ ! HERE-TAB-CUR+ ; |
CREATE SHERE-TAB 800 CELLS ALLOT |
HERE CELL- CONSTANT SHERE-TAB-MAX |
VARIABLE SHERE-TAB-CUR |
SHERE-TAB SHERE-TAB-CUR ! |
: SHERE-TAB-CUR+ |
SHERE-TAB-CUR @ CELL+ SHERE-TAB-MAX UMIN |
SHERE-TAB-CUR ! ; |
: SHERE-TO-TAB DP @ SHERE-TAB-CUR @ ! SHERE-TAB-CUR+ ; |
80 VALUE DUMP_MAX |
: MDUMP ( addr u -- ) |
DUP 0= IF 2DROP EXIT THEN |
BASE @ >R HEX |
BEGIN |
CR OVER BASE-ADDR - 4 .0 SPACE |
2DUP 0x10 MIN |
2DUP 0 DO I 4 MOD 0= IF SPACE THEN |
DUP C@ 2 .0 SPACE 1+ |
LOOP DROP |
DUP >R PTYPE |
R@ - SWAP R> + SWAP DUP 0= |
UNTIL 2DROP |
R> BASE ! CR |
; |
: .LIST ( ADDR ADDR1 -- ADDR1' ) |
S_STATE @ |
IF |
SWAP |
BEGIN 2DUP U> |
WHILE INST CR |
REPEAT NIP |
ELSE |
TUCK |
OVER - DUP |
IF DUP DUMP_MAX U> |
IF >R DUMP_MAX DUMP |
CR DUP U. R> DUMP_MAX - U. ." bytes" |
ELSE MDUMP |
THEN CR |
ELSE 2DROP |
THEN |
THEN |
; |
VECT INCLUDED$ |
' INCLUDED TO INCLUDED$ |
: INCLUDED_L |
['] <PRE> >BODY @ >R |
['] HERE-TO-TAB TO <PRE> |
HERE-TAB HERE-TAB-CUR ! |
SHERE-TAB SHERE-TAB-CUR ! |
2DUP 2>R INCLUDED$ 2R> R> TO <PRE> |
-1 SHERE-TAB-CUR @ ! SHERE-TAB-CUR+ |
HERE-TO-TAB |
HERE-TO-TAB -CELL HERE-TAB-CUR +! |
HERE-TAB-CUR @ @ -CELL HERE-TAB-CUR +! |
BEGIN HERE-TAB-CUR @ HERE-TAB <> |
WHILE HERE-TAB-CUR @ @ UMIN DUP HERE-TAB-CUR @ ! |
-CELL HERE-TAB-CUR +! |
REPEAT DROP |
S_STATE 0! |
SHERE-TAB SHERE-TAB-CUR ! |
2DUP FILE_NAME_L PLACE |
S" _L" FILE_NAME_L +PLACE |
R/O OPEN-FILE THROW |
FILE_NAME_L COUNT 2DUP + 0! |
W/O CREATE-FILE THROW |
TIB >R >IN @ >R #TIB @ >R SOURCE-ID >R BLK @ >R CURSTR @ >R |
H-STDOUT >R BASE @ >R HEX |
C/L 2 + ALLOCATE THROW TO TIB BLK 0! |
TO H-STDOUT |
." ZZ=" DUP . |
TO_SOURCE-ID |
CURSTR 0! HERE-TAB-CUR @ @ |
BEGIN REFILL |
WHILE |
SOURCE TYPE CR |
BEGIN SHERE-TAB-CUR @ @ HERE-TAB-CUR @ CELL+ @ U< |
WHILE SHERE-TAB-CUR @ @ .LIST SHERE-TAB-CUR+ |
S_STATE @ INVERT S_STATE ! |
REPEAT HERE-TAB-CUR+ HERE-TAB-CUR @ @ .LIST |
REPEAT DROP |
TIB FREE THROW |
FROM_SOURCE-ID |
." ZZ=" DUP . |
CLOSE-FILE THROW ( îøèáêà çàêðûòèÿ ôàéëà ) |
H-STDOUT CLOSE-FILE THROW ( îøèáêà çàêðûòèÿ ôàéëà ) |
R> BASE ! R> TO H-STDOUT |
R> CURSTR ! R> BLK ! R> TO SOURCE-ID R> #TIB ! R> >IN ! R> TO TIB |
; |
: REQUIRED_L ( waddr wu laddr lu -- ) |
2SWAP SFIND |
IF DROP 2DROP EXIT |
ELSE 2DROP INCLUDED_L THEN |
; |
[UNDEFINED] PSKIP [IF] |
: PSKIP SKIP ; |
[THEN] |
: REQUIRE_L ( "word" "libpath" -- ) |
BL PSKIP BL PARSE |
BL PSKIP BL PARSE 2DUP + 0 SWAP C! |
REQUIRED_L |
; |
: : : SHERE-TO-TAB ; |
: ; POSTPONE ; SHERE-TO-TAB ; IMMEDIATE |
: SSSS |
HERE-TAB HERE-TAB-CUR ! |
SHERE-TAB SHERE-TAB-CUR ! |
; |
/programs/develop/SPForth/devel/~mak/temps4.f |
---|
0,0 → 1,198 |
\ Temporary variables |
( 24.09.1997 ¥à¥§®¢ . ) |
\ April 12th, 2000 - 14:44 Mihail Maksimov |
\ ¤®¡ ¢¨« ª®áâàãªæ¨¨ !! ... !! ¨ >| ... | , «¨ª¢¨¤¨à®¢ « |DOES |
\ ®¯â¨¬¨§¨à®¢ ë© ¢ ਠâ. ¯¥à¥¬¥ë¥ ¬®¦® ¨á¯®«ì§®¢ âì ¨ ¢ãâਠDO LOOP |
( 10.06.1999 Ruvim Pinka, idea - Mihail Maksimov ) |
( à®á⮥ à áè¨à¥¨¥ -®àâ «®ª «ì묨 ¯¥à¥¬¥ë¬¨. |
¥ «¨§®¢ ® ¡¥§ ¨á¯®«ì§®¢ ¨ï LOCALS áâ ¤ àâ 94. |
¡ê¥¨¥ ¢à¥¬¥ëå ¯¥à¥¬¥ëå, ¢¨¤¨¬ëå ⮫쪮 ¢ãâਠ|
⥪ã饣® á«®¢ ¨ ®£à ¨ç¥ëå ¢à¥¬¥¥¬ ¢ë§®¢ ¤ ®£® |
á«®¢ ¢ë¯®«ï¥âáï á ¯®¬®éìî á«®¢ "|" «®£¨ç® |
¬®«â®«ªã: ¢ãâਠ®¯à¥¤¥«¥¨ï á«®¢ ¨á¯®«ì§ã¥âáï |
ª®áâàãªæ¨ï |
| ᯨ᮪ «®ª «ìëå ¯¥à¥¬¥ëå ç¥à¥§ ¯à®¡¥« | |
â® § áâ ¢«ï¥â -®à⠢⮬ â¨ç¥áª¨ ¢ë¤¥«ïâì ¬¥áâ® ¢ |
á⥪¥ ¢®§¢à ⮢ ¤«ï íâ¨å ¯¥à¥¬¥ëå ¢ ¬®¬¥â ¢ë§®¢ á«®¢ |
¨ ¢â®¬ â¨ç¥áª¨ ®á¢®¡®¦¤ âì ¬¥áâ® ¯à¨ ¢ë室¥ ¨§ ¥£®. |
¡à 饨¥ ª â ª¨¬ «®ª «ìë¬ ¯¥à¥¬¥ë¬ - ª ª ª ®¡ëçë¬ |
¯¥à¥¬¥ë¬ ¯® ¨¬¥¨ ¨ á«¥¤ãî騬¨ @ ¨ ! |
¬¥ «®ª «ìëå ¯¥à¥¬¥ëå áãé¥áâ¢ãîâ ¢ ¤¨ ¬¨ç¥áª®¬ |
á«®¢ ॠTEMP-NAMES ⮫쪮 ¢ ¬®¬¥â ª®¬¯¨«ï樨 á«®¢ , |
¯®á«¥ í⮣® ¢ëç¨é îâáï ¨ ¡®«¥¥ ¥¤®áâã¯ë. |
) |
\ ¨æ¨ «¨§ æ¨ï ¢à¥¬¥ëå ¯¥à¥¬¥ëå § 票ﬨ, «¥¦ 騬¨ |
\ á⥪¥ ( ¯à¨¬¥à, ¢å®¤ë¬¨ ¯ à ¬¥âà ¬¨), ¢®§¬®¦ "ᯨ᪮¬" |
\ á ¯®¬®éìî ª®áâàãªæ¨¨ |
\ (( ¨¬¥ ¨¨æ¨ «¨§¨à㥬ëå «®ª «ìëå ¯¥à¥¬¥ëå )) |
\ ¬¥ ¤®«¦ë ¡ëâì à ¥¥ ®¡ê¥ë ¢ á«®¢¥ á ¯®¬®éìî | ... | |
( ᯮ«ì§®¢ ¨¥ «®ª «ìëå ¯¥à¥¬¥ëå ¢ãâਠ横«®¢ DO LOOP |
¥¢®§¬®¦® ¯® ¯à¨ç¨¥, ®¯¨á ®© ¢ áâ ¤ à⥠94. |
ਠ¦¥« ¨¨ ¨á¯®«ì§®¢ âì «®ª «ìë¥ ¯¥à¥¬¥ë¥ ¢ á⨫¥ VALUE-¯¥à¥¬¥ëå |
¬®¦® ¨á¯®«ì§®¢ âì ª®áâàãªæ¨î |
|| ᯨ᮪ «®ª «ìëå ¯¥à¥¬¥ëå ç¥à¥§ ¯à®¡¥« || |
¬¥ íâ¨å ¯¥à¥¬¥ëå ¡ã¤ãâ ¤ ¢ âì ¥ ¤à¥á, ᢮¥ § 票¥. |
®®â¢¥âá⢥® ¯à¨á¢®¥¨¥ § 票© ¡ã¤¥â ®áãé¥á⢫ïâìáï ª®áâàãªæ¨¥© |
-> ¨¬ï |
¯® «®£¨¨ á ¯à¨á¢®¥¨¥¬ § 票© VALUE-¯¥à¥¬¥ë¬ á«®¢®¬ TO. |
) |
VARIABLE TEMP-CNT |
WORDLIST CONSTANT TEMP-NAMES |
: INIT-TEMP-NAMES |
ALSO TEMP-NAMES CONTEXT ! |
TEMP-CNT 0! |
; |
: DEL-NAMES ( A -- ) |
DUP>R |
@ |
BEGIN |
DUP 0<> |
WHILE |
DUP CDR SWAP 5 - FREE THROW |
REPEAT DROP |
R> 0! |
; |
: DEL-TEMP-NAMES |
TEMP-NAMES DEL-NAMES |
; |
HEX |
: COMPIL, ( A -- ) |
0E8 DOES>A @ C! DOES>A 1+! \ ¬ è¨ ï ª®¬ ¤ CALL |
DOES>A @ CELL+ - DOES>A @ ! |
DOES>A @ 1- DOES>A ! |
; |
DECIMAL |
C" LAST-HERE" FIND NIP |
[IF] |
: TEMP-DOES ( N -- ) ( -- ADDR ) |
['] DUP MACRO, |
0x8D C, 0x44 C, 0x24 C, C, \ LEA EAX , X [ESP] |
HERE TO LAST-HERE \ à §à¥è¥® ®¯â¨¬¨§¨à®¢ âì |
; |
[ELSE] |
: TEMP-DOES ( N -- ) ( -- ADDR ) |
POSTPONE RP@ LIT, POSTPONE + ; |
[THEN] |
: |TEMP-DOES ( N -- ) ( -- VALUE ) |
TEMP-DOES ['] @ COMPILE, |
; |
: |TEMP-DOES! ( N -- ) ( X -- ) |
TEMP-DOES ['] ! COMPILE, |
; |
VARIABLE add_depth add_depth 0! |
\ £«ã¡¨ ¢ á⥪¥ ¢®§¢à ⮢ ¤® ç « ¯¥à¥¬¥ëå |
: !TEMP-CREATE ( addr u -- ) |
DUP 20 + ALLOCATE THROW >R |
R@ CELL+ CHAR+ 2DUP C! |
CHAR+ SWAP MOVE ( name ) |
TEMP-NAMES @ |
R@ CELL+ CHAR+ TEMP-NAMES ! ( latest ) |
R@ CELL+ CHAR+ COUNT + DUP>R ! ( link ) |
R> CELL+ DUP DOES>A ! R@ ! ( cfa ) |
&IMMEDIATE R> CELL+ C! ( flags ) |
['] _CREATE-CODE COMPIL, |
TEMP-CNT @ DOES>A @ 5 + ! |
TEMP-CNT 1+! |
POSTPONE >R DOES> @ 2 + CELLS add_depth @ + |TEMP-DOES ; |
: TEMP-CREATE ( addr u -- ) |
!TEMP-CREATE DOES> @ 2 + CELLS add_depth @ + TEMP-DOES ; |
: -> ' 5 + @ 2 + CELLS add_depth @ + |TEMP-DOES! |
; IMMEDIATE |
: |DROP R> RP@ + RP! ; |
' |DROP VALUE '|DROP |
: !!!!; ( N N1 -- ) |
DROP TEMP-CNT @ CELLS LIT, POSTPONE >R |
DROP '|DROP LIT, POSTPONE >R ; |
: !! |
BEGIN NextWord 2DUP S" !!" COMPARE 0<> |
WHILE !TEMP-CREATE |
REPEAT !!!!; ; IMMEDIATE |
: || |
BEGIN NextWord 2DUP S" ||" COMPARE 0<> |
WHILE 0 LIT, !TEMP-CREATE |
REPEAT !!!!; ; IMMEDIATE |
: | |
BEGIN NextWord 2DUP S" |" COMPARE 0<> |
WHILE 0 LIT, TEMP-CREATE |
REPEAT !!!!; ; IMMEDIATE |
: >| |
BEGIN NextWord 2DUP S" |" COMPARE 0<> |
WHILE TEMP-CREATE |
REPEAT !!!!; ; IMMEDIATE |
: (( |
0 |
BEGIN |
BL WORD DUP COUNT S" ))" COMPARE 0<> |
WHILE |
FIND IF >R 1+ ELSE 5012 THROW THEN |
REPEAT DROP |
BEGIN |
DUP 0<> |
WHILE |
\ R> EXECUTE POSTPONE ! ( ¨á¯à ¢«¥® ¤«ï ¯®¤¤¥à¦ª¨ || ) |
R> 5 + @ 2 + CELLS add_depth @ + |
|TEMP-DOES! |
1- |
REPEAT DROP |
; IMMEDIATE |
\ === |
\ ¯¥à¥®¯à¥¤¥«¥¨¥ ᮮ⢥âáâ¢ãîé¨å á«®¢ ¤«ï ¢®§¬®¦®á⨠¨á¯®«ì§®¢ âì |
\ ¢à¥¬¥ë¥ ¯¥à¥¬¥ë¥ ¢ãâਠ横« DO LOOP ¨ ¥§ ¢¨á¨¬® ®â ¨§¬¥¥¨ï |
\ ᮤ¥à¦¨¬®£® á⥪ ¢®§¢à ⮢ á«®¢ ¬¨ >R R> |
: DO POSTPONE DO [ 3 CELLS ] LITERAL add_depth +! |
; IMMEDIATE |
: LOOP POSTPONE LOOP [ -3 CELLS ] LITERAL add_depth +! |
; IMMEDIATE |
: +LOOP POSTPONE +LOOP [ -3 CELLS ] LITERAL add_depth +! |
; IMMEDIATE |
: >R POSTPONE >R [ 1 CELLS ] LITERAL add_depth +! |
; IMMEDIATE |
: R> POSTPONE R> [ -1 CELLS ] LITERAL add_depth +! |
; IMMEDIATE |
\ === |
: :: : ; |
: : ( -- ) |
: INIT-TEMP-NAMES |
; |
:: ; ( -- ) |
DEL-TEMP-NAMES PREVIOUS |
POSTPONE ; |
add_depth 0! \ ¢á直© á«ãç © ;) |
; IMMEDIATE |
/programs/develop/SPForth/devel/~mak/utils.f |
---|
0,0 → 1,45 |
REQUIRE [IF] ~MAK\CompIF.f |
C" H." FIND NIP 0= |
[IF] |
: H. BASE @ HEX SWAP U. BASE ! ; |
\ OP1 |
[THEN] |
C" FIELD" FIND NIP 0= |
[IF] : FIELD -- ; |
[THEN] |
C" BETWEEN" FIND NIP 0= |
[IF] : BETWEEN 1+ WITHIN ; |
[THEN] |
C" ?EXIT" FIND NIP 0= |
[IF] |
: ?EXIT POSTPONE IF |
POSTPONE EXIT |
POSTPONE THEN ; IMMEDIATE |
\ : ?EXIT IF RDROP THEN ; |
[THEN] |
C" DUP>R" FIND NIP 0= |
[IF] |
: DUP>R POSTPONE DUP |
POSTPONE >R ; IMMEDIATE |
[THEN] |
C" >NAME" FIND NIP 0= |
[IF] : >NAME 4 - DUP BEGIN 1- 2DUP COUNT + U< 0= UNTIL NIP ; |
[THEN] |
C" 2," FIND NIP 0= |
[IF] |
: 2, ( D -- ) |
HERE 2! 2 CELLS ALLOT ; |
[THEN] |
C" C>S" FIND NIP 0= |
[IF] : C>S ( c -- n ) 0xFF AND [ 0x7F INVERT ] LITERAL XOR 0x80 + ; |
[THEN] |
/programs/develop/SPForth/devel/~mak/utils_.f |
---|
0,0 → 1,510 |
CR .( UTILS_.F) |
REQUIRE [IF] ~MAK\CompIF.f |
\ WINAPI: GetCurrentDirectoryA KERNEL32.DLL |
\ WINAPI: MoveFileA KERNEL32.DLL |
: DEFER VECT ; |
80 CONSTANT MAXSTRING |
C" PLACE" FIND NIP 0= |
[IF] |
255 CONSTANT MAXCOUNTED \ maximum length of contents of a counted string |
: "CLIP" ( a1 n1 -- a1 n1' ) \ clip a string to between 0 and MAXCOUNTED |
MAXCOUNTED MIN 0 MAX ; |
: PLACE ( addr len dest -- ) |
SWAP "CLIP" SWAP |
2DUP 2>R |
CHAR+ SWAP MOVE |
2R> C! ; |
: +PLACE ( addr len dest -- ) \ append string addr,len to counted |
\ string dest |
>R "CLIP" MAXCOUNTED R@ C@ - MIN R> |
\ clip total to MAXCOUNTED string |
2DUP 2>R |
COUNT CHARS + SWAP MOVE |
2R> +! ; |
: C+PLACE ( c1 a1 -- ) \ append char c1 to the counted string at a1 |
DUP 1+! COUNT + 1- C! ; |
[THEN] |
: OFF 0! ; |
: BLANK ( addr len -- ) \ fill addr for len with spaces (blanks) |
BL FILL ; |
: START/STOP ( -- ) |
KEY? |
IF KEY 27 = IF ABORT THEN |
THEN ; |
: .S ( -- ) |
S0 @ SP@ CELL+ 2DUP = |
IF ." EMPTY" 2DROP |
ELSE DO I @ . START/STOP 1 CELLS +LOOP |
THEN ; |
C" TUCK" FIND NIP 0= |
[IF] |
: TUCK ( n1 n2 -- n2 n1 n2 ) \ copy top data stack to under second item |
SWAP OVER ; |
[THEN] |
128 CONSTANT SPCS-MAX ( optimization for SPACES ) |
CREATE SPCS |
SPCS-MAX ALLOT |
SPCS SPCS-MAX BLANK |
: (D.) ( d -- addr len ) TUCK DABS <# #S ROT SIGN #> ; |
C" WITHIN" FIND NIP 0= |
[IF] |
: WITHIN ( n1 low high -- f1 ) \ f1=true if ((n1 >= low) & (n1 < high)) |
OVER - >R - R> U< ; |
[THEN] |
: BETWEEN 1+ WITHIN ; |
80 VALUE COLS |
: H.R ( n1 n2 -- ) \ display n1 as a hex number right |
\ justified in a field of n2 characters |
BASE @ >R HEX >R |
0 <# #S #> R> OVER - SPACES TYPE |
R> BASE ! ; |
: H.N ( n1 n2 -- ) \ display n1 as a HEX number of n2 digits |
BASE @ >R HEX >R |
0 <# R> 0 ?DO # LOOP #> TYPE |
R> BASE ! ; |
: COL ( N -- ) |
DROP 9 EMIT ; |
: UPC [ CHAR A CHAR a XOR INVERT ] LITERAL AND ; |
: 2, ( D -- ) |
HERE 2! 2 CELLS ALLOT ; |
: VOC-STATE, |
CONTEXT @ , |
CONTEXT @ @ , |
VOC-LIST @ VOC-LIST 2, |
CURRENT @ CURRENT 2, |
LAST @ LAST 2, |
VOC-LIST @ |
BEGIN ?DUP |
WHILE DUP CELL+ DUP @ SWAP 2, @ |
REPEAT |
; |
: INCLUDE BL WORD COUNT INCLUDED ; |
: CELLS+ CELLS + ; |
: ? @ . ; |
: DEFINED ( -- str 0 | cfa flag ) |
BL WORD FIND ; |
: [IFUNDEF] DEFINED NIP 0= POSTPONE [IF] ; |
\ C" CELL-" FIND NIP 0= |
1 |
[IF] : CELL- 1 CELLS - ; |
[THEN] |
\ C" LCOUNT" FIND NIP 0= |
1 |
[IF] : LCOUNT CELL+ DUP CELL- @ ; |
[THEN] |
: INCR 1 SWAP +! ; |
: FIELD+ -- ; |
0 [IF] |
: CUR_DIR PAD 256 GetCurrentDirectoryA PAD SWAP ; |
CREATE FIRST-PATH-BUF CUR_DIR NIP 1+ ALLOT |
CUR_DIR FIRST-PATH-BUF PLACE |
: FIRST-PATH" FIRST-PATH-BUF COUNT ; |
: RENAME-FILE ( adr1 len adr2 len -- ior ) |
4DUP + DUP @ 2>R + DUP @ 2>R |
4DUP + 0! + 0! |
DROP NIP SWAP MoveFileA |
2R> SWAP ! 2R> SWAP ! |
; |
[THEN] |
: FILE-APPEND ( fileid -- ior ) |
DUP >R FILE-SIZE DROP |
R> RESIZE-FILE ; |
C" U>" FIND NIP 0= |
[IF] |
: U> ( U1 U2 -- FLAG ) |
SWAP U< ; |
[THEN] |
C" FOLLOWER" FIND NIP |
[IF] |
: 2, ( D -- ) |
HERE 2! 2 CELLS ALLOT ; |
: VOC-STATE, |
CONTEXT @ , |
CONTEXT @ @ , |
VOC-LIST @ VOC-LIST 2, |
CURRENT @ CURRENT 2, |
LAST @ LAST 2, |
VOC-LIST @ |
BEGIN ?DUP |
WHILE DUP CELL+ DUP @ SWAP 2, @ |
REPEAT |
; |
: MARKER, ( -- ADDR ) |
HERE |
VOC-STATE, |
FOLLOWER @ FOLLOWER 2, |
HERE 4 CELLS + DP 2, 0. 2, |
; |
: MARKER! ( ADDR -- ) |
DUP @ CONTEXT ! CELL+ |
DUP @ CONTEXT @ ! CELL+ |
BEGIN DUP 2@ DUP |
WHILE ! 2 CELLS + |
REPEAT 2DROP DROP ; |
[ELSE] |
: MARKER ( "<spaces>name" -- ) \ 94 CORE EXT |
\ Ïðîïóñòèòü âåäóùèå ïðîáåëû. Âûäåëèòü name, îãðàíè÷åííîå ïðîáåëàìè. |
\ Ñîçäàòü îïðåäåëåíèå ñ ñåìàíòèêîé âûïîëíåíèÿ, îïèñàííîé íèæå. |
\ name Âûïîëíåíèå: ( -- ) |
\ Âîññòàíîâèòü ðàñïðåäåëåíèå ïàìÿòè ñëîâàðÿ è óêàçàòåëè ïîðÿäêà ïîèñêà |
\ ê ñîñòîÿíèþ, êîòîðîå îíè èìåëè ïåðåä îïðåäåëåíèåì name. Óáðàòü |
\ îïðåäåëåíèå name è âñå ïîñëåäóþùèå îïðåäåëåíèÿ. Íå òðåáóåòñÿ |
\ îáÿçàòåëüíî âîññòàíàâëèâàòü ëþáûå îñòàâøèåñÿ ñòðóêòóðû, êîòîðûå |
\ ìîãóò áûòü ñâÿçàíû ñ óäàëåííûìè îïðåäåëåíèÿìè èëè îñâîáîæäåííûì |
\ ïðîñòðàíñòâîì äàííûõ. Íèêàêàÿ äðóãàÿ êîíòåêñòóàëüíàÿ èíôîðìàöèÿ, |
\ êàê îñíîâàíèå ñèñòåìû ñ÷èñëåíèÿ, íå èçìåíÿåòñÿ. |
HERE |
\ [C]HERE , [E]HERE , |
GET-CURRENT , |
GET-ORDER DUP , 0 ?DO DUP , @ , LOOP |
CREATE , |
DOES> @ DUP \ ONLY |
\ DUP @ [C]DP ! CELL+ |
\ DUP @ [E]DP ! CELL+ |
DUP @ SET-CURRENT CELL+ |
DUP @ >R R@ CELLS 2* + 1 CELLS - R@ 0 |
?DO DUP DUP @ SWAP CELL+ @ OVER ! SWAP 2 CELLS - LOOP |
DROP R> SET-ORDER |
DP ! |
; |
[THEN] |
C" BODY>" FIND NIP 0= |
[IF] : BODY> 5 - ; |
[THEN] |
C" >NAME" FIND NIP 0= |
[IF] : >NAME 4 - DUP BEGIN 1- 2DUP COUNT + U< 0= UNTIL NIP ; |
[THEN] |
C" CELL/" FIND NIP 0= |
[IF] : CELL/ ( N - N1 ) 2 RSHIFT ; |
[THEN] |
C" IMAGE-BEGIN" FIND NIP |
[IF] |
: ?NAME ( ADDR - FLAG ) |
DUP IMAGE-BEGIN U> |
OVER HERE U< AND |
IF DUP >NAME COUNT + CELL+ = |
ELSE DROP FALSE |
THEN ; |
[THEN] |
H-STDOUT CONSTANT FORTH-OUT |
: FORTH-IO |
FORTH-OUT H-STDOUT <> |
IF H-STDOUT CLOSE-FILE DROP |
FORTH-OUT TO H-STDOUT |
THEN |
; |
: H. BASE @ HEX SWAP U. BASE ! ; |
: 3DROP DROP 2DROP ; |
: 4DUP 2OVER 2OVER ; |
: 0.0 0 DUP ; |
: IS POSTPONE TO ; IMMEDIATE |
C" -ROT" FIND NIP 0= |
[IF] : -ROT ROT ROT ; |
[THEN] |
: SCAN ( adr len char -- adr' len' ) |
\ Scan for char through addr for len, returning addr' and len' of char. |
>R 2DUP R> -ROT |
OVER + SWAP |
?DO DUP I C@ = |
IF LEAVE |
ELSE >R 1 -1 D+ R> |
THEN |
LOOP DROP ; |
: SSKIP ( adr len char -- adr' len' ) |
\ Skip char through addr for len, returning addr' and len' of char+1. |
>R 2DUP R> -ROT |
OVER + SWAP |
?DO DUP I C@ <> |
IF LEAVE |
ELSE >R 1 -1 D+ R> |
THEN |
LOOP DROP ; |
1 CELLS CONSTANT CELL |
C" LSCAN" FIND NIP 0= |
[IF] |
: LSCAN ( adr len long -- adr' len' ) |
\ Scan for char through addr for len, returning addr' and len' of char. |
>R 2DUP CELLS R> -ROT \ adr len long adr len |
OVER + SWAP \ adr len long adr+len adr |
?DO DUP I @ = |
IF LEAVE |
ELSE >R 1- >R CELL+ R> R> |
THEN CELL |
+LOOP DROP ; |
[THEN] |
C" /STRING" FIND NIP 0= |
[IF] : /STRING DUP >R - SWAP R> + SWAP ; |
[THEN] |
: "TO-PATHEND" ( a1 n1 --- a2 n2 ) \ return a2 and count=n1 of filename |
OVER 1+ C@ [CHAR] : = \ second char is ':' |
OVER 2 > AND \ and name is longer than two characters |
IF 2 /STRING \ then remove first two characters |
THEN \ now scan to end of last '\' in filename |
BEGIN 2DUP [CHAR] \ SCAN ?DUP |
WHILE 2SWAP 2DROP 1 /STRING |
REPEAT DROP ; |
: ON TRUE SWAP ! ; |
C" -ROT" FIND NIP 0= |
[IF] : -ROT ROT ROT ; |
[THEN] |
C" BOUNDS" FIND NIP 0= |
[IF] : BOUNDS OVER + SWAP ; |
[THEN] |
: >= < INVERT ; |
: 4DROP 2DROP 2DROP ; |
C" RECURSE" FIND NIP 0= |
[IF] |
: RECURSE ( -- ) \ cause current definition to execute itself |
?COMP LAST @ NAME> COMPILE, ; IMMEDIATE |
[THEN] |
C" DUP>R" FIND NIP 0= |
[IF] : DUP>R POSTPONE DUP POSTPONE >R ; IMMEDIATE |
[THEN] |
C" PICK" FIND NIP 0= |
[IF] |
: PICK ( n -- n' ) |
1+ CELLS SP@ + @ ; |
[THEN] |
C" ROLL" FIND NIP 0= |
[IF] |
: ROLL ( n1 n2 .. nk k -- n2 n3 .. nk n1 ) |
\ Rotate k values on the stack, bringing the deepest to the top. |
\ ?DUP IF 1- SWAP >R RECURSE R> SWAP THEN ; |
DUP>R PICK SP@ DUP CELL+ R> 1+ CELLS MOVE DROP ; |
[THEN] |
C" AHEAD" FIND NIP 0= |
[IF] |
: AHEAD POSTPONE FALSE POSTPONE IF ; IMMEDIATE |
[THEN] |
C" NOT" FIND NIP 0= |
[IF] : NOT 0= ; |
[THEN] |
C" ?EXIT" FIND NIP 0= |
[IF] |
: ?EXIT POSTPONE IF |
POSTPONE EXIT |
POSTPONE THEN ; IMMEDIATE |
\ : ?EXIT IF RDROP THEN ; |
[THEN] |
: BEEP 7 EMIT ; |
16 CONSTANT #VOCS |
-1 CELLS CONSTANT -CELL |
C" D2*" FIND NIP 0= |
[IF] : D2* 2DUP D+ ; |
[THEN] |
: ," [CHAR] " WORD C@ 1+ ALLOT 0 C, ; |
: TAB 9 EMIT ; |
: (D.) ( d -- addr len ) TUCK DABS <# #S ROT SIGN #> ; |
: D.R ( d w -- ) >R (D.) R> OVER - SPACES TYPE ; |
: U.R ( u w -- ) 0 SWAP D.R ; |
: $ SOURCE TYPE CR ; IMMEDIATE |
: +NULL ( a1 -- ) \ append a NULL just beyond the counted chars |
COUNT + 0 SWAP C! ; |
C" CELLS+" FIND NIP 0= |
[IF] |
: CELLS+ CELLS + ; |
[THEN] |
C" +CELLS" FIND NIP 0= |
[IF] |
: +CELLS SWAP CELLS+ ; |
[THEN] |
C" PERFORM" FIND NIP 0= |
[IF] |
: PERFORM @ EXECUTE ; |
[THEN] |
C" UPPER" FIND NIP 0= |
[IF] |
: UPPER ( A L -- ) |
OVER + SWAP |
?DO I C@ DUP [CHAR] Z U> |
IF 0xDF AND |
THEN I C! |
LOOP ; |
[THEN] |
C" RESET-STACKS" FIND NIP 0= |
[IF] |
: RESET-STACKS S0 @ SP! ; |
[THEN] |
C" D-" FIND NIP 0= |
[IF] |
: D- ( D1 D2 -- FLAG ) |
DNEGATE D+ ; |
[THEN] |
C" D=" FIND NIP 0= |
[IF] |
: D= ( D1 D2 -- FLAG ) |
D- D0= ; |
[THEN] |
C" D<>" FIND NIP 0= |
[IF] |
: D<> ( D1 D2 -- FLAG ) |
D= INVERT ; |
[THEN] |
C" <=" FIND NIP 0= |
[IF] |
: <= ( D1 D2 -- FLAG ) |
> INVERT ; |
[THEN] |
C" UMAX" FIND NIP 0= |
[IF] |
: UMAX ( D1 D2 -- FLAG ) |
2DUP U< IF NIP ELSE DROP THEN ; |
[THEN] |
C" D2/" FIND NIP 0= |
[IF] |
: D2/ ( d1 -- d2 ) \ divide the double number d1 by two |
DUP 1 AND 0x1F RSHIFT ROT 2/ OR SWAP 2/ ; |
[THEN] |
C" D0<" FIND NIP 0= |
[IF] |
: D0< ( d1 -- f1 ) |
\ Signed compare d1 double number with zero. If d1 < 0, RETNurn TRUE. |
0< NIP ; |
[THEN] |
C" \S" FIND NIP 0= |
[IF] |
: \S \ comment to end of file |
BEGIN REFILL 0= UNTIL |
\ SOURCE-ID FILE-SIZE DROP |
\ SOURCE-ID REPOSITION-FILE DROP |
[COMPILE] \ ; IMMEDIATE |
[THEN] |
\ C" NEEDS" FIND NIP 0= |
[IF] |
: NEEDS |
BL WORD FIND NIP |
BL WORD SWAP 0= |
IF COUNT INCLUDED |
ELSE DROP |
THEN |
; |
[THEN] |
C" 0MIN" FIND NIP 0= |
[IF] : 0MIN 0 MIN ; |
[THEN] |
C" 0MAX" FIND NIP 0= |
[IF] : 0MAX 0 MIN ; |
[THEN] |
C" H." FIND NIP 0= |
[IF] : H. BASE @ SWAP HEX U. BASE ! ; |
[THEN] |
C" .HS" FIND NIP 0= |
[IF] |
: .HS ( N -- N1 ) |
BASE @ >R HEX .S R> BASE ! ; |
[THEN] |
C" MS" FIND NIP 0= |
[IF] |
C" PAUSE" FIND NIP |
[IF] : MS ( N -- ) PAUSE ; |
[THEN] |
[THEN] |
C" 0>" FIND NIP 0= |
[IF] |
: 0> ( N -- ) NEGATE 0< ; |
[THEN] |
C" CS-DUP" FIND NIP 0= |
[IF] : CS-DUP 2DUP ; |
[THEN] |
C" M_WL" FIND NIP 0= |
[IF] : M_WL CS-DUP POSTPONE WHILE ; IMMEDIATE |
[THEN] |
C" AHEAD" FIND NIP 0= |
[IF] : AHEAD ?COMP HERE BRANCH, >MARK 1 ; IMMEDIATE |
[THEN] |
C" CS-DUP" FIND NIP 0= |
[IF] : CS-DUP 2DUP ; |
[THEN] |
C" CS-!" FIND NIP 0= |
[IF] : CS-! 2! ; |
[THEN] |
C" CS-@" FIND NIP 0= |
[IF] : CS-@ 2@ ; |
[THEN] |
C" CS-CELLS" FIND NIP 0= |
[IF] : CS-CELLS CELLS 2* ; |
[THEN] |
/programs/develop/SPForth/devel/~mak/want.f |
---|
0,0 → 1,22 |
REQUIRE [IF] ~mak/CompIF.f |
REQUIRE $! ~mak\place.f |
REQUIRE [IFNDEF] ~nn\lib\ifdef.f |
[IFNDEF] PARSE-WORD |
: PARSE-WORD NextWord ; |
[THEN] |
CREATE WANT_BUFF 0x101 ALLOT |
CREATE WANT_FILE 0x101 ALLOT |
S" ~mak\do_want.f" WANT_FILE $! |
: [WANT] ( addr len -- addr len | ) |
2DUP PARSE-WORD COMPARE |
IF POSTPONE \ EXIT THEN |
2DROP INTERPRET \EOF ; |
: WANT ( -- ) |
PARSE-WORD WANT_BUFF $! |
WANT_FILE COUNT INCLUDED ; |
/programs/develop/SPForth/devel/~mak/~af/lib/c/zstr.f |
---|
0,0 → 1,75 |
\ $Id: zstring.f,v 1.1 2003/01/18 09:02:11 anfilat Exp $ |
\ ã«ì-áâப¨. ¥å®«®£¨ï ¢§ïâ ¨§ ~yz\common.f |
\ ®¯¨àã¥â áâபã addr u ¯® ¤à¥áã z. ª®¥æ áâப¨ § ¯¨áë¢ ¥â 0 |
: CZMOVE ( a # z --) 2DUP + >R SWAP CMOVE R> 0 SWAP C! ; |
: ALITERAL R> COUNT OVER + 1+ >R ; |
\ VOCABULARY ZStrSupport |
\ GET-CURRENT ALSO ZStrSupport DEFINITIONS |
USER toadr USER fromadr USER counter |
: zchar ( --c/0) counter @ 1 < |
IF 0 ELSE -1 counter +! fromadr @ C@ fromadr 1+! THEN ; |
: unchar counter 1+! -1 fromadr +! ; |
: c> ( c--) toadr @ C! toadr 1+! ; |
: escape ( c--c ) |
DUP [CHAR] n = IF DROP 10 ELSE |
DUP [CHAR] r = IF DROP 13 ELSE |
DUP [CHAR] t = IF DROP 9 ELSE |
DUP [CHAR] b = IF DROP 8 ELSE |
DUP [CHAR] q = IF DROP [CHAR] " ELSE |
DUP [ CHAR 0 1- ] LITERAL OVER < SWAP [ CHAR 9 1+ ] LITERAL < AND IF |
[CHAR] 0 - |
BEGIN ( n) zchar DUP |
[ CHAR 0 1- ] LITERAL OVER < SWAP [ CHAR 9 1+ ] LITERAL < AND |
WHILE |
( n c) [CHAR] 0 - SWAP 10 * + |
REPEAT |
0<> IF unchar THEN |
THEN |
THEN |
THEN |
THEN |
THEN |
THEN |
; |
: ESC-CZMOVE ( a # to --) |
toadr ! counter ! fromadr ! |
BEGIN |
zchar |
DUP [CHAR] \ = IF DROP zchar escape THEN |
DUP c> 0= UNTIL ; |
\ SET-CURRENT |
: Z\LITERAL ( addr u -- \ a) \ ¢ ०¨¬¥ ¨â¥à¯à¥â 樨 ¢®§¢à é ¥â ¤à¥á |
\ ¡ãä¥à ¢ ¤¨ ¬¨ç¥áª®© ¯ ¬ïâ¨. ãä¥à ¦¥« â¥«ì® ®á¢®¡®¤¨âì |
STATE @ IF |
POSTPONE ALITERAL |
HERE 1+ DUP >R ESC-CZMOVE |
R@ ASCIIZ> NIP 2+ DUP ALLOT 2- R> 1- C! |
ELSE |
DUP 1+ ALLOCATE THROW DUP >R ESC-CZMOVE R> |
THEN |
; IMMEDIATE |
: ZLITERAL ( addr u -- \ a) |
STATE @ IF |
POSTPONE ALITERAL |
DUP C, |
HERE SWAP DUP ALLOT MOVE 0 C, |
ELSE |
DUP 1+ ALLOCATE THROW DUP >R CZMOVE R> |
THEN |
; IMMEDIATE |
\ ®§¤ ¥â áâபã, ®ª 稢 îéãîáï ã«¥¬ |
: Z" ( -->") [CHAR] " PARSE [COMPILE] ZLITERAL ; IMMEDIATE |
\ ®§¤ ¥â 0-áâபã, ¯à¨ í⮬ ¯à¥®¡à §ã¥â ¥¥ ¯® C-¯à ¢¨« ¬. |
: Z\" ( -->") [CHAR] " PARSE [COMPILE] Z\LITERAL ; IMMEDIATE |
\ PREVIOUS |
/programs/develop/SPForth/devel/~mak/~af/lib/c |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/SPForth/devel/~mak/~af/lib |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/SPForth/devel/~mak/~af |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/SPForth/devel/~mak |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/SPForth/devel/~nn/lib/ifdef.f |
---|
0,0 → 1,21 |
C" [DEFINED]" FIND NIP 0= |
[IF] |
: [DEFINED] ( -- f ) \ "name" |
NextWord SFIND IF DROP TRUE ELSE 2DROP FALSE THEN |
; IMMEDIATE |
: [UNDEFINED] ( -- f ) \ "name" |
POSTPONE [DEFINED] 0= |
; IMMEDIATE |
[THEN] |
: [IFDEF] |
POSTPONE [DEFINED] |
0= IF POSTPONE [ELSE] THEN |
; IMMEDIATE |
: [IFNDEF] |
POSTPONE [UNDEFINED] |
0= IF POSTPONE [ELSE] THEN |
; IMMEDIATE |
/programs/develop/SPForth/devel/~nn/lib |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/SPForth/devel/~nn |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/SPForth/devel |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/SPForth/gif_lite.inc |
---|
0,0 → 1,318 |
; GIF LITE v2.0 by Willow |
; Written in pure assembler by Ivushkin Andrey aka Willow |
; |
; This include file will contain functions to handle GIF image format |
; |
; Created: August 15, 2004 |
; Last changed: September 9, 2004 |
; Change COLOR_ORDER in your program |
; if colors are displayed improperly |
if ~ (COLOR_ORDER in <MENUETOS,OTHER>) |
; This message may not appear under MenuetOS, so watch... |
display 'Please define COLOR_ORDER: MENUETOS or OTHER',13,10 |
end if |
struc GIF_info |
{ |
; .NextImg rd 1 ; used internally |
.Left rw 1 |
.Top rw 1 |
.Width rw 1 |
.Height rw 1 |
} |
_null fix 0x1000 |
; **************************************** |
; FUNCTION GetGIFinfo - retrieve Nth image info |
; **************************************** |
; in: |
; esi - pointer to image list header |
; ecx - image_index (0...img_count-1) |
; edi - pointer to GIF_info structure to be filled |
; out: |
; eax - pointer to RAW data, or 0, if error |
GetGIFinfo: |
push esi ecx edi |
xor eax,eax |
jecxz .eloop |
.lp: |
mov esi,[esi] |
test esi,esi |
jz .error |
loop .lp |
.eloop: |
add esi,4 |
movsd |
movsd |
mov eax,esi |
.error: |
pop edi ecx esi |
ret |
; **************************************** |
; FUNCTION ReadGIF - unpacks GIF image |
; **************************************** |
; in: |
; esi - pointer to GIF file in memory |
; edi - pointer to output image list |
; eax - pointer to work area (MIN 16 KB!) |
; out: |
; eax - 0, all OK; |
; eax - 1, invalid signature; |
; eax >=8, unsupported image attributes |
; |
; ecx - number of images |
ReadGIF: |
push esi edi |
mov [.table_ptr],eax |
mov [.cur_info],edi |
xor eax,eax |
mov [.globalColor],eax |
mov [.img_count],eax |
inc eax |
cmp dword[esi],'GIF8' |
jne .er ; signature |
mov ecx,[esi+0xa] |
inc eax |
add esi,0xd |
mov edi,esi |
bt ecx,7 |
jnc .nextblock |
mov [.globalColor],esi |
call .Gif_skipmap |
.nextblock: |
cmp byte[edi],0x21 |
jne .noextblock |
inc edi |
cmp byte[edi],0xf9 ; Graphic Control Ext |
jne .no_gc |
add edi,7 |
jmp .nextblock |
.no_gc: |
cmp byte[edi],0xfe ; Comment Ext |
jne .no_comm |
inc edi |
.block_skip: |
movzx eax,byte[edi] |
lea edi,[edi+eax+1] |
cmp byte[edi],0 |
jnz .block_skip |
inc edi |
jmp .nextblock |
.no_comm: |
cmp byte[edi],0xff ; Application Ext |
jne .nextblock |
add edi,13 |
jmp .block_skip |
.noextblock: |
cmp byte[edi],0x2c ; image beginning |
jne .er |
inc [.img_count] |
inc edi |
mov esi,[.cur_info] |
add esi,4 |
xchg esi,edi |
movsd |
movsd |
push edi |
movzx ecx,word[esi] |
inc esi |
bt ecx,7 |
jc .uselocal |
push [.globalColor] |
mov edi,esi |
jmp .setPal |
.uselocal: |
call .Gif_skipmap |
push esi |
.setPal: |
movzx ecx,byte[edi] |
inc ecx |
mov [.codesize],ecx |
dec ecx |
pop [.Palette] |
lea esi,[edi+1] |
mov edi,[.table_ptr] |
xor eax,eax |
cld |
lodsb ; eax - block_count |
add eax,esi |
mov [.block_ofs],eax |
mov [.bit_count],8 |
mov eax,1 |
shl eax,cl |
mov [.CC],eax |
inc eax |
mov [.EOI],eax |
lea ecx,[eax-1] |
mov eax, _null shl 16 |
.filltable: |
stosd |
inc eax |
loop .filltable |
pop edi |
mov [.img_start],edi |
.reinit: |
mov edx,[.EOI] |
inc edx |
push [.codesize] |
pop [.compsize] |
call .Gif_get_sym |
cmp eax,[.CC] |
je .reinit |
call .Gif_output |
.cycle: |
movzx ebx,ax |
call .Gif_get_sym |
cmp eax,edx |
jae .notintable |
cmp eax,[.CC] |
je .reinit |
cmp eax,[.EOI] |
je .end |
call .Gif_output |
.add: |
push eax |
mov eax,[.table_ptr] |
mov [eax+edx*4],ebx |
pop eax |
cmp edx,0xFFF |
jae .cycle |
inc edx |
bsr ebx,edx |
cmp ebx,[.compsize] |
jne .noinc |
inc [.compsize] |
.noinc: |
jmp .cycle |
.notintable: |
push eax |
mov eax,ebx |
call .Gif_output |
push ebx |
movzx eax,bx |
call .Gif_output |
pop ebx eax |
jmp .add |
.er: |
pop edi |
jmp .ex |
.end: |
mov eax,[.cur_info] |
mov [eax],edi |
mov [.cur_info],edi |
add esi,2 |
xchg esi,edi |
.nxt: |
cmp byte[edi],0 |
jnz .continue |
inc edi |
jmp .nxt |
.continue: |
cmp byte[edi],0x3b |
jne .nextblock |
xor eax,eax |
stosd |
mov ecx,[.img_count] |
.ex: |
pop edi esi |
ret |
.Gif_skipmap: |
; in: ecx - image descriptor, esi - pointer to colormap |
; out: edi - pointer to area after colormap |
and ecx,111b |
inc ecx ; color map size |
mov ebx,1 |
shl ebx,cl |
lea ebx,[ebx*2+ebx] |
lea edi,[esi+ebx] |
ret |
.Gif_get_sym: |
mov ecx,[.compsize] |
push ecx |
xor eax,eax |
.shift: |
ror byte[esi],1 |
rcr eax,1 |
dec [.bit_count] |
jnz .loop1 |
inc esi |
cmp esi,[.block_ofs] |
jb .noblock |
push eax |
xor eax,eax |
lodsb |
test eax,eax |
jnz .nextbl |
mov eax,[.EOI] |
sub esi,2 |
add esp,8 |
jmp .exx |
.nextbl: |
add eax,esi |
mov [.block_ofs],eax |
pop eax |
.noblock: |
mov [.bit_count],8 |
.loop1: |
loop .shift |
pop ecx |
rol eax,cl |
.exx: |
xor ecx,ecx |
ret |
.Gif_output: |
push esi eax edx |
mov edx,[.table_ptr] |
.next: |
push word[edx+eax*4] |
mov ax,word[edx+eax*4+2] |
inc ecx |
cmp ax,_null |
jnz .next |
shl ebx,16 |
mov bx,[esp] |
.loop2: |
pop ax |
lea esi,[eax+eax*2] |
add esi,[.Palette] |
if COLOR_ORDER eq MENUETOS |
mov esi,[esi] |
bswap esi |
shr esi,8 |
mov [edi],esi |
add edi,3 |
else |
movsw |
movsb |
end if |
loop .loop2 |
pop edx eax esi |
ret |
.globalColor rd 1 |
.img_count rd 1 |
.cur_info rd 1 ; image table pointer |
.img_start rd 1 |
.codesize rd 1 |
.compsize rd 1 |
.bit_count rd 1 |
.CC rd 1 |
.EOI rd 1 |
.Palette rd 1 |
.block_ofs rd 1 |
.table_ptr rd 1 |
/programs/develop/SPForth/img.asm |
---|
0,0 → 1,29075 |
MUSEROFFS EQU 4144 |
AHEADER 0 ,'TST1',cfa_TST1 |
call cfa__SLITERALminusCODE+00H |
DB 05H |
DB 'WORDS',0 |
call cfa_EVALUATE+00H |
DB 0C3H |
AHEADER 0 ,'TST',cfa_TST |
call cfa__SLITERALminusCODE+00H |
DB 010H |
DB '/rd/1/autoload.f',0 |
call cfa_INCLUDED_+00H |
DB 0C3H |
AHEADER 0 ,'H.',cfa_Hdot |
call cfa_BASE+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
call cfa_HEX+00H |
call cfa_Udot+00H |
call cfa_BASE+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'EMIT',cfa_EMIT |
call cfa__VECTminusCODE+00H |
DD cfa__EMIT+00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'TYPE',cfa_TYPE |
call cfa__VECTminusCODE+00H |
DD cfa__TYPE+00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'INCLUDED',cfa_INCLUDED |
call cfa_INCLUDED_+00H |
DB 0C3H |
AHEADER 0 ,':NONAME',cfa_dcomaNONAME |
call cfa_HERE+00H |
call cfa__y+00H |
call cfa_HERE+00H |
call cfa_dcomaminusSET+09H |
DB 0C3H |
AHEADER 0 ,'IMMEDIATE',cfa_IMMEDIATE |
call cfa_LAST+00H |
DB 08BH,00H |
DB 08DH,040H,0F7H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_and_IMMEDIATE+00H |
DB 0BH,045H,00H |
DB 08BH,055H,04H |
DB 089H,045H,04H |
DB 08BH,0C2H |
DB 08BH,055H,04H |
DB 088H,010H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
DB 0C3H |
AHEADER 0 ,'ALIGN-NOP',cfa_ALIGNminusNOP |
call cfa_HERE+00H |
DB 089H,045H,0FCH |
DB 08BH,055H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 089H,055H,00H |
DB 08BH,055H,0FCH |
DB 089H,045H,0F8H |
DB 089H,055H,0F4H |
DB 08BH,0C8H |
DB 08BH,045H,0F4H |
DB 099H |
DB 0F7H,0F9H |
DB 089H,055H,0F4H |
DB 08BH,045H,0F4H |
DB 08DH,06DH,0F8H |
DB 0BH,0C0H |
;je cfa_ALIGNminusNOP+03FH |
DB 074H,0DH |
DB 0F7H,0D8H |
DB 03H,045H,00H |
DB 03H,045H,04H |
DB 08DH,06DH,08H |
DB 0EBH,06H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 0F7H,0D8H |
DB 03H,045H,0FCH |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 090H |
DB 08DH,06DH,0FCH |
call cfa_FILL+00H |
DB 0C3H |
AHEADER 0 ,'ALIGN',cfa_ALIGN |
call cfa_DP+00H |
DB 08BH,00H |
call cfa_ALIGNED+00H |
call cfa_DP+00H |
DB 08BH,00H |
DB 0F7H,0D8H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
call cfa_ALLOT+00H |
DB 0C3H |
AHEADER 0 ,'ALIGNED',cfa_ALIGNED |
call cfa_ALIGNminusBYTES+00H |
DB 08BH,00H |
DB 0BH,0C0H |
;jne cfa_ALIGNED+024H |
DB 075H,019H |
DB 08DH,040H,01H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_ALIGNminusBYTES+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 08BH,055H,00H |
DB 089H,045H,0FCH |
DB 089H,055H,0F8H |
DB 08BH,0C8H |
DB 08BH,045H,0F8H |
DB 099H |
DB 0F7H,0F9H |
DB 089H,055H,0F8H |
DB 08BH,045H,0F8H |
DB 08DH,06DH,0FCH |
DB 0BH,0C0H |
;je cfa_ALIGNED+04FH |
DB 074H,0DH |
DB 0F7H,0D8H |
DB 03H,045H,00H |
DB 03H,045H,04H |
DB 08DH,06DH,08H |
DB 0EBH,06H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'ALIGN-BYTES',cfa_ALIGNminusBYTES |
call cfa__USERminusCODE+00H |
DD reserve+0102CH |
AHEADER 0 ,'H-STDERR',cfa_HminusSTDERR |
call cfa__CONSTANTminusCODE+00H |
DD 01H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'H-STDOUT',cfa_HminusSTDOUT |
call cfa__CONSTANTminusCODE+00H |
DD 01H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'H-STDIN',cfa_HminusSTDIN |
call cfa__CONSTANTminusCODE+00H |
DD 00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'HLD',cfa_HLD |
call cfa__USERminusCODE+00H |
DD reserve+01028H |
AHEADER 0 ,'.S',cfa_dotS |
call cfa_DEPTH+00H |
call cfa_dotSN+00H |
DB 0C3H |
AHEADER 1 ,'$"',cfa_doldtic |
call cfa_Cdtic+00H |
DB 0C3H |
AHEADER 1 ,'}}',cfa_rskrsk |
call cfa_PREVIOUS+00H |
DB 0C3H |
AHEADER 1 ,'{{',cfa_lsklsk |
call cfa_DEPTH+00H |
DB 050H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_ALSO+00H |
call cfa_tic+00H |
call cfa_EXECUTE+00H |
call cfa_DEPTH+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 033H,045H,0FCH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_lsklsk+03FH |
DB 074H,010H |
call cfa__CONTEXT+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,';MODULE',cfa__endMODULE |
call cfa_SETminusCURRENT+00H |
call cfa_PREVIOUS+00H |
DB 0C3H |
AHEADER 0 ,'EXPORT',cfa__EXPORT |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_SETminusCURRENT+00H |
DB 0C3H |
AHEADER 0 ,'MODULE:',cfa_MODULEdcoma |
call cfa_greatIN+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_tic+00H |
call cfa_CATCH+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_MODULEdcoma+055H |
DB 074H,033H |
call cfa_greatIN+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_VOCABULARY+00H |
call cfa_GETminusCURRENT+00H |
call cfa_ALSO+00H |
call cfa_LATEST+00H |
DB 08BH,040H,0F8H |
call cfa_EXECUTE+00H |
call cfa_DEFINITIONS+00H |
DB 0EBH,01FH |
DB 08DH,06DH,04H |
call cfa_GETminusCURRENT+00H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
call cfa_ALSO+00H |
call cfa_EXECUTE+00H |
call cfa_DEFINITIONS+00H |
DB 0C3H |
AHEADER 0 ,'INIT',cfa_INIT |
call cfa_CURFILE+00H |
DB 0C7H,00H |
DD 00H |
DB 0B8H |
DD 01H |
call cfa_ALIGNminusBYTES+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP0+00H |
DB 0C7H,00H |
DD 00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_JP0+00H |
call cfa_JpBuffSize+00H |
call cfa_ERASE+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_LITcom+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 020H |
DB 08DH,06DH,0FCH |
call cfa_MM_SIZE+09H |
call cfa_SETminusOPT+00H |
call cfa_TITLE+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_AUTOEXEC+00H |
call cfa_CATCH+00H |
call cfa_queDUP+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_INIT+08CH |
DB 074H,05H |
call cfa_ERROR_DO+00H |
DB 090H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_QUIT+00H |
call cfa_CATCH+00H |
call cfa_ERROR_DO+00H |
DB 0EBH,0E8H |
DB 0C3H |
AHEADER 0 ,'HH.',cfa_HHdot |
DB 089H,045H,0FCH |
DB 0B8H |
DD 010000000H |
DB 08DH,06DH,0FCH |
call cfa_U_divMOD+00H |
call cfa_DIGITgreat+00H |
call cfa_EMIT+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01000000H |
DB 08DH,06DH,0FCH |
call cfa_U_divMOD+00H |
call cfa_DIGITgreat+00H |
call cfa_EMIT+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0100000H |
DB 08DH,06DH,0FCH |
call cfa_U_divMOD+00H |
call cfa_DIGITgreat+00H |
call cfa_EMIT+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 010000H |
DB 08DH,06DH,0FCH |
call cfa_U_divMOD+00H |
call cfa_DIGITgreat+00H |
call cfa_EMIT+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01000H |
DB 08DH,06DH,0FCH |
call cfa_U_divMOD+00H |
call cfa_DIGITgreat+00H |
call cfa_EMIT+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0100H |
DB 08DH,06DH,0FCH |
call cfa_U_divMOD+00H |
call cfa_DIGITgreat+00H |
call cfa_EMIT+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 010H |
DB 08DH,06DH,0FCH |
call cfa_U_divMOD+00H |
call cfa_DIGITgreat+00H |
call cfa_EMIT+00H |
call cfa_DIGITgreat+00H |
call cfa_EMIT+00H |
DB 0C3H |
AHEADER 0 ,'ERR-EXIT',cfa_ERRminusEXIT |
call cfa_CATCH+00H |
call cfa_queDUP+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_ERRminusEXIT+019H |
DB 074H,05H |
call cfa__BYE+00H |
DB 0C3H |
AHEADER 0 ,'TITLE',cfa_TITLE |
call cfa__SLITERALminusCODE+00H |
DB 01EH |
DB 'SP-FOPTH ANS FORTH 94 for fasm',0 |
call cfa_TYPE+00H |
call cfa_CR+00H |
call cfa__SLITERALminusCODE+00H |
DB 024H |
DB 'A.Cherezov http://www.forth.org.ru/',0 |
call cfa_TYPE+00H |
call cfa_CR+00H |
call cfa__SLITERALminusCODE+00H |
DB 03EH |
DB 'M.Maksimov http://forth.spb.su:8888/ http://www.chat.ru/~mak',0 |
call cfa_TYPE+00H |
call cfa_CR+00H |
call cfa__SLITERALminusCODE+00H |
DB 01BH |
DB 'PAGE - Clearing of a screen',0 |
call cfa_TYPE+00H |
call cfa_CR+00H |
call cfa__SLITERALminusCODE+00H |
DB 01BH |
DB 'WORDS - list of forth-words',0 |
call cfa_TYPE+00H |
call cfa_CR+00H |
call cfa__SLITERALminusCODE+00H |
DB 01CH |
DB 'BYE - KolibriOS continuance',0 |
call cfa_TYPE+00H |
call cfa_CR+00H |
DB 0C3H |
AHEADER 0 ,'<FLOAT-INIT>',cfa_lessFLOATminusINITgreat |
call cfa__VECTminusCODE+00H |
DD cfa_NOOP+00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'MAINX',cfa_MAINX |
call cfa__CREATEminusCODE+00H |
DD 00H |
AHEADER 0 ,'REFILL',cfa_REFILL |
call cfa_SOURCEminusID+00H |
DB 03DH |
DD 0FFFFFFFFH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_REFILL+01CH |
DB 075H,0AH |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
DB 0EBH,02BH |
call cfa_SOURCEminusID+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_REFILL+037H |
DB 074H,0CH |
call cfa_SOURCEminusID+00H |
call cfa_FREFILL+00H |
DB 0EBH,010H |
call cfa_QUERY+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
DB 0C3H |
AHEADER 0 ,'FREFILL',cfa_FREFILL |
call cfa_TIB+00H |
call cfa_C_divL+00H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,045H,04H |
DB 089H,055H,04H |
call cfa_READminusLINE+00H |
call cfa_THROW+00H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
call cfa_nTIB+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 033H,0C0H |
DB 08DH,06DH,04H |
call cfa_greatIN+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_CURSTR+00H |
DB 0FFH,00H |
DB 033H,0C0H |
call cfa_SOURCE+00H |
DB 03H,045H,00H |
DB 08BH,055H,04H |
DB 088H,010H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
DB 0C3H |
AHEADER 0 ,'QUERY',cfa_QUERY |
call cfa_TIB+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 050H |
DB 08DH,06DH,0FCH |
call cfa_ACCEPT+00H |
call cfa_nTIB+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 033H,0C0H |
DB 08DH,06DH,04H |
call cfa_greatIN+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'CONSOLE-HANDLES',cfa_CONSOLEminusHANDLES |
DB 0C3H |
AHEADER 0 ,'<PRE>',cfa_lessPREgreat |
call cfa__VECTminusCODE+00H |
DD cfa_NOOP+00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'PSKIP',cfa_PSKIP |
DB 090H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_GetChar+00H |
DB 050H |
DB 08BH,045H,00H |
DB 033H,045H,04H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 089H,045H,04H |
DB 058H |
DB 023H,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
DW 0840FH |
DD cfa_PSKIP+03AH-$-4 |
call cfa_greatIN+00H |
DB 0FFH,00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0EBH,0C7H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'PARSE',cfa_PARSE |
call cfa_CharAddr+00H |
call cfa_greatIN+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,045H,04H |
DB 089H,055H,04H |
call cfa_SkipUpTo+00H |
call cfa_greatIN+00H |
DB 08BH,00H |
DB 0F7H,0D8H |
DB 03H,045H,00H |
DB 0F7H,0D8H |
DB 08DH,06DH,04H |
call cfa_greatIN+00H |
DB 0FFH,00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'PARSE-NAME',cfa_PARSEminusNAME |
call cfa_PARSEminusWORD+00H |
DB 0C3H |
AHEADER 0 ,'NextWord',cfa_NextWord |
call cfa_PARSEminusWORD+00H |
DB 0C3H |
AHEADER 0 ,'PARSE-WORD',cfa_PARSEminusWORD |
call cfa_SkipDelimiters+00H |
call cfa_ParseWord+00H |
call cfa_greatIN+00H |
DB 0FFH,00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'UPPER_NW',cfa_UPPER_NW |
call cfa_UPPER_SCR+00H |
call cfa_PLACE+00H |
call cfa_UPPER_SCR+00H |
DB 08DH,050H,01H |
DB 089H,055H,0FCH |
DB 0FH,0B6H,00H |
DB 08BH,055H,0FCH |
DB 089H,045H,0F8H |
DB 089H,055H,0F4H |
DB 08DH,06DH,0F4H |
call cfa_UPPER+00H |
DB 0C3H |
AHEADER 0 ,'UPPER',cfa_UPPER |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,04H |
DB 0BBH |
DD cfa_UPPER+055H |
DB 03BH,045H,0F8H |
;jne cfa_UPPER+017H |
DB 075H,05H |
DB 08BH,045H,0FCH |
DB 0FFH,0E3H |
DB 053H |
DB 0BBH |
DD 080000000H |
DB 02BH,05DH,0F8H |
DB 053H |
DB 03H,0D8H |
DB 053H |
DB 08BH,045H,0FCH |
DB 08DH,050H,01H |
DB 089H,055H,0FCH |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_UPC+00H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08DH,040H,0FFH |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0FFH,04H,024H |
;jno cfa_UPPER+027H |
DB 071H,0D6H |
DB 08DH,064H,024H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'UPC',cfa_UPC |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0B8H |
DD 05AH |
DB 03BH,045H,0F8H |
DB 08BH,045H,0FCH |
;jae cfa_UPC+01EH |
DB 073H,0BH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0DFH |
DB 023H,045H,0FCH |
DB 0C3H |
AHEADER 0 ,'UPPER_SCR',cfa_UPPER_SCR |
call cfa__CREATEminusCODE+00H |
DD 00H |
DB 00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H |
AHEADER 0 ,'ParseWord',cfa_ParseWord |
call cfa_CharAddr+00H |
call cfa_greatIN+00H |
DB 08BH,00H |
call cfa_SkipWord+00H |
call cfa_greatIN+00H |
DB 08BH,00H |
DB 0F7H,0D8H |
DB 03H,045H,00H |
DB 0F7H,0D8H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'SkipUpTo',cfa_SkipUpTo |
DB 090H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_GetChar+00H |
DB 050H |
DB 08BH,045H,00H |
DB 033H,045H,04H |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 089H,045H,04H |
DB 058H |
DB 023H,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
DW 0840FH |
DD cfa_SkipUpTo+039H-$-4 |
call cfa_greatIN+00H |
DB 0FFH,00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0EBH,0C8H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'SkipWord',cfa_SkipWord |
DB 090H |
call cfa_OnNotDelimiter+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_SkipWord+023H-$-4 |
call cfa_greatIN+00H |
DB 0FFH,00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0EBH,0DEH |
DB 0C3H |
AHEADER 0 ,'OnNotDelimiter',cfa_OnNotDelimiter |
call cfa_GetChar+00H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
call cfa_IsDelimiter+00H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 023H,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'SkipDelimiters',cfa_SkipDelimiters |
DB 090H |
call cfa_OnDelimiter+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_SkipDelimiters+023H-$-4 |
call cfa_greatIN+00H |
DB 0FFH,00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0EBH,0DEH |
call cfa_greatIN+00H |
DB 08BH,00H |
call cfa_greatIN_WORD+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'OnDelimiter',cfa_OnDelimiter |
call cfa_GetChar+00H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
call cfa_IsDelimiter+00H |
DB 023H,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'GetChar',cfa_GetChar |
call cfa_EndOfChunk+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_GetChar+01EH |
DB 074H,0FH |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_FALSE+00H |
DB 0EBH,0AH |
call cfa_PeekChar+00H |
call cfa_TRUE+00H |
DB 0C3H |
AHEADER 0 ,'IsDelimiter',cfa_IsDelimiter |
call cfa_BL+00H |
DB 08DH,040H,01H |
DB 039H,045H,00H |
DB 0FH,09DH,0C0H |
DB 083H,0E0H,01H |
DB 048H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'PeekChar',cfa_PeekChar |
call cfa_CharAddr+00H |
DB 0FH,0B6H,00H |
DB 0C3H |
AHEADER 0 ,'CharAddr',cfa_CharAddr |
call cfa_SOURCE+00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_greatIN+00H |
DB 08BH,00H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'EndOfChunk',cfa_EndOfChunk |
call cfa_greatIN+00H |
DB 08BH,00H |
call cfa_SOURCE+00H |
DB 039H,045H,04H |
DB 0FH,09DH,0C0H |
DB 083H,0E0H,01H |
DB 048H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'SOURCE!',cfa_SOURCEsave |
call cfa_nTIB+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_TIB+09H |
call cfa_greatIN+00H |
DB 0C7H,00H |
DD 00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'SOURCE',cfa_SOURCE |
call cfa_TIB+00H |
call cfa_nTIB+00H |
DB 08BH,00H |
DB 0C3H |
AHEADER 0 ,'C/L',cfa_C_divL |
call cfa__CONSTANTminusCODE+00H |
DD 0200H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 1 ,'>r',cfa_greatr |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_CminusgreatR+00H |
call cfa_INLINEcom+00H |
DB 0C3H |
AHEADER 1 ,'r>',cfa_rgreat |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_CminusRgreat+00H |
call cfa_INLINEcom+00H |
DB 0C3H |
AHEADER 0 ,'>RESOLVE',cfa_greatRESOLVE |
DB 03DH |
DD 01H |
;jne cfa_greatRESOLVE+014H |
DB 075H,0DH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_greatRESOLVE1+00H |
DB 0EBH,022H |
DB 03DH |
DD 02H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_greatRESOLVE+031H |
DB 074H,010H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFF829H |
DB 08DH,06DH,0FCH |
call cfa_THROW+00H |
call cfa_greatRESOLVE1+00H |
DB 0C3H |
AHEADER 0 ,'>RESOLVE1',cfa_greatRESOLVE1 |
call cfa_HERE+00H |
DB 08BH,04DH,00H |
DB 0F7H,0D9H |
DB 08DH,04H,01H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04H |
DB 0F7H,0D8H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'>ORESOLVE',cfa_greatORESOLVE |
DB 03DH |
DD 01H |
;jne cfa_greatORESOLVE+014H |
DB 075H,0DH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_greatORESOLVE1+00H |
DB 0EBH,022H |
DB 03DH |
DD 02H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_greatORESOLVE+031H |
DB 074H,010H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFF829H |
DB 08DH,06DH,0FCH |
call cfa_THROW+00H |
call cfa_greatORESOLVE1+00H |
DB 0C3H |
AHEADER 0 ,'>ORESOLVE1',cfa_greatORESOLVE1 |
call cfa_queSET+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_DP+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_dcomaminusSET+09H |
DB 08BH,04DH,00H |
DB 0F7H,0D9H |
DB 08DH,04H,01H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04H |
DB 0F7H,0D8H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_RESOLVE_OPT+00H |
DB 0C3H |
AHEADER 0 ,'<MARK',cfa_lessMARK |
call cfa_HERE+00H |
DB 0C3H |
AHEADER 0 ,'>MARK',cfa_greatMARK |
call cfa_DP+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_dcomaminusSET+09H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04H |
DB 0F7H,0D8H |
DB 03H,045H,0FCH |
DB 0C3H |
AHEADER 0 ,'",',cfa_dticcom |
DB 08DH,050H,01H |
DB 089H,055H,0FCH |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_Sdticcom+00H |
DB 0C3H |
AHEADER 0 ,'CLIT,',cfa_CLITcom |
DB 08DH,050H,01H |
DB 089H,055H,0FCH |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_PAD+00H |
call cfa_dolsave+00H |
call cfa_CLITERALminusCODE+00H |
call cfa__COMPILEcom+00H |
call cfa_PAD+00H |
DB 08DH,050H,01H |
DB 089H,055H,0FCH |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_Sdticcom+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
DB 0C3H |
AHEADER 0 ,'SLIT,',cfa_SLITcom |
call cfa_SLITERALminusCODE+00H |
call cfa_COMPILEcom+00H |
call cfa_Sdticcom+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
DB 0C3H |
AHEADER 0 ,'S",',cfa_Sdticcom |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_Scom+00H |
DB 0C3H |
AHEADER 0 ,'S,',cfa_Scom |
call cfa_DP+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_CMOVE+00H |
DB 0C3H |
AHEADER 0 ,'?BRANCH,',cfa_queBRANCHcom |
call cfa_queSET+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 084H |
DB 08DH,06DH,0FCH |
call cfa_J_COD+09H |
call cfa_quequequeBRminusOPT+00H |
call cfa_SetJP+00H |
call cfa_SetOP+00H |
call cfa_J_COD+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FH |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_Ccom+00H |
DB 0BH,0C0H |
;je cfa_queBRANCHcom+054H |
DB 074H,012H |
call cfa_DP+00H |
DB 08BH,00H |
DB 08DH,040H,04H |
DB 0F7H,0D8H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
call cfa_com+00H |
call cfa_DP+00H |
DB 08BH,00H |
call cfa_LASTminusHERE+09H |
DB 0C3H |
AHEADER 0 ,'RLIT,',cfa_RLITcom |
DB 089H,045H,0FCH |
DB 0B8H |
DD 068H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_com+00H |
DB 0C3H |
AHEADER 0 ,'DLIT,',cfa_DLITcom |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
call cfa_LITcom+00H |
call cfa_LITcom+00H |
DB 0C3H |
AHEADER 0 ,'LIT,',cfa_LITcom |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_DUP+00H |
call cfa_INLINEcom+00H |
call cfa_OPT_INIT+00H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_com+00H |
call cfa_OPT+00H |
call cfa_OPT_CLOSE+00H |
DB 0C3H |
AHEADER 0 ,'RET,',cfa_RETcom |
call cfa_queSET+00H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C3H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_OPT+00H |
call cfa_OPT_CLOSE+00H |
DB 0C3H |
AHEADER 0 ,'BRANCH,',cfa_BRANCHcom |
call cfa_queSET+00H |
call cfa_SetOP+00H |
call cfa_SetJP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0E9H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
DB 0BH,0C0H |
;je cfa_BRANCHcom+035H |
DB 074H,012H |
call cfa_DP+00H |
DB 08BH,00H |
DB 08DH,040H,04H |
DB 0F7H,0D8H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
call cfa_com+00H |
call cfa_DP+00H |
DB 08BH,00H |
call cfa_LASTminusHERE+09H |
DB 0C3H |
AHEADER 0 ,'COMPILE,',cfa_COMPILEcom |
call cfa_CONgreatLIT+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_COMPILEcom+02AH |
DB 074H,01BH |
call cfa_INLINEque+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_COMPILEcom+025H |
DB 074H,07H |
call cfa_INLINEcom+00H |
DB 0EBH,05H |
call cfa__COMPILEcom+00H |
DB 0C3H |
AHEADER 0 ,'_COMPILE,',cfa__COMPILEcom |
call cfa_queSET+00H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0E8H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_DP+00H |
DB 08BH,00H |
DB 08DH,040H,04H |
DB 0F7H,0D8H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
call cfa_com+00H |
call cfa_DP+00H |
DB 08BH,00H |
call cfa_LASTminusHERE+09H |
DB 0C3H |
AHEADER 0 ,'HERE',cfa_HERE |
call cfa_DP+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_dcomaminusSET+09H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_JminusSET+09H |
DB 0C3H |
AHEADER 0 ,'RESOLVE_OPT',cfa_RESOLVE_OPT |
call cfa_OPTque+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_RESOLVE_OPT+016H |
DB 075H,07H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
call cfa_J_OPTque+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_RESOLVE_OPT+02CH |
DB 075H,07H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08DH,040H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_JP0+00H |
call cfa_JpBuffSize+00H |
DB 03H,045H,00H |
DB 08DH,040H,0FCH |
DB 08BH,00H |
DB 03BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jbe cfa_RESOLVE_OPT+075H |
DB 076H,023H |
DB 089H,045H,0FCH |
DB 08DH,040H,0FCH |
DB 089H,045H,0F8H |
DB 08BH,00H |
DB 03H,045H,0F8H |
DB 08DH,040H,04H |
DB 08DH,06DH,0FCH |
call cfa_JminusSET+00H |
call cfa_UMAX+00H |
call cfa_JminusSET+09H |
call cfa_DP+00H |
DB 08BH,00H |
DB 08BH,04DH,00H |
DB 0F7H,0D9H |
DB 08DH,04H,01H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 07EH |
DB 03BH,045H,0FCH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jge cfa_RESOLVE_OPT+09EH |
DB 07DH,07H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
call cfa_DP+00H |
DB 08BH,00H |
call cfa_LASTminusHERE+00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;je cfa_RESOLVE_OPT+0C1H |
DB 074H,0CH |
call cfa_queSET+00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
call cfa_OPTque+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_RESOLVE_OPT+0D7H |
DB 075H,07H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
DB 08DH,040H,04H |
call cfa_OP0+00H |
DB 090H |
DB 090H |
call cfa_Jque_STEP+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_RESOLVE_OPT+0E1H |
DB 074H,0F1H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_RESOLVE_OPT+016FH |
DB 074H,075H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 089H,045H,0F8H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0E9H |
DB 08BH,045H,0F8H |
DB 08DH,06DH,0FCH |
;jne cfa_RESOLVE_OPT+012EH |
DB 075H,01CH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0EBH |
DB 08BH,055H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,0C2H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 0B8H |
DD 03H |
DB 0EBH,02FH |
DB 089H,045H,0FCH |
DB 0FH,0B7H,040H,01H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 010H |
DB 0F7H,0D8H |
DB 03H,045H,0F8H |
DB 08BH,055H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,0C2H |
DB 08DH,06DH,0FCH |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04H |
DB 08DH,06DH,0FCH |
call cfa_J_MOVE+00H |
call cfa_DP+00H |
DB 08BH,00H |
call cfa_LASTminusHERE+09H |
DB 0C3H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'J_OPT?',cfa_J_OPTque |
call cfa__CONSTANTminusCODE+00H |
DD 0FFFFFFFFH |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'J_MOVE',cfa_J_MOVE |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0840FH |
DD cfa_J_MOVE+0E5H-$-4 |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08BH,00H |
DB 08BH,055H,0FCH |
DB 089H,045H,0F8H |
DB 089H,055H,0F4H |
DB 0F7H,0D8H |
DB 03H,045H,0F4H |
DB 0F7H,0D8H |
DB 089H,045H,0F4H |
DB 08BH,045H,0F8H |
DB 08DH,06DH,0F4H |
call cfa_DP+00H |
DB 08BH,00H |
DB 0F7H,0D8H |
DB 03H,045H,00H |
DB 0F7H,0D8H |
DB 08DH,06DH,04H |
call cfa_CMOVE+00H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08DH,06DH,08H |
DB 0BBH |
DD cfa_J_MOVE+0E5H |
DB 03BH,045H,0F8H |
;jne cfa_J_MOVE+077H |
DB 075H,05H |
DB 08BH,045H,0FCH |
DB 0FFH,0E3H |
DB 053H |
DB 0BBH |
DD 080000000H |
DB 02BH,05DH,0F8H |
DB 053H |
DB 03H,0D8H |
DB 053H |
DB 08BH,045H,0FCH |
DB 089H,045H,0FCH |
DB 0F7H,0D8H |
DB 089H,045H,0F8H |
DB 08BH,04H,024H |
DB 02BH,044H,024H,04H |
DB 08BH,055H,0F8H |
DB 01H,010H |
DB 08BH,045H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,04H,024H |
DB 02BH,044H,024H,04H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0E8H |
DB 08BH,045H,0FCH |
;jne cfa_J_MOVE+0D1H |
DB 075H,01AH |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 08BH,04H,024H |
DB 02BH,044H,024H,04H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0F8H |
DB 01H,010H |
DB 08BH,045H,0FCH |
call cfa_CELL+00H |
DB 01H,04H,024H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jno cfa_J_MOVE+087H |
DB 071H,0A6H |
DB 08DH,064H,024H,0CH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
call cfa_JP0+00H |
call cfa_JpBuffSize+00H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
call cfa_JP0+00H |
DB 08DH,06DH,08H |
DB 0BBH |
DD cfa_J_MOVE+0210H |
DB 03BH,045H,0F8H |
;jne cfa_J_MOVE+0117H |
DB 075H,05H |
DB 08BH,045H,0FCH |
DB 0FFH,0E3H |
DB 053H |
DB 0BBH |
DD 080000000H |
DB 02BH,05DH,0F8H |
DB 053H |
DB 03H,0D8H |
DB 053H |
DB 08BH,045H,0FCH |
DB 08BH,0CH,024H |
DB 02BH,04CH,024H,04H |
DB 08BH,09H |
DB 0BH,0C9H |
DW 0840FH |
DD cfa_J_MOVE+01F8H-$-4 |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 08BH,04H,024H |
DB 02BH,044H,024H,04H |
DB 08BH,00H |
DB 03BH,045H,0F8H |
DB 08BH,045H,0FCH |
;jbe cfa_J_MOVE+01A7H |
DB 076H,058H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 0F7H,0D8H |
DB 089H,045H,0F8H |
DB 08BH,04H,024H |
DB 02BH,044H,024H,04H |
DB 08BH,055H,0F8H |
DB 01H,010H |
DB 08BH,045H,0FCH |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 08BH,04H,024H |
DB 02BH,044H,024H,04H |
DB 08BH,00H |
DB 08DH,06DH,0F8H |
call cfa_J__ld+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jae cfa_J_MOVE+01A5H |
DB 073H,01AH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 089H,045H,0F8H |
DB 08BH,04H,024H |
DB 02BH,044H,024H,04H |
DB 08BH,00H |
DB 08DH,06DH,0F8H |
call cfa_J_plussave+00H |
DB 0EBH,051H |
DB 089H,045H,0FCH |
DB 08BH,0CH,024H |
DB 02BH,04CH,024H,04H |
DB 08BH,09H |
DB 033H,0C1H |
DB 08BH,045H,0FCH |
;je cfa_J_MOVE+01F8H |
DB 074H,03EH |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 08BH,04H,024H |
DB 02BH,044H,024H,04H |
DB 08BH,00H |
DB 08DH,06DH,0F8H |
call cfa_J__ld+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_J_MOVE+01F8H |
DB 076H,01CH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 0F7H,0D8H |
DB 089H,045H,0F8H |
DB 08BH,04H,024H |
DB 02BH,044H,024H,04H |
DB 08BH,00H |
DB 08DH,06DH,0F8H |
call cfa_J_plussave+00H |
call cfa_CELL+00H |
DB 01H,04H,024H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0810FH |
DD cfa_J_MOVE+0127H-$-4 |
DB 08DH,064H,024H,0CH |
DB 08BH,045H,00H |
DB 0F7H,0D8H |
DB 089H,045H,04H |
DB 08DH,06DH,04H |
call cfa_ALLOT+00H |
call cfa_dcomaminusSET+00H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
call cfa_dcomaminusSET+09H |
DB 0C3H |
DB 0C3H |
AHEADER 0 ,'J_+!',cfa_J_plussave |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 025H |
DD 0F0H |
DB 03DH |
DD 070H |
DB 08BH,045H,0FCH |
;jne cfa_J_plussave+01DH |
DB 075H,08H |
DB 08DH,040H,01H |
DB 0E9H |
DD cfa_J_plussave+083H-$-4 |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0EBH |
DB 08BH,045H,0FCH |
;jne cfa_J_plussave+035H |
DB 075H,08H |
DB 08DH,040H,01H |
DB 0E9H |
DD cfa_J_plussave+083H-$-4 |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0E9H |
DB 08BH,045H,0FCH |
;jne cfa_J_plussave+04DH |
DB 075H,08H |
DB 08DH,040H,01H |
DB 0E9H |
DD cfa_J_plussave+083H-$-4 |
DB 089H,045H,0FCH |
DB 0FH,0B7H,00H |
DB 025H |
DD 0F0FFH |
DB 03DH |
DD 0800FH |
DB 08BH,045H,0FCH |
;jne cfa_J_plussave+06AH |
DB 075H,08H |
DB 08DH,040H,02H |
DB 0E9H |
DD cfa_J_plussave+083H-$-4 |
call cfa__SLITERALminusCODE+00H |
DB 08H |
DB 'J_+! ERR',0 |
call cfa_TYPE+00H |
call cfa_ABORT+00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'J?_STEP',cfa_Jque_STEP |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08DH,06DH,0FCH |
call cfa_JminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jb cfa_Jque_STEP+02AH |
DB 072H,011H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08DH,06DH,0FCH |
call cfa_DP+00H |
DB 08BH,00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_Jque_STEP+053H |
DB 075H,0EH |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
call cfa_TRUE+00H |
DB 0C3H |
DB 08BH,08H |
DB 08BH,09H |
DB 081H,0E1H |
DD 0FFFFF0FFH |
DB 081H,0F9H |
DD 0800FH |
;jne cfa_Jque_STEP+076H |
DB 075H,011H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 0C3H |
DB 08BH,08H |
DB 08BH,09H |
DB 081H,0F9H |
DD 0E9H |
;jne cfa_Jque_STEP+093H |
DB 075H,011H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08DH,040H,04H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
call cfa_OpBuffSize+00H |
DB 03H,045H,00H |
DB 03BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jae cfa_Jque_STEP+0C5H |
DB 073H,011H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 0C3H |
DB 08BH,055H,00H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 033H,0C2H |
DB 0BH,0C0H |
DB 08BH,045H,0FCH |
;jne cfa_Jque_STEP+0E7H |
DB 075H,011H |
DB 08DH,040H,04H |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
call cfa_TRUE+00H |
DB 0C3H |
DB 08DH,040H,04H |
call cfa_FALSE+00H |
DB 0C3H |
AHEADER 0 ,'CON>LIT',cfa_CONgreatLIT |
call cfa_OPTque+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_CONgreatLIT+015H |
DB 075H,06H |
call cfa_TRUE+00H |
DB 0C3H |
call cfa_queSET+00H |
call cfa_MM_SIZE+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_CONgreatLIT+02FH |
DB 075H,06H |
call cfa_TRUE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0E8H |
DB 08BH,045H,0FCH |
;je cfa_CONgreatLIT+045H |
DB 074H,06H |
call cfa_TRUE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08DH,040H,01H |
DB 089H,045H,0F8H |
DB 08BH,00H |
DB 03H,045H,0F8H |
DB 08DH,040H,04H |
DB 089H,045H,0F8H |
DB 08DH,06DH,0F8H |
call cfa_CREATEminusCODE+00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_CONgreatLIT+092H |
DB 075H,026H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OPT_INIT+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05H |
DB 03H,045H,0FCH |
call cfa_FORLITcom+00H |
call cfa_FALSE+00H |
call cfa_OPT_CLOSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_USERminusCODE+00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_CONgreatLIT+0FAH |
DB 075H,052H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OPT_INIT+00H |
DB 089H,045H,0FCH |
DB 0A1H |
DD cfa_ticDUP_V+05H |
DB 08DH,06DH,0FCH |
call cfa__INLINEcom+00H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0878DH |
DB 08DH,06DH,0FCH |
call cfa_Wcom+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05H |
DB 03H,045H,0FCH |
DB 08BH,00H |
call cfa_com+00H |
call cfa_OPT+00H |
call cfa_FALSE+00H |
call cfa_OPT_CLOSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_USERminusVALUEminusCODE+00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_CONgreatLIT+0162H |
DB 075H,052H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OPT_INIT+00H |
DB 089H,045H,0FCH |
DB 0A1H |
DD cfa_ticDUP_V+05H |
DB 08DH,06DH,0FCH |
call cfa__INLINEcom+00H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0878BH |
DB 08DH,06DH,0FCH |
call cfa_Wcom+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05H |
DB 03H,045H,0FCH |
DB 08BH,00H |
call cfa_com+00H |
call cfa_OPT+00H |
call cfa_FALSE+00H |
call cfa_OPT_CLOSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_CONSTANTminusCODE+00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_CONgreatLIT+0201H-$-4 |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OPT_INIT+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05H |
DB 03H,045H,0FCH |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0B8H |
DD 05H |
DB 03H,045H,0F8H |
DB 089H,045H,0F8H |
DB 08BH,00H |
DB 03H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_TOVALUEminusCODE+00H |
DB 08DH,040H,0FCH |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_CONgreatLIT+01EFH |
DB 075H,031H |
DB 089H,045H,0FCH |
DB 0A1H |
DD cfa_ticDUP_V+05H |
DB 08DH,06DH,0FCH |
call cfa__INLINEcom+00H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0A1H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_com+00H |
call cfa_OPT+00H |
DB 0EBH,07H |
DB 08BH,00H |
call cfa_FORLITcom+00H |
call cfa_FALSE+00H |
call cfa_OPT_CLOSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08DH,040H,01H |
DB 089H,045H,0F8H |
DB 08BH,00H |
DB 03H,045H,0F8H |
DB 08DH,040H,04H |
DB 08DH,06DH,0FCH |
call cfa_DOESminusCODE+00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_CONgreatLIT+0256H |
DB 075H,031H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 089H,055H,0FCH |
DB 0B8H |
DD 05H |
DB 03H,045H,0FCH |
call cfa_OPT_INIT+00H |
call cfa_FORLITcom+00H |
call cfa_TRUE+00H |
call cfa_OPT_CLOSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_TOUSERminusVALUEminusCODE+00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_CONgreatLIT+02B6H |
DB 075H,04AH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OPT_INIT+00H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08789H |
DB 08DH,06DH,0FCH |
call cfa_Wcom+00H |
DB 08DH,040H,0FCH |
DB 08BH,00H |
call cfa_com+00H |
call cfa_OPT+00H |
DB 089H,045H,0FCH |
DB 0A1H |
DD cfa_ticDROP_V+05H |
DB 08DH,06DH,0FCH |
call cfa__INLINEcom+00H |
call cfa_FALSE+00H |
call cfa_OPT_CLOSE+00H |
DB 0C3H |
call cfa_TOVALUEminusCODE+00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_CONgreatLIT+0308H |
DB 075H,042H |
call cfa_OPT_INIT+00H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0A3H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
DB 08DH,040H,0FCH |
call cfa_com+00H |
call cfa_OPT+00H |
DB 089H,045H,0FCH |
DB 0A1H |
DD cfa_ticDROP_V+05H |
DB 08DH,06DH,0FCH |
call cfa__INLINEcom+00H |
call cfa_FALSE+00H |
call cfa_OPT_CLOSE+00H |
DB 0C3H |
call cfa_TRUE+00H |
DB 0C3H |
AHEADER 0 ,'FORLIT,',cfa_FORLITcom |
DB 089H,045H,0FCH |
DB 0A1H |
DD cfa_ticDUP_V+05H |
DB 08DH,06DH,0FCH |
call cfa__INLINEcom+00H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_com+00H |
call cfa_OPT+00H |
DB 0C3H |
AHEADER 0 ,'OPT',cfa_OPT |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_NOOP+00H |
call cfa_DO_OPT+00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'???BR-OPT',cfa_quequequeBRminusOPT |
call cfa_OPTque+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_quequequeBRminusOPT+01FH |
DB 075H,010H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C00BH |
DB 08DH,06DH,0FCH |
call cfa_Wcom+00H |
call cfa_FALSE+00H |
call cfa_tilBRminusOPT+09H |
DB 089H,045H,0FCH |
DB 0A1H |
DD cfa_ticDROP_V+05H |
DB 08DH,06DH,0FCH |
call cfa_quequeBRminusOPT+00H |
call cfa_INLINEcom+00H |
call cfa_TRUE+00H |
call cfa_tilBRminusOPT+09H |
call cfa_OPTque+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_quequequeBRminusOPT+0E8H-$-4 |
call cfa_OPT_INIT+00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C00BH |
DB 033H,045H,0FCH |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 089H,045H,0FCH |
DB 050H |
DB 083H,07DH,0FCH,00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_quequequeBRminusOPT+094H |
DB 074H,0AH |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_NOOP+00H |
call cfa_queBRminusOPT+00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C00BH |
DB 033H,045H,0FCH |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 089H,045H,0FCH |
DB 058H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 023H,045H,0FCH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_quequequeBRminusOPT+0E3H |
DB 074H,0AH |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
call cfa_OPT_CLOSE+00H |
DB 0C3H |
AHEADER 0 ,'??BR-OPT',cfa_quequeBRminusOPT |
call cfa_OPTque+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_quequeBRminusOPT+01EH |
DB 074H,0FH |
call cfa_OPT_INIT+00H |
call cfa_queBRminusOPT+00H |
call cfa_OPT_CLOSE+00H |
DB 0C3H |
AHEADER 0 ,'?BR-OPT',cfa_queBRminusOPT |
DB 090H |
call cfa_queBRminusOPTminusRULES+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_queBRminusOPT+01H |
DB 074H,0F1H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_NOOP+00H |
call cfa_OPTminusRULES+00H |
DB 0BH,0C0H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;je cfa_queBRminusOPT+01H |
DB 074H,0D6H |
call cfa_BRminusEVENminusEAX+00H |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_queBRminusOPT+05DH |
DB 076H,016H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C00BH |
DB 08DH,06DH,0FCH |
call cfa_Wcom+00H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 025H |
DD 0C7H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 05H |
DB 033H,045H,0F8H |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 089H,045H,0F4H |
DB 0B8H |
DD 040H |
DB 033H,045H,0F4H |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,0F8H |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 089H,045H,0F4H |
DB 0B8H |
DD 048H |
DB 033H,045H,0F4H |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,0F8H |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 089H,045H,0F4H |
DB 0B8H |
DD 03BH |
DB 033H,045H,0F4H |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,0F8H |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 089H,045H,0F4H |
DB 0B8H |
DD 0BH |
DB 033H,045H,0F4H |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,0F8H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0B8H |
DD 04000H |
DB 0BH,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_ADDlXORlORlAND_equ+00H |
DB 0F7H,0D0H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C01BH |
DB 033H,045H,0F8H |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0D02BH |
DB 033H,045H,0F8H |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 04539H |
DB 033H,045H,0F8H |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C083H |
DB 033H,045H,0F8H |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C203H |
DB 033H,045H,0F8H |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C133H |
DB 033H,045H,0F8H |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0F8C1H |
DB 033H,045H,0F8H |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 07D83H |
DB 033H,045H,0F8H |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 03D81H |
DB 033H,045H,0F8H |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 03C81H |
DB 033H,045H,0F8H |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 07C81H |
DB 033H,045H,0F8H |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 03D83H |
DB 033H,045H,0F8H |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 03C83H |
DB 033H,045H,0F8H |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,0FCH |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0240433H |
DB 033H,045H,0FCH |
DB 023H,045H,00H |
DB 023H,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;je cfa_queBRminusOPT+0277H |
DB 074H,015H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C00BH |
DB 08DH,06DH,0FCH |
call cfa_Wcom+00H |
DB 0C3H |
AHEADER 0 ,'BR-EVEN-EAX',cfa_BRminusEVENminusEAX |
call cfa_OFFminusEAX+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_BRminusEVENminusEAX+03BH |
DB 074H,02CH |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_OFFminusEAX+00H |
call cfa_com+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_OFFminusEAX+09H |
DB 0C3H |
AHEADER 0 ,'?BR-OPT-RULES',cfa_queBRminusOPTminusRULES |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_queBRminusOPTminusRULES+01DH |
DB 076H,06H |
call cfa_TRUE+00H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 05H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_queBRminusOPTminusRULES+070H |
DB 075H,03CH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OFFminusEAX+00H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OFFminusEAX+09H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFBH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0A1H |
DD cfa_ticDROP_V+05H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OFFminusEAX+00H |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_queBRminusOPTminusRULES+0D3H-$-4 |
call cfa_DP+00H |
DB 08BH,00H |
call cfa_LASTminusHERE+09H |
call cfa_INLINEcom+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_NOOP+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0A1H |
DD cfa_ticDROP_V+05H |
DB 033H,045H,0F8H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 08DH,06DH,0FCH |
call cfa_OFFminusEAX+00H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0A1H |
DB 033H,045H,0FCH |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 023H,045H,00H |
DB 023H,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;je cfa_queBRminusOPTminusRULES+015DH |
DB 074H,042H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_Wcom+00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 03D83H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OFFminusEAX+00H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 024048BH |
DB 033H,045H,0FCH |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 023H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;je cfa_queBRminusOPTminusRULES+01C3H |
DB 074H,033H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0243C83H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0A1H |
DD cfa_ticDROP_V+05H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0458BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queBRminusOPTminusRULES+021EH |
DB 075H,02AH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 07D83H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0A1H |
DD cfa_ticDROP_V+05H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C20BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queBRminusOPTminusRULES+026CH |
DB 075H,01DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D00BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0408DH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_queBRminusOPTminusRULES+02A0H |
DB 075H,01DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C083H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0808DH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_queBRminusOPTminusRULES+030BH |
DB 075H,054H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_TRUE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0A1H |
DD cfa_ticDROP_V+05H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01FF8C1H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queBRminusOPTminusRULES+0386H |
DB 075H,046H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08DH |
DB 08DH,06DH,0FCH |
call cfa_J_COD+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 023H,045H,0FCH |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_J_COD+09H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0A1H |
DD cfa_ticDROP_V+05H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 035H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queBRminusOPTminusRULES+03DAH |
DB 075H,023H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03DH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0A1H |
DD cfa_ticDROP_V+05H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0240433H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queBRminusOPTminusRULES+0432H |
DB 075H,023H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 04539H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_queBRminusOPTminusRULES+0471H |
DB 075H,028H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_XC_J+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_queBRminusOPTminusRULES+048EH |
DB 076H,06H |
call cfa_TRUE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0A1H |
DD cfa_ticDROP_V+05H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C01BD8F7H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queBRminusOPTminusRULES+04DEH |
DB 075H,020H |
call cfa_OP2+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFCH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0A1H |
DD cfa_ticDROP_V+05H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01B01E883H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C01BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queBRminusOPTminusRULES+055EH |
DB 075H,035H |
call cfa_OP2+00H |
call cfa_ToOP0+00H |
call cfa_J_COD+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 033H,045H,0FCH |
call cfa_J_COD+09H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFBH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0A1H |
DD cfa_ticDROP_V+05H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03DH |
DB 033H,045H,0FCH |
DB 0F7H,0D8H |
DB 01BH,0C0H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03BH |
DB 033H,045H,0FCH |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFDH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04539H |
DB 033H,045H,0FCH |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C01BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jne cfa_queBRminusOPTminusRULES+0633H |
DB 075H,046H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 083H |
DB 08DH,06DH,0FCH |
call cfa_J_COD+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 023H,045H,0FCH |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_J_COD+09H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0240C8BH |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C13BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queBRminusOPTminusRULES+06A3H |
DB 075H,037H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 043BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0240C8BH |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C133H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queBRminusOPTminusRULES+0713H |
DB 075H,037H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0433H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 03DH |
DD 0C13BCA8BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_queBRminusOPTminusRULES+0760H |
DB 075H,037H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C23BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C23BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queBRminusOPTminusRULES+07CCH |
DB 075H,037H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0453BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0A1H |
DD cfa_ticDROP_V+05H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C83B008BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queBRminusOPTminusRULES+0833H |
DB 075H,037H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 083BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0A1H |
DD cfa_ticDROP_V+05H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D03B008BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queBRminusOPTminusRULES+089AH |
DB 075H,037H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0103BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0A1H |
DD cfa_ticDROP_V+05H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C13B008BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queBRminusOPTminusRULES+0906H |
DB 075H,03CH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 083BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_XC_J+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B9H |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C133H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queBRminusOPTminusRULES+0978H |
DB 075H,03DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03DH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C23BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queBRminusOPTminusRULES+09EAH |
DB 075H,03DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0453BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B9H |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C83BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queBRminusOPTminusRULES+0A61H |
DB 075H,042H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03DH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_XC_J+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 03DH |
DD 0C23B008BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_queBRminusOPTminusRULES+0AB3H |
DB 075H,03CH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0103BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_XC_J+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0A1H |
DD cfa_ticDROP_V+05H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 024448BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queBRminusOPTminusRULES+0B58H |
DB 075H,055H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 07C81H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0244C8BH |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C83BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queBRminusOPTminusRULES+0BEBH |
DB 075H,05AH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0443BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_XC_J+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D8BH |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C83BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queBRminusOPTminusRULES+0C7AH |
DB 075H,05AH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 053BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_XC_J+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0A1H |
DD cfa_ticDROP_V+05H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 085048BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queBRminusOPTminusRULES+0D1FH |
DB 075H,055H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03C81H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0A1H |
DD cfa_ticDROP_V+05H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0A1H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queBRminusOPTminusRULES+0DAAH |
DB 075H,03FH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 03D81H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0A1H |
DD cfa_ticDROP_V+05H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D8F7H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C203H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queBRminusOPTminusRULES+0E2DH |
DB 075H,037H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D02BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 03DH |
DD 0C90BCA8BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_queBRminusOPTminusRULES+0E7AH |
DB 075H,037H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D20BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03DFF408DH |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queBRminusOPTminusRULES+0EE2H |
DB 075H,03DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 048H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFF9H |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_queBRminusOPTminusRULES+0EFFH |
DB 076H,06H |
call cfa_TRUE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0453BC033H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jne cfa_queBRminusOPTminusRULES+0F9EH |
DB 075H,048H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03DH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 0C7H,00H |
DD 00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_XC_J+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05589H |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0453B008BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jne cfa_queBRminusOPTminusRULES+01022H |
DB 075H,02DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C23BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04D89H |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0453B008BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jne cfa_queBRminusOPTminusRULES+010A6H |
DB 075H,02DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C13BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08BH |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04539H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
DW 0850FH |
DD cfa_queBRminusOPTminusRULES+0118AH-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 04D89H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_queBRminusOPTminusRULES+01146H |
DB 075H,02DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C83BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 05589H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_queBRminusOPTminusRULES+0118AH |
DB 075H,02DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D03BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_queBRminusOPTminusRULES+011A7H |
DB 076H,06H |
call cfa_TRUE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0A1H |
DD cfa_ticDROP_V+05H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 025H |
DD 0FFFFFCFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 083C09C0FH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04801E083H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queBRminusOPTminusRULES+0124CH |
DB 075H,053H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,040H,01H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 010H |
DB 0F7H,0D8H |
DB 03H,045H,0FCH |
call cfa_J_COD+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 023H,045H,0FCH |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_J_COD+09H |
call cfa_OP3+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFF9H |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 04533H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_queBRminusOPTminusRULES+0137AH-$-4 |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0A1H |
DD cfa_ticDROP_V+05H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 045C7H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0458BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jne cfa_queBRminusOPTminusRULES+0137AH |
DB 075H,066H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03DH |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 08BH,00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
call cfa_ToOP0+00H |
call cfa_TRUE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFF8H |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_TRUE+00H |
DB 0C3H |
AHEADER 0 ,'MACRO,',cfa_MACROcom |
call cfa_INLINEcom+00H |
DB 0C3H |
AHEADER 0 ,'INLINE,',cfa_INLINEcom |
call cfa_OPT_INIT+00H |
call cfa__INLINEcom+00H |
call cfa_OPT_CLOSE+00H |
DB 0C3H |
AHEADER 0 ,'OPT_INIT',cfa_OPT_INIT |
call cfa_queSET+00H |
call cfa_minusEVENminusEBP+00H |
DB 0C3H |
AHEADER 0 ,'OPT_CLOSE',cfa_OPT_CLOSE |
call cfa_EVENminusEBP+00H |
call cfa_DP+00H |
DB 08BH,00H |
call cfa_LASTminusHERE+09H |
DB 0C3H |
AHEADER 0 ,'XC_J',cfa_XC_J |
call cfa_J_COD+00H |
DB 025H |
DD 0FEH |
DB 03DH |
DD 04H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_XC_J+018H |
DB 075H,01H |
DB 0C3H |
call cfa_J_COD+00H |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 08H |
;je cfa_XC_J+034H |
DB 074H,0DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 08DH,06DH,0FCH |
DB 0EBH,0BH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05H |
DB 08DH,06DH,0FCH |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_J_COD+09H |
DB 0C3H |
AHEADER 0 ,'_INLINE,',cfa__INLINEcom |
DB 090H |
call cfa_DO_OPT+00H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 089H,045H,0F8H |
DB 089H,045H,0F4H |
DB 0B8H |
DD 08BE08B5BH |
DB 033H,045H,0F4H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 08DH,06DH,0F8H |
DB 0BH,0C0H |
;je cfa__INLINEcom+058H |
DB 074H,033H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 08BH,045H,04H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 08BH,050H,04H |
DB 089H,055H,0FCH |
DB 08BH,00H |
DB 089H,045H,0F8H |
DB 0C7H,045H,0F4H |
DD 0E3FF046DH |
DB 0B8H |
DD 08D00458BH |
DB 08DH,06DH,0F4H |
call cfa_D_equ+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa__INLINEcom+09DH |
DB 074H,03BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08BH |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0E0H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 0A1H |
DD cfa_ticDROP_V+05H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFH |
DB 023H,045H,0FCH |
DB 03DH |
DD 0C3H |
;jne cfa__INLINEcom+0B6H |
DB 075H,07H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
call cfa_DUP5Bque+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa__INLINEcom+0CFH |
DB 074H,0AH |
call cfa__5_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0E0H |
DB 081H,0F9H |
DD 040H |
;jne cfa__INLINEcom+0E9H |
DB 075H,0AH |
call cfa__1_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0F4H |
DB 081H,0F9H |
DD 064H |
;jne cfa__INLINEcom+0103H |
DB 075H,0AH |
call cfa__1_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 099H |
;jne cfa__INLINEcom+0114H |
DB 075H,0AH |
call cfa__1_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 089H,045H,0FCH |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0FCH |
DB 081H,0F9H |
DD 0ECH |
;jne cfa__INLINEcom+0131H |
DB 075H,0AH |
call cfa__1_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 0CDH |
;jne cfa__INLINEcom+0142H |
DB 075H,0AH |
call cfa__2_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0F0H |
DB 081H,0F9H |
DD 070H |
;jne cfa__INLINEcom+015CH |
DB 075H,0AH |
call cfa__2_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 0E8H |
;jne cfa__INLINEcom+016DH |
DB 075H,0AH |
call cfa__1A_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 0E9H |
;jne cfa__INLINEcom+017EH |
DB 075H,0AH |
call cfa__1A_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 0FH,0B7H,00H |
call cfa_DUP3Bque_xEBP_y+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa__INLINEcom+01A5H |
DB 074H,0FH |
call cfa__2_com_STEP+00H |
call cfa_plusEBP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
call cfa_DUP3Bque+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa__INLINEcom+01BEH |
DB 074H,0AH |
call cfa__3_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
call cfa_DUP2Bque+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa__INLINEcom+01D7H |
DB 074H,0AH |
call cfa__2_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 0C48BH |
;jne cfa__INLINEcom+01E8H |
DB 075H,0AH |
call cfa__2_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 0C58BH |
;jne cfa__INLINEcom+01FEH |
DB 075H,0FH |
call cfa_EVENminusEBP+00H |
call cfa__2_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 0EC87H |
;jne cfa__INLINEcom+0214H |
DB 075H,0FH |
call cfa_EVENminusEBP+00H |
call cfa__2_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 06D8DH |
;jne cfa__INLINEcom+0241H |
DB 075H,026H |
DB 08BH,045H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02H |
DB 03H,045H,0FCH |
DB 0FH,0B6H,00H |
call cfa_plusgreatOFFminusEBP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 0C583H |
;jne cfa__INLINEcom+026EH |
DB 075H,026H |
DB 08BH,045H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02H |
DB 03H,045H,0FCH |
DB 0FH,0B6H,00H |
call cfa_plusgreatOFFminusEBP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 0ED83H |
;jne cfa__INLINEcom+02A2H |
DB 075H,02DH |
DB 08BH,045H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02H |
DB 03H,045H,0FCH |
DB 0FH,0B6H,00H |
call cfa_CgreatS+00H |
DB 0F7H,0D8H |
call cfa_plusgreatOFFminusEBP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 0C483H |
;jne cfa__INLINEcom+02B3H |
DB 075H,0AH |
call cfa__3_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
call cfa_DUP6Bque+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa__INLINEcom+02CCH |
DB 074H,0AH |
call cfa__6_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 0E3FFH |
;jne cfa__INLINEcom+02E2H |
DB 075H,0FH |
call cfa_EVENminusEBP+00H |
call cfa__2_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 0D2FFH |
;jne cfa__INLINEcom+02F8H |
DB 075H,0FH |
call cfa_EVENminusEBP+00H |
call cfa__2_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 0810FH |
;jne cfa__INLINEcom+0309H |
DB 075H,0AH |
call cfa__2A_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 045C7H |
;jne cfa__INLINEcom+0324H |
DB 075H,014H |
call cfa__2_com_STEP+00H |
call cfa_plusEBP+00H |
call cfa__4_com_STEP_+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 05C7H |
;jne cfa__INLINEcom+0335H |
DB 075H,0AH |
call cfa_A_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 0581H |
;jne cfa__INLINEcom+0346H |
DB 075H,0AH |
call cfa_A_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 08BH,00H |
DB 03DH |
DD 0424448BH |
;jne cfa__INLINEcom+03A0H |
DB 075H,04BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08BH |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 024H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04H |
DB 03H,045H,0FCH |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 0424448DH |
;jne cfa__INLINEcom+03E2H |
DB 075H,03BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08BH |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C4H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04H |
DB 03H,045H,0FCH |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFH |
DB 023H,045H,0FCH |
DB 03DH |
DD 0C09D0FH |
;jne cfa__INLINEcom+03FEH |
DB 075H,0AH |
call cfa__3_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 0C09E0FH |
;jne cfa__INLINEcom+040FH |
DB 075H,0AH |
call cfa__3_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 090048DH |
;jne cfa__INLINEcom+0420H |
DB 075H,0AH |
call cfa__3_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 02048DH |
;jne cfa__INLINEcom+0431H |
DB 075H,0AH |
call cfa__3_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 040B70FH |
;jne cfa__INLINEcom+0442H |
DB 075H,0AH |
call cfa__4_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 0240401H |
;jne cfa__INLINEcom+0453H |
DB 075H,0AH |
call cfa__3_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0FFF8FFH |
DB 081H,0F9H |
DD 0B00FH |
;jne cfa__INLINEcom+046DH |
DB 075H,0AH |
call cfa__3_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 0244403H |
;jne cfa__INLINEcom+047EH |
DB 075H,0AH |
call cfa__4_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 024442BH |
;jne cfa__INLINEcom+048FH |
DB 075H,0AH |
call cfa__4_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 024448BH |
;jne cfa__INLINEcom+04A0H |
DB 075H,0AH |
call cfa__4_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 085448BH |
;jne cfa__INLINEcom+04B6H |
DB 075H,0FH |
call cfa__3_com_STEP+00H |
call cfa_plusEBP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 024048BH |
;jne cfa__INLINEcom+04C7H |
DB 075H,0AH |
call cfa__3_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 020488BH |
;jne cfa__INLINEcom+04D8H |
DB 075H,0AH |
call cfa__3_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 020488DH |
;jne cfa__INLINEcom+04E9H |
DB 075H,0AH |
call cfa__3_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 021C8DH |
;jne cfa__INLINEcom+04FAH |
DB 075H,0AH |
call cfa__3_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 085048DH |
;jne cfa__INLINEcom+050BH |
DB 075H,0AH |
call cfa__7_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 02404FFH |
;jne cfa__INLINEcom+051CH |
DB 075H,0AH |
call cfa__3_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
DB 03DH |
DD 018B60FH |
;jne cfa__INLINEcom+052DH |
DB 075H,0AH |
call cfa__3_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
call cfa_DUP7Bque+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa__INLINEcom+0546H |
DB 074H,0AH |
call cfa__7_com_STEP+00H |
DB 0E9H |
DD cfa__INLINEcom+01H-$-4 |
call cfa_HEX+00H |
call cfa_Udot+00H |
call cfa__SLITERALminusCODE+00H |
DB 0BH |
DB '@COD, ERROR',0 |
call cfa_TYPE+00H |
call cfa_ABORT+00H |
DB 0C3H |
AHEADER 0 ,'2A_,_STEP',cfa__2A_com_STEP |
call cfa__2_com_STEP+00H |
call cfa__0A_com_STEP+00H |
DB 0C3H |
AHEADER 0 ,'1A_,_STEP',cfa__1A_com_STEP |
call cfa__1_com_STEP+00H |
call cfa__0A_com_STEP+00H |
DB 0C3H |
AHEADER 0 ,'0A_,_STEP',cfa__0A_com_STEP |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 08BH,00H |
DB 03H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_DP+00H |
DB 08BH,00H |
DB 0F7H,0D8H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
call cfa_com+00H |
DB 08DH,040H,04H |
DB 0C3H |
AHEADER 0 ,'A_,_STEP',cfa_A_com_STEP |
call cfa__2_com_STEP+00H |
call cfa__4_com_STEP_+00H |
call cfa__4_com_STEP_+00H |
DB 0C3H |
AHEADER 0 ,'7_,_STEP',cfa__7_com_STEP |
call cfa__3_com_STEP+00H |
call cfa__4_com_STEP_+00H |
DB 0C3H |
AHEADER 0 ,'6_,_STEP',cfa__6_com_STEP |
call cfa__2_com_STEP+00H |
call cfa__4_com_STEP_+00H |
DB 0C3H |
AHEADER 0 ,'5_,_STEP',cfa__5_com_STEP |
call cfa__1_com_STEP+00H |
call cfa__4_com_STEP_+00H |
DB 0C3H |
AHEADER 0 ,'4_,_STEP',cfa__4_com_STEP |
call cfa_SetOP+00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa__4_com_STEP_+00H |
DB 0C3H |
AHEADER 0 ,'4_,_STEP_',cfa__4_com_STEP_ |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
call cfa_com+00H |
DB 08DH,040H,04H |
DB 0C3H |
AHEADER 0 ,'3_,_STEP',cfa__3_com_STEP |
call cfa__2_com_STEP+00H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
DB 08DH,040H,01H |
DB 0C3H |
AHEADER 0 ,'2_,_STEP',cfa__2_com_STEP |
call cfa_SetOP+00H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 0FH,0B7H,00H |
call cfa_Wcom+00H |
DB 08DH,040H,02H |
DB 0C3H |
AHEADER 0 ,'1_,_STEP',cfa__1_com_STEP |
call cfa_SetOP+00H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 0FH,0B6H,00H |
call cfa_Ccom+00H |
DB 08DH,040H,01H |
DB 0C3H |
AHEADER 0 ,'+EBP',cfa_plusEBP |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_CgreatS+00H |
call cfa_OFFminusEBP+00H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
call cfa_Ccom+00H |
DB 08DH,040H,01H |
DB 0C3H |
AHEADER 0 ,'MACRO?',cfa_MACROque |
call cfa_INLINEque+00H |
DB 0C3H |
AHEADER 0 ,'INLINE?',cfa_INLINEque |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 090H |
DB 090H |
DB 090H |
DB 08BH,055H,00H |
DB 089H,045H,0FCH |
DB 089H,055H,0F8H |
DB 08DH,06DH,0F8H |
call cfa_MM_SIZE+00H |
DB 0F7H,0D8H |
DB 03H,045H,00H |
DB 03BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jb cfa_INLINEque+036H |
DB 072H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0C3H |
DB 08DH,06DH,0FCH |
;jne cfa_INLINEque+052H |
DB 075H,0CH |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_TRUE+00H |
DB 0C3H |
call cfa_DUP5Bque+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_INLINEque+072H-$-4 |
DB 0B8H |
DD 05H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0EBH,097H |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0F4H |
DB 081H,0F9H |
DD 040H |
;jne cfa_INLINEque+090H |
DB 075H,0EH |
DB 08BH,045H,00H |
DB 08DH,040H,01H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 03DH |
DD 099H |
;jne cfa_INLINEque+0A5H |
DB 075H,0EH |
DB 08BH,045H,00H |
DB 08DH,040H,01H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 089H,045H,0FCH |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0FCH |
DB 081H,0F9H |
DD 0ECH |
;jne cfa_INLINEque+0C6H |
DB 075H,0EH |
DB 08BH,045H,00H |
DB 08DH,040H,01H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 03DH |
DD 0CDH |
;jne cfa_INLINEque+0DBH |
DB 075H,0EH |
DB 08BH,045H,00H |
DB 08DH,040H,02H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 0FH,0B7H,00H |
call cfa_DUP3Bque_xEBP_y+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_INLINEque+0103H |
DB 074H,010H |
DB 0B8H |
DD 03H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
call cfa_DUP3Bque+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_INLINEque+0122H |
DB 074H,010H |
DB 0B8H |
DD 03H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 03DH |
DD 06D8DH |
;jne cfa_INLINEque+0139H |
DB 075H,010H |
DB 0B8H |
DD 03H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 03DH |
DD 0C583H |
;jne cfa_INLINEque+0150H |
DB 075H,010H |
DB 0B8H |
DD 03H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 03DH |
DD 0ED83H |
;jne cfa_INLINEque+0167H |
DB 075H,010H |
DB 0B8H |
DD 03H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
call cfa_DUP2Bque+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_INLINEque+0184H |
DB 074H,0EH |
DB 08BH,045H,00H |
DB 08DH,040H,02H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 03DH |
DD 0EC87H |
;jne cfa_INLINEque+0199H |
DB 075H,0EH |
DB 08BH,045H,00H |
DB 08DH,040H,02H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 03DH |
DD 0C58BH |
;jne cfa_INLINEque+01AEH |
DB 075H,0EH |
DB 08BH,045H,00H |
DB 08DH,040H,02H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
call cfa_DUP6Bque+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_INLINEque+01CDH |
DB 074H,010H |
DB 0B8H |
DD 06H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 03DH |
DD 045C7H |
;jne cfa_INLINEque+01E4H |
DB 075H,010H |
DB 0B8H |
DD 07H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 03DH |
DD 05C7H |
;jne cfa_INLINEque+01FBH |
DB 075H,010H |
DB 0B8H |
DD 0AH |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 03DH |
DD 0581H |
;jne cfa_INLINEque+0212H |
DB 075H,010H |
DB 0B8H |
DD 0AH |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 08BH,00H |
DB 03DH |
DD 0424448BH |
;jne cfa_INLINEque+0231H |
DB 075H,010H |
DB 0B8H |
DD 04H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 03DH |
DD 0424448DH |
;jne cfa_INLINEque+0248H |
DB 075H,010H |
DB 0B8H |
DD 04H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 03DH |
DD 08BE08B5BH |
;jne cfa_INLINEque+0295H |
DB 075H,046H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 03H |
DB 03H,045H,0F8H |
DB 08BH,050H,04H |
DB 089H,055H,0F8H |
DB 08BH,00H |
DB 089H,045H,0F4H |
DB 0C7H,045H,0F0H |
DD 0E3FF046DH |
DB 0B8H |
DD 08D00458BH |
DB 08DH,06DH,0F0H |
call cfa_D_equ+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_INLINEque+0295H |
DB 074H,0CH |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_TRUE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFH |
DB 023H,045H,0FCH |
DB 03DH |
DD 0C09D0FH |
;jne cfa_INLINEque+02B7H |
DB 075H,010H |
DB 0B8H |
DD 03H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 03DH |
DD 0C09E0FH |
;jne cfa_INLINEque+02CEH |
DB 075H,010H |
DB 0B8H |
DD 03H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 03DH |
DD 090048DH |
;jne cfa_INLINEque+02E5H |
DB 075H,010H |
DB 0B8H |
DD 03H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 03DH |
DD 02048DH |
;jne cfa_INLINEque+02FCH |
DB 075H,010H |
DB 0B8H |
DD 03H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 03DH |
DD 040B70FH |
;jne cfa_INLINEque+0313H |
DB 075H,010H |
DB 0B8H |
DD 04H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0FFF8FFH |
DB 081H,0F9H |
DD 0B00FH |
;jne cfa_INLINEque+0333H |
DB 075H,010H |
DB 0B8H |
DD 03H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 03DH |
DD 020488BH |
;jne cfa_INLINEque+034AH |
DB 075H,010H |
DB 0B8H |
DD 03H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 03DH |
DD 020488DH |
;jne cfa_INLINEque+0361H |
DB 075H,010H |
DB 0B8H |
DD 03H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 03DH |
DD 085448BH |
;jne cfa_INLINEque+0378H |
DB 075H,010H |
DB 0B8H |
DD 04H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 03DH |
DD 02048DH |
;jne cfa_INLINEque+038FH |
DB 075H,010H |
DB 0B8H |
DD 04H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
call cfa_DUP7Bque+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_INLINEque+03AEH |
DB 074H,010H |
DB 0B8H |
DD 07H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_INLINEque+09H-$-4 |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
AHEADER 0 ,'DO_OPT',cfa_DO_OPT |
call cfa_OPTque+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_DO_OPT+014H |
DB 074H,05H |
call cfa_OPT_+00H |
DB 0C3H |
AHEADER 0 ,'OPT_',cfa_OPT_ |
DB 090H |
call cfa_OPTminusRULES+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_OPT_+01H |
DB 074H,0F1H |
call cfa_EVENminusEAX+00H |
DB 0C3H |
AHEADER 0 ,'-EVEN-EBP',cfa_minusEVENminusEBP |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_minusEVENminusEBP+018H |
DB 076H,01H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 06D8DH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_minusEVENminusEBP+05CH |
DB 075H,02DH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_plusgreatOFFminusEBP+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 0C3H |
AHEADER 0 ,'OPT-RULES',cfa_OPTminusRULES |
DB 090H |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_OPTminusRULES+01EH |
DB 076H,06H |
call cfa_TRUE+00H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0408DH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_OPTminusRULES+077H-$-4 |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_CgreatS+00H |
call cfa_OFFminusEAX+00H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OFFminusEAX+09H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0EBH,08AH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05H |
DB 033H,045H,0FCH |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
call cfa_tilBRminusOPT+00H |
DB 023H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;je cfa_OPTminusRULES+0DDH |
DB 074H,03CH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OFFminusEAX+00H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OFFminusEAX+09H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFBH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0808DH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+0130H |
DB 075H,03CH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,00H |
call cfa_OFFminusEAX+00H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OFFminusEAX+09H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFAH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OFFminusEAX+00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C033H |
DB 033H,045H,0FCH |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 023H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;je cfa_OPTminusRULES+01ABH |
DB 074H,051H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OFFminusEAX+00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 033H,0C0H |
DB 08DH,06DH,04H |
call cfa_OFFminusEAX+09H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 03FFFFFH |
DB 03DH |
DD 05048DH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_OPTminusRULES+02A7H-$-4 |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0870FH |
DD cfa_OPTminusRULES+0281H-$-4 |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 08BH,00H |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+0281H |
DB 075H,068H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0C00000H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 016H |
DB 08BH,0C8H |
DB 08BH,045H,0FCH |
DB 0D3H,0E8H |
DB 08BH,0C8H |
DB 08BH,045H,00H |
DB 0D3H,0E0H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFF9H |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OFFminusEAX+00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 01H,010H |
DB 033H,0C0H |
DB 08DH,06DH,04H |
call cfa_OFFminusEAX+09H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0B8H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_OPTminusRULES+0398H-$-4 |
call cfa_OFFminusEAX+00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 033H,0C0H |
DB 08DH,06DH,04H |
call cfa_OFFminusEAX+09H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,040H,01H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+031BH |
DB 075H,027H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C033H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_OPTminusRULES+0338H |
DB 076H,06H |
call cfa_TRUE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 045C7H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+0398H |
DB 075H,02CH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_CgreatS+00H |
call cfa_OFFminusEBP+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_OPTminusRULES+0398H |
DB 076H,0AH |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0C3H |
DB 08BH,045H,0FCH |
;jne cfa_OPTminusRULES+041AH |
DB 075H,072H |
call cfa_OFFminusEBP+00H |
DB 050H |
DB 0B8H |
DD 05555H |
call cfa_DP+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
call cfa_OP0+00H |
call cfa_minusEBPCLR+00H |
call cfa_OP0+00H |
call cfa_minusEBPCLR+00H |
call cfa_OP0+00H |
call cfa_minusEBPCLR+00H |
call cfa_OP0+00H |
call cfa_minusEBPCLR+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_OPTminusRULES+040EH |
DB 074H,012H |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,06DH,0FCH |
call cfa_OFFminusEBP+09H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,06DH,0FCH |
call cfa_OFFminusEBP+09H |
call cfa_OFFminusEAX+00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C28BH |
DB 033H,045H,0FCH |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C18BH |
DB 033H,045H,0FCH |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 0BH,045H,00H |
DB 023H,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
DW 0840FH |
DD cfa_OPTminusRULES+04F0H-$-4 |
call cfa_OFFminusEAX+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_SHORTque+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_OPTminusRULES+04AFH |
DB 074H,030H |
DB 089H,045H,0FCH |
DB 0C7H,045H,0F8H |
DD 0418DH |
DB 0B8H |
DD 0C18BH |
DB 0F7H,0D8H |
DB 03H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_Ccom+00H |
DB 0EBH,02EH |
DB 089H,045H,0FCH |
DB 0C7H,045H,0F8H |
DD 0828DH |
DB 0B8H |
DD 0C28BH |
DB 0F7H,0D8H |
DB 03H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_com+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_OFFminusEAX+09H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,040H,02H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05H |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C069H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+054FH |
DB 075H,02AH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 080048DH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 0FFFFFFFDH |
DB 08DH,06DH,04H |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0D28BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+0576H |
DB 075H,010H |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
call cfa_TRUE+00H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 03DH |
DD 01004583H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+05B9H |
DB 075H,02DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 045FFH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_OPTminusRULES+05D6H |
DB 076H,06H |
call cfa_TRUE+00H |
DB 0C3H |
call cfa_quetilEAX+00H |
DB 0C7H,00H |
DD 00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFDH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0244489H |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 023H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 023H,045H,0FCH |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jne cfa_OPTminusRULES+0656H |
DB 075H,020H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFCH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05089H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0408BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+06DEH |
DB 075H,02DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C28BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 03DH |
DD 08B0889H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+0711H |
DB 075H,01DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C18BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 058H |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_picqueEAX_equ+00H |
DB 023H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+0743H |
DB 075H,06H |
call cfa_queEAX_equRULES+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 03DH |
DD 04503C033H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+0786H |
DB 075H,02DH |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 03DH |
DD 048DC033H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+0811H |
DB 075H,075H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B6H,040H,02H |
DB 03DH |
DD 085H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+0811H |
DB 075H,05DH |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 08BH,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,04H |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_queCminusJMP+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_OPTminusRULES+0899H |
DB 074H,079H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0E8H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+0899H |
DB 075H,044H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FFH,00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFAH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_SetJP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05H |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 025H |
DD 038FFH |
DB 03DH |
DD 08DH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_OPTminusRULES+097FH-$-4 |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 08BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+090DH |
DB 075H,03DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFEFFH |
DB 03DH |
DD 0B60FH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+097FH |
DB 075H,057H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,050H,04H |
DB 089H,055H,0FCH |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
call cfa__2save+00H |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jne cfa_OPTminusRULES+09F3H |
DB 075H,037H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0458BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+09F3H |
DB 075H,020H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0B8H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_OPTminusRULES+0B8BH-$-4 |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0D8F7H |
;jne cfa_OPTminusRULES+0A68H |
DB 075H,049H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
DB 0F7H,0D8H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 03DH |
DD 0D0F7H |
;jne cfa_OPTminusRULES+0AB8H |
DB 075H,049H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
DB 0F7H,0D0H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 03DH |
DD 08BH |
;jne cfa_OPTminusRULES+0AF6H |
DB 075H,037H |
DB 0B8H |
DD 0A1H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 03DH |
DD 085448BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+0B8BH |
DB 075H,074H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 0FH,0B6H,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
DB 08DH,04H,085H |
DD 00H |
DB 03H,045H,00H |
DB 089H,045H,00H |
DB 0B8H |
DD 0458BH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFAH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05589H |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04503H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jne cfa_OPTminusRULES+0C06H |
DB 075H,023H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02048DH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04D89H |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jne cfa_OPTminusRULES+0C8BH |
DB 075H,02DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D18BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0408DH |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0C7H,045H,0F8H |
DD 085048DH |
DB 0B8H |
DD 0FFFFFFH |
DB 023H,045H,0F8H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+0D0FH |
DB 075H,046H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_CgreatS+00H |
DB 08DH,04H,085H |
DD 00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 01H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 085048DH |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02048DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 08BH,00H |
DB 08DH,080H |
DD 080H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFF00H |
DB 023H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+0DB1H |
DB 075H,03AH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08244H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFAH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 025H |
DD 0FFFDH |
DB 03DH |
DD 05589H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_OPTminusRULES+0E12H-$-4 |
call cfa_OP1+00H |
DB 090H |
DB 090H |
DB 090H |
call cfa_MOV_EDX__xEBP_y+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_OPTminusRULES+0DD9H |
DB 074H,0F1H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_OPTminusRULES+0E12H |
DB 074H,020H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 06DF7H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_CgreatS+00H |
call cfa_OFFminusEBP+00H |
DB 03BH,045H,00H |
DB 0FH,09DH,0C0H |
DB 083H,0E0H,01H |
DB 048H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jne cfa_OPTminusRULES+0EE2H |
DB 075H,037H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0E8F7H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFCH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 025H |
DD 0E7FFH |
DB 03DH |
DD 04589H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+0F5BH |
DB 075H,05DH |
call cfa_OFFminusEBP+00H |
DB 050H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_CgreatS+00H |
DB 08DH,040H,04H |
call cfa_OFFminusEBP+09H |
call cfa_FALSE+00H |
call cfa_OP1+00H |
call cfa_minusEBPCLR+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_OPTminusRULES+0F4FH |
DB 074H,012H |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,06DH,0FCH |
call cfa_OFFminusEBP+09H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,06DH,0FCH |
call cfa_OFFminusEBP+09H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0CA8BH |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 088048DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+0FB7H |
DB 075H,023H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 090048DH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0CA8BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 090048DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+0101AH |
DB 075H,010H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08D0C8DH |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 08BH,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01048DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+010AEH |
DB 075H,03DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 088048DH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFF9H |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 090048DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+01128H |
DB 075H,041H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 095H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_com+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 048DD9F7H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+01192H |
DB 075H,037H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C12BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0244C8BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C12BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+0121CH |
DB 075H,037H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0442BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D8BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C12BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+012A2H |
DB 075H,037H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 052BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0A3H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+01351H |
DB 075H,060H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 05C7H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0244489H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+013E2H |
DB 075H,03EH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_com+00H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C7H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01001H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+01443H |
DB 075H,02CH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,040H,01H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01501H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_com+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01089H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+014A4H |
DB 075H,02CH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,040H,01H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01589H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_com+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 03DH |
DD 01501D08BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+014D7H |
DB 075H,01DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0501H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0A4CB60FH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C133H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+01577H |
DB 075H,052H |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0A443200H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,04H |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0850C8DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01189H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+015F1H |
DB 075H,027H |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01489H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+016BDH-$-4 |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0450BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+01679H |
DB 075H,02DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C20BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0453BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+016BDH |
DB 075H,02DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C23BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C28BH |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+0170FH |
DB 075H,01DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05589H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D08BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 045C7H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+0176EH |
DB 075H,010H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 045C7H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+017D9H |
DB 075H,010H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0501D08BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+0181CH |
DB 075H,010H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B9H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01C7H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+018DBH |
DB 075H,070H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 05C7H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C88BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+01952H |
DB 075H,042H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 0B9H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 0B8H |
DD 03H |
DB 08DH,06DH,04H |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B9H |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D9F7H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+019CAH |
DB 075H,043H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
DB 0F7H,0D8H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B9H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 025H |
DD 0F7FFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0E0D3H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+01A5CH |
DB 075H,03EH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C1H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_Ccom+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 085048BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+01B04H |
DB 075H,06FH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0A1H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 08BH,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
DB 08DH,04H,085H |
DD 00H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C033H |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 085048BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+01B7CH |
DB 075H,03FH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 0B8H |
DD 0A1H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 025H |
DD 0F7FFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0E0C1H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+01C21H |
DB 075H,06BH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 025H |
DD 0800H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_OPTminusRULES+01BF2H |
DB 074H,0CH |
DB 08BH,0C8H |
DB 08BH,045H,00H |
DB 0D3H,0E8H |
DB 08DH,06DH,04H |
DB 0EBH,0AH |
DB 08BH,0C8H |
DB 08BH,045H,00H |
DB 0D3H,0E0H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0CA8BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C12BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+01C97H |
DB 075H,027H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C22BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_OPTminusRULES+01CB4H |
DB 076H,06H |
call cfa_TRUE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D8F7H |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04501H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+01D16H |
DB 075H,02DH |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 029H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04503D8F7H |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D8F7H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+01D90H |
DB 075H,046H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0452BH |
DB 0BH,045H,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
call cfa_ToOP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFCH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
call cfa_ADDlXORlORlAND_equ+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_OPTminusRULES+02200H-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
DW 0850FH |
DD cfa_OPTminusRULES+01F81H-$-4 |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0878BH |
;jne cfa_OPTminusRULES+01E67H |
DB 075H,068H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08700H |
DB 03H,045H,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFAH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 03DH |
DD 0458BH |
;jne cfa_OPTminusRULES+01EB5H |
DB 075H,047H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04500H |
DB 03H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFH |
DB 023H,045H,0FCH |
DB 03DH |
DD 0B8H |
;jne cfa_OPTminusRULES+01F0CH |
DB 075H,045H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 08DH,040H,02H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 03DH |
DD 0A1H |
;jne cfa_OPTminusRULES+01F7BH |
DB 075H,068H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0500H |
DB 03H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 045C7H |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+0203CH-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 08BH,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,040H,01H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C300H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_EXECUTE+00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04D89H |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jne cfa_OPTminusRULES+020AFH |
DB 075H,036H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C1H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP1+00H |
call cfa_minusEBPLIT+00H |
DB 089H,045H,00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 045C7H |
DB 033H,045H,0FCH |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 023H,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;je cfa_OPTminusRULES+02165H |
DB 074H,056H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 04503H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+02165H |
DB 075H,03FH |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 08BH,00H |
call cfa_OFFminusEAX+00H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OFFminusEAX+09H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 045C7H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+02200H |
DB 075H,055H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 08DH,040H,02H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 0B8H |
DD 02H |
DB 08DH,06DH,04H |
call cfa_ALLOT+00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 08BH,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0558BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_OPTminusRULES+022C8H-$-4 |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP1+00H |
call cfa_minusEBPLIT+00H |
DB 089H,045H,00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 045C7H |
DB 033H,045H,0FCH |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 023H,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;je cfa_OPTminusRULES+022C2H |
DB 074H,047H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0BAH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08BH,00H |
DB 089H,045H,04H |
DB 0B8H |
DD 03H |
DB 03H,045H,04H |
DB 08BH,00H |
DB 08DH,06DH,08H |
call cfa_com+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 04539H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_OPTminusRULES+024B3H-$-4 |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05589H |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jne cfa_OPTminusRULES+0234DH |
DB 075H,02DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D03BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 033H,045H,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jne cfa_OPTminusRULES+02403H |
DB 075H,05EH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03DH |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFAH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0A1H |
DB 033H,045H,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jne cfa_OPTminusRULES+024B3H |
DB 075H,058H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 053BH |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFBH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B7H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0458BH |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01089H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+027EDH-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0408DH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+02556H |
DB 075H,039H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05089H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_Ccom+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_OPTminusRULES+02573H |
DB 076H,06H |
call cfa_TRUE+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+027EDH-$-4 |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 04589H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_OPTminusRULES+02684H-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0B8H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+0262CH |
DB 075H,05EH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0A3H |
DB 08DH,06DH,0FCH |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP3+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFF8H |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0878DH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+02684H |
DB 075H,041H |
call cfa_OP3+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08789H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP2+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFBH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 045C7H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_OPTminusRULES+027EDH-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0B8H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_OPTminusRULES+02749H-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFC000H |
DB 08DH,06DH,0FCH |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 08BH,00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 06H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP3+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFF9H |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0878DH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_OPTminusRULES+027EDH-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 087C7H |
DB 08DH,06DH,0FCH |
call cfa_OP3+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 08BH,00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,00H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 06H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP3+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFF8H |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05589H |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 085048DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04503H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jne cfa_OPTminusRULES+028A1H |
DB 075H,03DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 048DH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04D89H |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_queChEAX+00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05589H |
DB 033H,045H,0FCH |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,00H |
DB 0BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jne cfa_OPTminusRULES+0295DH |
DB 075H,036H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D1H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 03DH |
DD 08BC28BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+029AAH |
DB 075H,037H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 028BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0C3H |
DB 08BH,045H,0FCH |
;jne cfa_OPTminusRULES+02A26H |
DB 075H,06CH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D18BH |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01089H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+02A26H |
DB 075H,037H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0889H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 06DF7H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
DW 0850FH |
DD cfa_OPTminusRULES+02B76H-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 045C7H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+02B0EH |
DB 075H,05BH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 08BH,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
DB 0F7H,06DH,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 04589H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+02B76H |
DB 075H,051H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 069H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C0H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_com+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0A1H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 06DF7H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
DW 0850FH |
DD cfa_OPTminusRULES+02D25H-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 04589H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+02C5BH |
DB 075H,058H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02DF7H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFBH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 045C7H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_OPTminusRULES+02D25H-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 08BH,00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 0B8H |
DD 02DF7H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 08BH,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFCH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04503008BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jne cfa_OPTminusRULES+02DB9H |
DB 075H,03DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0CA8BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 051H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+02E5AH |
DB 075H,037H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 075FFH |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP2+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFBFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 024048BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04503H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jne cfa_OPTminusRULES+02F0EH |
DB 075H,03DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05589H |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_queChEAX+00H |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jne cfa_OPTminusRULES+02F98H |
DB 075H,020H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 025H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPTminusRULES+03064H |
DB 075H,056H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
call cfa_OP1+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02H |
DB 08DH,06DH,0FCH |
call cfa_OPinsert+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D08BH |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
call cfa_ADDlXORlORlAND_equ+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_OPTminusRULES+033D9H-$-4 |
call cfa_TRUE+00H |
call cfa_quetilEAX+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
DB 090H |
DB 090H |
call cfa_queEAXgreatECX+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_OPTminusRULES+0309DH |
DB 074H,0F1H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_OPTminusRULES+0315DH-$-4 |
call cfa_quetilEAX+00H |
DB 08BH,00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_OPTminusRULES+030D5H |
DB 074H,0AH |
call cfa_ECXdcoma_equEAX+00H |
DB 0E9H |
DD cfa_OPTminusRULES+030E4H-$-4 |
call cfa_EAXgreatECX0+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_OPTminusRULES+030D5H |
DB 074H,0F1H |
DB 090H |
call cfa_EAXgreatECX+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_OPTminusRULES+030E5H |
DB 074H,0F1H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 04503H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+03130H |
DB 075H,01FH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01048DH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0EBH,027H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C1H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,04H |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_TRUE+00H |
call cfa_quetilEAX+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
DB 090H |
DB 090H |
call cfa_queEAXgreatEBX+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_OPTminusRULES+03179H |
DB 074H,0F1H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_OPTminusRULES+032BCH-$-4 |
call cfa_quetilEAX+00H |
DB 08BH,00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_OPTminusRULES+031B1H |
DB 074H,0AH |
call cfa_EBXdcoma_equEAX+00H |
DB 0E9H |
DD cfa_OPTminusRULES+031C0H-$-4 |
call cfa_EAXgreatEBX0+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_OPTminusRULES+031B1H |
DB 074H,0F1H |
DB 090H |
call cfa_EAXgreatEBX+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_OPTminusRULES+031C1H |
DB 074H,0F1H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 04503H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+0320FH |
DB 075H,022H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03048DH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0E9H |
DD cfa_OPTminusRULES+032B6H-$-4 |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 04539H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+0324FH |
DB 075H,029H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C33BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0EBH,067H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0453BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+0328FH |
DB 075H,029H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D83BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0EBH,027H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C3H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,04H |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 03DH |
DD 04503D8F7H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_OPTminusRULES+033D9H-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0458BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+03355H |
DB 075H,068H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 0B8H |
DD 02BH |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0A1H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_OPTminusRULES+033D9H |
DB 075H,06DH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02BH |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_com+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 025H |
DD 0FFFDH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 025H |
DD 0FFFDH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
DW 0850FH |
DD cfa_OPTminusRULES+0344FH-$-4 |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 03DH |
DD 0458BC28BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_OPTminusRULES+03479H-$-4 |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 0B9H |
DD 0B9H |
DB 0F7H,0D9H |
DB 08DH,04H,01H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FEH |
DB 023H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01189H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+0353DH-$-4 |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0BAH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_OPTminusRULES+03501H-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01C7H |
DB 08DH,06DH,0FCH |
DB 0E9H |
DD cfa_OPTminusRULES+0350CH-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01589H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 08DH,06DH,0FCH |
call cfa_OPresize+00H |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B9H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04D89H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+035C8H-$-4 |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 045C7H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_com+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08D0C8DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01C7H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+03658H-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04C7H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,00H |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
call cfa_com+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C18BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 085048DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+036E0H-$-4 |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08DH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08D048DH |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 033H,045H,0FCH |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,00H |
DB 0BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+037B7H-$-4 |
call cfa_OP1+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02H |
DB 08DH,06DH,0FCH |
call cfa_OPinsert+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D08BH |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 024448BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+03871H-$-4 |
call cfa_OP1+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02H |
DB 08DH,06DH,0FCH |
call cfa_OPinsert+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D08BH |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D9F7CA8BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,040H,0FFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01048DD9H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+038F3H-$-4 |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02048DDAH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 045C7D08BH |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0BAH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+0393BH-$-4 |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0BAH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05501H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04513H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+03A20H-$-4 |
call cfa_OP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04H |
DB 08DH,06DH,0FCH |
call cfa_OPresize+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 04581H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 024448BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0244489H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+03B1FH-$-4 |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 03DH |
DD 08901408DH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_OPTminusRULES+03ADEH-$-4 |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 03DH |
DD 089FF408DH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_OPTminusRULES+03B1FH-$-4 |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04CFFH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0408DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0244403H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B60FH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+03BEEH-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0548BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0244B60FH |
DB 08DH,06DH,0FCH |
call cfa_com+00H |
call cfa_Ccom+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D8F7H |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D0F7H |
DB 033H,045H,0FCH |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 058H |
DB 033H,045H,0FCH |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C123H |
DB 033H,045H,0FCH |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,00H |
DB 0BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
call cfa_ADDlXORlORlAND_equ+00H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0458BH |
DB 033H,045H,0FCH |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
DW 0850FH |
DD cfa_OPTminusRULES+03D0AH-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C2H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,04H |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04D8BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04D89C82BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+03D93H-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04529H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP2+00H |
call cfa_ToOP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFBH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0458BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+03E1DH-$-4 |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0458BH |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C88BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+03EA5H-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04D8BH |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C18BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 033H,045H,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_SHORTque+00H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 048DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+03F5DH-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0428DH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0428DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+03FEAH-$-4 |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04583H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_Ccom+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
call cfa_queEDX__xEBP_y+00H |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+04095H-$-4 |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
call cfa_OP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02H |
DB 08DH,06DH,0FCH |
call cfa_OPinsert+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D08BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D08BH |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 095048DH |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 095048BH |
DB 033H,045H,0FCH |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,00H |
DB 0BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+0413DH-$-4 |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 085H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0E1C1CA8BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C10BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+041CDH-$-4 |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0E2C1H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C20BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0878DD08BH |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01088H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+04248H-$-4 |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,040H,02H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 09788H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0878DH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_com+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05589D98BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C323H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+042C1H-$-4 |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C123H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04D8BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 023F05589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+0433AH-$-4 |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04523H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0BF04523H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C20BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+043E0H-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0450BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_Ccom+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04523H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+0447BH-$-4 |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_OP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02H |
DB 08DH,06DH,0FCH |
call cfa_OPinsert+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C223H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04D89H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04523H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+04516H-$-4 |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_OP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02H |
DB 08DH,06DH,0FCH |
call cfa_OPinsert+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C123H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_CgreatS+00H |
call cfa_OFFminusEBP+00H |
DB 039H,045H,00H |
DB 01BH,0C0H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 0BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C20BC123H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+045C8H-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0450BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_Ccom+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C123CA8BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0450BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+04641H-$-4 |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C223H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04D8BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C10BCA23H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C10BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+046ECH-$-4 |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05523H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C20BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0528DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+0479DH-$-4 |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04583H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_Ccom+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0E0D3H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C20BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+0484DH-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 045H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_Ccom+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0458BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+04913H-$-4 |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_OP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02H |
DB 08DH,06DH,0FCH |
call cfa_OPinsert+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D08BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04D8BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01048DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+049ACH-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04503H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04503H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C22BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+04A53H-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0452BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_Ccom+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 0BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02048DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+04B36H-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04503H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 0BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04503H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 06DF7H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+04C52H-$-4 |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
call cfa_OP1+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02H |
DB 08DH,06DH,0FCH |
call cfa_OPinsert+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C88BH |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0E9F7H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0AF0FH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04503H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+04D46H-$-4 |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
call cfa_OP1+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02H |
DB 08DH,06DH,0FCH |
call cfa_OPinsert+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C88BH |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C103H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C28BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 06DF7H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+04DEDH-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0EAF7H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0860FH |
DD cfa_OPTminusRULES+04E0EH-$-4 |
call cfa_TRUE+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 03DH |
DD 0D08BC28BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_OPTminusRULES+04E38H-$-4 |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0453BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_OPTminusRULES+05124H-$-4 |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 025H |
DD 0FFFCFFH |
DB 03DH |
DD 0C09C0FH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_OPTminusRULES+05124H-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 033H,045H,0FCH |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
DW 0850FH |
DD cfa_OPTminusRULES+04F67H-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03DH |
DB 08DH,06DH,0FCH |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 02H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0300H |
DB 033H,045H,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFAH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0A1H |
DB 033H,045H,0FCH |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
DW 0850FH |
DD cfa_OPTminusRULES+05124H-$-4 |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 04589H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_OPTminusRULES+05053H-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 053BH |
DB 08DH,06DH,0FCH |
call cfa_OP3+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 03H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0300H |
DB 033H,045H,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFBH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 045C7H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_OPTminusRULES+05124H-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03D81H |
DB 08DH,06DH,0FCH |
call cfa_OP3+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 08BH,00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 06H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 03H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFBH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0458B1089H |
DB 033H,045H,0F8H |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 089H,045H,0F4H |
DB 0B8H |
DD 05H |
DB 03H,045H,0F4H |
DB 08BH,00H |
DB 089H,045H,0F4H |
DB 0B8H |
DD 0C3086D8DH |
DB 033H,045H,0F4H |
DB 0BH,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D18BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+0519CH-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0889H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 08DH,040H,02H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 090048DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
DW 0850FH |
DD cfa_OPTminusRULES+05296H-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,040H,01H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 085048DH |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFCH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C28BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
DW 0850FH |
DD cfa_OPTminusRULES+053D5H-$-4 |
call cfa_OP3+00H |
call cfa_OPexcise+00H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D08BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0458BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_DO_EAXgreatECX+00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 089H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 055H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_Ccom+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C033H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04581H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04513H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+05497H-$-4 |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D083H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0BAH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0552BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+05586H-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D02BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,04H |
call cfa_ALLOT+00H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_com+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
call cfa_queEDX__xEBP_y+00H |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
call cfa_queEDX__xEBP_y+00H |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+05641H-$-4 |
call cfa_OP2+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02H |
DB 08DH,06DH,0FCH |
call cfa_OPinsert+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D08BH |
DB 08DH,06DH,0FCH |
call cfa_OP3+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B9H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04D03H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+05733H-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C803H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_com+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0A1H |
DB 033H,045H,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D08BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0A1H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+057DEH-$-4 |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
call cfa_OP2+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 08DH,06DH,0FCH |
call cfa_OPresize+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0158BH |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0428DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+05908H-$-4 |
call cfa_OP3+00H |
call cfa_OPexcise+00H |
call cfa_OP2+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02H |
DB 08DH,06DH,0FCH |
call cfa_OPinsert+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C88BH |
DB 08DH,06DH,0FCH |
call cfa_OP3+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_OP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02H |
DB 08DH,06DH,0FCH |
call cfa_OPinsert+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D18BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP4+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0860FH |
DD cfa_OPTminusRULES+05929H-$-4 |
call cfa_TRUE+00H |
DB 0C3H |
call cfa_OP4+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0458BC88BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 025H |
DD 0F7FFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0E0D3H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP4+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
DW 0850FH |
DD cfa_OPTminusRULES+05A23H-$-4 |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 012H |
DB 0F7H,0D8H |
DB 03H,045H,0FCH |
call cfa_OP4+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP4+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP4+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFF4H |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 082448DH |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0889H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+05A97H-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04C89H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP4+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP4+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C203D8F7H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+05BAFH-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04DH |
DB 08DH,06DH,0FCH |
call cfa_OP4+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 0B8H |
DD 0D08BH |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C103D8F7H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP4+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05589H |
DB 033H,045H,0FCH |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04D8BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+05C3FH-$-4 |
call cfa_OP3+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02H |
DB 08DH,06DH,0FCH |
call cfa_OPinsert+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0CA8BH |
DB 08DH,06DH,0FCH |
call cfa_OP4+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C28BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0EAF7H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04503H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_OPTminusRULES+05D6FH-$-4 |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_OP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 08DH,06DH,0FCH |
call cfa_OPinsert+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0AF0FH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D2H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 0B8H |
DD 0C203H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP5+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0860FH |
DD cfa_OPTminusRULES+05D90H-$-4 |
call cfa_TRUE+00H |
DB 0C3H |
call cfa_TRUE+00H |
DB 0C3H |
AHEADER 0 ,'?C-JMP',cfa_queCminusJMP |
call cfa__CONSTANTminusCODE+00H |
DD 00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'?EAX=RULES',cfa_queEAX_equRULES |
DB 090H |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_queEAX_equRULES+01EH |
DB 076H,06H |
call cfa_TRUE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_queChEAX+00H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
call cfa_tilBRminusOPT+00H |
DB 023H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0840FH |
DD cfa_queEAX_equRULES+04FH-$-4 |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
DB 0EBH,0B2H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 03DH |
DD 0FC458B58H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_queEAX_equRULES+092H |
DB 075H,02DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0424648DH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0870FH |
DD cfa_queEAX_equRULES+02BCH-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0B8H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_queEAX_equRULES+0245H-$-4 |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 03DH |
DD 0240401H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_queEAX_equRULES+017BH-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,040H,01H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0240481H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 02H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,050H,04H |
DB 089H,055H,0FCH |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa__2save+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0C7H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_queEAX_equRULES+0245H-$-4 |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,040H,01H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05C7H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 06H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 05H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,050H,04H |
DB 089H,055H,0FCH |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa__2save+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_queChEAX+00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05589H |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01501H |
DB 033H,045H,0FCH |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01589H |
DB 033H,045H,0FCH |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jne cfa_queEAX_equRULES+02BCH |
DB 075H,010H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0458BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_queEAX_equRULES+066CH-$-4 |
call cfa_OP1+00H |
DB 090H |
call cfa_XX_STEP+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_queEAX_equRULES+02DDH |
DB 074H,0F1H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_queEAX_equRULES+0316H |
DB 074H,020H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_DO_EAXgreatECX+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_queEAX_equRULES+032BH |
DB 074H,06H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_TRUE+00H |
call cfa_quetilEAX+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_queEAXgreatEBX+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_queEAX_equRULES+0345H |
DB 074H,0F1H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_queEAX_equRULES+03C2H-$-4 |
call cfa_quetilEAX+00H |
DB 08BH,00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_queEAX_equRULES+037DH |
DB 074H,0AH |
call cfa_EBXdcoma_equEAX+00H |
DB 0E9H |
DD cfa_queEAX_equRULES+038CH-$-4 |
call cfa_EAXgreatEBX0+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_queEAX_equRULES+037DH |
DB 074H,0F1H |
DB 090H |
call cfa_EAXgreatEBX+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_queEAX_equRULES+038DH |
DB 074H,0F1H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_dcomaminusSET+00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0860FH |
DD cfa_queEAX_equRULES+066CH-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05589H |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0889H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jne cfa_queEAX_equRULES+0462H |
DB 075H,02DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C28BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 050H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jne cfa_queEAX_equRULES+04F7H |
DB 075H,03DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 050H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
call cfa_ToOP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFAH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0BAH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01089H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+0582H |
DB 075H,03CH |
call cfa_OP2+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 08DH,06DH,0FCH |
call cfa_OPresize+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C7H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_dcomaminusSET+00H |
call cfa_OP4+00H |
DB 08BH,00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0860FH |
DD cfa_queEAX_equRULES+066CH-$-4 |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP4+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04D89H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01089H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05089H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP4+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;jne cfa_queEAX_equRULES+066CH |
DB 075H,027H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04889H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0A1H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_queEAX_equRULES+07EAH-$-4 |
call cfa_OP1+00H |
call cfa_queEAXgreatECX+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_queEAX_equRULES+06C2H |
DB 074H,0AH |
call cfa_TqueEAXgreatECX+00H |
DB 0E9H |
DD cfa_queEAX_equRULES+0785H-$-4 |
DB 08DH,040H,0FCH |
call cfa_queOPlast+00H |
DB 050H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
DB 039H,045H,00H |
DB 01BH,0C0H |
DB 089H,045H,00H |
DB 058H |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;je cfa_queEAX_equRULES+0701H |
DB 074H,015H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 0E9H |
DD cfa_queEAX_equRULES+0785H-$-4 |
DB 089H,045H,0FCH |
DB 050H |
DB 08BH,045H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,04H,024H |
DB 08DH,040H,0FCH |
DB 08BH,00H |
DB 08DH,040H,0FCH |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+0772H |
DB 075H,040H |
DB 089H,045H,0FCH |
DB 08BH,04H,024H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 025H |
DD 0FDH |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0A1H |
DB 033H,045H,0F8H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 08DH,06DH,0FCH |
DB 0BH,0C0H |
;je cfa_queEAX_equRULES+0760H |
DB 074H,07H |
call cfa_FqueEAXgreatECX+00H |
DB 0EBH,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 0EBH,010H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 083H,0C4H,04H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_queEAX_equRULES+06A9H-$-4 |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_queEAX_equRULES+07EAH-$-4 |
DB 08DH,040H,0FCH |
DB 090H |
call cfa_EAXgreatECX0+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_queEAX_equRULES+07A5H |
DB 074H,0F1H |
DB 090H |
call cfa_EAXgreatECX+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_queEAX_equRULES+07B5H |
DB 074H,0F1H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFBH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 058H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_queEAX_equRULES+0952H-$-4 |
call cfa_OP1+00H |
DB 090H |
DB 090H |
call cfa_queEAXgreatECX+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_queEAX_equRULES+0842H |
DB 074H,0AH |
call cfa_TqueEAXgreatECX+00H |
DB 0E9H |
DD cfa_queEAX_equRULES+08C7H-$-4 |
DB 08DH,040H,0FCH |
call cfa_queOPlast+00H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
call cfa_dcomaminusSET+00H |
DB 039H,045H,00H |
DB 01BH,0C0H |
DB 0BH,045H,04H |
DB 089H,045H,04H |
DB 08BH,045H,08H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,00H |
DB 025H |
DD 0FF00FFH |
DB 089H,045H,00H |
DB 0B8H |
DD 024008BH |
DB 033H,045H,00H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 0BH,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
;je cfa_queEAX_equRULES+08A1H |
DB 074H,012H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 0EBH,026H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 050H |
DB 08BH,045H,0FCH |
;jne cfa_queEAX_equRULES+08BFH |
DB 075H,0CH |
call cfa_TRUE+00H |
call cfa_TRUE+00H |
DB 0EBH,08H |
DB 08DH,040H,04H |
call cfa_FALSE+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_queEAX_equRULES+0829H-$-4 |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_queEAX_equRULES+0952H-$-4 |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_OPexcise+00H |
DB 08DH,040H,0FCH |
call cfa_quetilEAX+00H |
DB 08BH,00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_queEAX_equRULES+090CH |
DB 074H,0AH |
call cfa_ECXdcoma_equEAX+00H |
DB 0E9H |
DD cfa_queEAX_equRULES+091CH-$-4 |
DB 090H |
call cfa_EAXgreatECX0+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_queEAX_equRULES+090DH |
DB 074H,0F1H |
DB 090H |
call cfa_EAXgreatECX+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_queEAX_equRULES+091DH |
DB 074H,0F1H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 03DH |
DD 024048B50H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_queEAX_equRULES+0978H |
DB 075H,010H |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D08BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 095048BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+09FBH |
DB 075H,030H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 085H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0A1H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+0A64H |
DB 075H,010H |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_queEAX_equRULES+0A81H |
DB 076H,06H |
call cfa_TRUE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0A3H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_queEAX_equRULES+0D84H-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0B8H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_queEAX_equRULES+0B2AH |
DB 075H,077H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 05C7H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_OP1+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0C033H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_queEAX_equRULES+0BEFH-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 05C7H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,04H |
DB 0C7H,00H |
DD 00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08H |
DB 03H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_queEAX_equRULES+0C0CH |
DB 076H,06H |
call cfa_TRUE+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0A1H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_queEAX_equRULES+0D7EH-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 025H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_queEAX_equRULES+0D09H-$-4 |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP3+00H |
call cfa_OPexcise+00H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_OP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0AH |
DB 08DH,06DH,0FCH |
call cfa_OPinsert+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02581H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 06H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0408DH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_queEAX_equRULES+0D7EH |
DB 075H,05EH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,040H,02H |
DB 03DH |
DD 0FFH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_queEAX_equRULES+0D7EH |
DB 075H,046H |
call cfa_OP3+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 08DH,06DH,0FCH |
call cfa_OPresize+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0DFFH |
DB 08DH,06DH,0FCH |
call cfa_OP3+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_TRUE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0A1H |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+0E0FH |
DB 075H,056H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 03D81H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_OP1+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 050H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_queEAX_equRULES+0E98H |
DB 075H,072H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0B8H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_queEAX_equRULES+0E98H |
DB 075H,05BH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 068H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,050H,04H |
DB 089H,055H,0FCH |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa__2save+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 04589H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_queEAX_equRULES+0F7EH-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0B8H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_queEAX_equRULES+0F7EH-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,040H,01H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 045C7H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 02H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08BH,050H,04H |
DB 089H,055H,0FCH |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa__2save+00H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C88BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+0FE0H |
DB 075H,02DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B9H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0878DH |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+01042H |
DB 075H,02DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFH |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08D048DH |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01089H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+010A2H |
DB 075H,027H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01489H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D08BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08D1489H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+0111CH |
DB 075H,027H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0489H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0458BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+011BFH |
DB 075H,02DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C28BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C033H |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+01260H |
DB 075H,06CH |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
call cfa_OP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04H |
DB 08DH,06DH,0FCH |
call cfa_OPresize+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 0B8H |
DD 045C7H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 0C7H,00H |
DD 00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 045C7D08BH |
DB 033H,045H,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C28BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+012A4H |
DB 075H,010H |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0BAH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01088H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+01351H |
DB 075H,05EH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 0FH,0B6H,00H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
call cfa_OP1+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 08DH,06DH,0FCH |
call cfa_OPresize+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C6H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0808DH |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C6H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+013DEH |
DB 075H,058H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 080C6H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 0B8H |
DD 01H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D18BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01089H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+01454H |
DB 075H,027H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0889H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 024448BH |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 025H |
DD 0F7FFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 044FFH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+014A2H |
DB 075H,010H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 021C8DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+01517H |
DB 075H,03CH |
call cfa_OP2+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 08DH,06DH,0FCH |
call cfa_OPresize+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 09A8DH |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0BAH |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 09A8DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+015C1H |
DB 075H,075H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,00H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_OP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05H |
DB 08DH,06DH,0FCH |
call cfa_OPinsert+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0BBH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C28BH |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C28BC00BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+01622H |
DB 075H,02DH |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C28BD20BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D18BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C28BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+016B3H |
DB 075H,027H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C18BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0501D08BH |
DB 033H,045H,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0589D08BH |
DB 033H,045H,0FCH |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,00H |
DB 0BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0458BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+0172CH |
DB 075H,010H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 03DH |
DD 01589D08BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_queEAX_equRULES+0175FH |
DB 075H,01DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0589H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0408DH |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0458BC88BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+017BAH |
DB 075H,027H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0488DH |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_queChEAX+00H |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_picqueEAX_equ+00H |
DB 023H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B9H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+01808H |
DB 075H,010H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
call cfa_queEDX__xEBP_y+00H |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0458BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+018A0H |
DB 075H,02DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C28BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 09788D08BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+018FAH |
DB 075H,027H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08788H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 050H |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 048BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+0195AH |
DB 075H,010H |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_queEAX_equRULES+01977H |
DB 076H,06H |
call cfa_TRUE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0C28BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_queEAX_equRULES+019D2H |
DB 075H,044H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 04589H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_queEAX_equRULES+019D2H |
DB 075H,02DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01000H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0408DC48BH |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0E08BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+01A52H |
DB 075H,04CH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 0B8H |
DD 024648D00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,0FFH |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP3+00H |
call cfa_OPexcise+00H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0C88BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_queEAX_equRULES+01B7BH-$-4 |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0428DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C18BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+01B1FH |
DB 075H,048H |
call cfa_OP3+00H |
call cfa_OPexcise+00H |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0528DH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05589H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP5+00H |
DB 08BH,00H |
call cfa_JminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;ja cfa_queEAX_equRULES+01B7BH |
DB 077H,045H |
call cfa_OP5+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C18BH |
DB 033H,045H,0FCH |
call cfa_OP4+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0840FH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+01B7BH |
DB 075H,010H |
call cfa_OP3+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C103D8F7H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C28BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+01C22H |
DB 075H,03EH |
call cfa_OP3+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C82BH |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04D89H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C82BD08BH |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04D89H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C28BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+01C9BH |
DB 075H,02AH |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0C3H |
DB 08BH,045H,0FCH |
;jne cfa_queEAX_equRULES+01C8BH |
DB 075H,0AH |
call cfa_OP3+00H |
call cfa_OPexcise+00H |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0418DD08BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C28BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+01D4CH |
DB 075H,048H |
call cfa_OP3+00H |
call cfa_OPexcise+00H |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0498DH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04D89H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
call cfa_queEDX__xEBP_y+00H |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
call cfa_queEDX__xEBP_y+00H |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0458BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+01DF4H |
DB 075H,02DH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C28BH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0BAH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0458B1001H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+01E7EH |
DB 075H,03CH |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_OP1+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 08DH,06DH,0FCH |
call cfa_OPresize+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 081H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 033H,045H,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 081H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0458BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_queEAX_equRULES+01F4DH-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,00H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 0581H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 045C7H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B9H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0458BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_queEAX_equRULES+02058H-$-4 |
call cfa_OP2+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 03H,045H,0FCH |
DB 08BH,00H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 0B8H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_OPinsert+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP2+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_queEAX_equRULES+02075H |
DB 076H,06H |
call cfa_TRUE+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0A1H |
DB 033H,045H,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D08BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+02118H |
DB 075H,053H |
call cfa_OP3+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 08DH,06DH,0FCH |
call cfa_OPresize+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0158BH |
DB 08DH,06DH,0FCH |
call cfa_OP3+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05589H |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 058H |
DB 033H,045H,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 025H |
DD 0FFFFFFH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FF408DH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 050H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+021A3H |
DB 075H,037H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0240CFFH |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP3+00H |
call cfa_OPexcise+00H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP3+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0458BD08BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C28BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+02254H |
DB 075H,048H |
call cfa_OP3+00H |
call cfa_OPexcise+00H |
call cfa_OP0+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05589H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0C3H |
DB 033H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D08BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0458BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01089H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0458BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+02317H |
DB 075H,03EH |
call cfa_OP3+00H |
call cfa_OPexcise+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0558BH |
DB 08DH,06DH,0FCH |
call cfa_OP2+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0289H |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_OP4+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_queEAX_equRULES+02334H |
DB 076H,06H |
call cfa_TRUE+00H |
DB 0C3H |
call cfa_OP5+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_queEAX_equRULES+02351H |
DB 076H,06H |
call cfa_TRUE+00H |
DB 0C3H |
call cfa_OP5+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0B8H |
DB 033H,045H,0FCH |
call cfa_OP4+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP3+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04589H |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0BAH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D02BH |
DB 033H,045H,0FCH |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAX_equRULES+0240AH |
DB 075H,033H |
call cfa_OP5+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,00H |
DB 0F7H,0D8H |
call cfa_OP2+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_OPexcise+00H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_TRUE+00H |
DB 0C3H |
AHEADER 0 ,'FPOP',cfa_FPOP |
call cfa__VECTminusCODE+00H |
DD cfa_NOOP+00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'DO_EAX>ECX',cfa_DO_EAXgreatECX |
call cfa_OP1+00H |
call cfa_queEAXgreatECX+00H |
DB 0BH,0C0H |
DW 0850FH |
DD cfa_DO_EAXgreatECX+0104H-$-4 |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_queOPlast+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_DO_EAXgreatECX+036H |
DB 074H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_DO_EAXgreatECX+05AH |
DB 076H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 04D89H |
DB 08BH,045H,0FCH |
DW 0850FH |
DD cfa_DO_EAXgreatECX+0FCH-$-4 |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_DO_EAXgreatECX+0EAH |
DB 075H,054H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_quetilEAX+00H |
DB 0C7H,00H |
DD 00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02H |
DB 08DH,06DH,0FCH |
call cfa_OPinsert+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C18BH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
call cfa_Wsave+00H |
call cfa_OP0+00H |
call cfa_TRUE+00H |
call cfa_TRUE+00H |
DB 0EBH,010H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 0EBH,08H |
DB 08DH,040H,04H |
call cfa_FALSE+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_DO_EAXgreatECX+05H-$-4 |
DB 089H,045H,0FCH |
DB 050H |
DB 083H,07DH,0FCH,00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_DO_EAXgreatECX+0180H-$-4 |
call cfa_quetilEAX+00H |
DB 08BH,00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_DO_EAXgreatECX+0141H |
DB 074H,0AH |
call cfa_ECXdcoma_equEAX+00H |
DB 0E9H |
DD cfa_DO_EAXgreatECX+0150H-$-4 |
call cfa_EAXgreatECX0+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_DO_EAXgreatECX+0141H |
DB 074H,0F1H |
DB 090H |
call cfa_EAXgreatECX+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_DO_EAXgreatECX+0151H |
DB 074H,0F1H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFDH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,06DH,0FCH |
DB 0C3H |
AHEADER 0 ,'?EAX:=ECX',cfa_queEAXdcoma_equECX |
call cfa_quetilEAX+00H |
DB 08BH,00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_queEAXdcoma_equECX+036H |
DB 074H,025H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08BH |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C1H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
DB 0C3H |
AHEADER 0 ,'~BR-OPT',cfa_tilBRminusOPT |
call cfa__CONSTANTminusCODE+00H |
DD 0FFFFFFFFH |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'EBX:=EAX',cfa_EBXdcoma_equEAX |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0B8H |
DD 02H |
DB 08DH,06DH,0F8H |
call cfa_OPinsert+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D88BH |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 08DH,040H,04H |
DB 08BH,00H |
DB 08DH,06DH,0F8H |
call cfa_Wsave+00H |
DB 0C3H |
AHEADER 0 ,'ECX:=EAX',cfa_ECXdcoma_equEAX |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0B8H |
DD 02H |
DB 08DH,06DH,0F8H |
call cfa_OPinsert+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C88BH |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 08DH,040H,04H |
DB 08BH,00H |
DB 08DH,06DH,0F8H |
call cfa_Wsave+00H |
DB 0C3H |
AHEADER 0 ,'F?EAX>ECX',cfa_FqueEAXgreatECX |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_FqueEAXgreatECX+034H |
DB 074H,02AH |
call cfa_quetilEAX+00H |
DB 08BH,00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_FqueEAXgreatECX+028H |
DB 074H,0DH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0EBH,05H |
call cfa_TRUE+00H |
call cfa_TRUE+00H |
DB 0EBH,05H |
call cfa_FALSE+00H |
DB 0C3H |
AHEADER 0 ,'T?EAX>ECX',cfa_TqueEAXgreatECX |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_TqueEAXgreatECX+017H |
DB 074H,0DH |
DB 08DH,040H,04H |
DB 08DH,040H,04H |
call cfa_FALSE+00H |
DB 0EBH,0AH |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 0C3H |
AHEADER 0 ,'-EBPCLR',cfa_minusEBPCLR |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_minusEBPCLR+01FH |
DB 076H,07H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
call cfa_OFFminusEBP+00H |
DB 08DH,040H,0FCH |
call cfa_OFFminusEBP+09H |
DB 090H |
call cfa_queOPlast+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_minusEBPCLR+043H |
DB 074H,07H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 06D8DH |
DB 08BH,045H,0FCH |
;jne cfa_minusEBPCLR+05CH |
DB 075H,07H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0E8H |
DB 08BH,045H,0FCH |
;jne cfa_minusEBPCLR+075H |
DB 075H,07H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0E9H |
DB 08BH,045H,0FCH |
;jne cfa_minusEBPCLR+08EH |
DB 075H,07H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 025H |
DD 0F0H |
DB 03DH |
DD 070H |
DB 08BH,045H,0FCH |
;jne cfa_minusEBPCLR+0ACH |
DB 075H,07H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0EBH |
DB 08BH,045H,0FCH |
;jne cfa_minusEBPCLR+0C5H |
DB 075H,07H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 025H |
DD 0F0FFH |
DB 03DH |
DD 0800FH |
DB 08BH,045H,0FCH |
;jne cfa_minusEBPCLR+0E3H |
DB 075H,07H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
DB 08BH,08H |
DB 08BH,09H |
DB 081H,0E1H |
DD 0FFFFFFH |
DB 081H,0F9H |
DD 085448BH |
;jne cfa_minusEBPCLR+0FCH |
DB 075H,07H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_OFFminusEBP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFH |
DB 023H,045H,0FCH |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_minusEBPCLR+018CH |
DB 075H,067H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 025H |
DD 0E7FFH |
DB 089H,045H,0F8H |
DB 0B8H |
DD 04589H |
DB 033H,045H,0F8H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0F4H |
DB 0B8H |
DD 045C7H |
DB 033H,045H,0F4H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 0BH,045H,0F8H |
DB 08BH,045H,0FCH |
;je cfa_minusEBPCLR+0185H |
DB 074H,020H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_OPexcise+00H |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 08DH,040H,0FCH |
DB 0EBH,07H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
DB 08DH,040H,04H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0860FH |
DD cfa_minusEBPCLR+02DH-$-4 |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'-EBPLIT',cfa_minusEBPLIT |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jb cfa_minusEBPLIT+019H |
DB 072H,01H |
DB 0C3H |
call cfa_queOPlast+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_minusEBPLIT+029H |
DB 074H,01H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 06D8DH |
DB 08BH,045H,0FCH |
;jne cfa_minusEBPLIT+03CH |
DB 075H,01H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0E8H |
DB 08BH,045H,0FCH |
;jne cfa_minusEBPLIT+04FH |
DB 075H,01H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0E9H |
DB 08BH,045H,0FCH |
;jne cfa_minusEBPLIT+062H |
DB 075H,01H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 025H |
DD 0F0H |
DB 03DH |
DD 070H |
DB 08BH,045H,0FCH |
;jne cfa_minusEBPLIT+07AH |
DB 075H,01H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0EBH |
DB 08BH,045H,0FCH |
;jne cfa_minusEBPLIT+08DH |
DB 075H,01H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 025H |
DD 0F0FFH |
DB 03DH |
DD 0800FH |
DB 08BH,045H,0FCH |
;jne cfa_minusEBPLIT+0A5H |
DB 075H,01H |
DB 0C3H |
DB 08BH,055H,00H |
DB 089H,045H,0FCH |
DB 089H,055H,0F8H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,0F8H |
DB 08BH,045H,0FCH |
;jne cfa_minusEBPLIT+0BFH |
DB 075H,01H |
DB 0C3H |
DB 08DH,040H,04H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0820FH |
DD cfa_minusEBPLIT+019H-$-4 |
DB 0C3H |
AHEADER 0 ,'EAX>ECX',cfa_EAXgreatECX |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_EAXgreatECX+01CH |
DB 075H,06H |
call cfa_TRUE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 05589H |
DB 08DH,06DH,0FCH |
;jne cfa_EAXgreatECX+03DH |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 03AFFH |
DB 081H,0F9H |
DD 028BH |
;jne cfa_EAXgreatECX+06EH |
DB 075H,021H |
DB 0B8H |
DD 0800H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08BH,055H,0FCH |
DB 01H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0458BH |
;jne cfa_EAXgreatECX+099H |
DB 075H,024H |
DB 0B8H |
DD 04DH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 08BH |
;jne cfa_EAXgreatECX+0C4H |
DB 075H,024H |
DB 0B8H |
DD 09H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0D08BH |
;jne cfa_EAXgreatECX+0EFH |
DB 075H,024H |
DB 0B8H |
DD 0D1H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0C28BH |
;jne cfa_EAXgreatECX+011AH |
DB 075H,024H |
DB 0B8H |
DD 0CAH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0E0C1H |
;jne cfa_EAXgreatECX+0145H |
DB 075H,024H |
DB 0B8H |
DD 0E1H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0C223H |
;jne cfa_EAXgreatECX+0170H |
DB 075H,024H |
DB 0B8H |
DD 0CAH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0501H |
;jne cfa_EAXgreatECX+0195H |
DB 075H,01EH |
DB 0B8H |
DD 0D01H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
call cfa_Wsave+00H |
DB 08DH,040H,0FCH |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0508BH |
;jne cfa_EAXgreatECX+01C0H |
DB 075H,024H |
DB 0B8H |
DD 051H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 053BH |
;jne cfa_EAXgreatECX+01EBH |
DB 075H,024H |
DB 0B8H |
DD 0DH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0103BH |
;jne cfa_EAXgreatECX+0216H |
DB 075H,024H |
DB 0B8H |
DD 011H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0C23BH |
;jne cfa_EAXgreatECX+0241H |
DB 075H,024H |
DB 0B8H |
DD 0CAH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0C00BH |
;jne cfa_EAXgreatECX+026CH |
DB 075H,024H |
DB 0B8H |
DD 0C9H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0C01BH |
;jne cfa_EAXgreatECX+0297H |
DB 075H,024H |
DB 0B8H |
DD 0C9H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0F8H |
DB 03DH |
DD 0F8D1H |
;jne cfa_EAXgreatECX+02C5H |
DB 075H,024H |
DB 0B8H |
DD 0F9H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0E8C1H |
;jne cfa_EAXgreatECX+02F0H |
DB 075H,024H |
DB 0B8H |
DD 0E9H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 04589H |
;jne cfa_EAXgreatECX+031BH |
DB 075H,024H |
DB 0B8H |
DD 04DH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 05089H |
;jne cfa_EAXgreatECX+0346H |
DB 075H,024H |
DB 0B8H |
DD 051H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 01089H |
;jne cfa_EAXgreatECX+0371H |
DB 075H,024H |
DB 0B8H |
DD 011H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 080C6H |
;jne cfa_EAXgreatECX+039CH |
DB 075H,024H |
DB 0B8H |
DD 081H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0408DH |
;jne cfa_EAXgreatECX+03C7H |
DB 075H,024H |
DB 0B8H |
DD 049H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0408BH |
;jne cfa_EAXgreatECX+03F2H |
DB 075H,024H |
DB 0B8H |
DD 049H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0428DH |
;jne cfa_EAXgreatECX+041AH |
DB 075H,021H |
DB 0B8H |
DD 0800H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08BH,055H,0FCH |
DB 01H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0808DH |
;jne cfa_EAXgreatECX+0445H |
DB 075H,024H |
DB 0B8H |
DD 089H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0C28BH |
;jne cfa_EAXgreatECX+0470H |
DB 075H,024H |
DB 0B8H |
DD 0CAH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0D8F7H |
;jne cfa_EAXgreatECX+049BH |
DB 075H,024H |
DB 0B8H |
DD 0D9H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0D0F7H |
;jne cfa_EAXgreatECX+04C6H |
DB 075H,024H |
DB 0B8H |
DD 0D1H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0D0F7H |
;jne cfa_EAXgreatECX+04F1H |
DB 075H,024H |
DB 0B8H |
DD 0D1H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 04503H |
;jne cfa_EAXgreatECX+051CH |
DB 075H,024H |
DB 0B8H |
DD 04DH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0523H |
;jne cfa_EAXgreatECX+0547H |
DB 075H,024H |
DB 0B8H |
DD 0DH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0558BH |
;jne cfa_EAXgreatECX+055DH |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0158BH |
;jne cfa_EAXgreatECX+0573H |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 045C7H |
;jne cfa_EAXgreatECX+0589H |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 08BH,00H |
DB 08BH,00H |
DB 03DH |
DD 0244B60FH |
;jne cfa_EAXgreatECX+05BBH |
DB 075H,021H |
DB 0B8H |
DD 0A4CH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08DH,06DH,0FCH |
call cfa_Wsave+00H |
DB 08DH,040H,0FCH |
call cfa_TRUE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFH |
DB 023H,045H,0FCH |
DB 03DH |
DD 085048DH |
;jne cfa_EAXgreatECX+05EEH |
DB 075H,021H |
DB 0B8H |
DD 08D0CH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08DH,06DH,0FCH |
call cfa_Wsave+00H |
DB 08DH,040H,0FCH |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 085048BH |
;jne cfa_EAXgreatECX+0616H |
DB 075H,021H |
DB 0B8H |
DD 08D0CH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08DH,06DH,0FCH |
call cfa_Wsave+00H |
DB 08DH,040H,0FCH |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 080B60FH |
;jne cfa_EAXgreatECX+0641H |
DB 075H,024H |
DB 0B8H |
DD 089H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 040B70FH |
;jne cfa_EAXgreatECX+066CH |
DB 075H,024H |
DB 0B8H |
DD 049H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0B70FH |
;jne cfa_EAXgreatECX+0697H |
DB 075H,024H |
DB 0B8H |
DD 09H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 082448BH |
;jne cfa_EAXgreatECX+06BFH |
DB 075H,021H |
DB 0B8H |
DD 08A4CH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08DH,06DH,0FCH |
call cfa_Wsave+00H |
DB 08DH,040H,0FCH |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 024048BH |
;jne cfa_EAXgreatECX+06EAH |
DB 075H,024H |
DB 0B8H |
DD 0CH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 024448BH |
;jne cfa_EAXgreatECX+0715H |
DB 075H,024H |
DB 0B8H |
DD 04CH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 024043BH |
;jne cfa_EAXgreatECX+0740H |
DB 075H,024H |
DB 0B8H |
DD 0CH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 024443BH |
;jne cfa_EAXgreatECX+076BH |
DB 075H,024H |
DB 0B8H |
DD 04CH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 024548BH |
;jne cfa_EAXgreatECX+0781H |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 024442BH |
;jne cfa_EAXgreatECX+07ACH |
DB 075H,024H |
DB 0B8H |
DD 04CH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFH |
DB 023H,045H,0FCH |
DB 03DH |
DD 050H |
;jne cfa_EAXgreatECX+07DFH |
DB 075H,021H |
DB 0B8H |
DD 051H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0B8H |
;jne cfa_EAXgreatECX+0807H |
DB 075H,021H |
DB 0B8H |
DD 0B9H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0A3H |
;jne cfa_EAXgreatECX+0842H |
DB 075H,034H |
DB 08BH,045H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 08DH,06DH,0FCH |
call cfa_OPresize+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D89H |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 08BH,00H |
DB 08DH,06DH,0F8H |
call cfa_Wsave+00H |
DB 08DH,040H,0FCH |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0A1H |
;jne cfa_EAXgreatECX+087DH |
DB 075H,034H |
DB 08BH,045H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 08DH,06DH,0FCH |
call cfa_OPresize+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D8BH |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 08BH,00H |
DB 08DH,06DH,0F8H |
call cfa_Wsave+00H |
DB 08DH,040H,0FCH |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 025H |
;jne cfa_EAXgreatECX+08B8H |
DB 075H,034H |
DB 08BH,045H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 08DH,06DH,0FCH |
call cfa_OPresize+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0E181H |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 08BH,00H |
DB 08DH,06DH,0F8H |
call cfa_Wsave+00H |
DB 08DH,040H,0FCH |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0BAH |
;jne cfa_EAXgreatECX+08CEH |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 03DH |
;jne cfa_EAXgreatECX+0909H |
DB 075H,034H |
DB 08BH,045H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 08DH,06DH,0FCH |
call cfa_OPresize+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0F981H |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 08BH,00H |
DB 08DH,06DH,0F8H |
call cfa_Wsave+00H |
DB 08DH,040H,0FCH |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_Udot+00H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
call cfa_Udot+00H |
call cfa_Udot+00H |
call cfa__SLITERALminusCODE+00H |
DB 07H |
DB 'EAX>ECX',0 |
call cfa_TYPE+00H |
call cfa_ABORT+00H |
DB 0C3H |
AHEADER 0 ,'EAX>ECX0',cfa_EAXgreatECX0 |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_EAXgreatECX0+01CH |
DB 075H,06H |
call cfa_TRUE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0EFFFH |
DB 081H,0F9H |
DD 04589H |
DB 08DH,06DH,0FCH |
;jne cfa_EAXgreatECX0+046H |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0501H |
;jne cfa_EAXgreatECX0+05CH |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 05589H |
;jne cfa_EAXgreatECX0+072H |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 038FFH |
DB 081H,0F9H |
DD 08BH |
;jne cfa_EAXgreatECX0+0A3H |
DB 075H,021H |
DB 0B8H |
DD 0800H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08BH,055H,0FCH |
DB 01H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 0C3H |
DB 03DH |
DD 0C28BH |
;jne cfa_EAXgreatECX0+0CEH |
DB 075H,024H |
DB 0B8H |
DD 0CAH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 0C3H |
DB 03DH |
DD 0808DH |
;jne cfa_EAXgreatECX0+0F9H |
DB 075H,024H |
DB 0B8H |
DD 088H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 0C3H |
DB 03DH |
DD 0408DH |
;jne cfa_EAXgreatECX0+0124H |
DB 075H,024H |
DB 0B8H |
DD 048H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 0C3H |
DB 03DH |
DD 0408BH |
;jne cfa_EAXgreatECX0+014FH |
DB 075H,024H |
DB 0B8H |
DD 048H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 0C3H |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0FFH |
DB 081H,0F9H |
DD 08BH |
;jne cfa_EAXgreatECX0+016EH |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 038FFH |
DB 081H,0F9H |
DD 08DH |
;jne cfa_EAXgreatECX0+019FH |
DB 075H,021H |
DB 0B8H |
DD 0800H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08BH,055H,0FCH |
DB 01H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 0C3H |
DB 03DH |
DD 0428DH |
;jne cfa_EAXgreatECX0+01C7H |
DB 075H,021H |
DB 0B8H |
DD 0800H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08BH,055H,0FCH |
DB 01H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 0C3H |
DB 03DH |
DD 0C00BH |
;jne cfa_EAXgreatECX0+01DDH |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 05089H |
;jne cfa_EAXgreatECX0+01F3H |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 01089H |
;jne cfa_EAXgreatECX0+0209H |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 080C6H |
;jne cfa_EAXgreatECX0+021FH |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 045C7H |
;jne cfa_EAXgreatECX0+0235H |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 08BH,00H |
DB 08BH,00H |
DB 03DH |
DD 0244B60FH |
;jne cfa_EAXgreatECX0+026AH |
DB 075H,024H |
DB 0B8H |
DD 04CH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFH |
DB 023H,045H,0FCH |
DB 03DH |
DD 080B60FH |
;jne cfa_EAXgreatECX0+02A0H |
DB 075H,024H |
DB 0B8H |
DD 088H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 0C3H |
DB 03DH |
DD 040B70FH |
;jne cfa_EAXgreatECX0+02CBH |
DB 075H,024H |
DB 0B8H |
DD 048H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 0C3H |
DB 03DH |
DD 0B70FH |
;jne cfa_EAXgreatECX0+02F6H |
DB 075H,024H |
DB 0B8H |
DD 08H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFH |
DB 023H,045H,0FCH |
DB 03DH |
DD 050H |
;jne cfa_EAXgreatECX0+0317H |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0B8H |
;jne cfa_EAXgreatECX0+033FH |
DB 075H,021H |
DB 0B8H |
DD 0B9H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 0C3H |
DB 03DH |
DD 0BAH |
;jne cfa_EAXgreatECX0+0355H |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 03DH |
;jne cfa_EAXgreatECX0+036BH |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 03BH |
;jne cfa_EAXgreatECX0+0381H |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0A3H |
;jne cfa_EAXgreatECX0+0397H |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0A1H |
;jne cfa_EAXgreatECX0+03D2H |
DB 075H,034H |
DB 08BH,045H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 08DH,06DH,0FCH |
call cfa_OPresize+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0D8BH |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 08BH,00H |
DB 08DH,06DH,0F8H |
call cfa_Wsave+00H |
DB 08DH,040H,0FCH |
call cfa_TRUE+00H |
DB 0C3H |
call cfa_HEX+00H |
call cfa_Udot+00H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
call cfa_Udot+00H |
call cfa_Udot+00H |
call cfa__SLITERALminusCODE+00H |
DB 08H |
DB 'EAX>ECX0',0 |
call cfa_TYPE+00H |
call cfa_ABORT+00H |
DB 0C3H |
AHEADER 0 ,'?EAX>ECX',cfa_queEAXgreatECX |
call cfa_queOPlast+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_queEAXgreatECX+020H |
DB 074H,011H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_queEAXgreatECX+049H |
DB 076H,011H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0F8H |
DB 089H,045H,0F4H |
DB 0B8H |
DD 04589H |
DB 033H,045H,0F4H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 089H,045H,0F4H |
DB 08BH,045H,0F8H |
DB 089H,045H,0F0H |
DB 0B8H |
DD 0458BH |
DB 033H,045H,0F0H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 0BH,045H,0F4H |
DB 08BH,045H,0F8H |
DB 08DH,06DH,0FCH |
;je cfa_queEAXgreatECX+0E6H |
DB 074H,061H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAXgreatECX+0BAH |
DB 075H,0FH |
DB 08DH,040H,0FCH |
call cfa_TRUE+00H |
call cfa_TRUE+00H |
DB 0EBH,02BH |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0458BH |
DB 08BH,045H,0FCH |
;jne cfa_queEAXgreatECX+0DDH |
DB 075H,011H |
call cfa_quetilEAX+00H |
DB 0C7H,00H |
DD 00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 08DH,040H,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 05589H |
;jne cfa_queEAXgreatECX+012EH |
DB 075H,041H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAXgreatECX+0125H |
DB 075H,012H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 0EBH,08H |
DB 08DH,040H,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_quetilEAXlsk+00H |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 03AFFH |
DB 081H,0F9H |
DD 028BH |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 08BH |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 0408DH |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 0408BH |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 0428DH |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 0C28BH |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
call cfa_TRUE+00H |
call cfa_quetilEAX+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 03DH |
DD 0C00BH |
DB 08DH,06DH,08H |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 0C01BH |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 089H,045H,0F8H |
DB 03DH |
DD 0F8D1H |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 0E8C1H |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 0D8F7H |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 0D0F7H |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 0D0F7H |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 04503H |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 0523H |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 0E0C1H |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 0C223H |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
call cfa_rskquetilEAX+00H |
DB 03DH |
DD 0508BH |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 053BH |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 0103BH |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 0558BH |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 0158BH |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 0D08BH |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 0501H |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 05089H |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 01089H |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 080C6H |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 045C7H |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFH |
DB 023H,045H,0FCH |
DB 03DH |
DD 050H |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 0A3H |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_quetilEAXlsk+00H |
DB 03DH |
DD 0B8H |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 0A1H |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
call cfa_TRUE+00H |
call cfa_quetilEAX+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 089H,045H,00H |
DB 03DH |
DD 025H |
DB 08DH,06DH,08H |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
call cfa_rskquetilEAX+00H |
DB 03DH |
DD 0BAH |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 03DH |
DD 03DH |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_quetilEAXlsk+00H |
DB 03DH |
DD 0244B60FH |
DW 0840FH |
DD cfa_queEAXgreatECX+03C3H-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFH |
DB 023H,045H,0FCH |
DB 03DH |
DD 085048DH |
;je cfa_queEAXgreatECX+03C3H |
DB 074H,078H |
DB 03DH |
DD 085048BH |
;je cfa_queEAXgreatECX+03C3H |
DB 074H,071H |
DB 03DH |
DD 080B60FH |
;je cfa_queEAXgreatECX+03C3H |
DB 074H,06AH |
DB 03DH |
DD 040B70FH |
;je cfa_queEAXgreatECX+03C3H |
DB 074H,063H |
DB 03DH |
DD 0B70FH |
;je cfa_queEAXgreatECX+03C3H |
DB 074H,05CH |
DB 03DH |
DD 082448BH |
;je cfa_queEAXgreatECX+03C3H |
DB 074H,055H |
DB 03DH |
DD 024048BH |
;je cfa_queEAXgreatECX+03C3H |
DB 074H,04EH |
DB 03DH |
DD 024448BH |
;je cfa_queEAXgreatECX+03C3H |
DB 074H,047H |
call cfa_TRUE+00H |
call cfa_quetilEAX+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 03DH |
DD 024442BH |
DB 08DH,06DH,08H |
;je cfa_queEAXgreatECX+03C3H |
DB 074H,02BH |
call cfa_rskquetilEAX+00H |
DB 03DH |
DD 024043BH |
;je cfa_queEAXgreatECX+03C3H |
DB 074H,01FH |
DB 03DH |
DD 024443BH |
;je cfa_queEAXgreatECX+03C3H |
DB 074H,018H |
DB 03DH |
DD 024548BH |
;je cfa_queEAXgreatECX+03C3H |
DB 074H,011H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 0C3H |
DB 08BH,045H,00H |
DB 08DH,040H,04H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
AHEADER 0 ,'EAX>EBX',cfa_EAXgreatEBX |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_EAXgreatEBX+01CH |
DB 075H,06H |
call cfa_TRUE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0508BH |
DB 08DH,06DH,0FCH |
;jne cfa_EAXgreatEBX+052H |
DB 075H,024H |
DB 0B8H |
DD 053H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 083BH |
;jne cfa_EAXgreatEBX+07AH |
DB 075H,021H |
DB 0B8H |
DD 0BH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08DH,06DH,0FCH |
call cfa_Wsave+00H |
DB 08DH,040H,0FCH |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0C83BH |
;jne cfa_EAXgreatEBX+0A2H |
DB 075H,021H |
DB 0B8H |
DD 0CBH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08DH,06DH,0FCH |
call cfa_Wsave+00H |
DB 08DH,040H,0FCH |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0C13BH |
;jne cfa_EAXgreatEBX+0CAH |
DB 075H,021H |
DB 0B8H |
DD 0D9H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08DH,06DH,0FCH |
call cfa_Wsave+00H |
DB 08DH,040H,0FCH |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 088BH |
;jne cfa_EAXgreatEBX+0F5H |
DB 075H,024H |
DB 0B8H |
DD 0BH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0458BH |
;jne cfa_EAXgreatEBX+0120H |
DB 075H,024H |
DB 0B8H |
DD 05DH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 098BH |
;jne cfa_EAXgreatEBX+0136H |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 04D8BH |
;jne cfa_EAXgreatEBX+014CH |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 05589H |
;jne cfa_EAXgreatEBX+0162H |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0C88BH |
;jne cfa_EAXgreatEBX+018DH |
DB 075H,024H |
DB 0B8H |
DD 0CBH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0889H |
;jne cfa_EAXgreatEBX+01B8H |
DB 075H,024H |
DB 0B8H |
DD 0BH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 01089H |
;jne cfa_EAXgreatEBX+01E3H |
DB 075H,024H |
DB 0B8H |
DD 013H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 04889H |
;jne cfa_EAXgreatEBX+020EH |
DB 075H,024H |
DB 0B8H |
DD 04BH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 04589H |
;jne cfa_EAXgreatEBX+0239H |
DB 075H,024H |
DB 0B8H |
DD 05DH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0408DH |
;jne cfa_EAXgreatEBX+0264H |
DB 075H,024H |
DB 0B8H |
DD 05BH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0808DH |
;jne cfa_EAXgreatEBX+028FH |
DB 075H,024H |
DB 0B8H |
DD 09BH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 08BH |
;jne cfa_EAXgreatEBX+02BAH |
DB 075H,024H |
DB 0B8H |
DD 01BH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0C18BH |
;jne cfa_EAXgreatEBX+02E5H |
DB 075H,024H |
DB 0B8H |
DD 0D9H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0D8F7H |
;jne cfa_EAXgreatEBX+0310H |
DB 075H,024H |
DB 0B8H |
DD 0DBH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFH |
DB 023H,045H,0FCH |
DB 03DH |
DD 08D0489H |
;jne cfa_EAXgreatEBX+0350H |
DB 075H,024H |
DB 0B8H |
DD 01CH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 024048BH |
;jne cfa_EAXgreatEBX+037BH |
DB 075H,024H |
DB 0B8H |
DD 01CH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0240C8BH |
;jne cfa_EAXgreatEBX+0391H |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 024442BH |
;jne cfa_EAXgreatEBX+03BCH |
DB 075H,024H |
DB 0B8H |
DD 05CH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_HEX+00H |
call cfa_Udot+00H |
call cfa_Udot+00H |
call cfa__SLITERALminusCODE+00H |
DB 07H |
DB 'EAX>EBX',0 |
call cfa_TYPE+00H |
call cfa_ABORT+00H |
DB 0C3H |
AHEADER 0 ,'EAX>EBX0',cfa_EAXgreatEBX0 |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_EAXgreatEBX0+01CH |
DB 075H,06H |
call cfa_TRUE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0508BH |
DB 08DH,06DH,0FCH |
;jne cfa_EAXgreatEBX0+03DH |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 088BH |
;jne cfa_EAXgreatEBX0+053H |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 098BH |
;jne cfa_EAXgreatEBX0+069H |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 04D8BH |
;jne cfa_EAXgreatEBX0+07FH |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 05589H |
;jne cfa_EAXgreatEBX0+095H |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0C88BH |
;jne cfa_EAXgreatEBX0+0ABH |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0889H |
;jne cfa_EAXgreatEBX0+0C1H |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 01089H |
;jne cfa_EAXgreatEBX0+0D7H |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 04889H |
;jne cfa_EAXgreatEBX0+0EDH |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0408DH |
;jne cfa_EAXgreatEBX0+0118H |
DB 075H,024H |
DB 0B8H |
DD 058H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 0C3H |
DB 03DH |
DD 0808DH |
;jne cfa_EAXgreatEBX0+0143H |
DB 075H,024H |
DB 0B8H |
DD 098H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 0C3H |
DB 03DH |
DD 08BH |
;jne cfa_EAXgreatEBX0+016EH |
DB 075H,024H |
DB 0B8H |
DD 018H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 0C3H |
DB 03DH |
DD 0C18BH |
;jne cfa_EAXgreatEBX0+0199H |
DB 075H,024H |
DB 0B8H |
DD 0D9H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 0C3H |
DB 03DH |
DD 0458BH |
;jne cfa_EAXgreatEBX0+01C4H |
DB 075H,024H |
DB 0B8H |
DD 05DH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 0C3H |
DB 03DH |
DD 0D8F7H |
;jne cfa_EAXgreatEBX0+01EFH |
DB 075H,024H |
DB 0B8H |
DD 0DBH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFH |
DB 023H,045H,0FCH |
DB 03DH |
DD 08D0489H |
;jne cfa_EAXgreatEBX0+021AH |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 024048BH |
;jne cfa_EAXgreatEBX0+0245H |
DB 075H,024H |
DB 0B8H |
DD 01CH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 0C3H |
DB 03DH |
DD 0240C8BH |
;jne cfa_EAXgreatEBX0+025BH |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFH |
DB 023H,045H,0FCH |
DB 03DH |
DD 03BH |
;jne cfa_EAXgreatEBX0+027CH |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_HEX+00H |
call cfa_Udot+00H |
call cfa_Udot+00H |
call cfa__SLITERALminusCODE+00H |
DB 08H |
DB 'EAX>EBX0',0 |
call cfa_TYPE+00H |
call cfa_ABORT+00H |
DB 0C3H |
AHEADER 0 ,'?EAX>EBX',cfa_queEAXgreatEBX |
call cfa_queOPlast+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_queEAXgreatEBX+020H |
DB 074H,011H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_queEAXgreatEBX+049H |
DB 076H,011H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0F8H |
DB 089H,045H,0F4H |
DB 0B8H |
DD 04589H |
DB 033H,045H,0F4H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 089H,045H,0F4H |
DB 08BH,045H,0F8H |
DB 089H,045H,0F0H |
DB 0B8H |
DD 0458BH |
DB 033H,045H,0F0H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 0BH,045H,0F4H |
DB 08BH,045H,0F8H |
DB 08DH,06DH,0FCH |
;je cfa_queEAXgreatEBX+0E6H |
DB 074H,061H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAXgreatEBX+0BAH |
DB 075H,0FH |
DB 08DH,040H,0FCH |
call cfa_TRUE+00H |
call cfa_TRUE+00H |
DB 0EBH,02BH |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0458BH |
DB 08BH,045H,0FCH |
;jne cfa_queEAXgreatEBX+0DDH |
DB 075H,011H |
call cfa_quetilEAX+00H |
DB 0C7H,00H |
DD 00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 08DH,040H,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 083BH |
DW 0840FH |
DD cfa_queEAXgreatEBX+027AH-$-4 |
DB 03DH |
DD 0C83BH |
DW 0840FH |
DD cfa_queEAXgreatEBX+027AH-$-4 |
DB 03DH |
DD 0C13BH |
DW 0840FH |
DD cfa_queEAXgreatEBX+027AH-$-4 |
DB 03DH |
DD 0508BH |
DW 0840FH |
DD cfa_queEAXgreatEBX+027AH-$-4 |
DB 03DH |
DD 088BH |
DW 0840FH |
DD cfa_queEAXgreatEBX+027AH-$-4 |
DB 03DH |
DD 098BH |
DW 0840FH |
DD cfa_queEAXgreatEBX+027AH-$-4 |
DB 03DH |
DD 0C88BH |
DW 0840FH |
DD cfa_queEAXgreatEBX+027AH-$-4 |
DB 03DH |
DD 0889H |
DW 0840FH |
DD cfa_queEAXgreatEBX+027AH-$-4 |
DB 03DH |
DD 01089H |
DW 0840FH |
DD cfa_queEAXgreatEBX+027AH-$-4 |
DB 03DH |
DD 04889H |
DW 0840FH |
DD cfa_queEAXgreatEBX+027AH-$-4 |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_quetilEAXlsk+00H |
DB 03DH |
DD 0408DH |
DW 0840FH |
DD cfa_queEAXgreatEBX+027AH-$-4 |
DB 03DH |
DD 0808DH |
DW 0840FH |
DD cfa_queEAXgreatEBX+027AH-$-4 |
DB 03DH |
DD 08BH |
DW 0840FH |
DD cfa_queEAXgreatEBX+027AH-$-4 |
DB 03DH |
DD 0C18BH |
DW 0840FH |
DD cfa_queEAXgreatEBX+027AH-$-4 |
call cfa_TRUE+00H |
call cfa_quetilEAX+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 03DH |
DD 0D8F7H |
DB 08DH,06DH,08H |
DW 0840FH |
DD cfa_queEAXgreatEBX+027AH-$-4 |
call cfa_rskquetilEAX+00H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFH |
DB 023H,045H,0FCH |
DB 03DH |
DD 0240C8BH |
DW 0840FH |
DD cfa_queEAXgreatEBX+027AH-$-4 |
DB 03DH |
DD 08D0489H |
DW 0840FH |
DD cfa_queEAXgreatEBX+027AH-$-4 |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_quetilEAXlsk+00H |
DB 03DH |
DD 024048BH |
DW 0840FH |
DD cfa_queEAXgreatEBX+027AH-$-4 |
call cfa_TRUE+00H |
call cfa_quetilEAX+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 03DH |
DD 024442BH |
DB 08DH,06DH,08H |
;je cfa_queEAXgreatEBX+027AH |
DB 074H,069H |
call cfa_rskquetilEAX+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFH |
DB 023H,045H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_queEAXgreatEBX+025BH |
DB 075H,011H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 0C3H |
DB 03DH |
DD 04D8BH |
;je cfa_queEAXgreatEBX+027AH |
DB 074H,018H |
DB 03DH |
DD 05589H |
;je cfa_queEAXgreatEBX+027AH |
DB 074H,011H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 0C3H |
DB 08BH,045H,00H |
DB 08DH,040H,04H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
AHEADER 0 ,'}?~EAX',cfa_rskquetilEAX |
call cfa_SAVEminusquetilEAX+00H |
DB 08BH,00H |
call cfa_quetilEAX+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'?~EAX{',cfa_quetilEAXlsk |
call cfa_quetilEAX+00H |
DB 08BH,00H |
call cfa_SAVEminusquetilEAX+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_quetilEAX+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'SAVE-?~EAX',cfa_SAVEminusquetilEAX |
call cfa__CREATEminusCODE+00H |
DD 00H |
AHEADER 0 ,'?~EAX',cfa_quetilEAX |
call cfa__CREATEminusCODE+00H |
DD 00H |
AHEADER 0 ,'OPinsert',cfa_OPinsert |
DB 089H,045H,0FCH |
DB 050H |
DB 08BH,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,045H,0FCH |
DB 089H,055H,0F8H |
DB 08DH,06DH,0F8H |
call cfa_OPresize+00H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_CELL+00H |
DB 03H,045H,00H |
DB 089H,045H,00H |
DB 08BH,045H,04H |
call cfa_OP0+00H |
DB 0F7H,0D8H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OpBuffSize+00H |
DB 08DH,040H,0FCH |
DB 0F7H,0D8H |
DB 03H,045H,00H |
DB 0F7H,0D8H |
DB 08DH,06DH,04H |
call cfa_MOVE+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 08BH,055H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,0C2H |
DB 08BH,055H,0FCH |
DB 01H,010H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'OPresize',cfa_OPresize |
DB 089H,045H,0FCH |
DB 050H |
DB 08BH,045H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08DH,06DH,08H |
DB 0BBH |
DD cfa_OPresize+060H |
DB 03BH,045H,0F8H |
;jne cfa_OPresize+027H |
DB 075H,05H |
DB 08BH,045H,0FCH |
DB 0FFH,0E3H |
DB 053H |
DB 0BBH |
DD 080000000H |
DB 02BH,05DH,0F8H |
DB 053H |
DB 03H,0D8H |
DB 053H |
DB 08BH,045H,0FCH |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 08BH,04H,024H |
DB 02BH,044H,024H,04H |
DB 08BH,055H,0F8H |
DB 01H,010H |
DB 08BH,045H,0FCH |
call cfa_CELL+00H |
DB 01H,04H,024H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jno cfa_OPresize+037H |
DB 071H,0DBH |
DB 08DH,064H,024H,0CH |
call cfa_ALLOT+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 058H |
DB 03H,045H,0F8H |
DB 089H,045H,0F8H |
DB 08DH,06DH,0F8H |
call cfa_DP+00H |
DB 08BH,00H |
DB 0F7H,0D8H |
DB 03H,045H,00H |
DB 0F7H,0D8H |
DB 08DH,06DH,04H |
call cfa_MOVE+00H |
DB 0C3H |
AHEADER 0 ,'MOV_EDX_[EBP]',cfa_MOV_EDX__xEBP_y |
call cfa_queOPlast+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_MOV_EDX__xEBP_y+020H |
DB 074H,011H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_MOV_EDX__xEBP_y+049H |
DB 076H,011H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
call cfa_queChEAX+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_MOV_EDX__xEBP_y+069H |
DB 075H,09H |
DB 08DH,040H,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_queEDX__xEBP_y+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_MOV_EDX__xEBP_y+087H |
DB 075H,09H |
DB 08DH,040H,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0448BH |
DB 08DH,06DH,0FCH |
;jne cfa_MOV_EDX__xEBP_y+0A8H |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,04H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 01489H |
;jne cfa_MOV_EDX__xEBP_y+0BEH |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,04H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 08BCAH |
;jne cfa_MOV_EDX__xEBP_y+0D4H |
DB 075H,0FH |
DB 08BH,045H,00H |
DB 08DH,040H,04H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0FFFDH |
DB 081H,0F9H |
DD 05589H |
;jne cfa_MOV_EDX__xEBP_y+0110H |
DB 075H,02CH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 0C3H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 0C3H |
AHEADER 0 ,'?EDX_[EBP]',cfa_queEDX__xEBP_y |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 08BH,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0FFFFFFH |
DB 023H,045H,0F8H |
DB 03DH |
DD 024048BH |
DB 08DH,06DH,0FCH |
;jne cfa_queEDX__xEBP_y+028H |
DB 075H,0CH |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFH |
DB 023H,045H,0FCH |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0458BH |
DB 033H,045H,0F8H |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 089H,045H,0F4H |
DB 0B8H |
DD 04589H |
DB 033H,045H,0F4H |
DB 0BH,045H,0F8H |
DB 08BH,045H,0FCH |
;jne cfa_queEDX__xEBP_y+081H |
DB 075H,027H |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 08DH,06DH,04H |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 08DH,06DH,04H |
DB 0C3H |
DB 089H,045H,00H |
call cfa_ADDlXORlORlAND_equ+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_queEDX__xEBP_y+09FH |
DB 074H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0E8C1H |
;jne cfa_queEDX__xEBP_y+0B2H |
DB 075H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0418DH |
;jne cfa_queEDX__xEBP_y+0C5H |
DB 075H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0408DH |
;jne cfa_queEDX__xEBP_y+0D8H |
DB 075H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0878DH |
;jne cfa_queEDX__xEBP_y+0EBH |
DB 075H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0D0F7H |
;jne cfa_queEDX__xEBP_y+0FEH |
DB 075H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0D8F7H |
;jne cfa_queEDX__xEBP_y+0111H |
DB 075H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0C123H |
;jne cfa_queEDX__xEBP_y+0124H |
DB 075H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0C033H |
;jne cfa_queEDX__xEBP_y+0137H |
DB 075H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0808DH |
;jne cfa_queEDX__xEBP_y+014AH |
DB 075H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 088BH |
;jne cfa_queEDX__xEBP_y+015DH |
DB 075H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0C00BH |
;jne cfa_queEDX__xEBP_y+0170H |
DB 075H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0488DH |
;jne cfa_queEDX__xEBP_y+0183H |
DB 075H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0E0D3H |
;jne cfa_queEDX__xEBP_y+0196H |
DB 075H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFH |
DB 023H,045H,0FCH |
DB 03DH |
DD 0A1H |
;jne cfa_queEDX__xEBP_y+01B4H |
DB 075H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 058H |
;jne cfa_queEDX__xEBP_y+01C7H |
DB 075H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 03DH |
DD 0B9H |
;jne cfa_queEDX__xEBP_y+01DAH |
DB 075H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 0C3H |
AHEADER 0 ,'XX_STEP',cfa_XX_STEP |
call cfa_queOPlast+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_XX_STEP+020H |
DB 074H,011H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 089H,045H,0F8H |
DB 08DH,06DH,0F8H |
call cfa_dcomaminusSET+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_XX_STEP+04CH |
DB 076H,011H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 0C3H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 03DH |
DW 0840FH |
DD cfa_XX_STEP+01CCH-$-4 |
DB 03DH |
DD 03BH |
DW 0840FH |
DD cfa_XX_STEP+01CCH-$-4 |
DB 03DH |
DD 0A3H |
DW 0840FH |
DD cfa_XX_STEP+01CCH-$-4 |
DB 03DH |
DD 0B9H |
DW 0840FH |
DD cfa_XX_STEP+01CCH-$-4 |
DB 03DH |
DD 0BAH |
DW 0840FH |
DD cfa_XX_STEP+01CCH-$-4 |
DB 03DH |
DD 0BBH |
DW 0840FH |
DD cfa_XX_STEP+01CCH-$-4 |
DB 03DH |
DD 050H |
DW 0840FH |
DD cfa_XX_STEP+01CCH-$-4 |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 08BH,00H |
DB 0FH,0B7H,00H |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 04FFH |
DB 081H,0F9H |
DD 04C7H |
DW 0840FH |
DD cfa_XX_STEP+01CCH-$-4 |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 040FEH |
DB 081H,0F9H |
DD 088H |
DW 0840FH |
DD cfa_XX_STEP+01CCH-$-4 |
DB 03DH |
DD 04D89H |
DW 0840FH |
DD cfa_XX_STEP+01CCH-$-4 |
DB 03DH |
DD 0558BH |
DW 0840FH |
DD cfa_XX_STEP+01CCH-$-4 |
DB 03DH |
DD 04C8BH |
DW 0840FH |
DD cfa_XX_STEP+01CCH-$-4 |
DB 03DH |
DD 0648DH |
DW 0840FH |
DD cfa_XX_STEP+01CCH-$-4 |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 034FFH |
DB 081H,0F9H |
DD 04FFH |
DW 0840FH |
DD cfa_XX_STEP+01CCH-$-4 |
DB 03DH |
DD 0C00BH |
DW 0840FH |
DD cfa_XX_STEP+01CCH-$-4 |
DB 03DH |
DD 0D00BH |
DW 0840FH |
DD cfa_XX_STEP+01CCH-$-4 |
DB 03DH |
DD 0D02BH |
DW 0840FH |
DD cfa_XX_STEP+01CCH-$-4 |
DB 03DH |
DD 0401H |
DW 0840FH |
DD cfa_XX_STEP+01CCH-$-4 |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 06FDH |
DB 081H,0F9H |
DD 0481H |
DW 0840FH |
DD cfa_XX_STEP+01CCH-$-4 |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0FFFDH |
DB 081H,0F9H |
DD 04589H |
;jne cfa_XX_STEP+01BBH |
DB 075H,05CH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0FH,0B6H,00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_XX_STEP+0194H |
DB 075H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 0C3H |
DB 03DH |
DD 0458BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_XX_STEP+01B2H |
DB 075H,011H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 0C3H |
DB 08DH,040H,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
call cfa_TRUE+00H |
DB 0C3H |
DB 08BH,045H,00H |
DB 08DH,040H,04H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
AHEADER 0 ,'?OPlast',cfa_queOPlast |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
call cfa_OpBuffSize+00H |
DB 03H,045H,00H |
DB 08DH,040H,0FCH |
DB 08DH,040H,0FCH |
DB 03BH,045H,04H |
DB 01BH,0C0H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'OPexcise',cfa_OPexcise |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_OPexcise+033H |
DB 075H,01DH |
DB 08BH,00H |
call cfa_DP+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_OP1+00H |
call cfa_ToOP0+00H |
DB 0C3H |
DB 050H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 08BH,04H,024H |
DB 08DH,040H,0FCH |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 08BH,04H,024H |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
call cfa_DP+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 08BH,04H,024H |
DB 08DH,040H,0FCH |
DB 08BH,00H |
DB 0F7H,0D8H |
DB 03H,045H,0FCH |
call cfa_CMOVE+00H |
DB 089H,045H,0FCH |
DB 08BH,04H,024H |
DB 08DH,06DH,0FCH |
call cfa_OP_SIZE+00H |
DB 0F7H,0D8H |
DB 089H,045H,0FCH |
DB 08BH,04H,024H |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 0BAH |
DD 080000000H |
DB 02BH,055H,00H |
DB 08DH,01CH,02H |
DB 08BH,045H,04H |
DB 08BH,0D2H |
DB 08DH,06DH,08H |
DB 068H |
DD cfa_OPexcise+0CAH |
DB 052H |
DB 053H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 08BH,04H,024H |
DB 02BH,044H,024H,04H |
DB 08BH,055H,0F8H |
DB 01H,010H |
DB 08BH,045H,0FCH |
call cfa_CELL+00H |
DB 01H,04H,024H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jno cfa_OPexcise+0A1H |
DB 071H,0DBH |
DB 08DH,064H,024H,0CH |
call cfa_ALLOT+00H |
DB 089H,045H,0FCH |
DB 08BH,04H,024H |
DB 08DH,040H,04H |
DB 089H,045H,0F8H |
DB 08BH,04H,024H |
DB 08DH,06DH,0F8H |
call cfa_OpBuffSize+00H |
DB 08DH,040H,0FCH |
DB 089H,045H,0FCH |
DB 058H |
DB 0F7H,0D8H |
DB 03H,045H,0FCH |
call cfa_OP0+00H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
call cfa_CMOVE+00H |
DB 0C3H |
AHEADER 0 ,'OP_SIZE',cfa_OP_SIZE |
DB 0BH,0C0H |
;je cfa_OP_SIZE+04H |
DB 074H,00H |
DB 089H,045H,0FCH |
DB 08DH,040H,0FCH |
DB 08BH,00H |
DB 08BH,055H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,0C2H |
DB 08BH,00H |
DB 0F7H,0D8H |
DB 03H,045H,0FCH |
DB 0C3H |
AHEADER 0 ,'^?EAX=',cfa_picqueEAX_equ |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_queChEAX+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_picqueEAX_equ+021H |
DB 074H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0FH,0B7H,00H |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0F9H |
DB 081H,0F9H |
DD 089H |
DB 08DH,06DH,0FCH |
;je cfa_picqueEAX_equ+046H |
DB 074H,0CH |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FF00H |
DB 023H,045H,0FCH |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0100H |
DB 081H,0F9H |
DD 0100H |
;je cfa_picqueEAX_equ+0A0H |
DB 074H,03FH |
DB 03DH |
DD 0C200H |
;je cfa_picqueEAX_equ+0A0H |
DB 074H,038H |
DB 03DH |
DD 0D800H |
;je cfa_picqueEAX_equ+0A0H |
DB 074H,031H |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFF00H |
DB 023H,045H,0FCH |
DB 03DH |
DD 0240400H |
;je cfa_picqueEAX_equ+0A0H |
DB 074H,01AH |
DB 03DH |
DD 0244400H |
;je cfa_picqueEAX_equ+0A0H |
DB 074H,013H |
DB 03DH |
DD 095048BH |
;je cfa_picqueEAX_equ+0A0H |
DB 074H,0CH |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_TRUE+00H |
DB 0C3H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
AHEADER 0 ,'?ChEAX',cfa_queChEAX |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0B8H |
DB 08DH,06DH,0FCH |
;je cfa_queChEAX+071H |
DB 074H,061H |
DB 03DH |
DD 0A1H |
;je cfa_queChEAX+071H |
DB 074H,05AH |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 0C033H |
;je cfa_queChEAX+071H |
DB 074H,04AH |
DB 03DH |
DD 0C031H |
;je cfa_queChEAX+071H |
DB 074H,043H |
DB 03DH |
DD 0D889H |
;je cfa_queChEAX+071H |
DB 074H,03CH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 038FFH |
DB 023H,045H,0FCH |
DB 03DH |
DD 08BH |
;je cfa_queChEAX+071H |
DB 074H,02AH |
DB 03DH |
DD 08DH |
;je cfa_queChEAX+071H |
DB 074H,023H |
DB 08BH,045H,00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFH |
DB 023H,045H,0FCH |
DB 03DH |
DD 02048DH |
;je cfa_queChEAX+071H |
DB 074H,0CH |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_TRUE+00H |
DB 0C3H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 0C3H |
AHEADER 0 ,'TTTT',cfa_TTTT |
call cfa__CONSTANTminusCODE+00H |
DD 00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'DUP7B?',cfa_DUP7Bque |
DB 089H,045H,0FCH |
DB 025H |
DD 03FFFFDH |
DB 089H,045H,0F8H |
DB 0B8H |
DD 050489H |
DB 033H,045H,0F8H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 025H |
DD 03FFFFBH |
DB 089H,045H,0F4H |
DB 0B8H |
DD 050489H |
DB 033H,045H,0F4H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 0BH,045H,0F8H |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 089H,045H,0F4H |
DB 0B8H |
DD 080B60FH |
DB 033H,045H,0F4H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 0BH,045H,0F8H |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 089H,045H,0F4H |
DB 0B8H |
DD 045048DH |
DB 033H,045H,0F4H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 0BH,045H,0F8H |
DB 08DH,06DH,0FCH |
DB 0C3H |
AHEADER 0 ,'DUP5B?',cfa_DUP5Bque |
DB 089H,045H,0FCH |
DB 025H |
DD 0C7H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 05H |
DB 033H,045H,0F8H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 025H |
DD 0FCH |
DB 089H,045H,0F4H |
DB 0B8H |
DD 0B8H |
DB 033H,045H,0F4H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 0BH,045H,0F8H |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 025H |
DD 0FDH |
DB 089H,045H,0F4H |
DB 0B8H |
DD 0A1H |
DB 033H,045H,0F4H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 0BH,045H,0F8H |
DB 08DH,06DH,0FCH |
DB 0C3H |
AHEADER 0 ,'DUP6B?',cfa_DUP6Bque |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 067FDH |
DB 081H,0F9H |
DD 0589H |
;je cfa_DUP6Bque+088H |
DB 074H,078H |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0C3FFH |
DB 081H,0F9H |
DD 0C081H |
;je cfa_DUP6Bque+088H |
DB 074H,068H |
DB 03DH |
DD 0501H |
;je cfa_DUP6Bque+088H |
DB 074H,061H |
DB 03DH |
DD 0503H |
;je cfa_DUP6Bque+088H |
DB 074H,05AH |
DB 03DH |
DD 053BH |
;je cfa_DUP6Bque+088H |
DB 074H,053H |
DB 03DH |
DD 0873BH |
;je cfa_DUP6Bque+088H |
DB 074H,04CH |
DB 03DH |
DD 0F281H |
;je cfa_DUP6Bque+088H |
DB 074H,045H |
DB 03DH |
DD 0928DH |
;je cfa_DUP6Bque+088H |
DB 074H,03EH |
DB 03DH |
DD 0808BH |
;je cfa_DUP6Bque+088H |
DB 074H,037H |
DB 03DH |
DD 0808DH |
;je cfa_DUP6Bque+088H |
DB 074H,030H |
DB 03DH |
DD 08703H |
;je cfa_DUP6Bque+088H |
DB 074H,029H |
DB 03DH |
DD 0878BH |
;je cfa_DUP6Bque+088H |
DB 074H,022H |
DB 03DH |
DD 0878DH |
;je cfa_DUP6Bque+088H |
DB 074H,01BH |
DB 03DH |
DD 0C7H |
;je cfa_DUP6Bque+088H |
DB 074H,014H |
DB 03DH |
DD 081H |
;je cfa_DUP6Bque+088H |
DB 074H,0DH |
DB 03DH |
DD 05FFH |
;je cfa_DUP6Bque+088H |
DB 074H,06H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_TRUE+00H |
DB 0C3H |
AHEADER 0 ,'DUP2B?',cfa_DUP2Bque |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0E4C5H |
DB 081H,0F9H |
DD 0C001H |
DW 0840FH |
DD cfa_DUP2Bque+01D1H-$-4 |
DB 03DH |
DD 01001H |
DW 0840FH |
DD cfa_DUP2Bque+01D1H-$-4 |
DB 03DH |
DD 03H |
DW 0840FH |
DD cfa_DUP2Bque+01D1H-$-4 |
DB 03DH |
DD 0F633H |
DW 0840FH |
DD cfa_DUP2Bque+01D1H-$-4 |
DB 03DH |
DD 0108BH |
DW 0840FH |
DD cfa_DUP2Bque+01D1H-$-4 |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0C0FFH |
DB 081H,0F9H |
DD 0C085H |
DW 0840FH |
DD cfa_DUP2Bque+01D1H-$-4 |
DB 089H,045H,0FCH |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0E4FCH |
DB 081H,0F9H |
DD 0C088H |
DW 0840FH |
DD cfa_DUP2Bque+01D1H-$-4 |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0C4FEH |
DB 081H,0F9H |
DD 088H |
DW 0840FH |
DD cfa_DUP2Bque+01D1H-$-4 |
DB 03DH |
DD 08BH |
DW 0840FH |
DD cfa_DUP2Bque+01D1H-$-4 |
DB 03DH |
DD 028BH |
DW 0840FH |
DD cfa_DUP2Bque+01D1H-$-4 |
DB 03DH |
DD 0C78BH |
DW 0840FH |
DD cfa_DUP2Bque+01D1H-$-4 |
DB 089H,045H,0F8H |
DB 03DH |
DD 0F88BH |
DW 0840FH |
DD cfa_DUP2Bque+01D1H-$-4 |
DB 03DH |
DD 0F08BH |
DW 0840FH |
DD cfa_DUP2Bque+01D1H-$-4 |
DB 03DH |
DD 0C88BH |
DW 0840FH |
DD cfa_DUP2Bque+01D1H-$-4 |
DB 03DH |
DD 0D18BH |
DW 0840FH |
DD cfa_DUP2Bque+01D1H-$-4 |
DB 03DH |
DD 0C68BH |
DW 0840FH |
DD cfa_DUP2Bque+01D1H-$-4 |
DB 089H,045H,0FCH |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0E4FCH |
DB 081H,0F9H |
DD 0E0D0H |
DW 0840FH |
DD cfa_DUP2Bque+01D1H-$-4 |
DB 03DH |
DD 0C0DDH |
DW 0840FH |
DD cfa_DUP2Bque+01D1H-$-4 |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0F0FFH |
DB 081H,0F9H |
DD 0C0D9H |
DW 0840FH |
DD cfa_DUP2Bque+01D1H-$-4 |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0FAFFH |
DB 081H,0F9H |
DD 0E0D9H |
DW 0840FH |
DD cfa_DUP2Bque+01D1H-$-4 |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0E8FFH |
DB 081H,0F9H |
DD 0E8D9H |
DW 0840FH |
DD cfa_DUP2Bque+01D1H-$-4 |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0F0FFH |
DB 081H,0F9H |
DD 0F0D9H |
DW 0840FH |
DD cfa_DUP2Bque+01D1H-$-4 |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0E8FFH |
DB 081H,0F9H |
DD 020DBH |
;je cfa_DUP2Bque+01D1H |
DB 074H,075H |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0E8FFH |
DB 081H,0F9H |
DD 0DDH |
;je cfa_DUP2Bque+01D1H |
DB 074H,065H |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0F0FFH |
DB 081H,0F9H |
DD 0C0DEH |
;je cfa_DUP2Bque+01D1H |
DB 074H,055H |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0E0FFH |
DB 081H,0F9H |
DD 0E0DEH |
;je cfa_DUP2Bque+01D1H |
DB 074H,045H |
DB 03DH |
DD 0FFH |
;je cfa_DUP2Bque+01D1H |
DB 074H,03EH |
DB 03DH |
DD 0D0F7H |
;je cfa_DUP2Bque+01D1H |
DB 074H,037H |
DB 03DH |
DD 0D1F7H |
;je cfa_DUP2Bque+01D1H |
DB 074H,030H |
DB 03DH |
DD 0D8F7H |
;je cfa_DUP2Bque+01D1H |
DB 074H,029H |
DB 03DH |
DD 0D9F7H |
;je cfa_DUP2Bque+01D1H |
DB 074H,022H |
DB 03DH |
DD 0DAF7H |
;je cfa_DUP2Bque+01D1H |
DB 074H,01BH |
DB 03DH |
DD 0E9F7H |
;je cfa_DUP2Bque+01D1H |
DB 074H,014H |
DB 03DH |
DD 0F1F7H |
;je cfa_DUP2Bque+01D1H |
DB 074H,0DH |
DB 03DH |
DD 0F9F7H |
;je cfa_DUP2Bque+01D1H |
DB 074H,06H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_TRUE+00H |
DB 0C3H |
AHEADER 0 ,'DUP3B?',cfa_DUP3Bque |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0C7FFH |
DB 081H,0F9H |
DD 0C083H |
DW 0840FH |
DD cfa_DUP3Bque+098H-$-4 |
DB 03DH |
DD 0478BH |
DW 0840FH |
DD cfa_DUP3Bque+098H-$-4 |
DB 03DH |
DD 0488BH |
;je cfa_DUP3Bque+098H |
DB 074H,072H |
DB 03DH |
DD 0588BH |
;je cfa_DUP3Bque+098H |
DB 074H,06BH |
DB 03DH |
DD 0508BH |
;je cfa_DUP3Bque+098H |
DB 074H,064H |
DB 03DH |
DD 0788BH |
;je cfa_DUP3Bque+098H |
DB 074H,05DH |
DB 03DH |
DD 0708BH |
;je cfa_DUP3Bque+098H |
DB 074H,056H |
DB 03DH |
DD 0588DH |
;je cfa_DUP3Bque+098H |
DB 074H,04FH |
DB 03DH |
DD 0508DH |
;je cfa_DUP3Bque+098H |
DB 074H,048H |
DB 03DH |
DD 05089H |
;je cfa_DUP3Bque+098H |
DB 074H,041H |
DB 03DH |
DD 05189H |
;je cfa_DUP3Bque+098H |
DB 074H,03AH |
DB 03DH |
DD 07589H |
;je cfa_DUP3Bque+098H |
DB 074H,033H |
DB 089H,045H,0F8H |
DB 03DH |
DD 0F8C1H |
;je cfa_DUP3Bque+098H |
DB 074H,029H |
DB 03DH |
DD 0E0C1H |
;je cfa_DUP3Bque+098H |
DB 074H,022H |
DB 03DH |
DD 0E1C1H |
;je cfa_DUP3Bque+098H |
DB 074H,01BH |
DB 03DH |
DD 0E8C1H |
;je cfa_DUP3Bque+098H |
DB 074H,014H |
DB 03DH |
DD 0408DH |
;je cfa_DUP3Bque+098H |
DB 074H,0DH |
DB 03DH |
DD 0408BH |
;je cfa_DUP3Bque+098H |
DB 074H,06H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_TRUE+00H |
DB 0C3H |
AHEADER 0 ,'DUP3B?[EBP]',cfa_DUP3Bque_xEBP_y |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0E7C4H |
DB 081H,0F9H |
DD 04500H |
;je cfa_DUP3Bque_xEBP_y+059H |
DB 074H,049H |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0E7FDH |
DB 081H,0F9H |
DD 04589H |
;je cfa_DUP3Bque_xEBP_y+059H |
DB 074H,039H |
DB 03DH |
DD 0758BH |
;je cfa_DUP3Bque_xEBP_y+059H |
DB 074H,032H |
DB 08BH,0C8H |
DB 081H,0E1H |
DD 0EFFFH |
DB 081H,0F9H |
DD 06DDBH |
;je cfa_DUP3Bque_xEBP_y+059H |
DB 074H,022H |
DB 03DH |
DD 045DBH |
;je cfa_DUP3Bque_xEBP_y+059H |
DB 074H,01BH |
DB 03DH |
DD 065F7H |
;je cfa_DUP3Bque_xEBP_y+059H |
DB 074H,014H |
DB 03DH |
DD 06DF7H |
;je cfa_DUP3Bque_xEBP_y+059H |
DB 074H,0DH |
DB 03DH |
DD 04587H |
;je cfa_DUP3Bque_xEBP_y+059H |
DB 074H,06H |
call cfa_FALSE+00H |
DB 0C3H |
call cfa_TRUE+00H |
DB 0C3H |
AHEADER 0 ,'ADD|XOR|OR|AND=',cfa_ADDlXORlORlAND_equ |
DB 03DH |
DD 04503H |
;je cfa_ADDlXORlORlAND_equ+028H |
DB 074H,021H |
DB 03DH |
DD 0450BH |
;je cfa_ADDlXORlORlAND_equ+028H |
DB 074H,01AH |
DB 03DH |
DD 04523H |
;je cfa_ADDlXORlORlAND_equ+028H |
DB 074H,013H |
DB 03DH |
DD 04533H |
;je cfa_ADDlXORlORlAND_equ+028H |
DB 074H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALSE+00H |
DB 0C3H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 0C3H |
AHEADER 0 ,'+>OFF-EBP',cfa_plusgreatOFFminusEBP |
call cfa_CgreatS+00H |
call cfa_OFFminusEBP+00H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
call cfa_OFFminusEBP+09H |
DB 0C3H |
AHEADER 0 ,'EVEN-EBP',cfa_EVENminusEBP |
call cfa_OFFminusEBP+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_EVENminusEBP+03BH |
DB 074H,02CH |
call cfa_SetOP+00H |
call cfa_OFFminusEBP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 06D8DH |
DB 08DH,06DH,0FCH |
call cfa_Wcom+00H |
call cfa_Ccom+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_OFFminusEBP+09H |
DB 0C3H |
AHEADER 0 ,'EVEN-EAX',cfa_EVENminusEAX |
call cfa_OFFminusEAX+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_EVENminusEAX+067H |
DB 074H,058H |
call cfa_SetOP+00H |
call cfa_OFFminusEAX+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_SHORTque+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_EVENminusEAX+045H |
DB 074H,017H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0408DH |
DB 08DH,06DH,0FCH |
call cfa_Wcom+00H |
call cfa_Ccom+00H |
DB 0EBH,015H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0808DH |
DB 08DH,06DH,0FCH |
call cfa_Wcom+00H |
call cfa_com+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_OFFminusEAX+09H |
DB 0C3H |
AHEADER 0 ,'SHORT?',cfa_SHORTque |
DB 08DH,080H |
DD 080H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0100H |
DB 039H,045H,0FCH |
DB 01BH,0C0H |
DB 0C3H |
AHEADER 0 ,'?SET',cfa_queSET |
call cfa_DP+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_LASTminusHERE+00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;je cfa_queSET+033H |
DB 074H,016H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_dcomaminusSET+09H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_JminusSET+09H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_OP0+00H |
DB 08BH,00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_queSET+05CH |
DB 076H,011H |
call cfa_OP0+00H |
DB 0C7H,00H |
DD 00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_OP1+00H |
DB 08BH,00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_queSET+085H |
DB 076H,011H |
call cfa_OP1+00H |
DB 0C7H,00H |
DD 00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_JP0+00H |
DB 08BH,00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_queSET+0AEH |
DB 076H,011H |
call cfa_JP0+00H |
DB 0C7H,00H |
DD 00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_JP1+00H |
DB 08BH,00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_queSET+0D1H |
DB 076H,011H |
call cfa_JP1+00H |
DB 0C7H,00H |
DD 00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'SetJP',cfa_SetJP |
call cfa_JP0+00H |
call cfa_JpBuffSize+00H |
DB 03H,045H,00H |
DB 08BH,040H,0FCH |
DB 08DH,06DH,04H |
DB 0BH,0C0H |
;je cfa_SetJP+01CH |
DB 074H,05H |
call cfa_J__ld+00H |
call cfa_JminusSET+00H |
call cfa_UMAX+00H |
call cfa_JminusSET+09H |
call cfa_JP0+00H |
call cfa_JP1+00H |
call cfa_JpBuffSize+00H |
DB 08DH,040H,0FCH |
call cfa_CMOVEgreat+00H |
call cfa_DP+00H |
DB 08BH,00H |
call cfa_JP0+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'J_@',cfa_J__ld |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 025H |
DD 0F0H |
DB 03DH |
DD 070H |
DB 08BH,045H,0FCH |
;jne cfa_J__ld+01FH |
DB 075H,0AH |
call cfa_SJ_ld+00H |
DB 0E9H |
DD cfa_J__ld+0B4H-$-4 |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0EBH |
DB 08BH,045H,0FCH |
;jne cfa_J__ld+039H |
DB 075H,0AH |
call cfa_SJ_ld+00H |
DB 0E9H |
DD cfa_J__ld+0B4H-$-4 |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 03DH |
DD 0E9H |
DB 08BH,045H,0FCH |
;jne cfa_J__ld+05CH |
DB 075H,013H |
DB 08DH,040H,01H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 03H,045H,0FCH |
DB 08DH,040H,04H |
DB 0E9H |
DD cfa_J__ld+0B4H-$-4 |
DB 089H,045H,0FCH |
DB 0FH,0B7H,00H |
DB 025H |
DD 0F0FFH |
DB 03DH |
DD 0800FH |
DB 08BH,045H,0FCH |
;jne cfa_J__ld+087H |
DB 075H,016H |
DB 08DH,040H,01H |
DB 08DH,040H,01H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 03H,045H,0FCH |
DB 08DH,040H,04H |
DB 0E9H |
DD cfa_J__ld+0B4H-$-4 |
call cfa_HEX+00H |
call cfa_Udot+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 08DH,06DH,0FCH |
call cfa__SLITERALminusCODE+00H |
DB 07H |
DB 'J_@ ERR',0 |
call cfa_TYPE+00H |
call cfa_ABORT+00H |
DB 0C3H |
AHEADER 0 ,'SJ@',cfa_SJ_ld |
DB 08DH,040H,01H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_CgreatS+00H |
DB 03H,045H,00H |
DB 08DH,040H,01H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'J@',cfa_J_ld |
DB 08DH,040H,01H |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 03H,045H,0FCH |
DB 08DH,040H,04H |
DB 0C3H |
AHEADER 0 ,'ClearJpBuff',cfa_ClearJpBuff |
call cfa_JP0+00H |
call cfa_JpBuffSize+00H |
call cfa_ERASE+00H |
DB 0C3H |
AHEADER 0 ,'JP4',cfa_JP4 |
call cfa__CONSTANTminusCODE+00H |
DD cfa_JP0+015H |
AHEADER 0 ,'JP3',cfa_JP3 |
call cfa__CONSTANTminusCODE+00H |
DD cfa_JP0+011H |
AHEADER 0 ,'JP2',cfa_JP2 |
call cfa__CONSTANTminusCODE+00H |
DD cfa_JP0+0DH |
AHEADER 0 ,'JP1',cfa_JP1 |
call cfa__CONSTANTminusCODE+00H |
DD cfa_JP0+09H |
AHEADER 0 ,'JP0',cfa_JP0 |
call cfa__CREATEminusCODE+00H |
DD 00H |
DB 00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
AHEADER 0 ,'JpBuffSize',cfa_JpBuffSize |
call cfa__CONSTANTminusCODE+00H |
DD 044H |
AHEADER 0 ,'ToOP0',cfa_ToOP0 |
call cfa_OP0+00H |
call cfa_OpBuffSize+00H |
DB 08DH,040H,0FCH |
call cfa_CMOVE+00H |
DB 0C3H |
AHEADER 0 ,'SetOP',cfa_SetOP |
call cfa_OP0+00H |
call cfa_OP1+00H |
call cfa_OpBuffSize+00H |
DB 08DH,040H,0FCH |
call cfa_CMOVEgreat+00H |
call cfa_DP+00H |
DB 08BH,00H |
call cfa_OP0+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'OP8',cfa_OP8 |
call cfa__CONSTANTminusCODE+00H |
DD cfa_OP0+025H |
AHEADER 0 ,'OP7',cfa_OP7 |
call cfa__CONSTANTminusCODE+00H |
DD cfa_OP0+021H |
AHEADER 0 ,'OP6',cfa_OP6 |
call cfa__CONSTANTminusCODE+00H |
DD cfa_OP0+01DH |
AHEADER 0 ,'OP5',cfa_OP5 |
call cfa__CONSTANTminusCODE+00H |
DD cfa_OP0+019H |
AHEADER 0 ,'OP4',cfa_OP4 |
call cfa__CONSTANTminusCODE+00H |
DD cfa_OP0+015H |
AHEADER 0 ,'OP3',cfa_OP3 |
call cfa__CONSTANTminusCODE+00H |
DD cfa_OP0+011H |
AHEADER 0 ,'OP2',cfa_OP2 |
call cfa__CONSTANTminusCODE+00H |
DD cfa_OP0+0DH |
AHEADER 0 ,'OP1',cfa_OP1 |
call cfa__CONSTANTminusCODE+00H |
DD cfa_OP0+09H |
AHEADER 0 ,'OPLast',cfa_OPLast |
call cfa__CONSTANTminusCODE+00H |
DD cfa_OP0+0111H |
AHEADER 0 ,'OP0',cfa_OP0 |
call cfa__CREATEminusCODE+00H |
DD cfa_OP0+05H |
DB 00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
AHEADER 0 ,'OpBuffSize',cfa_OpBuffSize |
call cfa__CONSTANTminusCODE+00H |
DD 0110H |
AHEADER 0 ,'LAST-HERE',cfa_LASTminusHERE |
call cfa__CONSTANTminusCODE+00H |
DD 00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'J-SET',cfa_JminusSET |
call cfa__CONSTANTminusCODE+00H |
DD 00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,':-SET',cfa_dcomaminusSET |
call cfa__CONSTANTminusCODE+00H |
DD 00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'OFF-EAX',cfa_OFFminusEAX |
call cfa__CONSTANTminusCODE+00H |
DD 00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'OFF-EBP',cfa_OFFminusEBP |
call cfa__CONSTANTminusCODE+00H |
DD 00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'MM_SIZE',cfa_MM_SIZE |
call cfa__CONSTANTminusCODE+00H |
DD 020H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'DIS-OPT',cfa_DISminusOPT |
call cfa_FALSE+00H |
call cfa_OPTque+09H |
DB 0C3H |
AHEADER 0 ,'SET-OPT',cfa_SETminusOPT |
call cfa_TRUE+00H |
call cfa_OPTque+09H |
DB 0C3H |
AHEADER 0 ,'J_COD',cfa_J_COD |
call cfa__CONSTANTminusCODE+00H |
DD 084H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'OPT?',cfa_OPTque |
call cfa__CONSTANTminusCODE+00H |
DD 0FFFFFFFFH |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'REL@',cfa_REL_ld |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 03H,045H,0FCH |
DB 0C3H |
AHEADER 0 ,'RESIZE',cfa__RESIZE |
call cfa_THROW+00H |
call cfa__CLITERALminusCODE+00H |
DB 015H |
DB 'RESIZE is''t in system',0 |
call cfa__cABORTdticcend+00H |
DB 0C3H |
AHEADER 0 ,'FREE',cfa_FREE |
DB 089H,045H,0FCH |
DB 0C7H,045H,0F8H |
DD 05H |
DB 0B8H |
DD 044H |
DB 08BH,04DH,0FCH |
DB 08BH,05DH,0F8H |
DB 0CDH,040H |
DB 033H,0C0H |
DB 0C3H |
AHEADER 0 ,'ALLOCATE',cfa_ALLOCATE |
DB 089H,045H,0FCH |
DB 0C7H,045H,0F8H |
DD 05H |
DB 0B8H |
DD 044H |
DB 08BH,04DH,0FCH |
DB 08BH,05DH,0F8H |
DB 0CDH,040H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
DB 0C3H |
AHEADER 0 ,'USER-HERE',cfa_USERminusHERE |
call cfa_USERminusOFFS+00H |
DB 08BH,00H |
DB 0C3H |
AHEADER 0 ,'USER-ALLOT',cfa_USERminusALLOT |
call cfa_USERminusOFFS+00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'ERR',cfa__ERR |
DB 0C3H |
AHEADER 0 ,'THREAD-HEAP',cfa_THREADminusHEAP |
call cfa__USERminusCODE+00H |
DD reserve+01024H |
AHEADER 0 ,'REPOSITION-FILE',cfa_REPOSITIONminusFILE |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04H |
DB 03H,045H,0FCH |
call cfa_Dsave+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
DB 0C3H |
AHEADER 0 ,'FILE-POSITION',cfa_FILEminusPOSITION |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04H |
DB 03H,045H,0FCH |
DB 08BH,010H |
DB 089H,055H,0FCH |
DB 08BH,040H,04H |
DB 089H,045H,0F8H |
DB 033H,0C0H |
DB 08DH,06DH,0F8H |
DB 0C3H |
AHEADER 0 ,'READ-LINE',cfa_READminusLINE |
DB 089H,045H,0FCH |
DB 050H |
DB 08BH,045H,0FCH |
call cfa_FILEminusPOSITION+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_READminusLINE+01FH |
DB 074H,09H |
DB 0C7H,045H,00H |
DD 00H |
DB 033H,0C0H |
call cfa__fp1+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa__fp2+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,040H,01H |
DB 089H,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,04H |
call cfa__addr+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 089H,045H,04H |
DB 08BH,04H,024H |
DB 08DH,06DH,04H |
call cfa_READminusFILE+00H |
call cfa_queDUP+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_READminusLINE+091H |
DB 074H,01FH |
DB 083H,0C4H,04H |
DB 089H,045H,00H |
DB 0C7H,045H,0FCH |
DD 00H |
DB 033H,0C0H |
DB 08BH,055H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 089H,055H,00H |
DB 08DH,06DH,0FCH |
DB 0C3H |
DB 089H,045H,0FCH |
DB 050H |
DB 083H,07DH,0FCH,00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_READminusLINE+0BEH |
DB 075H,01DH |
DB 083H,0C4H,04H |
DB 083H,0C4H,04H |
DB 089H,045H,0FCH |
DB 0C7H,045H,0F8H |
DD 00H |
DB 0C7H,045H,0F4H |
DD 00H |
DB 033H,0C0H |
DB 08DH,06DH,0F4H |
DB 0C3H |
call cfa__addr+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 08BH,04H,024H |
DB 08DH,06DH,0FCH |
call cfa_LT+00H |
DB 08DH,040H,01H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 08DH,06DH,0FCH |
call cfa_SEARCH+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_READminusLINE+0160H |
DB 074H,070H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa__addr+00H |
DB 08BH,00H |
DB 0F7H,0D8H |
DB 03H,045H,00H |
DB 089H,045H,00H |
DB 08DH,040H,01H |
DB 089H,045H,0FCH |
DB 099H |
DB 08BH,0C2H |
DB 08DH,06DH,0FCH |
call cfa__fp2+00H |
DB 08BH,00H |
call cfa__fp1+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 01H,055H,08H |
DB 013H,045H,04H |
DB 083H,0C4H,04H |
DB 089H,045H,04H |
DB 058H |
DB 08DH,06DH,04H |
call cfa_REPOSITIONminusFILE+00H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
call cfa__addr+00H |
DB 08BH,00H |
DB 03H,045H,00H |
DB 0FH,0B6H,040H,0FFH |
DB 089H,045H,00H |
DB 03DH |
DD 0DH |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_READminusLINE+015EH |
DB 075H,03H |
DB 08DH,040H,0FFH |
DB 0EBH,0DH |
DB 08BH,045H,04H |
DB 089H,045H,04H |
DB 058H |
DB 083H,0C4H,04H |
DB 08DH,06DH,04H |
call cfa_TRUE+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
DB 0C3H |
AHEADER 0 ,'_addr',cfa__addr |
call cfa__USERminusCODE+00H |
DD reserve+01020H |
AHEADER 0 ,'_fp2',cfa__fp2 |
call cfa__USERminusCODE+00H |
DD reserve+0101CH |
AHEADER 0 ,'_fp1',cfa__fp1 |
call cfa__USERminusCODE+00H |
DD reserve+01018H |
AHEADER 0 ,'CLOSE-FILE',cfa_CLOSEminusFILE |
DB 089H,045H,0FCH |
DB 0B8H |
DD 014H |
DB 03H,045H,0FCH |
DB 0C7H,00H |
DD 00H |
DB 033H,0C0H |
DB 0C3H |
AHEADER 0 ,'OPEN-FILE',cfa_OPENminusFILE |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FALLOC+00H |
DB 0BH,0C0H |
;je cfa_OPENminusFILE+051H |
DB 074H,042H |
DB 050H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 08BH,04H,024H |
call cfa_FILE_STR+00H |
call cfa_ERASE+00H |
DB 089H,045H,0FCH |
DB 08BH,04H,024H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 014H |
DB 03H,045H,0F8H |
DB 08BH,055H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,0C2H |
DB 08DH,06DH,0FCH |
call cfa_MOVE+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 089H,045H,0F8H |
DB 033H,0C0H |
DB 08DH,06DH,0F8H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
DB 0C3H |
AHEADER 0 ,'FALLOC',cfa_FALLOC |
call cfa_FILE_STR_BUF+00H |
call cfa_FILE_STR+00H |
call cfa_MAX_OPEN_FILES+00H |
DB 0F7H,06DH,00H |
DB 03H,045H,04H |
DB 08BH,055H,04H |
DB 089H,045H,04H |
DB 08BH,0C2H |
DB 08DH,06DH,04H |
DB 090H |
DB 089H,045H,0F8H |
DB 0B9H |
DD 014H |
DB 03H,04DH,0F8H |
DB 08BH,09H |
DB 0BH,0C9H |
;jne cfa_FALLOC+036H |
DB 075H,04H |
DB 08DH,06DH,04H |
DB 0C3H |
call cfa_FILE_STR+00H |
DB 03H,045H,00H |
DB 03BH,045H,04H |
DB 08DH,06DH,04H |
;jbe cfa_FALLOC+021H |
DB 076H,0DBH |
DB 033H,0C0H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'FILE_STR_BUF',cfa_FILE_STR_BUF |
call cfa__CREATEminusCODE+00H |
DD 00H |
DB 00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H |
AHEADER 0 ,'MAX_OPEN_FILES',cfa_MAX_OPEN_FILES |
call cfa__CONSTANTminusCODE+00H |
DD 016H |
AHEADER 0 ,'READ-FILE',cfa_READminusFILE |
DB 089H,045H,0FCH |
DB 050H |
DB 08BH,045H,0FCH |
DB 0C7H,00H |
DD 00H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 08BH,04H,024H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0CH |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 089H,045H,04H |
DB 08BH,04H,024H |
DB 089H,045H,00H |
DB 0B8H |
DD 010H |
DB 03H,045H,00H |
DB 08BH,055H,04H |
DB 089H,010H |
DB 08BH,045H,08H |
DB 089H,045H,08H |
DB 08BH,04H,024H |
DB 089H,045H,04H |
DB 0B8H |
DD 046H |
DB 08BH,05DH,04H |
DB 0CDH,040H |
DB 089H,045H,04H |
DB 08BH,0C3H |
DB 08BH,055H,04H |
DB 089H,045H,04H |
DB 08BH,0C2H |
DB 089H,055H,00H |
DB 03DH |
DD 06H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_READminusFILE+074H |
DB 075H,02H |
DB 033H,0C0H |
DB 0BH,0C0H |
;jne cfa_READminusFILE+0CBH |
DB 075H,053H |
DB 089H,045H,0FCH |
DB 08BH,04H,024H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 04H |
DB 03H,045H,0F8H |
DB 08BH,010H |
DB 089H,055H,0F8H |
DB 08BH,040H,04H |
DB 089H,045H,0F4H |
DB 08BH,04H,024H |
DB 089H,045H,0F0H |
DB 0B8H |
DD 0CH |
DB 03H,045H,0F0H |
DB 08BH,00H |
DB 089H,045H,0F0H |
DB 033H,0C0H |
DB 08BH,055H,0F0H |
DB 01H,055H,0F8H |
DB 013H,045H,0F4H |
DB 089H,045H,0F4H |
DB 08BH,04H,024H |
DB 089H,045H,0F0H |
DB 0B8H |
DD 04H |
DB 03H,045H,0F0H |
DB 08DH,06DH,0F4H |
call cfa_Dsave+00H |
DB 083H,0C4H,04H |
DB 0C3H |
AHEADER 0 ,'UNIX-LINES',cfa_UNIXminusLINES |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0A0AH |
DB 08DH,06DH,0FCH |
call cfa_LT+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 01H |
DB 08DH,06DH,04H |
call cfa_LTL+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'DOS-LINES',cfa_DOSminusLINES |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0A0DH |
DB 08DH,06DH,0FCH |
call cfa_LT+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 02H |
DB 08DH,06DH,04H |
call cfa_LTL+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'LTL',cfa_LTL |
call cfa__CREATEminusCODE+00H |
DD 02H |
AHEADER 0 ,'LT',cfa_LT |
call cfa__CREATEminusCODE+00H |
DD 0A0D0A0DH |
AHEADER 0 ,'KEY',cfa_KEY |
call cfa__VECTminusCODE+00H |
DD cfa__KEY+00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'KEY?',cfa_KEYque |
call cfa_EVENTminusCASE+00H |
call cfa_DOminusKEYque+00H |
call cfa_and_KEY+00H |
DB 08BH,00H |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 0C3H |
AHEADER 0 ,'DO-KEY?',cfa_DOminusKEYque |
call cfa__VECTminusCODE+00H |
DD cfa_NOOP+00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'PENDING-CHAR',cfa_PENDINGminusCHAR |
call cfa__CREATEminusCODE+00H |
DD 00H |
AHEADER 0 ,'SPACES',cfa_SPACES |
DB 090H |
DB 0BH,0C0H |
DW 0840FH |
DD cfa_SPACES+018H-$-4 |
call cfa_BL+00H |
call cfa_EMIT+00H |
DB 08DH,040H,0FFH |
DB 0EBH,0E9H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'SPACE',cfa_SPACE |
call cfa_BL+00H |
call cfa_EMIT+00H |
DB 0C3H |
AHEADER 0 ,'BL',cfa_BL |
call cfa__CONSTANTminusCODE+00H |
DD 020H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'PAGE',cfa__PAGE |
call cfa_draw_window+00H |
call cfa_SCR_BUF+00H |
call cfa_SCR_WIDTH+00H |
call cfa_SCR_HEIGHT+00H |
DB 0F7H,06DH,00H |
DB 08DH,06DH,04H |
call cfa_BLANK+00H |
DB 089H,045H,0FCH |
DB 0C7H,045H,0F8H |
DD 00H |
DB 033H,0C0H |
DB 08DH,06DH,0F8H |
call cfa_ATminusXY+00H |
call cfa_DRAW_LINS+00H |
DB 0C3H |
AHEADER 0 ,'_KEY',cfa__KEY |
call cfa_CORSOR_DROW+00H |
call cfa_KEYque+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa__KEY+05H |
DB 074H,0F1H |
call cfa_and_KEY+00H |
DB 0FH,0B6H,00H |
call cfa_and_KEY+00H |
DB 0C7H,00H |
DD 00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_SWITCH_CHAR+00H |
DB 0C3H |
AHEADER 0 ,'KEY_M',cfa_KEY_M |
call cfa_DR_CUR+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_queKEY+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_KEY_M+05H |
DB 074H,0E9H |
call cfa_CL_CUR+00H |
call cfa_SWITCH_CHAR+00H |
DB 0C3H |
AHEADER 0 ,'SWITCH_CHAR',cfa_SWITCH_CHAR |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0C7H,045H,0F4H |
DD 061H |
DB 0B8H |
DD 07AH |
DB 08DH,040H,01H |
DB 08DH,06DH,0F4H |
call cfa_WITHIN+00H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 089H,045H,0F8H |
DB 0C7H,045H,0F4H |
DD 041H |
DB 0B8H |
DD 05AH |
DB 08DH,040H,01H |
DB 08DH,06DH,0F4H |
call cfa_WITHIN+00H |
DB 0BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;je cfa_SWITCH_CHAR+053H |
DB 074H,0BH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 020H |
DB 033H,045H,0FCH |
DB 0C3H |
AHEADER 0 ,'_EMIT',cfa__EMIT |
DB 03DH |
DD 0DH |
;jne cfa__EMIT+013H |
DB 075H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_SCR_CR+00H |
DB 0C3H |
DB 03DH |
DD 08H |
;jne cfa__EMIT+08EH |
DB 075H,074H |
DB 0B8H |
DD 0800000H |
call cfa_and_ATminusXY+00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0DH |
DB 0F7H,06DH,0FCH |
DB 08DH,040H,015H |
DB 0C1H,0E0H,010H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0BH |
DB 0BH,045H,0FCH |
call cfa_and_ATminusXY+00H |
DB 0FH,0B7H,040H,02H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 06H |
DB 0F7H,06DH,0FCH |
DB 0C1H,0E0H,010H |
DB 0DH |
DD 06H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0DH |
DB 08BH,055H,04H |
DB 08BH,04DH,00H |
DB 08BH,05DH,0FCH |
DB 0CDH,040H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
call cfa_ATminusXYque+00H |
DB 050H |
DB 08BH,045H,00H |
DB 08DH,040H,0FFH |
DB 089H,045H,00H |
DB 058H |
call cfa_ATminusXY+00H |
DB 0C3H |
DB 050H |
DB 08BH,045H,00H |
DB 08BH,0C4H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 08DH,06DH,0FCH |
call cfa__TYPE+00H |
DB 083H,0C4H,04H |
DB 0C3H |
AHEADER 0 ,'CR',cfa_CR |
call cfa__VECTminusCODE+00H |
DD cfa__CR+00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'_CR',cfa__CR |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0DH |
DB 08DH,06DH,0FCH |
call cfa_EMIT+00H |
DB 0C3H |
AHEADER 0 ,'_TYPE',cfa__TYPE |
DB 08BH,055H,00H |
DB 089H,045H,0FCH |
DB 089H,055H,0F8H |
DB 08DH,06DH,0F8H |
call cfa_SCR_BUF+00H |
call cfa_ATminusXYque+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 050H |
DB 0F7H,06DH,0FCH |
DB 03H,045H,00H |
DB 03H,045H,04H |
DB 08BH,055H,08H |
DB 089H,045H,08H |
DB 08BH,0C2H |
DB 08DH,06DH,08H |
call cfa_CMOVE+00H |
call cfa_SCR_TYPE+00H |
DB 0C3H |
AHEADER 0 ,'TYPE_M',cfa_TYPE_M |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 08BH,055H,00H |
DB 02BH,0D0H |
DW 0840FH |
DD cfa_TYPE_M+02FH-$-4 |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_EMIT_N+00H |
DB 08DH,040H,01H |
DB 0EBH,0E2H |
call cfa_CC_LINES+00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'ACCEPT',cfa_ACCEPT |
call cfa__VECTminusCODE+00H |
DD cfa_ACCEPT0+00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'ACCEPT0',cfa_ACCEPT0 |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 03H,045H,0FCH |
DB 08DH,040H,0FFH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08DH,06DH,0FCH |
call cfa_NMNM+00H |
DB 090H |
DB 090H |
DB 090H |
call cfa_KEY+00H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0AH |
DB 033H,045H,0F8H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 089H,045H,0F4H |
DB 0B8H |
DD 0DH |
DB 033H,045H,0F4H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 0BH,045H,0F8H |
DB 08BH,045H,0FCH |
DW 0850FH |
DD cfa_ACCEPT0+0142H-$-4 |
DB 03DH |
DD 01BH |
;jne cfa_ACCEPT0+071H |
DB 075H,013H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 0FH,0B6H,00H |
call cfa_EMIT+00H |
DB 0E9H |
DD cfa_ACCEPT0+012CH-$-4 |
DB 03DH |
DD 08H |
;jne cfa_ACCEPT0+0B5H |
DB 075H,03DH |
call cfa_EMIT+00H |
call cfa_BL+00H |
call cfa_EMIT+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08H |
DB 08DH,06DH,0FCH |
call cfa_EMIT+00H |
DB 08DH,040H,0FEH |
DB 050H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,040H,0FFH |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,06DH,0FCH |
call cfa_UMAX+00H |
DB 0EBH,077H |
DB 03DH |
DD 09H |
;jne cfa_ACCEPT0+0110H |
DB 075H,054H |
DB 08BH,045H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08H |
DB 08DH,06DH,0FCH |
call cfa_BLANK+00H |
DB 050H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 08BH,045H,04H |
DB 089H,045H,0FCH |
DB 058H |
DB 08BH,055H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,0C2H |
DB 08BH,04DH,0FCH |
DB 0F7H,0D9H |
DB 08DH,04H,01H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 08H |
DB 08BH,0C8H |
DB 08BH,045H,0F8H |
DB 099H |
DB 0F7H,0F9H |
DB 08DH,040H,01H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 08H |
DB 0F7H,06DH,0F8H |
DB 03H,045H,0FCH |
DB 0EBH,01CH |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_EMIT+00H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 08DH,040H,01H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08DH,06DH,0FCH |
call cfa_UMIN+00H |
DB 0E9H |
DD cfa_ACCEPT0+01DH-$-4 |
DB 08BH,045H,00H |
DB 0F7H,0D8H |
DB 03H,045H,08H |
DB 0F7H,0D8H |
DB 08DH,06DH,0CH |
DB 0C3H |
AHEADER 0 ,'NMNM',cfa_NMNM |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 0BH,0C0H |
DB 08BH,045H,0FCH |
;je cfa_NMNM+0CH |
DB 074H,00H |
DB 0C3H |
AHEADER 0 ,'SOURCE-NAME',cfa_SOURCEminusNAME |
call cfa_CURFILE+00H |
DB 08BH,00H |
DB 0BH,0C0H |
;je cfa_SOURCEminusNAME+012H |
DB 074H,07H |
call cfa_ASCIIZgreat+00H |
DB 0EBH,08H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
DB 0C3H |
AHEADER 0 ,'+LibraryDirName',cfa_plusLibraryDirName |
call cfa__2greatR+00H |
call cfa_ModuleDirName+00H |
DB 08BH,055H,00H |
DB 089H,045H,0FCH |
DB 089H,055H,0F8H |
DB 03H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa__SLITERALminusCODE+00H |
DB 06H |
DB 'devel\',0 |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,045H,04H |
DB 089H,055H,04H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
call cfa_MOVE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 06H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,045H,0FCH |
DB 089H,055H,0F8H |
DB 03H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa__2Rgreat+00H |
DB 089H,045H,0FCH |
DB 050H |
DB 08BH,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,045H,04H |
DB 089H,055H,04H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 08DH,040H,01H |
call cfa_MOVE+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 03H,045H,0FCH |
DB 0C3H |
AHEADER 0 ,'+ModuleDirName',cfa_plusModuleDirName |
call cfa__2greatR+00H |
call cfa_ModuleDirName+00H |
DB 08BH,055H,00H |
DB 089H,045H,0FCH |
DB 089H,055H,0F8H |
DB 03H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa__2Rgreat+00H |
DB 089H,045H,0FCH |
DB 050H |
DB 08BH,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,045H,04H |
DB 089H,055H,04H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 08DH,040H,01H |
call cfa_MOVE+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 03H,045H,0FCH |
DB 0C3H |
AHEADER 0 ,'ModuleDirName',cfa_ModuleDirName |
call cfa_ModuleName+00H |
call cfa_CUTminusPATH+00H |
DB 0C3H |
AHEADER 0 ,'ModuleName',cfa_ModuleName |
call cfa_ABORT+00H |
DB 0C3H |
AHEADER 0 ,'CUT-PATH',cfa_CUTminusPATH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,045H,0FCH |
DB 089H,055H,0F8H |
DB 033H,045H,0F8H |
DB 08BH,045H,0FCH |
DW 0840FH |
DD cfa_CUTminusPATH+042H-$-4 |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_is_path_delimiter+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_CUTminusPATH+03FH-$-4 |
DB 08DH,040H,0FFH |
DB 0EBH,0CAH |
DB 08DH,040H,01H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 0F7H,0D8H |
DB 03H,045H,0FCH |
DB 0C3H |
AHEADER 0 ,'is_path_delimiter',cfa_is_path_delimiter |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0B8H |
DD 05CH |
DB 033H,045H,0F8H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 08BH,055H,0FCH |
DB 089H,045H,0FCH |
DB 089H,055H,0F8H |
DB 0B8H |
DD 02FH |
DB 033H,045H,0F8H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 0BH,045H,0FCH |
DB 0C3H |
AHEADER 0 ,'SCREEN-LENGTH',cfa_SCREENminusLENGTH |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,045H,0FCH |
DB 089H,055H,0FCH |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 03H,045H,0F8H |
DB 08BH,055H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,0C2H |
DB 08DH,06DH,04H |
DB 0BBH |
DD cfa_SCREENminusLENGTH+07EH |
DB 03BH,045H,0F8H |
;jne cfa_SCREENminusLENGTH+034H |
DB 075H,05H |
DB 08BH,045H,0FCH |
DB 0FFH,0E3H |
DB 053H |
DB 0BBH |
DD 080000000H |
DB 02BH,05DH,0F8H |
DB 053H |
DB 03H,0D8H |
DB 053H |
DB 08BH,045H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,04H,024H |
DB 02BH,044H,024H,04H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 09H |
DB 08BH,045H,0FCH |
;jne cfa_SCREENminusLENGTH+072H |
DB 075H,017H |
DB 0C1H,0E8H,03H |
DB 08DH,040H,01H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 08BH,0C8H |
DB 08BH,045H,0FCH |
DB 0D3H,0E0H |
DB 0EBH,03H |
DB 08DH,040H,01H |
DB 0FFH,04H,024H |
;jno cfa_SCREENminusLENGTH+044H |
DB 071H,0CAH |
DB 08DH,064H,024H,0CH |
DB 0C3H |
AHEADER 0 ,'>NUMBER',cfa_greatNUMBER |
DB 090H |
DB 0BH,0C0H |
DW 0840FH |
DD cfa_greatNUMBER+090H-$-4 |
DB 050H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 050H |
DB 08BH,045H,00H |
DB 0FH,0B6H,00H |
DB 08DH,06DH,04H |
call cfa_BASE+00H |
DB 08BH,00H |
call cfa_DIGIT+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_greatNUMBER+03CH |
DB 075H,0CH |
DB 089H,045H,0FCH |
DB 058H |
DB 089H,045H,0F8H |
DB 058H |
DB 08DH,06DH,0F8H |
DB 0C3H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
call cfa_BASE+00H |
DB 08BH,00H |
DB 0F7H,065H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 08BH,045H,00H |
DB 08BH,055H,04H |
DB 089H,045H,04H |
DB 08BH,045H,08H |
DB 089H,055H,08H |
DB 08DH,06DH,04H |
call cfa_BASE+00H |
DB 08BH,00H |
DB 0F7H,065H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 08BH,055H,00H |
DB 01H,055H,08H |
DB 013H,045H,04H |
DB 089H,045H,04H |
DB 058H |
DB 08DH,040H,01H |
DB 089H,045H,00H |
DB 058H |
DB 08DH,040H,0FFH |
DB 0E9H |
DD cfa_greatNUMBER+01H-$-4 |
DB 0C3H |
AHEADER 0 ,'DIGIT',cfa_DIGIT |
DB 050H |
DB 0B8H |
DD 030H |
DB 0F7H,0D8H |
DB 03H,045H,00H |
DB 089H,045H,00H |
DB 0B8H |
DD 0AH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 03BH,045H,0FCH |
DB 08DH,06DH,04H |
;jbe cfa_DIGIT+09AH |
DB 076H,079H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0C7H,045H,0F4H |
DD 041H |
DB 0B8H |
DD 030H |
DB 0F7H,0D8H |
DB 03H,045H,0F4H |
DB 03BH,045H,0F8H |
DB 08BH,045H,0FCH |
;jle cfa_DIGIT+046H |
DB 07EH,06H |
DB 083H,0C4H,04H |
DB 033H,0C0H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0C7H,045H,0F4H |
DD 061H |
DB 0B8H |
DD 030H |
DB 0F7H,0D8H |
DB 03H,045H,0F4H |
DB 08DH,040H,0FFH |
DB 03BH,045H,0F8H |
DB 08BH,045H,0FCH |
;jge cfa_DIGIT+081H |
DB 07DH,019H |
DB 089H,045H,0FCH |
DB 0C7H,045H,0F8H |
DD 061H |
DB 0B8H |
DD 041H |
DB 0F7H,0D8H |
DB 03H,045H,0F8H |
DB 0F7H,0D8H |
DB 03H,045H,0FCH |
DB 089H,045H,0FCH |
DB 0C7H,045H,0F8H |
DD 011H |
DB 0B8H |
DD 0AH |
DB 0F7H,0D8H |
DB 03H,045H,0F8H |
DB 0F7H,0D8H |
DB 03H,045H,0FCH |
DB 089H,045H,0FCH |
DB 058H |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 03BH,045H,0F8H |
DB 01BH,0C0H |
DB 08DH,06DH,0FCH |
DB 0BH,0C0H |
;jne cfa_DIGIT+0B3H |
DB 075H,03H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'(.")',cfa__cdotdticcend |
DB 08DH,050H,01H |
DB 089H,055H,0FCH |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_TYPE+00H |
DB 0C3H |
AHEADER 0 ,'DUMP',cfa_DUMP |
DB 0BH,0C0H |
;jne cfa_DUMP+0BH |
DB 075H,07H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
call cfa_BASE+00H |
DB 08BH,00H |
DB 050H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_HEX+00H |
DB 08DH,040H,0FH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 010H |
DB 08BH,0C8H |
DB 08BH,045H,0FCH |
DB 033H,0D2H |
DB 0F7H,0F1H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 0BAH |
DD 080000000H |
DB 02BH,055H,0FCH |
DB 08DH,01CH,02H |
DB 08BH,045H,00H |
DB 08BH,0D2H |
DB 08DH,06DH,04H |
DB 068H |
DD cfa_DUMP+010FH |
DB 052H |
DB 053H |
call cfa_CR+00H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0B8H |
DD 04H |
DB 08DH,06DH,0F8H |
call cfa_dot0+00H |
call cfa_SPACE+00H |
call cfa_SPACE+00H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0C7H,045H,0F4H |
DD 010H |
DB 033H,0C0H |
DB 0BAH |
DD 080000000H |
DB 02BH,055H,0F4H |
DB 08DH,01CH,02H |
DB 08BH,045H,0F8H |
DB 08BH,0D2H |
DB 08DH,06DH,0FCH |
DB 068H |
DD cfa_DUMP+0ECH |
DB 052H |
DB 053H |
DB 090H |
DB 089H,045H,0FCH |
DB 08BH,04H,024H |
DB 02BH,044H,024H,04H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 04H |
DB 08BH,0C8H |
DB 08BH,045H,0F8H |
DB 099H |
DB 0F7H,0F9H |
DB 08BH,0C2H |
DB 0BH,0C0H |
DB 08BH,045H,0FCH |
;jne cfa_DUMP+0C5H |
DB 075H,05H |
call cfa_SPACE+00H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 02H |
DB 08DH,06DH,0F8H |
call cfa_dot0+00H |
call cfa_SPACE+00H |
DB 08DH,040H,01H |
DB 0FFH,04H,024H |
;jno cfa_DUMP+09DH |
DB 071H,0B5H |
DB 08DH,064H,024H,0CH |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 089H,055H,0FCH |
DB 0B8H |
DD 010H |
DB 08DH,06DH,0FCH |
call cfa_PTYPE+00H |
DB 0FFH,04H,024H |
DW 0810FH |
DD cfa_DUMP+051H-$-4 |
DB 08DH,064H,024H,0CH |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 058H |
call cfa_BASE+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'PTYPE',cfa_PTYPE |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 0BAH |
DD 080000000H |
DB 02BH,055H,0FCH |
DB 08DH,01CH,02H |
DB 08BH,045H,00H |
DB 08BH,0D2H |
DB 08DH,06DH,04H |
DB 068H |
DD cfa_PTYPE+040H |
DB 052H |
DB 053H |
DB 090H |
DB 090H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_greatPRT+00H |
call cfa_EMIT+00H |
DB 08DH,040H,01H |
DB 0FFH,04H,024H |
;jno cfa_PTYPE+021H |
DB 071H,0E5H |
DB 08DH,064H,024H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'>PRT',cfa_greatPRT |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_BL+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_greatPRT+01BH |
DB 076H,05H |
DB 0B8H |
DD 02EH |
DB 0C3H |
AHEADER 0 ,'.0',cfa_dot0 |
DB 050H |
DB 033H,0C0H |
call cfa_lessn+00H |
call cfa_nS+00H |
call cfa_ngreat+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 08BH,04DH,0FCH |
DB 0F7H,0D9H |
DB 08DH,04H,01H |
DB 089H,045H,0F8H |
DB 033H,0C0H |
DB 08DH,06DH,0F8H |
call cfa_MAX+00H |
DB 0BH,0C0H |
DW 0840FH |
DD cfa_dot0+070H-$-4 |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 0BAH |
DD 080000000H |
DB 02BH,055H,0FCH |
DB 08DH,01CH,02H |
DB 08BH,045H,00H |
DB 08BH,0D2H |
DB 08DH,06DH,04H |
DB 068H |
DD cfa_dot0+06EH |
DB 052H |
DB 053H |
DB 090H |
DB 090H |
DB 090H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 030H |
DB 08DH,06DH,0FCH |
call cfa_EMIT+00H |
DB 0FFH,04H,024H |
;jno cfa_dot0+055H |
DB 071H,0EBH |
DB 08DH,064H,024H,0CH |
DB 0EBH,06H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_TYPE+00H |
DB 0C3H |
AHEADER 0 ,'U.',cfa_Udot |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_Ddot+00H |
DB 0C3H |
AHEADER 0 ,'U.R',cfa_UdotR |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08BH,055H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,0C2H |
DB 08DH,06DH,0FCH |
call cfa_DdotR+00H |
DB 0C3H |
AHEADER 0 ,'.R',cfa_dotR |
DB 050H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 099H |
DB 08BH,0C2H |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,06DH,0FCH |
call cfa_DdotR+00H |
DB 0C3H |
AHEADER 0 ,'D.R',cfa_DdotR |
DB 050H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa__cDdotcend+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 0F7H,0D8H |
DB 03H,045H,0F8H |
DB 08DH,06DH,0FCH |
call cfa__0MAX+00H |
call cfa_SPACES+00H |
call cfa_TYPE+00H |
DB 0C3H |
AHEADER 0 ,'.',cfa_dot |
DB 089H,045H,0FCH |
DB 099H |
DB 08BH,0C2H |
DB 08DH,06DH,0FCH |
call cfa_Ddot+00H |
DB 0C3H |
AHEADER 0 ,'D.',cfa_Ddot |
call cfa__cDdotcend+00H |
call cfa_TYPE+00H |
call cfa_SPACE+00H |
DB 0C3H |
AHEADER 0 ,'(D.)',cfa__cDdotcend |
DB 089H,045H,0FCH |
DB 050H |
DB 08BH,045H,0FCH |
call cfa_DABS+00H |
call cfa_lessn+00H |
call cfa_nS+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,06DH,0FCH |
call cfa_SIGN+00H |
call cfa_ngreat+00H |
DB 0C3H |
AHEADER 0 ,'SIGN',cfa_SIGN |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jge cfa_SIGN+01AH |
DB 07DH,010H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02DH |
DB 08DH,06DH,0FCH |
call cfa_HOLD+00H |
DB 0C3H |
AHEADER 0 ,'#>',cfa_ngreat |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_HLD+00H |
DB 08BH,00H |
call cfa_PAD+00H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 0F7H,0D8H |
DB 03H,045H,0FCH |
DB 08DH,040H,0FFH |
DB 0C3H |
AHEADER 0 ,'#S',cfa_nS |
DB 090H |
call cfa_n+00H |
DB 08BH,055H,00H |
DB 0BH,0D0H |
;jne cfa_nS+01H |
DB 075H,0F4H |
DB 0C3H |
AHEADER 0 ,'#',cfa_n |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_BASE+00H |
DB 08BH,00H |
call cfa_UM_divMOD+00H |
DB 050H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_BASE+00H |
DB 08BH,00H |
call cfa_UM_divMOD+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 08BH,055H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 089H,055H,00H |
DB 08DH,06DH,0FCH |
call cfa_DIGITgreat+00H |
call cfa_HOLD+00H |
DB 0C3H |
AHEADER 0 ,'DIGIT>',cfa_DIGITgreat |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0B8H |
DD 0AH |
DB 03BH,045H,0F8H |
DB 08BH,045H,0FCH |
;jg cfa_DIGITgreat+01EH |
DB 07FH,0BH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 07H |
DB 03H,045H,0FCH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 030H |
DB 03H,045H,0FCH |
DB 0C3H |
AHEADER 0 ,'<#',cfa_lessn |
call cfa_PAD+00H |
DB 08DH,040H,0FFH |
call cfa_HLD+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 033H,0C0H |
DB 08DH,06DH,04H |
call cfa_PAD+00H |
DB 08DH,040H,0FFH |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'HOLDS',cfa_HOLDS |
DB 08BH,055H,00H |
DB 089H,055H,0FCH |
DB 089H,045H,00H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 089H,055H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,04H |
DB 0BBH |
DD cfa_HOLDS+062H |
DB 03BH,045H,0F8H |
;jne cfa_HOLDS+029H |
DB 075H,05H |
DB 08BH,045H,0FCH |
DB 0FFH,0E3H |
DB 053H |
DB 0BBH |
DD 080000000H |
DB 02BH,05DH,0F8H |
DB 053H |
DB 03H,0D8H |
DB 053H |
DB 08BH,045H,0FCH |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 08BH,04H,024H |
DB 02BH,044H,024H,04H |
DB 0F7H,0D8H |
DB 03H,045H,0F8H |
DB 08DH,040H,0FFH |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_HOLD+00H |
DB 0FFH,04H,024H |
;jno cfa_HOLDS+039H |
DB 071H,0DBH |
DB 08DH,064H,024H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'HOLD',cfa_HOLD |
call cfa_HLD+00H |
DB 08BH,00H |
DB 08DH,040H,0FFH |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_HLD+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08BH,055H,08H |
DB 088H,010H |
DB 08BH,045H,0CH |
DB 08DH,06DH,010H |
DB 0C3H |
AHEADER 0 ,'DECIMAL',cfa_DECIMAL |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0AH |
DB 08DH,06DH,0FCH |
call cfa_BASE+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'HEX',cfa_HEX |
DB 089H,045H,0FCH |
DB 0B8H |
DD 010H |
DB 08DH,06DH,0FCH |
call cfa_BASE+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'SYSTEM-PAD',cfa_SYSTEMminusPAD |
call cfa__USERminusCODE+00H |
DD reserve+018H |
AHEADER 0 ,'NUMERIC-OUTPUT-LENGTH',cfa_NUMERICminusOUTPUTminusLENGTH |
call cfa__CONSTANTminusCODE+00H |
DD 01000H |
AHEADER 0 ,'ABORT',cfa_ABORT |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_THROW+00H |
DB 0C3H |
AHEADER 0 ,'CATCH',cfa_CATCH |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08BH,0C5H |
DB 050H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_HANDLER+00H |
DB 08BH,00H |
DB 050H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 08BH,0C4H |
call cfa_HANDLER+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_EXECUTE+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,06DH,0FCH |
call cfa_HANDLER+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 083H,0C4H,04H |
DB 089H,045H,04H |
DB 033H,0C0H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'<SET-EXC-HANDLER>',cfa_lessSETminusEXCminusHANDLERgreat |
call cfa__VECTminusCODE+00H |
DD cfa_NOOP+00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'THROW',cfa_THROW |
call cfa_queDUP+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_THROW+061H |
DB 074H,052H |
call cfa_HANDLER+00H |
DB 08BH,00H |
call cfa_queDUP+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_THROW+05CH |
DB 074H,037H |
DB 08BH,0E0H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 058H |
call cfa_HANDLER+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 089H,045H,04H |
DB 058H |
DB 08BH,055H,04H |
DB 089H,045H,04H |
DB 08BH,0C2H |
DB 050H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_SPsave+00H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 058H |
DB 0EBH,05H |
call cfa_FATALminusHANDLER+00H |
DB 0C3H |
AHEADER 0 ,'(THROW)',cfa__cTHROWcend |
DB 0BH,0C0H |
;je cfa__cTHROWcend+05FH |
DB 074H,05BH |
DB 03DH |
DD 06DH |
;jne cfa__cTHROWcend+012H |
DB 075H,07H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
call cfa_HANDLER+00H |
DB 08BH,00H |
DB 0BH,0C0H |
;je cfa__cTHROWcend+054H |
DB 074H,037H |
DB 08BH,0E0H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 058H |
call cfa_HANDLER+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 089H,045H,04H |
DB 058H |
DB 08BH,055H,04H |
DB 089H,045H,04H |
DB 08BH,0C2H |
DB 050H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_SPsave+00H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 058H |
DB 0EBH,0BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FATALminusHANDLER+00H |
DB 0C3H |
AHEADER 0 ,'FATAL-HANDLER',cfa_FATALminusHANDLER |
call cfa__VECTminusCODE+00H |
DD cfa_NOOP+00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 1 ,'Z\"',cfa_Zsldtic |
DB 089H,045H,0FCH |
DB 0B8H |
DD 022H |
DB 08DH,06DH,0FCH |
call cfa_PARSE+00H |
call cfa_ZslLITERAL+00H |
DB 0C3H |
AHEADER 1 ,'Z"',cfa_Zdtic |
DB 089H,045H,0FCH |
DB 0B8H |
DD 022H |
DB 08DH,06DH,0FCH |
call cfa_PARSE+00H |
call cfa_ZLITERAL+00H |
DB 0C3H |
AHEADER 1 ,'ZLITERAL',cfa_ZLITERAL |
call cfa_STATE+00H |
DB 08BH,00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_ZLITERAL+058H |
DB 074H,047H |
DB 089H,045H,0FCH |
DB 0B8H |
DD cfa_ALITERAL+00H |
DB 08DH,06DH,0FCH |
call cfa_COMPILEcom_M+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_HERE+00H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_MOVE+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
DB 0EBH,026H |
DB 089H,045H,0FCH |
DB 08DH,040H,01H |
DB 08DH,06DH,0FCH |
call cfa_ALLOCATE+00H |
call cfa_THROW+00H |
DB 089H,045H,0FCH |
DB 050H |
DB 08BH,045H,0FCH |
call cfa_CZMOVE+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,06DH,0FCH |
DB 0C3H |
AHEADER 1 ,'Z\LITERAL',cfa_ZslLITERAL |
call cfa_STATE+00H |
DB 08BH,00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_ZslLITERAL+065H |
DB 074H,054H |
DB 089H,045H,0FCH |
DB 0B8H |
DD cfa_ALITERAL+00H |
DB 08DH,06DH,0FCH |
call cfa_COMPILEcom_M+00H |
call cfa_HERE+00H |
DB 08DH,040H,01H |
DB 089H,045H,0FCH |
DB 050H |
DB 08BH,045H,0FCH |
call cfa_ESCminusCZMOVE+00H |
DB 089H,045H,0FCH |
DB 08BH,04H,024H |
DB 08DH,06DH,0FCH |
call cfa_ASCIIZgreat+00H |
DB 08DH,040H,02H |
DB 089H,045H,00H |
call cfa_ALLOT+00H |
DB 08DH,040H,0FEH |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,040H,0FFH |
DB 08BH,055H,0FCH |
DB 088H,010H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0EBH,026H |
DB 089H,045H,0FCH |
DB 08DH,040H,01H |
DB 08DH,06DH,0FCH |
call cfa_ALLOCATE+00H |
call cfa_THROW+00H |
DB 089H,045H,0FCH |
DB 050H |
DB 08BH,045H,0FCH |
call cfa_ESCminusCZMOVE+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,06DH,0FCH |
DB 0C3H |
AHEADER 0 ,'ESC-CZMOVE',cfa_ESCminusCZMOVE |
call cfa_toadr+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_counter+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_fromadr+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 090H |
call cfa_zchar+00H |
DB 03DH |
DD 05CH |
;jne cfa_ESCminusCZMOVE+04DH |
DB 075H,010H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_zchar+00H |
call cfa_escape+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_cgreat+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_ESCminusCZMOVE+031H |
DB 075H,0CFH |
DB 0C3H |
AHEADER 0 ,'escape',cfa_escape |
DB 03DH |
DD 06EH |
;jne cfa_escape+011H |
DB 075H,0AH |
DB 0B8H |
DD 0AH |
DB 0E9H |
DD cfa_escape+011AH-$-4 |
DB 03DH |
DD 072H |
;jne cfa_escape+022H |
DB 075H,0AH |
DB 0B8H |
DD 0DH |
DB 0E9H |
DD cfa_escape+011AH-$-4 |
DB 03DH |
DD 074H |
;jne cfa_escape+033H |
DB 075H,0AH |
DB 0B8H |
DD 09H |
DB 0E9H |
DD cfa_escape+011AH-$-4 |
DB 03DH |
DD 062H |
;jne cfa_escape+044H |
DB 075H,0AH |
DB 0B8H |
DD 08H |
DB 0E9H |
DD cfa_escape+011AH-$-4 |
DB 03DH |
DD 071H |
;jne cfa_escape+055H |
DB 075H,0AH |
DB 0B8H |
DD 022H |
DB 0E9H |
DD cfa_escape+011AH-$-4 |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0B8H |
DD 02FH |
DB 089H,045H,0F4H |
DB 08BH,045H,0F8H |
DB 039H,045H,0F4H |
DB 0FH,09DH,0C0H |
DB 083H,0E0H,01H |
DB 048H |
DB 08BH,055H,0F8H |
DB 089H,045H,0F8H |
DB 089H,055H,0F4H |
DB 0B8H |
DD 03AH |
DB 039H,045H,0F4H |
DB 0FH,09DH,0C0H |
DB 083H,0E0H,01H |
DB 048H |
DB 023H,045H,0F8H |
DB 08BH,045H,0FCH |
DW 0840FH |
DD cfa_escape+011AH-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 030H |
DB 0F7H,0D8H |
DB 03H,045H,0FCH |
call cfa_zchar+00H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0B8H |
DD 02FH |
DB 089H,045H,0F4H |
DB 08BH,045H,0F8H |
DB 039H,045H,0F4H |
DB 0FH,09DH,0C0H |
DB 083H,0E0H,01H |
DB 048H |
DB 08BH,055H,0F8H |
DB 089H,045H,0F8H |
DB 089H,055H,0F4H |
DB 0B8H |
DD 03AH |
DB 039H,045H,0F4H |
DB 0FH,09DH,0C0H |
DB 083H,0E0H,01H |
DB 048H |
DB 023H,045H,0F8H |
DB 08BH,045H,0FCH |
DW 0840FH |
DD cfa_escape+010BH-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 030H |
DB 0F7H,0D8H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 089H,055H,0FCH |
DB 0B8H |
DD 0AH |
DB 0F7H,06DH,0FCH |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0EBH,096H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_escape+011AH |
DB 074H,05H |
call cfa_unchar+00H |
DB 0C3H |
AHEADER 0 ,'c>',cfa_cgreat |
call cfa_toadr+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_toadr+00H |
DB 0FFH,00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'unchar',cfa_unchar |
call cfa_counter+00H |
DB 0FFH,00H |
DB 0B8H |
DD 0FFFFFFFFH |
call cfa_fromadr+00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'zchar',cfa_zchar |
call cfa_counter+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 03BH,045H,0FCH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jle cfa_zchar+024H |
DB 07EH,0AH |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
DB 0EBH,032H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_counter+00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_fromadr+00H |
DB 08BH,00H |
DB 0FH,0B6H,00H |
call cfa_fromadr+00H |
DB 0FFH,00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'counter',cfa_counter |
call cfa__USERminusCODE+00H |
DD reserve+014H |
AHEADER 0 ,'fromadr',cfa_fromadr |
call cfa__USERminusCODE+00H |
DD reserve+010H |
AHEADER 0 ,'toadr',cfa_toadr |
call cfa__USERminusCODE+00H |
DD reserve+0CH |
AHEADER 0 ,'ALITERAL',cfa_ALITERAL |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,050H,01H |
DB 089H,055H,0F8H |
DB 0FH,0B6H,00H |
DB 089H,045H,0F4H |
DB 08BH,045H,0F8H |
DB 03H,045H,0F4H |
DB 08DH,040H,01H |
DB 050H |
DB 08BH,045H,0F8H |
DB 08DH,06DH,0FCH |
DB 0C3H |
AHEADER 0 ,'CZMOVE',cfa_CZMOVE |
DB 08BH,055H,00H |
DB 089H,045H,0FCH |
DB 089H,055H,0F8H |
DB 03H,045H,0F8H |
DB 050H |
DB 08BH,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
call cfa_CMOVE+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 089H,045H,0F8H |
DB 033H,0C0H |
DB 08BH,055H,0F8H |
DB 089H,045H,0F8H |
DB 08BH,0C2H |
DB 08BH,055H,0F8H |
DB 088H,010H |
DB 08BH,045H,0FCH |
DB 0C3H |
AHEADER 0 ,'W,',cfa_Wcom |
call cfa_DP+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02H |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_Wsave+00H |
DB 0C3H |
AHEADER 0 ,'C,',cfa_Ccom |
call cfa_DP+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,',',cfa_com |
call cfa_DP+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04H |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'ALLOT',cfa_ALLOT |
call cfa_DP+00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'IS-TEMP-WL',cfa_ISminusTEMPminusWL |
call cfa_GETminusCURRENT+00H |
DB 08BH,040H,0FCH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 033H,045H,0FCH |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 0C3H |
AHEADER 0 ,'GET-CURRENT',cfa_GETminusCURRENT |
call cfa_CURRENT+00H |
DB 08BH,00H |
DB 0C3H |
AHEADER 0 ,'SET-CURRENT',cfa_SETminusCURRENT |
call cfa_CURRENT+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'CFL',cfa_CFL |
call cfa__CONSTANTminusCODE+00H |
DD 05H |
AHEADER 1 ,'3RDROP',cfa__3RDROP |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_Cminus3RDROP+00H |
call cfa_INLINEcom+00H |
DB 0C3H |
AHEADER 1 ,'2RDROP',cfa__2RDROP |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_Cminus2RDROP+00H |
call cfa_INLINEcom+00H |
DB 0C3H |
AHEADER 1 ,'RDROP',cfa_RDROP |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_CminusRDROP+00H |
call cfa_INLINEcom+00H |
DB 0C3H |
AHEADER 0 ,'WORDS',cfa_WORDS |
call cfa__CONTEXT+00H |
DB 08BH,00H |
call cfa_NLIST+00H |
DB 0C3H |
AHEADER 0 ,'NLIST',cfa_NLIST |
DB 08BH,00H |
call cfa_CR+00H |
call cfa_WminusCNT+00H |
DB 0C7H,00H |
DD 00H |
DB 0B8H |
DD 010H |
call cfa_NNN+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 090H |
DB 090H |
call cfa_queCRminusBREAK+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_NLIST+084H-$-4 |
call cfa_WminusCNT+00H |
DB 0FFH,00H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
call cfa_IDdot+00H |
call cfa_SPACE+00H |
call cfa_ATminusXYque+00H |
DB 050H |
DB 0B8H |
DD 08H |
DB 08BH,0C8H |
DB 08BH,045H,00H |
DB 099H |
DB 0F7H,0F9H |
DB 08DH,040H,01H |
DB 089H,045H,00H |
DB 0B8H |
DD 08H |
DB 0F7H,06DH,00H |
DB 089H,045H,00H |
DB 058H |
call cfa_ATminusXY+00H |
call cfa_CDR+00H |
DB 0EBH,0A5H |
call cfa_KEYque+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_NLIST+09EH |
DB 074H,0BH |
call cfa_KEY+00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_CR+00H |
call cfa_CR+00H |
call cfa__SLITERALminusCODE+00H |
DB 07H |
DB 'Words: ',0 |
call cfa_TYPE+00H |
call cfa_WminusCNT+00H |
DB 08BH,00H |
call cfa_Udot+00H |
call cfa_CR+00H |
DB 0C3H |
AHEADER 0 ,'?CR-BREAK',cfa_queCRminusBREAK |
DB 0BH,0C0H |
DW 0840FH |
DD cfa_queCRminusBREAK+0CEH-$-4 |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_ZCOUNT+00H |
DB 08DH,06DH,04H |
call cfa_ATminusXYque+00H |
DB 08BH,045H,00H |
DB 03H,045H,04H |
DB 08DH,06DH,08H |
call cfa_SCR_WIDTHminusS+00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 08D0FH |
DD cfa_queCRminusBREAK+0C9H-$-4 |
call cfa_CR+00H |
call cfa_NNN+00H |
DB 08BH,00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_queCRminusBREAK+073H |
DB 074H,025H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_NNN+00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_TRUE+00H |
DB 0E9H |
DD cfa_queCRminusBREAK+0C7H-$-4 |
call cfa__SLITERALminusCODE+00H |
DB 05H |
DB 'more?',0 |
call cfa_TYPE+00H |
call cfa_CR+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 010H |
DB 08DH,06DH,0FCH |
call cfa_NNN+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_KEY+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 051H |
DB 033H,045H,0FCH |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 023H,045H,00H |
DB 08DH,06DH,04H |
call cfa_queDUP+00H |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 0EBH,05H |
call cfa_TRUE+00H |
DB 0C3H |
AHEADER 0 ,'NNN',cfa_NNN |
call cfa__CREATEminusCODE+00H |
DD 00H |
AHEADER 0 ,'LATEST',cfa_LATEST |
call cfa_CURRENT+00H |
DB 08BH,00H |
DB 08BH,00H |
DB 0C3H |
AHEADER 0 ,'ORDER',cfa_ORDER |
call cfa_GETminusORDER+00H |
call cfa__SLITERALminusCODE+00H |
DB 09H |
DB 'Context: ',0 |
call cfa_TYPE+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,04H |
DB 0BBH |
DD cfa_ORDER+054H |
DB 03BH,045H,0F8H |
;jne cfa_ORDER+031H |
DB 075H,05H |
DB 08BH,045H,0FCH |
DB 0FFH,0E3H |
DB 053H |
DB 0BBH |
DD 080000000H |
DB 02BH,05DH,0F8H |
DB 053H |
DB 03H,0D8H |
DB 053H |
DB 08BH,045H,0FCH |
call cfa_VOCminusNAMEdot+00H |
call cfa_SPACE+00H |
DB 0FFH,04H,024H |
;jno cfa_ORDER+041H |
DB 071H,0F1H |
DB 08DH,064H,024H,0CH |
call cfa_CR+00H |
call cfa__SLITERALminusCODE+00H |
DB 09H |
DB 'Current: ',0 |
call cfa_TYPE+00H |
DB 089H,045H,0FCH |
mov eax,[T_CURRENT-main_task+edi] |
DB 08DH,06DH,0FCH |
call cfa_VOCminusNAMEdot+00H |
call cfa_CR+00H |
DB 0C3H |
AHEADER 0 ,'VOC-NAME.',cfa_VOCminusNAMEdot |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_FORTHminusWORDLIST+00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_VOCminusNAMEdot+032H-$-4 |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa__SLITERALminusCODE+00H |
DB 05H |
DB 'FORTH',0 |
call cfa_TYPE+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 08BH,040H,04H |
DB 08DH,06DH,0FCH |
DB 0BH,0C0H |
;je cfa_VOCminusNAMEdot+04FH |
DB 074H,010H |
call cfa_IDdot+00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0E9H |
DD cfa_VOCminusNAMEdot+06FH-$-4 |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa__SLITERALminusCODE+00H |
DB 09H |
DB '<NONAME>:',0 |
call cfa_TYPE+00H |
call cfa_Udot+00H |
DB 0C3H |
AHEADER 0 ,'_PREVIOUS',cfa__PREVIOUS |
call cfa__CONTEXT+00H |
DB 08DH,040H,04H |
call cfa__CONTEXT+00H |
call cfa_CONTEXT_SIZE+00H |
call cfa_CMOVE+00H |
DB 0C3H |
AHEADER 0 ,'PREVIOUS',cfa_PREVIOUS |
call cfa__PREVIOUS+00H |
DB 0C3H |
AHEADER 0 ,'ALSO',cfa_ALSO |
call cfa__CONTEXT+00H |
call cfa__CONTEXT+00H |
DB 08DH,040H,04H |
call cfa_CONTEXT_SIZE+00H |
call cfa_CMOVEgreat+00H |
DB 0C3H |
AHEADER 0 ,'ONLY',cfa_ONLY |
call cfa__CONTEXT+00H |
DB 08DH,040H,04H |
DB 0C7H,00H |
DD 00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_FORTH+00H |
DB 0C3H |
AHEADER 0 ,'FORTH',cfa_FORTH |
call cfa_FORTHminusWORDLIST+00H |
call cfa__CONTEXT+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'SET-ORDER',cfa_SETminusORDER |
DB 0BH,0C0H |
;jge cfa_SETminusORDER+014H |
DB 07DH,010H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_ONLY+00H |
DB 0E9H |
DD cfa_SETminusORDER+077H-$-4 |
call cfa__CONTEXT+00H |
call cfa_CONTEXT_SIZE+00H |
call cfa_ERASE+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,04H |
DB 0BBH |
DD cfa_SETminusORDER+077H |
DB 03BH,045H,0F8H |
;jne cfa_SETminusORDER+03AH |
DB 075H,05H |
DB 08BH,045H,0FCH |
DB 0FFH,0E3H |
DB 053H |
DB 0BBH |
DD 080000000H |
DB 02BH,05DH,0F8H |
DB 053H |
DB 03H,0D8H |
DB 053H |
DB 08BH,045H,0FCH |
call cfa__CONTEXT+00H |
DB 089H,045H,0FCH |
DB 08BH,04H,024H |
DB 02BH,044H,024H,04H |
DB 08DH,04H,085H |
DD 00H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0FFH,04H,024H |
;jno cfa_SETminusORDER+04AH |
DB 071H,0D7H |
DB 08DH,064H,024H,0CH |
DB 0C3H |
AHEADER 0 ,'GET-ORDER',cfa_GETminusORDER |
call cfa_DEPTH+00H |
DB 050H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa__CONTEXT+00H |
call cfa_GETminusORDER_DROP+00H |
call cfa_DEPTH+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 0F7H,0D8H |
DB 03H,045H,0FCH |
DB 0C3H |
AHEADER 0 ,'GET-ORDER_DROP',cfa_GETminusORDER_DROP |
DB 089H,045H,0FCH |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
DB 0BH,0C0H |
;je cfa_GETminusORDER_DROP+023H |
DB 074H,017H |
DB 050H |
DB 08BH,045H,00H |
DB 08DH,040H,04H |
DB 08DH,06DH,04H |
call cfa_GETminusORDER_DROP+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,06DH,0FCH |
DB 0C3H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'DEFINITIONS',cfa_DEFINITIONS |
call cfa__CONTEXT+00H |
DB 08BH,00H |
call cfa_SETminusCURRENT+00H |
DB 0C3H |
AHEADER 0 ,'FIND1',cfa_FIND1 |
DB 08DH,050H,01H |
DB 089H,055H,0FCH |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_SFIND+00H |
DB 0BH,0C0H |
;jne cfa_FIND1+023H |
DB 075H,0EH |
DB 08BH,045H,04H |
DB 08DH,040H,0FFH |
DB 089H,045H,04H |
DB 033H,0C0H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'SFIND',cfa_SFIND |
call cfa__CONTEXT+00H |
DB 08BH,08H |
DB 0BH,0C9H |
DW 0840FH |
DD cfa_SFIND+050H-$-4 |
DB 050H |
DB 08BH,045H,00H |
DB 08BH,055H,04H |
DB 089H,045H,00H |
DB 089H,055H,0FCH |
DB 089H,045H,0F8H |
DB 08BH,04H,024H |
DB 08BH,00H |
DB 08DH,06DH,0F8H |
call cfa_SEARCHminusWORDLIST+00H |
call cfa_queDUP+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_SFIND+044H |
DB 074H,09H |
DB 083H,0C4H,04H |
call cfa__2NIP+00H |
DB 0C3H |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,040H,04H |
DB 08DH,06DH,0FCH |
DB 0EBH,0B5H |
DB 08BH,00H |
DB 0C3H |
AHEADER 0 ,'SEARCH-WORDLIST',cfa_SEARCHminusWORDLIST |
DB 050H |
DB 0B8H |
DD 07FH |
DB 023H,045H,00H |
DB 08DH,06DH,04H |
call cfa_SEARCHminusBUFF+00H |
call cfa_ASCIIminusZ+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,06DH,0FCH |
call cfa_ZSEARCHminusWORDLIST+00H |
DB 0C3H |
AHEADER 0 ,'ZSEARCH-WORDLIST',cfa_ZSEARCHminusWORDLIST |
DB 08BH,055H,00H |
DB 052H |
DB 08BH,00H |
DB 050H |
DB 08DH,06DH,04H |
call cfa_GETPR+00H |
DB 085H,0C0H |
DW 0840FH |
DD cfa_ZSEARCHminusWORDLIST+025H-$-4 |
DB 08DH,06DH,0FCH |
DB 089H,045H,00H |
DB 0FH,0B6H,042H,0F7H |
DB 048H |
DB 083H,0C8H,01H |
DB 0C3H |
AHEADER 0 ,'SEARCH-BUFF',cfa_SEARCHminusBUFF |
call cfa__CREATEminusCODE+00H |
DD 00H |
DB 00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H |
AHEADER 0 ,'CONTEXT_SIZE',cfa_CONTEXT_SIZE |
call cfa__CONSTANTminusCODE+00H |
DD 040H |
AHEADER 0 ,'FIND',cfa_FIND |
call cfa__VECTminusCODE+00H |
DD cfa_FIND1+00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'WordByAddr',cfa_WordByAddr |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_DP+00H |
DB 08BH,00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0830FH |
DD cfa_WordByAddr+03CH-$-4 |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa__SLITERALminusCODE+00H |
DB 012H |
DB '<not in the image>',0 |
DB 0C3H |
call cfa_NEAR_NFA+00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0BH,0C0H |
DW 0850FH |
DD cfa_WordByAddr+068H-$-4 |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa__SLITERALminusCODE+00H |
DB 0BH |
DB '<not found>',0 |
DB 0C3H |
DB 08DH,050H,01H |
DB 089H,055H,0FCH |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
DB 0C3H |
AHEADER 0 ,'NEAR_NFA',cfa_NEAR_NFA |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08BH,055H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,0C2H |
DB 08DH,06DH,0FCH |
call cfa_VOCminusLIST+00H |
DB 08BH,00H |
DB 0BH,0C0H |
DW 0840FH |
DD cfa_NEAR_NFA+044H-$-4 |
DB 089H,045H,0FCH |
DB 050H |
DB 08BH,045H,0FCH |
call cfa_WL_NEAR_NFA_M+00H |
DB 050H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_N_UMAX+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 089H,045H,0F8H |
DB 058H |
DB 08DH,06DH,0F8H |
DB 0EBH,0D1H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'WL_NEAR_NFA_M',cfa_WL_NEAR_NFA_M |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,045H,0FCH |
DB 089H,055H,0FCH |
DB 08DH,040H,04H |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
DB 0BH,0C0H |
DW 0840FH |
DD cfa_WL_NEAR_NFA_M+062H-$-4 |
call cfa_WL_NEAR_NFA_N+00H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 050H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
DB 050H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_N_UMAX+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,06DH,0FCH |
DB 0BH,0C0H |
;je cfa_WL_NEAR_NFA_M+051H |
DB 074H,05H |
call cfa_CDR+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 08BH,055H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,0C2H |
DB 08DH,06DH,0FCH |
DB 0EBH,0B7H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'WL_NEAR_NFA_N',cfa_WL_NEAR_NFA_N |
DB 090H |
DB 08BH,055H,00H |
DB 089H,045H,0FCH |
DB 089H,055H,0F8H |
DB 08DH,06DH,0F8H |
DB 0BH,0C0H |
;je cfa_WL_NEAR_NFA_N+014H |
DB 074H,03H |
DB 08BH,040H,0F8H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0860FH |
DD cfa_WL_NEAR_NFA_N+02AH-$-4 |
call cfa_CDR+00H |
DB 0EBH,0D7H |
DB 0C3H |
AHEADER 0 ,'WL_NEAR_NFA',cfa_WL_NEAR_NFA |
DB 08BH,00H |
DB 090H |
DB 090H |
DB 090H |
DB 08BH,055H,00H |
DB 089H,045H,0FCH |
DB 089H,055H,0F8H |
DB 08DH,06DH,0F8H |
DB 0BH,0C0H |
;je cfa_WL_NEAR_NFA+018H |
DB 074H,03H |
DB 08BH,040H,0F8H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0860FH |
DD cfa_WL_NEAR_NFA+02EH-$-4 |
call cfa_CDR+00H |
DB 0EBH,0D7H |
DB 0C3H |
AHEADER 0 ,'N_UMAX',cfa_N_UMAX |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08DH,06DH,0FCH |
DB 0BH,0C0H |
;je cfa_N_UMAX+010H |
DB 074H,03H |
DB 08BH,040H,0F8H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08DH,06DH,0FCH |
DB 0BH,0C0H |
;je cfa_N_UMAX+020H |
DB 074H,03H |
DB 08BH,040H,0F8H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_N_UMAX+02FH |
DB 076H,04H |
DB 08DH,06DH,04H |
DB 0C3H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'VOC',cfa_VOC |
call cfa_LAST+00H |
DB 08BH,00H |
DB 08DH,040H,0F7H |
DB 089H,045H,0FCH |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_and_VOC+00H |
DB 0BH,045H,00H |
DB 08BH,055H,04H |
DB 089H,045H,04H |
DB 08BH,0C2H |
DB 08BH,055H,04H |
DB 088H,010H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
DB 0C3H |
AHEADER 0 ,'?VOC',cfa_queVOC |
DB 08DH,040H,0F7H |
DB 0FH,0B6H,00H |
call cfa_and_VOC+00H |
DB 023H,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'?IMMEDIATE',cfa_queIMMEDIATE |
DB 08DH,040H,0F7H |
DB 0FH,0B6H,00H |
call cfa_and_IMMEDIATE+00H |
DB 023H,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'CDR',cfa_CDR |
DB 0BH,0C0H |
;je cfa_CDR+07H |
DB 074H,03H |
DB 08BH,040H,0FCH |
DB 0C3H |
AHEADER 0 ,'NAME>F',cfa_NAMEgreatF |
DB 08DH,040H,0F7H |
DB 0C3H |
AHEADER 0 ,'NAME>',cfa_NAMEgreat |
DB 08BH,040H,0F8H |
DB 0C3H |
AHEADER 0 ,'NAME>C',cfa_NAMEgreatC |
DB 08DH,040H,0F8H |
DB 0C3H |
AHEADER 0 ,'NAME>L',cfa_NAMEgreatL |
DB 08DH,040H,0FCH |
DB 0C3H |
AHEADER 0 ,'ID.',cfa_IDdot |
call cfa_ZCOUNT+00H |
call cfa_TYPE+00H |
DB 0C3H |
AHEADER 0 ,'PAR@',cfa_PAR_ld |
DB 08DH,040H,04H |
DB 08DH,040H,04H |
DB 08BH,00H |
DB 0C3H |
AHEADER 0 ,'PAR!',cfa_PARsave |
DB 08DH,040H,04H |
DB 08DH,040H,04H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'CLASS@',cfa_CLASS_ld |
DB 08DH,040H,04H |
DB 08DH,040H,04H |
DB 08DH,040H,04H |
DB 08BH,00H |
DB 0C3H |
AHEADER 0 ,'CLASS!',cfa_CLASSsave |
DB 08DH,040H,04H |
DB 08DH,040H,04H |
DB 08DH,040H,04H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'WORDLIST',cfa_WORDLIST |
call cfa_HERE+00H |
call cfa_VOCminusLIST+00H |
DB 08BH,00H |
call cfa_com+00H |
call cfa_VOCminusLIST+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_HERE+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_com+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_com+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_com+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_com+00H |
DB 0C3H |
AHEADER 0 ,'SWORD,',cfa_SWORDcom |
call cfa_HERE+00H |
DB 08DH,040H,04H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_LAST+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08BH,055H,08H |
DB 089H,045H,08H |
DB 08BH,0C2H |
DB 089H,045H,04H |
DB 08BH,00H |
DB 08DH,06DH,04H |
call cfa_com+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_Scom+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
DB 0C3H |
AHEADER 0 ,'>BODY',cfa_greatBODY |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05H |
DB 03H,045H,0FCH |
DB 0C3H |
AHEADER 0 ,'&VOC',cfa_and_VOC |
call cfa__CONSTANTminusCODE+00H |
DD 02H |
AHEADER 0 ,'&IMMEDIATE',cfa_and_IMMEDIATE |
call cfa__CONSTANTminusCODE+00H |
DD 01H |
AHEADER 1 ,'RECURSE',cfa_RECURSE |
call cfa_queCOMP+00H |
call cfa_LASTminusNON+00H |
DB 0BH,0C0H |
;jne cfa_RECURSE+01FH |
DB 075H,011H |
DB 08BH,045H,00H |
DB 089H,045H,00H |
mov eax,[T_CURRENT-main_task+edi] |
DB 08BH,00H |
DB 08BH,040H,0FBH |
call cfa__COMPILEcom+00H |
DB 0C3H |
AHEADER 1 ,'AGAIN',cfa_AGAIN |
call cfa_queCOMP+00H |
DB 03DH |
DD 03H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_AGAIN+022H |
DB 074H,010H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFF82AH |
DB 08DH,06DH,0FCH |
call cfa_THROW+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_DP+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0F7H,0D8H |
DB 03H,045H,00H |
DB 089H,045H,00H |
DB 08DH,080H |
DD 080H |
DB 03DH |
DD 0100H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jae cfa_AGAIN+06FH |
DB 073H,022H |
call cfa_SetJP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0EBH |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_Ccom+00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0EBH,0BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_BRANCHcom+00H |
call cfa_DP+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+09H |
DB 0C3H |
AHEADER 1 ,'REPEAT',cfa__REPEAT |
call cfa_queCOMP+00H |
DB 03DH |
DD 03H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa__REPEAT+022H |
DB 074H,010H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFF82BH |
DB 08DH,06DH,0FCH |
call cfa_THROW+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_DP+00H |
DB 08BH,00H |
DB 08DH,040H,02H |
DB 0F7H,0D8H |
DB 03H,045H,00H |
DB 089H,045H,00H |
DB 08DH,080H |
DD 080H |
DB 03DH |
DD 0100H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jae cfa__REPEAT+06FH |
DB 073H,022H |
call cfa_SetJP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0EBH |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_Ccom+00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0EBH,0BH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_BRANCHcom+00H |
call cfa_greatORESOLVE+00H |
DB 0C3H |
AHEADER 1 ,'WHILE',cfa__WHILE |
call cfa_queCOMP+00H |
call cfa__IF+00H |
call cfa__2SWAP+00H |
DB 0C3H |
AHEADER 1 ,'UNTIL',cfa_UNTIL |
call cfa_queCOMP+00H |
DB 03DH |
DD 03H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_UNTIL+022H |
DB 074H,010H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFF82CH |
DB 08DH,06DH,0FCH |
call cfa_THROW+00H |
call cfa_queBRANCHcom+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFF80H |
DB 08DH,06DH,0FCH |
call cfa_DP+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04H |
DB 0F7H,0D8H |
DB 03H,045H,0FCH |
DB 08BH,00H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_UNTIL+09EH |
DB 076H,04BH |
call cfa_DP+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 05H |
DB 0F7H,0D8H |
DB 03H,045H,0FCH |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03F0H |
DB 03H,045H,0FCH |
call cfa_DP+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 06H |
DB 0F7H,0D8H |
DB 03H,045H,0FCH |
call cfa_Wsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFCH |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 0C3H |
AHEADER 1 ,'BEGIN',cfa_BEGIN |
call cfa_queCOMP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04H |
DB 08DH,06DH,0FCH |
call cfa_ALIGNminusNOP+00H |
call cfa_lessMARK+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03H |
DB 08DH,06DH,0FCH |
DB 0C3H |
AHEADER 1 ,'BREAK',cfa__BREAK |
call cfa_EXIT+00H |
call cfa_THEN+00H |
DB 0C3H |
AHEADER 1 ,'THEN',cfa_THEN |
call cfa_queCOMP+00H |
call cfa_greatORESOLVE+00H |
DB 0C3H |
AHEADER 1 ,'ELSE',cfa__ELSE |
call cfa_queCOMP+00H |
call cfa_DP+00H |
DB 08BH,00H |
call cfa_BRANCHcom+00H |
call cfa_greatORESOLVE+00H |
call cfa_greatMARK+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02H |
DB 08DH,06DH,0FCH |
DB 0C3H |
AHEADER 1 ,'IF',cfa__IF |
call cfa_queCOMP+00H |
call cfa_DP+00H |
DB 08BH,00H |
call cfa_queBRANCHcom+00H |
call cfa_greatMARK+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 08DH,06DH,0FCH |
DB 0C3H |
AHEADER 0 ,'?LITERAL2',cfa_queLITERAL2 |
DB 08DH,050H,01H |
DB 089H,055H,0FCH |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_queSLITERAL2+00H |
DB 0C3H |
AHEADER 0 ,'?SLITERAL2',cfa_queSLITERAL2 |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0B8H |
DD 01H |
DB 03BH,045H,0F8H |
DB 08BH,045H,0FCH |
;jge cfa_queSLITERAL2+058H |
DB 07DH,045H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 0FH,0B7H,00H |
DB 03DH |
DD 07830H |
DB 08BH,045H,0FCH |
;jne cfa_queSLITERAL2+058H |
DB 075H,032H |
DB 08BH,055H,00H |
DB 089H,045H,0FCH |
DB 089H,055H,0F8H |
DB 08DH,06DH,0F8H |
call cfa__2greatR+00H |
call cfa_HEXminusSLITERAL+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_queSLITERAL2+053H-$-4 |
DB 083H,0C4H,04H |
DB 083H,0C4H,04H |
DB 0C3H |
DB 0EBH,05H |
call cfa__2Rgreat+00H |
DB 08BH,055H,00H |
DB 089H,045H,0FCH |
DB 089H,055H,0F8H |
DB 08DH,06DH,0F8H |
call cfa__2greatR+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_queSLITERAL1+00H |
call cfa_CATCH+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_queSLITERAL2+0182H-$-4 |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa__2Rgreat+00H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 0FH,0B6H,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 022H |
DB 033H,045H,0F8H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 089H,045H,0F4H |
DB 0B8H |
DD 02H |
DB 03BH,045H,0F4H |
DB 0FH,09DH,0C0H |
DB 083H,0E0H,01H |
DB 048H |
DB 023H,045H,0F8H |
DB 08BH,045H,0FCH |
;je cfa_queSLITERAL2+0ECH |
DB 074H,020H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02H |
DB 0F7H,0D8H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 08BH,055H,00H |
DB 089H,045H,0FCH |
DB 08DH,04H,02H |
DB 089H,045H,0F8H |
DB 033H,0C0H |
DB 08BH,055H,0F8H |
DB 089H,045H,0F8H |
DB 08BH,0C2H |
DB 08BH,055H,0F8H |
DB 088H,010H |
DB 08BH,045H,0FCH |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_INCLUDED_S+00H |
call cfa_CATCH+00H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0B8H |
DD 02H |
DB 033H,045H,0F8H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 089H,045H,0F4H |
DB 0B8H |
DD 03H |
DB 033H,045H,0F4H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 0BH,045H,0F8H |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 089H,045H,0F4H |
DB 0B8H |
DD 0A1H |
DB 033H,045H,0F4H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 0BH,045H,0F8H |
DB 08BH,045H,0FCH |
DW 0840FH |
DD cfa_queSLITERAL2+017BH-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFF82DH |
DB 08DH,06DH,0FCH |
call cfa_THROW+00H |
DB 0EBH,05H |
call cfa_THROW+00H |
DB 0EBH,06H |
DB 083H,0C4H,04H |
DB 083H,0C4H,04H |
DB 0C3H |
AHEADER 0 ,'INCLUDED_S',cfa_INCLUDED_S |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFF82DH |
DB 08DH,06DH,0FCH |
call cfa_THROW+00H |
call cfa_INCLUDED+00H |
DB 0C3H |
AHEADER 0 ,'HEX-SLITERAL',cfa_HEXminusSLITERAL |
call cfa_BASE+00H |
DB 08BH,00H |
DB 050H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_HEX+00H |
DB 089H,045H,0FCH |
DB 0C7H,045H,0F8H |
DD 00H |
DB 033H,0C0H |
DB 08DH,06DH,0F8H |
call cfa__2SWAP+00H |
DB 08DH,040H,0FEH |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 08DH,040H,02H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
call cfa_greatNUMBER+00H |
call cfa_queDUP+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_HEXminusSLITERAL+0B0H-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 033H,045H,0FCH |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 0FH,0B6H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04CH |
DB 033H,045H,0FCH |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 023H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jne cfa_HEXminusSLITERAL+0AEH |
DB 075H,023H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_FALSE+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,06DH,0FCH |
call cfa_BASE+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
DB 0EBH,06H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_LITERAL+00H |
call cfa_TRUE+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,06DH,0FCH |
call cfa_BASE+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'?LITERAL1',cfa_queLITERAL1 |
DB 08DH,050H,01H |
DB 089H,055H,0FCH |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_queSLITERAL1+00H |
DB 0C3H |
AHEADER 0 ,'?SLITERAL1',cfa_queSLITERAL1 |
DB 089H,045H,0FCH |
DB 0C7H,045H,0F8H |
DD 00H |
DB 033H,0C0H |
DB 08DH,06DH,0F8H |
call cfa__2SWAP+00H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 0FH,0B6H,00H |
DB 03DH |
DD 02DH |
DB 08BH,045H,0FCH |
DW 0850FH |
DD cfa_queSLITERAL1+048H-$-4 |
DB 08DH,040H,0FFH |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
call cfa_TRUE+00H |
DB 0EBH,05H |
call cfa_FALSE+00H |
DB 050H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_greatNUMBER+00H |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0B8H |
DD 01H |
DB 03BH,045H,0F8H |
DB 08BH,045H,0FCH |
DW 08D0FH |
DD cfa_queSLITERAL1+08EH-$-4 |
call cfa__SLITERALminusCODE+00H |
DB 02H |
DB '-?',0 |
call cfa_TYPE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFF82FH |
DB 08DH,06DH,0FCH |
call cfa_THROW+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_queSLITERAL1+0DBH-$-4 |
DB 0FH,0B6H,00H |
DB 03DH |
DD 02EH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_queSLITERAL1+0BCH |
DB 074H,010H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFF82EH |
DB 08DH,06DH,0FCH |
call cfa_THROW+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 0BH,0C0H |
DB 08BH,045H,0FCH |
;je cfa_queSLITERAL1+0D4H |
DB 074H,0DH |
DB 08BH,055H,00H |
DB 0F7H,0D8H |
DB 0F7H,0DAH |
DB 083H,0D8H,00H |
DB 089H,055H,00H |
call cfa__2LITERAL+00H |
DB 0EBH,01BH |
DB 08BH,045H,00H |
DB 08BH,045H,04H |
DB 089H,045H,04H |
DB 058H |
DB 0BH,0C0H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;je cfa_queSLITERAL1+0F1H |
DB 074H,02H |
DB 0F7H,0D8H |
call cfa_LITERAL+00H |
DB 0C3H |
AHEADER 0 ,'--',cfa_minusminus |
call cfa_FIELD+00H |
DB 0C3H |
AHEADER 0 ,'FIELD',cfa_FIELD |
call cfa_dcoma+00H |
DB 089H,045H,0FCH |
DB 08BH,045H,00H |
DB 08DH,06DH,0FCH |
DB 0BH,0C0H |
DW 0840FH |
DD cfa_FIELD+032H-$-4 |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_LITcom+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_plus+00H |
call cfa_COMPILEcom+00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa__end+00H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'\EOF',cfa_slEOF |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
call cfa_REFILL+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_slEOF+05H |
DB 075H,0F1H |
call cfa_sl+00H |
DB 0C3H |
AHEADER 1 ,'EXIT',cfa_EXIT |
call cfa_RETcom+00H |
DB 0C3H |
AHEADER 0 ,'[;]',cfa__x_end_y |
call cfa_RETcom+00H |
call cfa__x+00H |
call cfa_REVEAL+00H |
call cfa_ClearJpBuff+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_LASTminusNON+09H |
DB 0C3H |
AHEADER 1 ,';',cfa__end |
call cfa__x_end_y+00H |
DB 0C3H |
AHEADER 1 ,'[COMPILE]',cfa__xCOMPILE_y |
call cfa_queCOMP+00H |
call cfa_tic+00H |
call cfa_COMPILEcom+00H |
DB 0C3H |
AHEADER 1 ,'(',cfa__c |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 029H |
DB 089H,045H,0F8H |
DB 08DH,06DH,0F8H |
call cfa_PARSE+00H |
DB 03H,045H,00H |
DB 0FH,0B6H,00H |
DB 033H,045H,04H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
DW 0840FH |
DD cfa__c+03FH-$-4 |
call cfa_REFILL+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa__c+03DH |
DB 075H,01H |
DB 0C3H |
DB 0EBH,0C6H |
DB 0C3H |
AHEADER 1 ,'.(',cfa_dot_c |
DB 089H,045H,0FCH |
DB 0B8H |
DD 029H |
DB 08DH,06DH,0FCH |
call cfa_PARSE+00H |
call cfa_TYPE+00H |
DB 0C3H |
AHEADER 1 ,'\',cfa_sl |
DB 089H,045H,0FCH |
DB 0B8H |
DD 01H |
DB 08DH,06DH,0FCH |
call cfa_PARSE+00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 1 ,'POSTPONE',cfa_POSTPONE |
call cfa_queCOMP+00H |
call cfa_PARSEminusWORD+00H |
call cfa_SFIND+00H |
DB 0BH,0C0H |
;jne cfa_POSTPONE+023H |
DB 075H,010H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFEBFH |
DB 08DH,06DH,0FCH |
call cfa_THROW+00H |
DB 03DH |
DD 01H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_POSTPONE+03EH-$-4 |
call cfa_COMPILEcom+00H |
DB 0E9H |
DD cfa_POSTPONE+054H-$-4 |
call cfa_LITcom+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_COMPILEcom_M+00H |
call cfa_COMPILEcom+00H |
DB 0C3H |
AHEADER 0 ,'COMPILE,_M',cfa_COMPILEcom_M |
call cfa_COMPILEcom+00H |
DB 0C3H |
AHEADER 1 ,'TO',cfa_TO |
call cfa_tic+00H |
DB 08DH,040H,05H |
DB 08DH,040H,04H |
call cfa_STATE+00H |
DB 08BH,00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_TO+027H-$-4 |
call cfa_COMPILEcom+00H |
DB 0EBH,05H |
call cfa_EXECUTE+00H |
DB 0C3H |
AHEADER 0 ,'AUTOEXEC',cfa_AUTOEXEC |
call cfa__SLITERALminusCODE+00H |
DB 0BH |
DB '/sys/INIT.F',0 |
call cfa_INCLUDED_+00H |
DB 0C3H |
AHEADER 0 ,'REQUIRE',cfa_REQUIRE |
call cfa_PARSEminusNAME+00H |
call cfa_PARSEminusNAME+00H |
DB 08BH,055H,00H |
DB 089H,045H,0FCH |
DB 08DH,04H,02H |
DB 089H,045H,0F8H |
DB 033H,0C0H |
DB 08BH,055H,0F8H |
DB 089H,045H,0F8H |
DB 08BH,0C2H |
DB 08BH,055H,0F8H |
DB 088H,010H |
DB 08BH,045H,0FCH |
call cfa_REQUIRED+00H |
DB 0C3H |
AHEADER 0 ,'REQUIRED',cfa_REQUIRED |
call cfa__2SWAP+00H |
call cfa_SFIND+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_REQUIRED+023H-$-4 |
DB 08BH,045H,00H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
DB 0EBH,0BH |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_INCLUDED_+00H |
DB 0C3H |
AHEADER 0 ,'INCLUDED_',cfa_INCLUDED_ |
call cfa_R_divO+00H |
call cfa_OPENminusFILE+00H |
call cfa_THROW+00H |
DB 089H,045H,0FCH |
DB 050H |
DB 08BH,045H,0FCH |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_INCLUDEminusFILE+00H |
call cfa_CATCH+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,06DH,0FCH |
call cfa_CLOSEminusFILE+00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_THROW+00H |
DB 0C3H |
AHEADER 0 ,'INCLUDE-FILE',cfa_INCLUDEminusFILE |
call cfa_greatIN+00H |
DB 08BH,00H |
DB 050H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_SOURCEminusID+00H |
DB 050H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_SOURCEminusID+09H |
DB 089H,045H,0FCH |
DB 08BH,0C4H |
DB 08DH,06DH,0FCH |
call cfa_nTIB+00H |
DB 08BH,00H |
call cfa_ALIGNED+00H |
DB 0F7H,0D8H |
DB 03H,045H,00H |
DB 08BH,0E0H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_TIB+00H |
DB 089H,045H,0FCH |
DB 08BH,0C4H |
DB 08DH,06DH,0FCH |
call cfa_nTIB+00H |
DB 08BH,00H |
call cfa_CMOVE+00H |
call cfa_SOURCE+00H |
call cfa__2greatR+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_FQUIT+00H |
call cfa_CATCH+00H |
call cfa_SAVEERR+00H |
call cfa__2Rgreat+00H |
call cfa_SOURCEsave+00H |
DB 089H,045H,0FCH |
DB 08BH,0C4H |
DB 08DH,06DH,0FCH |
call cfa_TIB+00H |
call cfa_nTIB+00H |
DB 08BH,00H |
call cfa_CMOVE+00H |
DB 089H,045H,0FCH |
DB 08BH,0C4H |
DB 08DH,06DH,0FCH |
call cfa_nTIB+00H |
DB 08BH,00H |
call cfa_ALIGNED+00H |
DB 03H,045H,00H |
DB 08BH,0E0H |
DB 08BH,045H,04H |
DB 089H,045H,04H |
DB 058H |
DB 08DH,06DH,04H |
call cfa_SOURCEminusID+09H |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,06DH,0FCH |
call cfa_greatIN+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_THROW+00H |
DB 0C3H |
AHEADER 0 ,'FQUIT',cfa_FQUIT |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
call cfa_REFILL+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_FQUIT+01FH-$-4 |
call cfa_INTERPRET+00H |
DB 0EBH,0E6H |
DB 0C3H |
AHEADER 0 ,'EVALUATE',cfa_EVALUATE |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_INTERPRET+00H |
call cfa_EVALUATEminusWITH+00H |
DB 0C3H |
AHEADER 0 ,'EVALUATE-WITH',cfa_EVALUATEminusWITH |
call cfa_SAVEminusSOURCE+00H |
call cfa_NgreatR+00H |
DB 050H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_SOURCEsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0FCH |
call cfa_SOURCEminusID+09H |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,06DH,0FCH |
call cfa_CATCH+00H |
call cfa_NRgreat+00H |
call cfa_RESTOREminusSOURCE+00H |
call cfa_THROW+00H |
DB 0C3H |
AHEADER 0 ,'RESTORE-SOURCE',cfa_RESTOREminusSOURCE |
DB 03DH |
DD 06H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_RESTOREminusSOURCE+012H |
DB 074H,05H |
call cfa_ABORT+00H |
call cfa_CURSTR+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_SOURCEsave+00H |
call cfa_greatIN+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_SOURCEminusID+09H |
call cfa_SOURCEminusIDminusXT+09H |
DB 0C3H |
AHEADER 0 ,'SAVE-SOURCE',cfa_SAVEminusSOURCE |
call cfa_SOURCEminusIDminusXT+00H |
call cfa_SOURCEminusID+00H |
call cfa_greatIN+00H |
DB 08BH,00H |
call cfa_SOURCE+00H |
call cfa_CURSTR+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 06H |
DB 08DH,06DH,0FCH |
DB 0C3H |
AHEADER 0 ,'MAIN1',cfa_MAIN1 |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
call cfa_REFILL+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_MAIN1+024H-$-4 |
call cfa_INTERPRET+00H |
call cfa_OKdot+00H |
DB 0EBH,0E1H |
call cfa__BYE+00H |
DB 0C3H |
AHEADER 0 ,'QUIT',cfa_QUIT |
call cfa_CONSOLEminusHANDLES+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_SOURCEminusID+09H |
call cfa__x+00H |
call cfa_lessMAINgreat+00H |
DB 0C3H |
AHEADER 0 ,']',cfa__y |
call cfa_TRUE+00H |
call cfa_STATE+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 1 ,'[',cfa__x |
call cfa_STATE+00H |
DB 0C7H,00H |
DD 00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'EVAL-WORD',cfa_EVALminusWORD |
call cfa_SFIND+00H |
call cfa_queDUP+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_EVALminusWORD+03CH-$-4 |
call cfa_STATE+00H |
DB 08BH,00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_EVALminusWORD+035H-$-4 |
call cfa_COMPILEcom+00H |
DB 0EBH,05H |
call cfa_EXECUTE+00H |
DB 0EBH,010H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFF82DH |
DB 08DH,06DH,0FCH |
call cfa_THROW+00H |
DB 0C3H |
AHEADER 0 ,'OK1',cfa_OK1 |
call cfa_STATE+00H |
DB 08BH,00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0850FH |
DD cfa_OK1+07EH-$-4 |
call cfa__SLITERALminusCODE+00H |
DB 03H |
DB ' Ok',0 |
call cfa_TYPE+00H |
call cfa_DEPTH+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 046H |
DB 08DH,06DH,0FCH |
call cfa_UMIN+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,04H |
DB 0BBH |
DD cfa_OK1+079H |
DB 03BH,045H,0F8H |
;jne cfa_OK1+050H |
DB 075H,05H |
DB 08BH,045H,0FCH |
DB 0FFH,0E3H |
DB 053H |
DB 0BBH |
DD 080000000H |
DB 02BH,05DH,0F8H |
DB 053H |
DB 03H,0D8H |
DB 053H |
DB 08BH,045H,0FCH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02EH |
DB 08DH,06DH,0FCH |
call cfa_EMIT+00H |
DB 0FFH,04H,024H |
;jno cfa_OK1+060H |
DB 071H,0EBH |
DB 08DH,064H,024H,0CH |
call cfa_CR+00H |
DB 0C3H |
AHEADER 0 ,'.SN',cfa_dotSN |
DB 050H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 083H,03CH,024H,00H |
DW 0840FH |
DD cfa_dotSN+0C6H-$-4 |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08BH,0C5H |
DB 089H,045H,0FCH |
DB 08BH,04H,024H |
DB 08DH,040H,0FFH |
DB 08DH,04H,085H |
DD 00H |
DB 03H,045H,0FCH |
DB 08BH,00H |
DB 0BH,0C0H |
DW 08D0FH |
DD cfa_dotSN+0B1H-$-4 |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 033H,0C0H |
DB 08DH,06DH,0F8H |
call cfa_lessn+00H |
call cfa_nS+00H |
call cfa_ngreat+00H |
call cfa_TYPE+00H |
call cfa__SLITERALminusCODE+00H |
DB 01H |
DB '(',0 |
call cfa_TYPE+00H |
call cfa_ABS+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_lessn+00H |
call cfa_nS+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 02DH |
DB 08DH,06DH,0FCH |
call cfa_HOLD+00H |
call cfa_ngreat+00H |
call cfa_TYPE+00H |
call cfa__SLITERALminusCODE+00H |
DB 02H |
DB ') ',0 |
call cfa_TYPE+00H |
DB 0EBH,05H |
call cfa_dot+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,040H,0FFH |
DB 050H |
DB 08BH,045H,0FCH |
DB 0E9H |
DD cfa_dotSN+015H-$-4 |
DB 083H,0C4H,04H |
DB 0C3H |
AHEADER 0 ,'INTERPRET',cfa_INTERPRET |
call cfa_and_INTERPRET+00H |
DB 08BH,00H |
call cfa_EXECUTE+00H |
DB 0C3H |
AHEADER 0 ,'&INTERPRET',cfa_and_INTERPRET |
call cfa__CREATEminusCODE+00H |
DD cfa_INTERPRET_+00H |
AHEADER 0 ,'INTERPRET_',cfa_INTERPRET_ |
call cfa_SAVEERRque+00H |
call cfa_ON+00H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
call cfa_PARSEminusWORD+00H |
DB 0BH,0C0H |
DW 0840FH |
DD cfa_INTERPRET_+0B5H-$-4 |
DB 08BH,055H,00H |
DB 089H,045H,0FCH |
DB 089H,055H,0F8H |
DB 08DH,06DH,0F8H |
call cfa_ILASTminusWORD+00H |
call cfa__2save+00H |
call cfa_SFIND+00H |
call cfa_queDUP+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_INTERPRET_+077H-$-4 |
call cfa_STATE+00H |
DB 08BH,00H |
DB 033H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0850FH |
DD cfa_INTERPRET_+06DH-$-4 |
call cfa_COMPILEcom+00H |
DB 0EBH,05H |
call cfa_EXECUTE+00H |
DB 0E9H |
DD cfa_INTERPRET_+0ABH-$-4 |
call cfa__SLITERALminusCODE+00H |
DB 08H |
DB 'NOTFOUND',0 |
call cfa_SFIND+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_INTERPRET_+0A0H-$-4 |
call cfa_EXECUTE+00H |
DB 0EBH,0BH |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_queSLITERAL+00H |
call cfa_queSTACK+00H |
DB 0E9H |
DD cfa_INTERPRET_+015H-$-4 |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'ILAST-WORD',cfa_ILASTminusWORD |
call cfa__CREATEminusCODE+00H |
DD 00H |
DB 00H,00H,00H,00H |
AHEADER 0 ,'CHAR',cfa__CHAR |
call cfa_PARSEminusWORD+00H |
DB 08BH,045H,00H |
DB 0FH,0B6H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'''',cfa_tic |
call cfa_PARSEminusWORD+00H |
call cfa_SFIND+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_tic+024H |
DB 075H,010H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFEBFH |
DB 08DH,06DH,0FCH |
call cfa_THROW+00H |
DB 0C3H |
AHEADER 0 ,'WORD',cfa__WORD |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_PSKIP+00H |
call cfa_PARSE+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_HERE+00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_HERE+00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
call cfa_CMOVE+00H |
call cfa_BL+00H |
call cfa_HERE+00H |
DB 08DH,050H,01H |
DB 089H,055H,0FCH |
DB 0FH,0B6H,00H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_HERE+00H |
DB 0C3H |
AHEADER 0 ,'?COMP',cfa_queCOMP |
call cfa_STATE+00H |
DB 08BH,00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_queCOMP+021H |
DB 075H,010H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFEC8H |
DB 08DH,06DH,0FCH |
call cfa_THROW+00H |
DB 0C3H |
AHEADER 0 ,'?STACK',cfa_queSTACK |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08BH,0C5H |
call cfa_S0+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 03BH,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
;jbe cfa_queSTACK+03EH |
DB 076H,01CH |
call cfa_S0+00H |
DB 08BH,00H |
call cfa_SPsave+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFCH |
DB 08DH,06DH,0FCH |
call cfa_THROW+00H |
DB 0C3H |
AHEADER 0 ,'DEPTH',cfa_DEPTH |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08BH,0C5H |
call cfa_S0+00H |
DB 08BH,00H |
DB 02BH,045H,00H |
DB 089H,045H,00H |
DB 0B8H |
DD 04H |
DB 08BH,0C8H |
DB 08BH,045H,00H |
DB 033H,0D2H |
DB 0F7H,0F1H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'SOURCE-ID-XT',cfa_SOURCEminusIDminusXT |
call cfa__USERminusVALUEminusCODE+00H |
DD reserve+08H |
call cfa__TOUSERminusVALUEminusCODE+00H |
AHEADER 0 ,'?SLITERAL',cfa_queSLITERAL |
call cfa__VECTminusCODE+00H |
DD cfa_queSLITERAL2+00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'?LITERAL',cfa_queLITERAL |
call cfa__VECTminusCODE+00H |
DD cfa_queLITERAL2+00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'<MAIN>',cfa_lessMAINgreat |
call cfa__VECTminusCODE+00H |
DD cfa_MAIN1+00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'OK.',cfa_OKdot |
call cfa__VECTminusCODE+00H |
DD cfa_OK1+00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'ERROR_DO',cfa_ERROR_DO |
call cfa_SAVEERR+00H |
call cfa_CR+00H |
call cfa_ERRFILE+00H |
DB 08DH,050H,01H |
DB 089H,055H,0FCH |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_TYPE+00H |
call cfa_CR+00H |
call cfa_ERRTIB+00H |
DB 08DH,050H,01H |
DB 089H,055H,0FCH |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_TYPE+00H |
call cfa_CR+00H |
call cfa_ERgreatIN+00H |
DB 08BH,00H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
call cfa_SPACE+00H |
DB 08DH,040H,0FFH |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 033H,0C0H |
DB 08DH,06DH,0F8H |
call cfa_MAX+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_ERROR_DO+055H |
DB 075H,0DEH |
call cfa__SLITERALminusCODE+00H |
DB 01H |
DB '^',0 |
call cfa_TYPE+00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_CR+00H |
call cfa__SLITERALminusCODE+00H |
DB 04H |
DB 'ERR=',0 |
call cfa_TYPE+00H |
call cfa_dot+00H |
call cfa_CR+00H |
call cfa_S0+00H |
DB 08BH,00H |
call cfa_SPsave+00H |
call cfa_STATE+00H |
DB 0C7H,00H |
DD 00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'SAVEERR',cfa_SAVEERR |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_SAVEERRque+00H |
DB 08BH,00H |
DB 023H,045H,00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DW 0840FH |
DD cfa_SAVEERR+0A0H-$-4 |
call cfa_SOURCE+00H |
call cfa_ERRTIB+00H |
call cfa_dolsave+00H |
call cfa_greatIN_WORD+00H |
DB 08BH,00H |
call cfa_ERgreatIN+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_SAVEERRque+00H |
DB 0C7H,00H |
DD 00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_SOURCEminusID+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 03E7H |
DB 08DH,06DH,0FCH |
call cfa_HERE+00H |
call cfa_WITHIN+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_SAVEERR+0A0H |
DB 074H,029H |
call cfa_SOURCEminusID+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 014H |
DB 03H,045H,0FCH |
call cfa_ZCOUNT+00H |
call cfa_C_divL+00H |
call cfa_UMIN+00H |
call cfa_ERRFILE+00H |
call cfa_dolsave+00H |
DB 0C3H |
AHEADER 0 ,'>IN_WORD',cfa_greatIN_WORD |
call cfa__CREATEminusCODE+00H |
DD 00H |
AHEADER 0 ,'SAVEERR?',cfa_SAVEERRque |
call cfa__CREATEminusCODE+00H |
DD 00H |
AHEADER 0 ,'ER>IN',cfa_ERgreatIN |
call cfa__CREATEminusCODE+00H |
DD 00H |
AHEADER 0 ,'ERRFILE',cfa_ERRFILE |
call cfa__CREATEminusCODE+00H |
DD 00H |
DB 00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H |
AHEADER 0 ,'ERRTIB',cfa_ERRTIB |
call cfa__CREATEminusCODE+00H |
DD 00H |
DB 00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H |
AHEADER 0 ,'(ABORT1")',cfa__cABORT1dticcend |
DB 08BH,055H,00H |
DB 0BH,0D2H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa__cABORT1dticcend+043H-$-4 |
DB 08DH,050H,01H |
DB 089H,055H,0FCH |
DB 0FH,0B6H,00H |
DB 08DH,06DH,0FCH |
call cfa_ERminusU+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_ERminusA+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 0B8H |
DD 0FFFFFFFEH |
DB 08DH,06DH,04H |
call cfa_THROW+00H |
DB 0EBH,06H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'(ABORT")',cfa__cABORTdticcend |
call cfa__VECTminusCODE+00H |
DD cfa__cABORT1dticcend+00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'ERROR',cfa_ERROR |
call cfa__VECTminusCODE+00H |
DD cfa_NOOP+00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 1 ,'UNLOOP',cfa_UNLOOP |
call cfa_queCOMP+00H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C24648DH |
DB 08DH,06DH,0FCH |
call cfa_com+00H |
DB 0C3H |
AHEADER 1 ,'LEAVE',cfa__LEAVE |
call cfa_queCOMP+00H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0824648DH |
DB 08DH,06DH,0FCH |
call cfa_com+00H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C3H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
DB 0C3H |
AHEADER 1 ,'J',cfa_J |
call cfa_queCOMP+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_CminusJ+00H |
call cfa_INLINEcom+00H |
DB 0C3H |
AHEADER 1 ,'I',cfa_I |
call cfa_queCOMP+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_CminusI+00H |
call cfa_INLINEcom+00H |
DB 0C3H |
AHEADER 1 ,'+LOOP',cfa_plusLOOP |
call cfa_queCOMP+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_ADD_xESP_ycomEAX+00H |
call cfa_INLINEcom+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_DROP+00H |
call cfa_INLINEcom+00H |
call cfa_HERE+00H |
DB 08DH,040H,02H |
DB 0F7H,0D8H |
DB 03H,045H,00H |
DB 089H,045H,00H |
DB 08DH,080H |
DD 080H |
DB 03DH |
DD 0100H |
DB 01BH,0C0H |
call cfa_SetOP+00H |
call cfa_SetJP+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_plusLOOP+073H-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 071H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_Ccom+00H |
DB 0EBH,02FH |
DB 0B9H |
DD 04H |
DB 0F7H,0D9H |
DB 08DH,04H,01H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FH |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 081H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_com+00H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C24648DH |
DB 08DH,06DH,0FCH |
call cfa_com+00H |
call cfa_DP+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 1 ,'LOOP',cfa_LOOP |
call cfa_queCOMP+00H |
DB 089H,045H,0FCH |
DB 0C7H,045H,0F8H |
DD 024H |
DB 0B8H |
DD 04FFH |
DB 08DH,06DH,0F8H |
call cfa_Wcom+00H |
call cfa_Ccom+00H |
call cfa_HERE+00H |
DB 08DH,040H,02H |
DB 0F7H,0D8H |
DB 03H,045H,00H |
DB 089H,045H,00H |
DB 08DH,080H |
DD 080H |
DB 03DH |
DD 0100H |
DB 01BH,0C0H |
call cfa_SetOP+00H |
call cfa_SetJP+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa_LOOP+06DH-$-4 |
DB 089H,045H,0FCH |
DB 0B8H |
DD 071H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_Ccom+00H |
DB 0EBH,02FH |
DB 0B9H |
DD 04H |
DB 0F7H,0D9H |
DB 08DH,04H,01H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FH |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 081H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_com+00H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0C24648DH |
DB 08DH,06DH,0FCH |
call cfa_com+00H |
call cfa_DP+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 1 ,'?DO',cfa_queDO |
call cfa_queCOMP+00H |
call cfa_OP0+00H |
DB 08BH,00H |
call cfa_dcomaminusSET+00H |
call cfa_UMAX+00H |
call cfa_dcomaminusSET+09H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_NIP+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_INLINEcom+00H |
call cfa_INLINEcom+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0BBH |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_HERE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04H |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_CminusqueDO+00H |
call cfa_INLINEcom+00H |
call cfa_DP+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_dcomaminusSET+09H |
DB 0C3H |
AHEADER 1 ,'DO',cfa_DO |
call cfa_queCOMP+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_CminusDO+00H |
call cfa_INLINEcom+00H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 068H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_DP+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04H |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 052H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_SetOP+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 053H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04H |
DB 08DH,06DH,0FCH |
call cfa_ALIGNminusNOP+00H |
call cfa_DP+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_dcomaminusSET+09H |
DB 0C3H |
AHEADER 0 ,'_:',cfa__dcoma |
call cfa_PARSEminusWORD+00H |
call cfa__SHEADER+00H |
call cfa__y+00H |
call cfa_HERE+00H |
call cfa_dcomaminusSET+09H |
DB 0C3H |
AHEADER 0 ,':',cfa_dcoma |
call cfa__dcoma+00H |
DB 0C3H |
AHEADER 0 ,'->VECT',cfa_minusgreatVECT |
call cfa_HEADER+00H |
call cfa_VECTminusCODE+00H |
call cfa_COMPILEcom+00H |
call cfa_com+00H |
call cfa_TOVALUEminusCODE+00H |
call cfa_COMPILEcom+00H |
DB 0C3H |
AHEADER 0 ,'USER-VALUE',cfa_USERminusVALUE |
call cfa_HEADER+00H |
call cfa_USERminusVALUEminusCODE+00H |
call cfa_COMPILEcom+00H |
call cfa_USERminusALIGNED+00H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
call cfa_com+00H |
DB 08DH,040H,04H |
call cfa_USERminusALLOT+00H |
call cfa_TOUSERminusVALUEminusCODE+00H |
call cfa_COMPILEcom+00H |
DB 0C3H |
AHEADER 0 ,'USER',cfa_USER |
call cfa_USERminusCREATE+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04H |
DB 08DH,06DH,0FCH |
call cfa_USERminusALLOT+00H |
DB 0C3H |
AHEADER 0 ,'USER-CREATE',cfa_USERminusCREATE |
call cfa_HEADER+00H |
call cfa_HERE+00H |
call cfa_DOESgreatA+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_USERminusCODE+00H |
call cfa_COMPILEcom+00H |
call cfa_USERminusALIGNED+00H |
call cfa_USERminusALLOT+00H |
call cfa_com+00H |
DB 0C3H |
AHEADER 0 ,'USER-ALIGNED',cfa_USERminusALIGNED |
DB 089H,045H,0FCH |
DB 0A1H |
DD cfa_USERminusOFFS+05H |
DB 08DH,040H,03H |
DB 0C1H,0E8H,02H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 04H |
DB 0F7H,06DH,0F8H |
DB 089H,045H,0F8H |
DB 089H,045H,0F4H |
DB 0A1H |
DD cfa_USERminusOFFS+05H |
DB 0F7H,0D8H |
DB 03H,045H,0F4H |
DB 08DH,06DH,0F8H |
DB 0C3H |
AHEADER 0 ,'->VARIABLE',cfa_minusgreatVARIABLE |
call cfa_HEADER+00H |
call cfa_CREATEminusCODE+00H |
call cfa_COMPILEcom+00H |
call cfa_com+00H |
DB 0C3H |
AHEADER 0 ,'VECT',cfa_VECT |
call cfa_HEADER+00H |
call cfa_VECTminusCODE+00H |
call cfa_COMPILEcom+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_NOOP+00H |
call cfa_com+00H |
call cfa_TOVALUEminusCODE+00H |
call cfa_COMPILEcom+00H |
DB 0C3H |
AHEADER 0 ,'VALUE',cfa_VALUE |
call cfa_HEADER+00H |
call cfa_CONSTANTminusCODE+00H |
call cfa_COMPILEcom+00H |
call cfa_com+00H |
call cfa_TOVALUEminusCODE+00H |
call cfa_COMPILEcom+00H |
DB 0C3H |
AHEADER 0 ,'CONSTANT',cfa_CONSTANT |
call cfa_HEADER+00H |
call cfa_CONSTANTminusCODE+00H |
call cfa_COMPILEcom+00H |
call cfa_com+00H |
DB 0C3H |
AHEADER 0 ,'VARIABLE',cfa_VARIABLE |
call cfa_CREATE+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_com+00H |
DB 0C3H |
AHEADER 0 ,'VOCABULARY',cfa_VOCABULARY |
call cfa_WORDLIST+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_CREATE+00H |
call cfa_com+00H |
DB 089H,045H,0FCH |
mov eax,[T_CURRENT-main_task+edi] |
DB 08BH,00H |
DB 089H,045H,0F8H |
DB 08BH,045H,0FCH |
DB 08DH,040H,04H |
DB 08BH,055H,0F8H |
DB 089H,010H |
DB 08BH,045H,0FCH |
DB 089H,045H,0FCH |
mov eax,[T_CURRENT-main_task+edi] |
DB 08BH,055H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,0C2H |
DB 08BH,055H,0FCH |
DB 089H,050H,08H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_VOC+00H |
call cfa__cDOES1cend+00H |
call cfa__cDOES2cend+00H |
DB 08BH,00H |
call cfa__CONTEXT+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 1 ,'DOES>',cfa_DOESgreat |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa__cDOES1cend+00H |
call cfa_COMPILEcom+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa__cDOES2cend+00H |
call cfa_COMPILEcom+00H |
DB 0C3H |
AHEADER 0 ,'(DOES2)',cfa__cDOES2cend |
DB 083H,0EDH,04H |
DB 089H,045H,00H |
DB 05BH |
DB 058H |
DB 053H |
DB 0C3H |
AHEADER 0 ,'(DOES1)',cfa__cDOES1cend |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,06DH,0FCH |
call cfa_DOESgreatA+00H |
DB 08BH,00H |
call cfa_CFL+00H |
DB 03H,045H,00H |
DB 0F7H,0D8H |
DB 03H,045H,04H |
DB 08DH,06DH,08H |
call cfa_DOESgreatA+00H |
DB 08BH,00H |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'CREATE',cfa_CREATE |
call cfa_PARSEminusWORD+00H |
call cfa_CREATED+00H |
DB 0C3H |
AHEADER 0 ,'CREATED',cfa_CREATED |
call cfa_SHEADER+00H |
call cfa_HERE+00H |
call cfa_DOESgreatA+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
call cfa_CREATEminusCODE+00H |
call cfa_COMPILEcom+00H |
DB 0C3H |
AHEADER 0 ,'HEADER',cfa_HEADER |
call cfa_PARSEminusWORD+00H |
call cfa_SHEADER+00H |
DB 0C3H |
AHEADER 0 ,'_SHEADER',cfa__SHEADER |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_Ccom+00H |
call cfa_HERE+00H |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_com+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_LASTminusCFA+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08BH,055H,0CH |
DB 089H,045H,0CH |
DB 08BH,045H,08H |
DB 089H,055H,08H |
DB 08DH,06DH,08H |
call cfa_WARNING+00H |
DB 08BH,00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa__SHEADER+0B0H-$-4 |
DB 08BH,055H,00H |
DB 089H,045H,0FCH |
DB 089H,055H,0F8H |
DB 089H,045H,0F4H |
mov eax,[T_CURRENT-main_task+edi] |
DB 08DH,06DH,0F4H |
call cfa_SEARCHminusWORDLIST+00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0840FH |
DD cfa__SHEADER+0B0H-$-4 |
DB 08BH,045H,00H |
DB 08BH,055H,04H |
DB 089H,045H,00H |
DB 089H,055H,0FCH |
DB 08DH,06DH,0FCH |
call cfa_TYPE+00H |
call cfa__SLITERALminusCODE+00H |
DB 0DH |
DB ' isn''t unique',0 |
call cfa_TYPE+00H |
call cfa_CR+00H |
call cfa_CURRENT+00H |
DB 08BH,00H |
call cfa_SWORDcom+00H |
call cfa_ALIGN+00H |
call cfa_HERE+00H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'SHEADER',cfa_SHEADER |
call cfa__SHEADER+00H |
call cfa_REVEAL+00H |
DB 0C3H |
AHEADER 0 ,'REVEAL',cfa_REVEAL |
call cfa_LAST+00H |
DB 08BH,00H |
call cfa_CURRENT+00H |
DB 08BH,00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'LAST-NON',cfa_LASTminusNON |
call cfa__USERminusVALUEminusCODE+00H |
DD reserve+04H |
call cfa__TOUSERminusVALUEminusCODE+00H |
AHEADER 0 ,'LAST-CFA',cfa_LASTminusCFA |
call cfa__USERminusCODE+00H |
DD reserve+00H |
AHEADER 1 ,'ABORT"',cfa_ABORTdtic |
call cfa_queCOMP+00H |
call cfa_queCOMP+00H |
call cfa_Cdtic+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa__cABORTdticcend+00H |
call cfa_COMPILEcom+00H |
DB 0C3H |
AHEADER 1 ,'[CHAR]',cfa__xCHAR_y |
call cfa_queCOMP+00H |
call cfa_PARSEminusWORD+00H |
DB 08BH,045H,00H |
DB 0FH,0B6H,00H |
DB 08DH,06DH,04H |
call cfa_LITERAL+00H |
DB 0C3H |
AHEADER 1 ,'."',cfa_dotdtic |
call cfa_queCOMP+00H |
call cfa_Sdtic+00H |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_TYPE+00H |
call cfa_COMPILEcom+00H |
DB 0C3H |
AHEADER 1 ,'CLITERAL',cfa_CLITERAL |
call cfa_STATE+00H |
DB 08BH,00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_CLITERAL+016H |
DB 074H,05H |
call cfa_CLITcom+00H |
DB 0C3H |
AHEADER 1 ,'C"',cfa_Cdtic |
DB 089H,045H,0FCH |
DB 0B8H |
DD 022H |
DB 08DH,06DH,0FCH |
call cfa__WORD+00H |
call cfa_CLITERAL+00H |
DB 0C3H |
AHEADER 1 ,'S"',cfa_Sdtic |
DB 089H,045H,0FCH |
DB 0B8H |
DD 022H |
DB 08DH,06DH,0FCH |
call cfa_PARSE+00H |
call cfa_SLITERAL+00H |
DB 0C3H |
AHEADER 0 ,'PSLITERAL',cfa_PSLITERAL |
call cfa_STATE+00H |
DB 08BH,00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_PSLITERAL+016H |
DB 074H,05H |
call cfa_SLITcom+00H |
DB 0C3H |
AHEADER 1 ,'SLITERAL',cfa_SLITERAL |
call cfa_PSLITERAL+00H |
DB 0C3H |
AHEADER 1 ,'2LITERAL',cfa__2LITERAL |
call cfa_STATE+00H |
DB 08BH,00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa__2LITERAL+016H |
DB 074H,05H |
call cfa_DLITcom+00H |
DB 0C3H |
AHEADER 1 ,'LITERAL',cfa_LITERAL |
call cfa_STATE+00H |
DB 08BH,00H |
DB 0BH,0C0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;je cfa_LITERAL+016H |
DB 074H,05H |
call cfa_LITcom+00H |
DB 0C3H |
AHEADER 1 ,'['']',cfa__xtic_y |
call cfa_queCOMP+00H |
call cfa_tic+00H |
call cfa__xLIT_ycom+00H |
DB 0C3H |
AHEADER 0 ,'[LIT],',cfa__xLIT_ycom |
DB 089H,045H,0FCH |
DB 08DH,06DH,0FCH |
DB 08DH,05H |
DD cfa_DUP+00H |
call cfa_INLINEcom+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 058DH |
DB 08DH,06DH,0FCH |
call cfa_Wcom+00H |
call cfa_com+00H |
DB 0C3H |
AHEADER 0 ,'WINDOW',cfa_WINDOW |
call cfa_draw_window+00H |
call cfa_CC_LINES+00H |
DB 0C3H |
AHEADER 0 ,'FILE_STR',cfa_FILE_STR |
call cfa__CONSTANTminusCODE+00H |
DD 0F2H |
AHEADER 0 ,'.NAME',cfa_dotNAME |
DB 089H,045H,0FCH |
DB 0B8H |
DD 014H |
DB 03H,045H,0FCH |
DB 0C3H |
AHEADER 0 ,'.DATA',cfa_dotDATA |
DB 089H,045H,0FCH |
DB 0B8H |
DD 010H |
DB 03H,045H,0FCH |
DB 0C3H |
AHEADER 0 ,'.SIZE',cfa_dotSIZE |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0CH |
DB 03H,045H,0FCH |
DB 0C3H |
AHEADER 0 ,'.FIRST',cfa_dotFIRST |
DB 089H,045H,0FCH |
DB 0B8H |
DD 04H |
DB 03H,045H,0FCH |
DB 0C3H |
AHEADER 0 ,'.CODE',cfa_dotCODE |
DB 0C3H |
AHEADER 0 ,'EVENT-CASE',cfa_EVENTminusCASE |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0BH |
DB 0CDH,040H |
DB 03DH |
DD 01H |
DB 08DH,06DH,0FCH |
;jne cfa_EVENTminusCASE+020H |
DB 075H,0CH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_REDRAW+00H |
DB 0C3H |
DB 03DH |
DD 02H |
;jne cfa_EVENTminusCASE+04EH |
DB 075H,027H |
DB 0B8H |
DD 02H |
DB 0CDH,040H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08H |
DB 08BH,0C8H |
DB 08BH,045H,0FCH |
DB 0D3H,0E8H |
call cfa_and_KEY+00H |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
DB 03DH |
DD 03H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jne cfa_EVENTminusCASE+069H |
DB 075H,0EH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFFFFFH |
DB 0CDH,040H |
DB 08DH,06DH,0FCH |
DB 0C3H |
DB 0C3H |
AHEADER 0 ,'REDRAW',cfa_REDRAW |
call cfa_draw_window+00H |
call cfa_DRAW_LINS+00H |
call cfa_CORSOR_DROW+00H |
DB 0C3H |
AHEADER 0 ,'CORSOR_DROW',cfa_CORSOR_DROW |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_LAST_CUR+00H |
DB 08BH,050H,04H |
DB 089H,055H,0FCH |
DB 08BH,00H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 026H |
DB 08BH,055H,00H |
DB 08BH,04DH,0FCH |
DB 08BH,05DH,0F8H |
DB 0CDH,040H |
DB 0B8H |
DD 0FF00FFH |
DB 08DH,06DH,04H |
call cfa_and_ATminusXY+00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0DH |
DB 0F7H,06DH,0FCH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 021H |
DB 03H,045H,0FCH |
DB 089H,045H,0FCH |
DB 089H,045H,0F8H |
DB 0B8H |
DD 010H |
DB 08BH,0C8H |
DB 08BH,045H,0F8H |
DB 0D3H,0E0H |
DB 03H,045H,0FCH |
call cfa_and_ATminusXY+00H |
DB 0FH,0B7H,040H,02H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 06H |
DB 0F7H,06DH,0FCH |
DB 089H,045H,0FCH |
DB 0B8H |
DD 06H |
DB 03H,045H,0FCH |
DB 089H,045H,0FCH |
DB 08DH,040H,06H |
DB 089H,045H,0F8H |
DB 0B8H |
DD 010H |
DB 08BH,0C8H |
DB 08BH,045H,0F8H |
DB 0D3H,0E0H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,045H,0FCH |
DB 089H,055H,0F8H |
DB 08DH,06DH,0F8H |
call cfa_LAST_CUR+00H |
call cfa__2save+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 026H |
DB 08BH,055H,04H |
DB 08BH,04DH,00H |
DB 08BH,05DH,0FCH |
DB 0CDH,040H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
DB 0C3H |
AHEADER 0 ,'LAST_CUR',cfa_LAST_CUR |
call cfa__CREATEminusCODE+00H |
DD 00H |
DB 00H |
DB 00H,00H,00H |
AHEADER 0 ,'_PAGE-UP',cfa__PAGEminusUP |
call cfa_draw_window+00H |
call cfa___PAGEminusUP+00H |
call cfa_DRAW_LINS+00H |
DB 0C3H |
AHEADER 0 ,'DRAW_LINS',cfa_DRAW_LINS |
DB 089H,045H,0FCH |
DB 0B8H |
DD cfa_PAGEminusUP+00H |
DB 08BH,040H,05H |
DB 089H,045H,0F8H |
DB 0B8H |
DD cfa_NOOP+00H |
DB 08DH,06DH,0F8H |
call cfa_PAGEminusUP+09H |
call cfa_ATminusXYque+00H |
DB 089H,045H,0FCH |
DB 0C7H,045H,0F8H |
DD 00H |
DB 033H,0C0H |
DB 08DH,06DH,0F8H |
call cfa_ATminusXY+00H |
call cfa_SCR_BUF+00H |
call cfa_SCR_WIDTH+00H |
call cfa_SCR_HEIGHT+00H |
DB 0F7H,06DH,00H |
DB 03H,045H,04H |
DB 08BH,055H,04H |
DB 089H,045H,04H |
DB 08BH,0C2H |
DB 0BAH |
DD 080000000H |
DB 02BH,055H,04H |
DB 08DH,01CH,02H |
DB 08BH,045H,08H |
DB 08DH,06DH,0CH |
DB 068H |
DD cfa_DRAW_LINS+0A0H |
DB 052H |
DB 053H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 090H |
DB 089H,045H,0FCH |
DB 08BH,04H,024H |
DB 02BH,044H,024H,04H |
DB 08DH,06DH,0FCH |
call cfa_SCR_WIDTH+00H |
call cfa_SCR_TYPE+00H |
call cfa_SCR_WIDTH+00H |
DB 01H,04H,024H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
;jno cfa_DRAW_LINS+075H |
DB 071H,0D9H |
DB 08DH,064H,024H,0CH |
call cfa_ATminusXY+00H |
call cfa_PAGEminusUP+09H |
DB 0C3H |
AHEADER 0 ,'SCR_TYPE',cfa_SCR_TYPE |
DB 08BH,055H,00H |
DB 089H,055H,0FCH |
DB 089H,045H,00H |
DB 08BH,055H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,0C2H |
DB 08DH,06DH,0FCH |
call cfa_and_ATRIB+00H |
DB 08BH,00H |
call cfa_and_ATminusXY+00H |
DB 0FH,0B7H,040H,02H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 060000H |
DB 0F7H,06DH,0FCH |
call cfa_and_ATminusXY+00H |
DB 0FH,0B7H,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0DH |
DB 0F7H,06DH,0FCH |
DB 03H,045H,00H |
DB 08DH,080H |
DD 060018H |
DB 089H,045H,00H |
DB 0B8H |
DD 04H |
call cfa_SYS5+00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_quePAGEminusUP+00H |
DB 0C3H |
AHEADER 0 ,'SCR_CR',cfa_SCR_CR |
call cfa_and_ATminusXY+00H |
DB 08BH,00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 0FFFFH |
DB 023H,045H,0FCH |
DB 08DH,040H,01H |
call cfa_and_ATminusXY+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 033H,0C0H |
DB 08DH,06DH,04H |
call cfa_quePAGEminusUP+00H |
DB 0C3H |
AHEADER 0 ,'?PAGE-UP',cfa_quePAGEminusUP |
call cfa_and_ATminusXY+00H |
DB 08DH,040H,02H |
DB 0FH,0B7H,00H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
call cfa_SCR_WIDTH+00H |
DB 08BH,0C8H |
DB 08BH,045H,00H |
DB 099H |
DB 0F7H,0F9H |
DB 089H,055H,00H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
call cfa_and_ATminusXY+00H |
DB 08DH,040H,02H |
call cfa_Wsave+00H |
call cfa_and_ATminusXY+00H |
DB 0FH,0B7H,00H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
call cfa_SCR_HEIGHT+00H |
DB 08BH,0C8H |
DB 08BH,045H,00H |
DB 099H |
DB 0F7H,0F9H |
DB 0BH,0C0H |
DB 08BH,0C2H |
DB 08DH,06DH,04H |
;je cfa_quePAGEminusUP+06DH |
DB 074H,013H |
call cfa_PAGEminusUP+00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_SCR_HEIGHT+00H |
DB 08DH,040H,0FFH |
call cfa_and_ATminusXY+00H |
call cfa_Wsave+00H |
DB 0C3H |
AHEADER 0 ,'PAGE-UP',cfa_PAGEminusUP |
call cfa__VECTminusCODE+00H |
DD cfa__PAGEminusUP+00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'__PAGE-UP',cfa___PAGEminusUP |
call cfa_SCR_BUF+00H |
call cfa_SCR_WIDTH+00H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
call cfa_SCR_BUF+00H |
call cfa_SCR_WIDTH+00H |
call cfa_SCR_HEIGHT+00H |
DB 0F7H,06DH,00H |
DB 08DH,06DH,04H |
call cfa_CMOVE+00H |
call cfa_SCR_BUF+00H |
call cfa_SCR_WIDTH+00H |
call cfa_SCR_HEIGHT+00H |
DB 08DH,040H,0FFH |
DB 0F7H,06DH,00H |
DB 03H,045H,04H |
DB 08DH,06DH,08H |
call cfa_SCR_WIDTH+00H |
call cfa_BLANK+00H |
call cfa_ATminusXYque+00H |
DB 08DH,040H,0FFH |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_MAX+00H |
call cfa_ATminusXY+00H |
DB 0C3H |
AHEADER 0 ,'AT-XY?',cfa_ATminusXYque |
call cfa_and_ATminusXY+00H |
DB 08DH,040H,02H |
DB 0FH,0B7H,00H |
call cfa_and_ATminusXY+00H |
DB 0FH,0B7H,00H |
DB 0C3H |
AHEADER 0 ,'AT-XY',cfa_ATminusXY |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 089H,055H,0FCH |
DB 0B8H |
DD 010H |
DB 08BH,0C8H |
DB 08BH,045H,0FCH |
DB 0D3H,0E0H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
call cfa_and_ATminusXY+00H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'SCR_BUF',cfa_SCR_BUF |
call cfa__CREATEminusCODE+00H |
DD 00H |
DB 00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H,00H,00H,00H,00H,00H |
DB 00H,00H,00H |
AHEADER 0 ,'>PIC',cfa_greatPIC |
call cfa__CONSTANTminusCODE+00H |
DD 011000DH |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'&ATRIB',cfa_and_ATRIB |
call cfa__CREATEminusCODE+00H |
DD 0FFFFH |
AHEADER 0 ,'&KEY',cfa_and_KEY |
call cfa__CREATEminusCODE+00H |
DD 00H |
AHEADER 0 ,'&AT-XY',cfa_and_ATminusXY |
call cfa__CREATEminusCODE+00H |
DD 00H |
DB 00H |
DB 00H,00H,00H |
AHEADER 0 ,'SCR_HEIGHT',cfa_SCR_HEIGHT |
call cfa__CONSTANTminusCODE+00H |
DD 019H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'SCR_WIDTH-S',cfa_SCR_WIDTHminusS |
call cfa__CONSTANTminusCODE+00H |
DD 03CH |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'SCR_WIDTH',cfa_SCR_WIDTH |
call cfa__CONSTANTminusCODE+00H |
DD 050H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'SYSV',cfa_SYSV |
DB 08DH,06DH,0FCH |
DB 089H,045H,00H |
DB 0B8H |
DD cfa_reg_struc+00H |
DB 057H |
DB 08BH,078H,014H |
DB 08BH,070H,010H |
DB 08BH,050H,0CH |
DB 08BH,048H,08H |
DB 08BH,058H,04H |
DB 08BH,00H |
DB 0CDH,040H |
DB 05FH |
DB 0C3H |
AHEADER 0 ,'reg_struc',cfa_reg_struc |
call cfa__CREATEminusCODE+00H |
DD 00H |
AHEADER 0 ,'SYS6',cfa_SYS6 |
DB 057H |
DB 08BH,07DH,010H |
DB 08BH,075H,0CH |
DB 08BH,055H,08H |
DB 08BH,04DH,04H |
DB 08BH,05DH,00H |
DB 0CDH,040H |
DB 08DH,06DH,014H |
DB 05FH |
DB 0C3H |
AHEADER 0 ,'SYS5',cfa_SYS5 |
DB 08BH,075H,0CH |
DB 08BH,055H,08H |
DB 08BH,04DH,04H |
DB 08BH,05DH,00H |
DB 0CDH,040H |
DB 08DH,06DH,010H |
DB 0C3H |
AHEADER 0 ,'SYS4',cfa_SYS4 |
DB 08BH,055H,08H |
DB 08BH,04DH,04H |
DB 08BH,05DH,00H |
DB 0CDH,040H |
DB 08DH,06DH,0CH |
DB 0C3H |
AHEADER 0 ,'SYS3',cfa_SYS3 |
DB 08BH,04DH,04H |
DB 08BH,05DH,00H |
DB 0CDH,040H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'SYS2',cfa_SYS2 |
DB 08BH,05DH,00H |
DB 0CDH,040H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'SYS1',cfa_SYS1 |
DB 0CDH,040H |
DB 0C3H |
AHEADER 0 ,'R/W',cfa_R_divW |
call cfa__CONSTANTminusCODE+00H |
DD 0C0000000H |
AHEADER 0 ,'W/O',cfa_W_divO |
call cfa__CONSTANTminusCODE+00H |
DD 040000000H |
AHEADER 0 ,'R/O',cfa_R_divO |
call cfa__CONSTANTminusCODE+00H |
DD 080000000H |
AHEADER 0 ,'OFF',cfa_OFF |
DB 0C7H,00H |
DD 00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'ON',cfa_ON |
call cfa_TRUE+00H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'2NIP',cfa__2NIP |
call cfa__2SWAP+00H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'U/MOD',cfa_U_divMOD |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08BH,055H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,0C2H |
DB 08DH,06DH,0FCH |
call cfa_UM_divMOD+00H |
DB 0C3H |
AHEADER 0 ,'2CONSTANT',cfa__2CONSTANT |
call cfa_CREATE+00H |
call cfa_HERE+00H |
call cfa__2save+00H |
DB 089H,045H,0FCH |
DB 0B8H |
DD 08H |
DB 08DH,06DH,0FCH |
call cfa_ALLOT+00H |
call cfa__cDOES1cend+00H |
call cfa__cDOES2cend+00H |
DB 08BH,050H,04H |
DB 089H,055H,0FCH |
DB 08BH,00H |
DB 08DH,06DH,0FCH |
DB 0C3H |
AHEADER 1 ,'>R',cfa_greatR |
DB 089H,045H,0FCH |
DB 0B8H |
DD cfa_CminusgreatR+00H |
DB 08DH,06DH,0FCH |
call cfa_INLINEcom+00H |
DB 0C3H |
AHEADER 1 ,'R>',cfa_Rgreat |
DB 089H,045H,0FCH |
DB 0B8H |
DD cfa_CminusRgreat+00H |
DB 08DH,06DH,0FCH |
call cfa_INLINEcom+00H |
DB 0C3H |
AHEADER 0 ,'ASCIIZ>',cfa_ASCIIZgreat |
call cfa_ZCOUNT+00H |
DB 0C3H |
AHEADER 0 ,'0MAX',cfa__0MAX |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_MAX+00H |
DB 0C3H |
AHEADER 0 ,'ASCII-Z',cfa_ASCIIminusZ |
DB 050H |
call cfa_dolsave+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,050H,01H |
DB 089H,055H,0F8H |
DB 0FH,0B6H,00H |
DB 03H,045H,0F8H |
DB 089H,045H,0F4H |
DB 033H,0C0H |
DB 08BH,055H,0F4H |
DB 089H,045H,0F4H |
DB 08BH,0C2H |
DB 08BH,055H,0F4H |
DB 088H,010H |
DB 08BH,045H,0F8H |
DB 08DH,06DH,0FCH |
DB 0C3H |
AHEADER 0 ,'$!',cfa_dolsave |
call cfa_PLACE+00H |
DB 0C3H |
AHEADER 0 ,'DOES-CODE',cfa_DOESminusCODE |
call cfa__CONSTANTminusCODE+00H |
DD 00H |
call cfa__TOVALUEminusCODE+00H |
AHEADER 0 ,'STR>R',cfa_STRgreatR |
DB 0C3H |
AHEADER 0 ,'C+PLACE',cfa_CplusPLACE |
DB 089H,045H,0FCH |
DB 0FFH,00H |
DB 08BH,045H,0FCH |
DB 08DH,050H,01H |
DB 089H,055H,0FCH |
DB 0FH,0B6H,00H |
DB 03H,045H,0FCH |
DB 08DH,040H,0FFH |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'+PLACE',cfa_plusPLACE |
DB 050H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
call cfa_dticCLIPdtic+00H |
call cfa_MAXCOUNTED+00H |
DB 089H,045H,0FCH |
DB 08BH,04H,024H |
DB 0FH,0B6H,00H |
DB 0F7H,0D8H |
DB 03H,045H,0FCH |
call cfa_MIN+00H |
DB 089H,045H,0FCH |
DB 058H |
DB 08BH,055H,0FCH |
DB 089H,045H,0F8H |
DB 089H,055H,0F4H |
DB 08DH,06DH,0F4H |
call cfa__2greatR+00H |
DB 08DH,050H,01H |
DB 089H,055H,0FCH |
DB 0FH,0B6H,00H |
DB 03H,045H,0FCH |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
call cfa_MOVE+00H |
call cfa__2Rgreat+00H |
DB 08BH,055H,00H |
DB 01H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'PLACE',cfa_PLACE |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
call cfa_dticCLIPdtic+00H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 08BH,055H,00H |
DB 089H,045H,0FCH |
DB 089H,055H,0F8H |
DB 08BH,055H,0F8H |
DB 088H,010H |
DB 08BH,045H,0FCH |
DB 08DH,040H,01H |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
call cfa_MOVE+00H |
DB 0C3H |
AHEADER 0 ,'"CLIP"',cfa_dticCLIPdtic |
call cfa_MAXCOUNTED+00H |
DB 023H,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'MAXCOUNTED',cfa_MAXCOUNTED |
call cfa__CONSTANTminusCODE+00H |
DD 0FFH |
AHEADER 0 ,'DABS',cfa_DABS |
DB 0BH,0C0H |
;jge cfa_DABS+011H |
DB 07DH,0DH |
DB 08BH,055H,00H |
DB 0F7H,0D8H |
DB 0F7H,0DAH |
DB 083H,0D8H,00H |
DB 089H,055H,00H |
DB 0C3H |
AHEADER 0 ,'BLANK',cfa_BLANK |
call cfa_BL+00H |
call cfa_FILL+00H |
DB 0C3H |
AHEADER 0 ,'ERASE',cfa_ERASE |
DB 089H,045H,0FCH |
DB 033H,0C0H |
DB 08DH,06DH,0FCH |
call cfa_FILL+00H |
DB 0C3H |
AHEADER 0 ,'MOVE',cfa_MOVE |
DB 050H |
DB 08BH,045H,00H |
DB 08BH,055H,04H |
DB 089H,045H,00H |
DB 089H,055H,0FCH |
DB 08BH,055H,0FCH |
DB 089H,045H,0FCH |
DB 08BH,0C2H |
DB 089H,045H,0F8H |
DB 08BH,04H,024H |
DB 03H,045H,0F8H |
DB 03BH,045H,0FCH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DW 0860FH |
DD cfa_MOVE+052H-$-4 |
DB 03BH,045H,00H |
DW 0860FH |
DD cfa_MOVE+044H-$-4 |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,06DH,0FCH |
call cfa_CMOVEgreat+00H |
DB 0EBH,0CH |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,06DH,0FCH |
call cfa_CMOVE+00H |
DB 0EBH,0CH |
DB 089H,045H,0FCH |
DB 058H |
DB 08DH,06DH,0FCH |
call cfa_CMOVE+00H |
DB 0C3H |
AHEADER 1 ,'CHARS',cfa_CHARS |
DB 0C3H |
AHEADER 0 ,'CHAR+',cfa_CHARplus |
DB 08DH,040H,01H |
DB 0C3H |
AHEADER 0 ,'*/',cfa__mul_div |
call cfa__mul_divMOD+00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'CELL',cfa_CELL |
call cfa__CONSTANTminusCODE+00H |
DD 04H |
AHEADER 0 ,'TRUE',cfa_TRUE |
call cfa__CONSTANTminusCODE+00H |
DD 0FFFFFFFFH |
AHEADER 0 ,'FALSE',cfa_FALSE |
call cfa__CONSTANTminusCODE+00H |
DD 00H |
AHEADER 0 ,'TRAP-CODE',cfa_TRAPminusCODE |
DB 05AH |
DB 05EH |
DB 0BH,0F6H |
DW 0840FH |
DD cfa_TRAPminusCODE+022H-$-4 |
DB 08DH,034H,0B5H |
DD 00H |
DB 08BH,0CEH |
DB 08BH,05CH,034H,0FCH |
DB 089H,05CH,035H,0FCH |
DB 083H,0EEH,04H |
;jne cfa_TRAPminusCODE+013H |
DB 075H,0F3H |
DB 03H,0E1H |
DB 0FFH,0E2H |
AHEADER 0 ,'TIMER@',cfa_TIMER_ld |
DB 089H,045H,0FCH |
DB 0FH,031H |
DB 089H,055H,0F8H |
DB 08DH,06DH,0F8H |
DB 087H,045H,00H |
DB 0C3H |
AHEADER 0 ,'(LocalsExit)',cfa__cLocalsExitcend |
DB 05BH |
DB 03H,0E3H |
DB 0C3H |
AHEADER 0 ,'RFREE',cfa_RFREE |
DB 05AH |
DB 08DH,024H,084H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0FFH,0E2H |
AHEADER 0 ,'(RALLOT)',cfa__cRALLOTcend |
DB 05AH |
DB 08BH,0C8H |
DB 033H,0C0H |
DB 050H |
DB 049H |
;jne cfa__cRALLOTcend+05H |
DB 075H,0FCH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0FFH,0E2H |
AHEADER 0 ,'RALLOT',cfa_RALLOT |
DB 05AH |
DB 08BH,0C8H |
DB 033H,0C0H |
DB 050H |
DB 049H |
;jne cfa_RALLOT+05H |
DB 075H,0FCH |
DB 08BH,0C4H |
DB 0FFH,0E2H |
AHEADER 0 ,'RP+!',cfa_RPplussave |
DB 08BH,05DH,00H |
DB 089H,05CH,04H,04H |
DB 08DH,06DH,08H |
DB 08BH,045H,0FCH |
DB 0C3H |
AHEADER 0 ,'RP+',cfa_RPplus |
DB 08DH,044H,04H,04H |
DB 0C3H |
AHEADER 0 ,'RP+@',cfa_RPplus_ld |
DB 08BH,044H,04H,04H |
DB 0C3H |
AHEADER 0 ,'NRCOPY',cfa_NRCOPY |
DB 08BH,0C8H |
DB 08DH,0CH,08DH |
DD 00H |
DB 05AH |
DB 0E3H,0BH |
DB 08BH,0F1H |
DB 0FFH,074H,035H,0FCH |
DB 083H,0EEH,04H |
;jne cfa_NRCOPY+0EH |
DB 075H,0F7H |
DB 050H |
DB 0FFH,0E2H |
AHEADER 0 ,'N>R',cfa_NgreatR |
DB 08DH,06DH,0FCH |
DB 089H,045H,00H |
DB 08DH,04H,085H |
DD 04H |
DB 05AH |
DB 08BH,0F0H |
DB 0FFH,074H,02EH,0FCH |
DB 083H,0EEH,04H |
;jne cfa_NgreatR+010H |
DB 075H,0F7H |
DB 03H,0E8H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0FFH,0E2H |
AHEADER 0 ,'NR>',cfa_NRgreat |
DB 05AH |
DB 08DH,06DH,0FCH |
DB 089H,045H,00H |
DB 058H |
DB 0BH,0C0H |
DW 0850FH |
DD cfa_NRgreat+012H-$-4 |
DB 0FFH,0E2H |
DB 08DH,04H,085H |
DD 00H |
DB 08BH,0F0H |
DB 08BH,0DDH |
DB 02BH,0DEH |
DB 08FH,03H |
DB 083H,0EEH,04H |
;jne cfa_NRgreat+01BH |
DB 075H,0F5H |
DB 02BH,0E8H |
DB 0C1H,0F8H,02H |
DB 0FFH,0E2H |
AHEADER 0 ,'DRMOVE',cfa_DRMOVE |
DB 05AH |
DB 08BH,0F0H |
DB 0FFH,074H,02EH,0FCH |
DB 083H,0EEH,04H |
;jne cfa_DRMOVE+03H |
DB 075H,0F7H |
DB 03H,0E8H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0FFH,0E2H |
AHEADER 0 ,'@EXECUTE',cfa__ldEXECUTE |
DB 08BH,0D8H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0FFH,023H |
AHEADER 0 ,'EXECUTE',cfa_EXECUTE |
DB 08BH,0D8H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0FFH,0E3H |
AHEADER 0 ,'C-EXECUTE',cfa_CminusEXECUTE |
DB 08BH,0D0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0FFH,0D2H |
DB 0C3H |
AHEADER 0 ,'C-3RDROP',cfa_Cminus3RDROP |
DB 083H,0C4H,0CH |
DB 0C3H |
AHEADER 0 ,'C-2RDROP',cfa_Cminus2RDROP |
DB 083H,0C4H,08H |
DB 0C3H |
AHEADER 0 ,'C-RDROP',cfa_CminusRDROP |
DB 083H,0C4H,04H |
DB 0C3H |
AHEADER 0 ,'C-R>',cfa_CminusRgreat |
DB 08DH,06DH,0FCH |
DB 089H,045H,00H |
DB 058H |
DB 0C3H |
AHEADER 0 ,'C->R',cfa_CminusgreatR |
DB 050H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'C-I',cfa_CminusI |
DB 08DH,06DH,0FCH |
DB 089H,045H,00H |
DB 08BH,04H,024H |
DB 02BH,044H,024H,04H |
DB 0C3H |
AHEADER 0 ,'ADD[ESP],EAX',cfa_ADD_xESP_ycomEAX |
DB 01H,04H,024H |
DB 0C3H |
AHEADER 0 ,'C-?DO',cfa_CminusqueDO |
DB 03BH,045H,0F8H |
;jne cfa_CminusqueDO+0AH |
DB 075H,05H |
DB 08BH,045H,0FCH |
DB 0FFH,0E3H |
DB 053H |
DB 0BBH |
DD 080000000H |
DB 02BH,05DH,0F8H |
DB 053H |
DB 03H,0D8H |
DB 053H |
DB 08BH,045H,0FCH |
DB 0C3H |
AHEADER 0 ,'C-DO',cfa_CminusDO |
DB 08DH,06DH,08H |
DB 0BAH |
DD 080000000H |
DB 02BH,055H,0F8H |
DB 08DH,01CH,02H |
DB 08BH,045H,0FCH |
DB 08BH,0D2H |
DB 0C3H |
AHEADER 0 ,'C-J',cfa_CminusJ |
DB 08DH,06DH,0FCH |
DB 089H,045H,00H |
DB 08BH,044H,024H,0CH |
DB 02BH,044H,024H,010H |
DB 0C3H |
AHEADER 0 ,'TlsIndex@',cfa_TlsIndex_ld |
DB 08DH,06DH,0FCH |
DB 089H,045H,00H |
DB 08BH,0C7H |
DB 0C3H |
AHEADER 0 ,'TlsIndex!',cfa_TlsIndexsave |
DB 08BH,0F8H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'RP@',cfa_RP_ld |
DB 08DH,06DH,0FCH |
DB 089H,045H,00H |
DB 08DH,044H,024H,04H |
DB 0C3H |
AHEADER 0 ,'SP@',cfa_SP_ld |
DB 08DH,06DH,0FCH |
DB 089H,045H,00H |
DB 08BH,0C5H |
DB 0C3H |
AHEADER 0 ,'RP!',cfa_RPsave |
DB 05BH |
DB 08BH,0E0H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0FFH,0E3H |
AHEADER 0 ,'SP!',cfa_SPsave |
DB 08DH,068H,04H |
DB 08BH,045H,0FCH |
DB 0C3H |
AHEADER 0 ,'ZCOUNT',cfa_ZCOUNT |
DB 08DH,06DH,0FCH |
DB 089H,045H,00H |
DB 033H,0DBH |
DB 08AH,018H |
DB 040H |
DB 0AH,0DBH |
;jne cfa_ZCOUNT+08H |
DB 075H,0F9H |
DB 048H |
DB 02BH,045H,00H |
DB 0C3H |
AHEADER 0 ,'FILL',cfa_FILL |
DB 08BH,0D7H |
DB 08BH,04DH,00H |
DB 08BH,07DH,04H |
DB 0FCH |
DB 0F3H,0AAH |
DB 08BH,0FAH |
DB 08DH,06DH,0CH |
DB 08BH,045H,0FCH |
DB 0C3H |
AHEADER 0 ,'CMOVE>',cfa_CMOVEgreat |
DB 08BH,0D7H |
DB 08BH,0C8H |
DB 08BH,07DH,00H |
DB 08BH,075H,04H |
DB 0FDH |
DB 03H,0F9H |
DB 04FH |
DB 03H,0F1H |
DB 04EH |
DB 0F3H,0A4H |
DB 08BH,0FAH |
DB 08DH,06DH,0CH |
DB 08BH,045H,0FCH |
DB 0C3H |
AHEADER 0 ,'QCMOVE',cfa_QCMOVE |
call cfa_CMOVE+00H |
DB 0C3H |
AHEADER 0 ,'CMOVE',cfa_CMOVE |
DB 08BH,0D7H |
DB 08BH,0C8H |
DB 08BH,07DH,00H |
DB 08BH,075H,04H |
DB 0FCH |
DB 0F3H,0A4H |
DB 08DH,06DH,0CH |
DB 08BH,045H,0FCH |
DB 08BH,0FAH |
DB 0C3H |
AHEADER 0 ,'SEARCH',cfa_SEARCH |
DB 08DH,06DH,0FCH |
DB 089H,045H,00H |
DB 057H |
DB 0FCH |
DB 08BH,05DH,00H |
DB 0BH,0DBH |
;je cfa_SEARCH+044H |
DB 074H,035H |
DB 08BH,055H,08H |
DB 08BH,07DH,0CH |
DB 03H,0D7H |
DB 08BH,075H,04H |
DB 0ACH |
DB 08BH,0CAH |
DB 02BH,0CFH |
DB 0E3H,02AH |
DB 0F2H |
DB 0AEH |
;jne cfa_SEARCH+04BH |
DB 075H,026H |
DB 083H,0FBH,01H |
;je cfa_SEARCH+03BH |
DB 074H,011H |
DB 08BH,0CBH |
DB 049H |
DB 08BH,0C2H |
DB 02BH,0C7H |
DB 03BH,0C1H |
;jb cfa_SEARCH+04BH |
DB 072H,016H |
DB 057H |
DB 0F3H,0A6H |
DB 05FH |
;jne cfa_SEARCH+017H |
DB 075H,0DCH |
DB 04FH |
DB 02BH,0D7H |
DB 089H,07DH,0CH |
DB 089H,055H,08H |
DB 0B8H |
DD 0FFFFFFFFH |
DB 0EBH,02H |
DB 033H,0C0H |
DB 08DH,06DH,04H |
DB 089H,045H,00H |
DB 05FH |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'COMPARE',cfa_COMPARE |
DB 057H |
DB 08BH,0C8H |
DB 02BH,0C0H |
DB 03BH,04DH,04H |
;je cfa_COMPARE+013H |
DB 074H,09H |
;jae cfa_COMPARE+0FH |
DB 073H,03H |
DB 040H |
DB 0EBH,04H |
DB 048H |
DB 08BH,04DH,04H |
DB 08BH,075H,08H |
DB 08BH,07DH,00H |
DB 0F3H,0A6H |
;je cfa_COMPARE+02BH |
DB 074H,0EH |
;jb cfa_COMPARE+026H |
DB 072H,07H |
DB 0B8H |
DD 01H |
DB 0EBH,05H |
DB 0B8H |
DD 0FFFFFFFFH |
DB 08DH,06DH,0CH |
DB 05FH |
DB 0C3H |
AHEADER 0 ,'-TRAILING',cfa_minusTRAILING |
DB 057H |
DB 08BH,0C8H |
DB 0E3H,011H |
DB 08BH,07DH,00H |
DB 03H,0F9H |
DB 04FH |
DB 0B0H,020H |
DB 0FDH |
DB 0F3H,0AEH |
;je cfa_minusTRAILING+013H |
DB 074H,01H |
DB 041H |
DB 0FCH |
DB 08BH,0C1H |
DB 05FH |
DB 0C3H |
AHEADER 0 ,'D2/',cfa_D2_div |
DB 0D1H,0F8H |
DB 0D1H,05DH,00H |
DB 0C3H |
AHEADER 0 ,'D2*',cfa_D2_mul |
DB 0D1H,065H,00H |
DB 0D1H,0D0H |
DB 0C3H |
AHEADER 0 ,'D=',cfa_D_equ |
DB 08BH,055H,00H |
DB 033H,045H,04H |
DB 033H,055H,08H |
DB 0BH,0C2H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 08DH,06DH,0CH |
DB 0C3H |
AHEADER 0 ,'D0=',cfa_D0_equ |
DB 0BH,045H,00H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'0<>',cfa__0lessgreat |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 0C3H |
AHEADER 0 ,'0=',cfa__0_equ |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 0C3H |
AHEADER 0 ,'0<',cfa__0less |
DB 0C1H,0F8H,01FH |
DB 0C3H |
AHEADER 0 ,'U>',cfa_Ugreat |
DB 03BH,045H,00H |
DB 01BH,0C0H |
DB 083H,0C5H,04H |
DB 0C3H |
AHEADER 0 ,'U<',cfa_Uless |
DB 039H,045H,00H |
DB 01BH,0C0H |
DB 083H,0C5H,04H |
DB 0C3H |
AHEADER 0 ,'D>',cfa_Dgreat |
DB 08BH,05DH,00H |
DB 03BH,05DH,08H |
DB 01BH,045H,04H |
DB 0C1H,0F8H,01FH |
DB 083H,0C5H,0CH |
DB 0C3H |
AHEADER 0 ,'D<',cfa_Dless |
DB 08BH,05DH,00H |
DB 039H,05DH,08H |
DB 019H,045H,04H |
DB 0B8H |
DD 00H |
;jge cfa_Dless+011H |
DB 07DH,01H |
DB 048H |
DB 083H,0C5H,0CH |
DB 0C3H |
AHEADER 0 ,'WITHIN',cfa_WITHIN |
DB 08BH,05DH,04H |
DB 02BH,045H,00H |
DB 02BH,05DH,00H |
DB 02BH,0D8H |
DB 01BH,0C0H |
DB 083H,0C5H,08H |
DB 0C3H |
AHEADER 0 ,'>',cfa_great |
DB 03BH,045H,00H |
DB 0FH,09DH,0C0H |
DB 083H,0E0H,01H |
DB 048H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'<',cfa_less |
DB 039H,045H,00H |
DB 0FH,09DH,0C0H |
DB 083H,0E0H,01H |
DB 048H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'<>',cfa_lessgreat |
DB 033H,045H,00H |
DB 0F7H,0D8H |
DB 01BH,0C0H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'=',cfa__equ |
DB 033H,045H,00H |
DB 083H,0E8H,01H |
DB 01BH,0C0H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'FM/MOD',cfa_FM_divMOD |
DB 08BH,0C8H |
DB 08BH,055H,00H |
DB 08BH,0DAH |
DB 08BH,045H,04H |
DB 0F7H,0F9H |
DB 085H,0D2H |
;je cfa_FM_divMOD+017H |
DB 074H,07H |
DB 033H,0D9H |
;jns cfa_FM_divMOD+017H |
DB 079H,03H |
DB 048H |
DB 03H,0D1H |
DB 08DH,06DH,04H |
DB 089H,055H,00H |
DB 0C3H |
AHEADER 0 ,'SM/REM',cfa_SM_divREM |
DB 08BH,0D8H |
DB 08BH,055H,00H |
DB 08BH,045H,04H |
DB 0F7H,0FBH |
DB 08DH,06DH,04H |
DB 089H,055H,00H |
DB 0C3H |
AHEADER 0 ,'RSHIFT',cfa_RSHIFT |
DB 08BH,0C8H |
DB 08BH,045H,00H |
DB 0D3H,0E8H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'LSHIFT',cfa_LSHIFT |
DB 08BH,0C8H |
DB 08BH,045H,00H |
DB 0D3H,0E0H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'M*',cfa_M_mul |
DB 0F7H,06DH,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 0C3H |
AHEADER 0 ,'*/MOD',cfa__mul_divMOD |
DB 08BH,0D8H |
DB 08BH,045H,00H |
DB 08BH,04DH,04H |
DB 0F7H,0E9H |
DB 0F7H,0FBH |
DB 089H,055H,04H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'2/',cfa__2_div |
DB 0D1H,0F8H |
DB 0C3H |
AHEADER 0 ,'UM/MOD',cfa_UM_divMOD |
DB 08BH,0C8H |
DB 08BH,055H,00H |
DB 08BH,045H,04H |
DB 0F7H,0F1H |
DB 08DH,06DH,04H |
DB 089H,055H,00H |
DB 0C3H |
AHEADER 0 ,'UMOD',cfa_UMOD |
DB 08BH,0C8H |
DB 033H,0D2H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0F7H,0F1H |
DB 08BH,0C2H |
DB 0C3H |
AHEADER 0 ,'/MOD',cfa__divMOD |
DB 08BH,0C8H |
DB 08BH,045H,00H |
DB 099H |
DB 0F7H,0F9H |
DB 089H,055H,00H |
DB 0C3H |
AHEADER 0 ,'MOD',cfa_MOD |
DB 08BH,0C8H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 099H |
DB 0F7H,0F9H |
DB 08BH,0C2H |
DB 0C3H |
AHEADER 0 ,'+!',cfa_plussave |
DB 08BH,055H,00H |
DB 01H,010H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'U/',cfa_U_div |
DB 08BH,0C8H |
DB 08BH,045H,00H |
DB 033H,0D2H |
DB 08DH,06DH,04H |
DB 0F7H,0F1H |
DB 0C3H |
AHEADER 0 ,'/',cfa__div |
DB 08BH,0C8H |
DB 08BH,045H,00H |
DB 099H |
DB 0F7H,0F9H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'UM*',cfa_UM_mul |
DB 0F7H,065H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 0C3H |
AHEADER 0 ,'C>S',cfa_CgreatS |
DB 0FH,0BEH,0C0H |
DB 0C3H |
AHEADER 0 ,'U>D',cfa_UgreatD |
DB 08DH,06DH,0FCH |
DB 089H,045H,00H |
DB 033H,0C0H |
DB 0C3H |
AHEADER 0 ,'D>S',cfa_DgreatS |
DB 08BH,045H,00H |
DB 083H,0C5H,04H |
DB 0C3H |
AHEADER 0 ,'S>D',cfa_SgreatD |
DB 08DH,06DH,0FCH |
DB 089H,045H,00H |
DB 099H |
DB 08BH,0C2H |
DB 0C3H |
AHEADER 0 ,'NOOP',cfa_NOOP |
DB 0C3H |
AHEADER 0 ,'DNEGATE',cfa_DNEGATE |
DB 08BH,055H,00H |
DB 0F7H,0D8H |
DB 0F7H,0DAH |
DB 083H,0D8H,00H |
DB 089H,055H,00H |
DB 0C3H |
AHEADER 0 ,'ABS',cfa_ABS |
DB 085H,0C0H |
;js cfa_NEGATE+00H |
js cfa_NEGATE+00H |
DB 0C3H |
AHEADER 0 ,'NEGATE',cfa_NEGATE |
DB 0F7H,0D8H |
DB 0C3H |
AHEADER 0 ,'INVERT',cfa_INVERT |
DB 0F7H,0D0H |
DB 0C3H |
AHEADER 0 ,'XOR',cfa_XOR |
DB 033H,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'OR',cfa_OR |
DB 0BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'AND',cfa_AND |
DB 023H,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'*',cfa__mul |
DB 0F7H,06DH,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'COUNT',cfa_COUNT |
DB 08DH,06DH,0FCH |
DB 08DH,050H,01H |
DB 089H,055H,00H |
DB 0FH,0B6H,00H |
DB 0C3H |
AHEADER 0 ,'0!',cfa__0save |
DB 0C7H,00H |
DD 00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'1+!',cfa__1plussave |
DB 0FFH,00H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'-',cfa_minus |
DB 0F7H,0D8H |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'D-',cfa_Dminus |
DB 08BH,055H,00H |
DB 029H,055H,08H |
DB 019H,045H,04H |
DB 08BH,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'D+',cfa_Dplus |
DB 08BH,055H,00H |
DB 01H,055H,08H |
DB 013H,045H,04H |
DB 08DH,06DH,08H |
DB 0C3H |
AHEADER 0 ,'+',cfa_plus |
DB 03H,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'CELLS',cfa_CELLS |
DB 08DH,04H,085H |
DD 00H |
DB 0C3H |
AHEADER 0 ,'CELL-',cfa_CELLminus |
DB 08DH,040H,0FCH |
DB 0C3H |
AHEADER 0 ,'CELL+',cfa_CELLplus |
DB 08DH,040H,04H |
DB 0C3H |
AHEADER 0 ,'2*',cfa__2_mul |
DB 08DH,04H,045H |
DD 00H |
DB 0C3H |
AHEADER 0 ,'2-',cfa__2minus |
DB 08DH,040H,0FEH |
DB 0C3H |
AHEADER 0 ,'2+',cfa__2plus |
DB 08DH,040H,02H |
DB 0C3H |
AHEADER 0 ,'1-',cfa__1minus |
DB 08DH,040H,0FFH |
DB 0C3H |
AHEADER 0 ,'1+',cfa__1plus |
DB 08DH,040H,01H |
DB 0C3H |
AHEADER 0 ,'EBX@',cfa_EBX_ld |
DB 08DH,06DH,0FCH |
DB 089H,045H,00H |
DB 08BH,0C3H |
DB 0C3H |
AHEADER 0 ,'D!',cfa_Dsave |
DB 08BH,055H,00H |
DB 089H,050H,04H |
DB 08BH,055H,04H |
DB 089H,010H |
DB 08DH,06DH,0CH |
DB 08BH,045H,0FCH |
DB 0C3H |
AHEADER 0 ,'D@',cfa_D_ld |
DB 08BH,010H |
DB 08DH,06DH,0FCH |
DB 089H,055H,00H |
DB 08BH,040H,04H |
DB 0C3H |
AHEADER 0 ,'2!',cfa__2save |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,055H,04H |
DB 089H,050H,04H |
DB 08DH,06DH,0CH |
DB 08BH,045H,0FCH |
DB 0C3H |
AHEADER 0 ,'2@',cfa__2_ld |
DB 08BH,050H,04H |
DB 08DH,06DH,0FCH |
DB 089H,055H,00H |
DB 08BH,00H |
DB 0C3H |
AHEADER 0 ,'W!',cfa_Wsave |
DB 08BH,055H,00H |
DB 066H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 083H,0C5H,08H |
DB 0C3H |
AHEADER 0 ,'W@',cfa_W_ld |
DB 0FH,0B7H,00H |
DB 0C3H |
AHEADER 0 ,'C!',cfa_Csave |
DB 08BH,055H,00H |
DB 088H,010H |
DB 08BH,045H,04H |
DB 083H,0C5H,08H |
DB 0C3H |
AHEADER 0 ,'C@',cfa_C_ld |
DB 0FH,0B6H,00H |
DB 0C3H |
AHEADER 0 ,'!',cfa_save |
DB 08BH,055H,00H |
DB 089H,010H |
DB 08BH,045H,04H |
DB 083H,0C5H,08H |
DB 0C3H |
AHEADER 0 ,'@',cfa__ld |
DB 08BH,00H |
DB 0C3H |
AHEADER 0 ,'2R@',cfa__2R_ld |
DB 08DH,06DH,0F8H |
DB 089H,045H,04H |
DB 08BH,044H,024H,08H |
DB 089H,045H,00H |
DB 08BH,044H,024H,04H |
DB 0C3H |
AHEADER 0 ,'R@',cfa_R_ld |
DB 08DH,06DH,0FCH |
DB 089H,045H,00H |
DB 08BH,044H,024H,04H |
DB 0C3H |
AHEADER 0 ,'2R>',cfa__2Rgreat |
DB 08DH,06DH,0F8H |
DB 05BH |
DB 089H,045H,04H |
DB 058H |
DB 08FH,045H,00H |
DB 053H |
DB 0C3H |
AHEADER 0 ,'2>R',cfa__2greatR |
DB 05BH |
DB 0FFH,075H,00H |
DB 050H |
DB 08DH,06DH,08H |
DB 08BH,045H,0FCH |
DB 0FFH,0E3H |
AHEADER 0 ,'TUCK',cfa_TUCK |
DB 08DH,06DH,0FCH |
DB 08BH,055H,04H |
DB 089H,055H,00H |
DB 089H,045H,04H |
DB 0C3H |
AHEADER 0 ,'ROLL',cfa_ROLL |
DB 0BH,0C0H |
;je cfa_ROLL+022H |
DB 074H,01EH |
DB 08BH,0C8H |
DB 08DH,04H,085H |
DD 00H |
DB 08BH,0D5H |
DB 03H,0D0H |
DB 08BH,01AH |
DB 08DH,052H,0FCH |
DB 08BH,02H |
DB 089H,042H,04H |
DB 049H |
;jne cfa_ROLL+013H |
DB 075H,0F5H |
DB 08BH,0C3H |
DB 0EBH,03H |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'PICK',cfa_PICK |
DB 08BH,044H,085H,00H |
DB 0C3H |
AHEADER 0 ,'-ROT',cfa_minusROT |
DB 08BH,055H,04H |
DB 089H,045H,04H |
DB 08BH,045H,00H |
DB 089H,055H,00H |
DB 0C3H |
AHEADER 0 ,'ROT',cfa_ROT |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,045H,04H |
DB 089H,055H,04H |
DB 0C3H |
AHEADER 0 ,'NIP',cfa_NIP |
DB 083H,0C5H,04H |
DB 0C3H |
AHEADER 0 ,'2OVER',cfa__2OVER |
DB 08BH,055H,08H |
DB 089H,045H,0FCH |
DB 089H,055H,0F8H |
DB 08BH,045H,04H |
DB 08DH,06DH,0F8H |
DB 0C3H |
AHEADER 0 ,'OVER',cfa_OVER |
DB 08DH,06DH,0FCH |
DB 089H,045H,00H |
DB 08BH,045H,04H |
DB 0C3H |
AHEADER 0 ,'2SWAP',cfa__2SWAP |
DB 08BH,04DH,00H |
DB 08BH,05DH,04H |
DB 08BH,055H,08H |
DB 089H,04DH,08H |
DB 089H,045H,04H |
DB 089H,055H,00H |
DB 08BH,0C3H |
DB 0C3H |
AHEADER 0 ,'SWAP',cfa_SWAP |
DB 08BH,055H,00H |
DB 089H,045H,00H |
DB 08BH,0C2H |
DB 0C3H |
AHEADER 0 ,'2DROP',cfa__2DROP |
DB 08BH,045H,04H |
DB 083H,0C5H,08H |
DB 0C3H |
AHEADER 0 ,'UMIN',cfa_UMIN |
DB 03BH,045H,00H |
DW 0870FH |
DD cfa_DROP+00H-$-4 |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'UMAX',cfa_UMAX |
DB 03BH,045H,00H |
DW 0820FH |
DD cfa_DROP+00H-$-4 |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'MIN',cfa_MIN |
DB 03BH,045H,00H |
;jg cfa_DROP+00H |
jg cfa_DROP+00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'MAX',cfa_MAX |
DB 03BH,045H,00H |
;jl cfa_DROP+00H |
jl cfa_DROP+00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'DROP',cfa_DROP |
DB 08BH,045H,00H |
DB 08DH,06DH,04H |
DB 0C3H |
AHEADER 0 ,'2DUP',cfa__2DUP |
DB 08BH,055H,00H |
DB 089H,045H,0FCH |
DB 089H,055H,0F8H |
DB 08DH,06DH,0F8H |
DB 0C3H |
AHEADER 0 ,'?DUP',cfa_queDUP |
DB 0BH,0C0H |
;jne cfa_DUP+00H |
jne cfa_DUP+00H |
DB 0C3H |
AHEADER 0 ,'DUP',cfa_DUP |
DB 08DH,06DH,0FCH |
DB 089H,045H,00H |
DB 0C3H |
/programs/develop/SPForth/lib/asm/486asm.f |
---|
0,0 → 1,2103 |
( 486 AND PENTIUM ASSEMBLER FOR WINDOWS 32BIT FORTH, VERSION 1.26 ) |
( COPYRIGHT [C] 1994, 1995, BY JIM SCHNEIDER ) |
( THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY ) |
( IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY ) |
( THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR ) |
( <AT YOUR OPTION> ANY LATER VERSION. ) |
( ) |
( THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, ) |
( BUT WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF ) |
( MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE ) |
( GNU GENERAL PUBLIC LICENSE FOR MORE DETAILS. ) |
( ) |
( YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE ) |
( ALONG WITH THIS PROGRAM; IF NOT, WRITE TO THE FREE SOFTWARE ) |
( FOUNDATION, INC., 675 MASS AVE, CAMBRIDGE, MA 02139, USA. ) |
( DECLARE THE VOCABULARIES NEEDED ) |
ONLY FORTH DEFINITIONS ( VOCABULARY ASSEMBLER ) ALSO ASSEMBLER DEFINITIONS |
VOCABULARY ASM-HIDDEN ALSO ASM-HIDDEN DEFINITIONS ALSO ASSEMBLER |
( THE ALSO ASSEMBLER IS STRICTLY TO TURN OFF STACK WARNINGS ) |
( WORDS TO MANIPULATE THE VOCABULARY SEARCH ORDER ) |
: IN-ASM ( ALL LATER WORDS ARE DEFINED IN THE ASSEMBLER VOCABULARY ) |
ONLY FORTH ALSO ASM-HIDDEN ALSO ASSEMBLER DEFINITIONS ; |
: IN-HIDDEN ( ALL LATER WORDS ARE DEFINED IN THE HIDDEN VOCABULARY ) |
ONLY FORTH ALSO ASM-HIDDEN DEFINITIONS ALSO ASSEMBLER ; |
: IN-FORTH ( ALL LATER WORDS ARE DEFINED IN THE FORTH VOCABULARY ) |
ONLY FORTH DEFINITIONS ALSO ASM-HIDDEN ALSO ASSEMBLER ; |
IN-HIDDEN |
( MISCELLANEOUS HOUSEKEEPING ) |
BASE @ DECIMAL ( SAVE THE BASE BECAUSE I HATE GRATUITOUS BASE BASHING ) |
: CELL- [ 1 CELLS ] LITERAL - ; |
: CELL/ [ 1 CELLS ] LITERAL / ; |
: 8* 8 * ; |
: 8/ 8 / ; |
: 8+ 8 + ; |
: 8- 8 - ; |
: 4+ 4 + ; |
: 2+ 2 + ; |
: 2- 2 - ; |
: 8*+ 8* + ; |
: 16*+ 16 * + ; |
: 16/MOD 16 /MOD ; |
HEX |
: C0-8* 0C0 - 8* ; |
: C0+ 0C0 + ; |
: C0- 0C0 - ; |
( DEFER SOME WORDS FOR EASE IN PORTING TO A CROSS ASSEMBLER ) |
DEFER CODE-C, ' C, IS CODE-C, ( X -- ) |
DEFER CODE-W, ' W, IS CODE-W, ( X -- ) |
DEFER CODE-D, ' , IS CODE-D, ( X -- ) |
DEFER DATA-, ' , IS DATA-, ( X -- ) |
DEFER CODE-C! ' C! IS CODE-C! ( X \ A -- ) |
DEFER CODE-W! ' W! IS CODE-W! ( X \ A -- ) |
DEFER CODE-D! ' ! IS CODE-D! ( X \ A -- ) |
DEFER DATA-! ' ! IS DATA-! ( X \ A -- ) |
DEFER DATA-+! ' +! IS DATA-+! ( X \ A -- ) |
DEFER CODE-C@ ' C@ IS CODE-C@ ( A -- X ) |
DEFER CODE-W@ ' W@ IS CODE-W@ ( A -- X ) |
DEFER CODE-D@ ' @ IS CODE-D@ ( A -- X ) |
DEFER DATA-@ ' @ IS DATA-@ ( A -- X ) |
DEFER DATA-HERE ' HERE IS DATA-HERE ( -- A ) |
DEFER CODE-HERE ' HERE IS CODE-HERE ( -- A ) |
DEFER CODE-ALIGN ' ALIGN IS CODE-ALIGN ( -- ) |
DEFER CODE-HEADER ' HEADER IS CODE-HEADER ( -- ) |
( REGISTER OUT OF SCOPE FORWARD REFERENCES, FOR USE BY A CROSS-COMPILER ) |
DEFER REGISTER-REF ' DROP IS REGISTER-REF ( ADDRESS \ TYPE -- ADDRESS ) |
( REGISTER ACTUAL CODE CREATION, FOR USE IN OPTOMIZERS, DEBUGGERS, ETC. ) |
DEFER REGISTER-ASM ' NOOP IS REGISTER-ASM ( DATA \ XT -- DATA \ XT ) |
IN-FORTH |
( SET UP THE REGISTRATION CALLBACK FUNCTIONS ) |
: SET-REGISTER-REF IS REGISTER-REF ; |
: SET-REGISTER-ASM IS REGISTER-ASM ; |
IN-HIDDEN |
( CONSTANTS FOR THE TYPE ARGUMENT ) |
1 CONSTANT 8B-ABS ( 8 BIT ABSOLUTE ADDRESSING ) |
2 CONSTANT 16B-ABS ( 16 BIT ABSOLUTE ADDRESSING ) |
3 CONSTANT 32B-ABS ( 32 BIT ABSOLUTE ADDRESSING ) |
5 CONSTANT 8B-REL ( 8 BIT RELATIVE ADDRESSING ) |
6 CONSTANT 16B-REL ( 16 BIT RELATIVE ADDRESSING ) |
7 CONSTANT 32B-REL ( 32 BIT RELATIVE ADDRESSING ) |
( DEFER THE ERROR HANDLER WORDS SO THEY CAN BE INDIVIDUALLY TURNED OFF ) |
( DEFER THEM HERE SO THEY CAN BE USED BEFORE THEY ARE ACTUALLY DEFINED ) |
: DEF-ERR-HAND ( THE DEFAULT ERROR HANDLER FOR UNINITIALIZED ERROR HANDLERS ) |
( X*I -- X*J ) |
-1 ABORT" NO ERROR HANDLER INSTALLED" ; |
' DEF-ERR-HAND CONSTANT DEH-XT |
DEFER ?PARAMS DEH-XT IS ?PARAMS ( -- ) \ ARE THERE PARAMETERS? |
DEFER ?SEG DEH-XT IS ?SEG ( -- ) \ IS THERE A SEG OVERRIDE? |
DEFER ?LOCK DEH-XT IS ?LOCK ( -- ) \ IS THERE A LOCK PREFIX? |
DEFER ?REP DEH-XT IS ?REP ( -- ) \ IS THERE A REP TYPE PREFIX? |
DEFER ?INST-PRE DEH-XT IS ?INST-PRE ( -- ) \ IS THERE AN INST PREFIX? |
DEFER ?OPERANDS DEH-XT IS ?OPERANDS ( -- ) \ ARE THERE OPERANDS? |
DEFER ?OPSIZE DEH-XT IS ?OPSIZE ( N -- ) \ IS THE OPERAND SIZE MISMATCHED? |
DEFER ?ADSIZE DEH-XT IS ?ADSIZE ( N -- ) \ IS THE ADDRESS SIZE MISMATCHED? |
DEFER ?SHORT DEH-XT IS ?SHORT ( -- ) \ IS THERE AN ILLEGAL SHORT? |
DEFER ?TOOFAR DEH-XT IS ?TOOFAR ( FLAG -- ) \ IS THE DEST OF A BRANCH TO BIG? |
DEFER ?UNRES DEH-XT IS ?UNRES ( -- ) \ IS THERE AN UNRESOLVED FORWARD REFERENCE? |
DEFER ?NOADSIZE DEH-XT IS ?NOADSIZE ( -- ) \ IS THE FWD REF ADDR SIZE UNKNOWN? |
DEFER ?TOOMANYOPS DEH-XT IS ?TOOMANYOPS ( N -- ) \ ARE THERE TOO MANY OPERANDS? |
DEFER ?NOFAR DEH-XT IS ?NOFAR ( -- ) \ IS THERE A FAR REFERENCE? |
DEFER ?MATCH DEH-XT IS ?MATCH ( X1 \ X2 -- ) \ ERROR IF X1==X2 |
DEFER ?NOMATCH DEH-XT IS ?NOMATCH ( X1 \ X2 -- ) \ ERROR IF X1!=X2 |
DEFER ?FINISHED DEH-XT IS ?FINISHED ( -- ) \ ARE THERE OPERANDS LEFT OVER? |
DEFER ?BADTYPE DEH-XT IS ?BADTYPE ( MAX TYPE VAL -- ) \ IS THE TYPE UNALLOWED? |
DEFER ?BADCOMBINE DEH-XT IS ?BADCOMBINE ( FLAG -- ) \ CAN THE TYPES BE COMBINED? |
DEFER ?NOTENOUGH DEH-XT IS ?NOTENOUGH ( N -- ) \ ARE THERE TOO FEW OPERANDS? |
DEFER ?NOIMMED DEH-XT IS ?NOIMMED ( -- ) \ IS THERE AN ILLEGAL IMMEDIATE OP? |
DEFER ?BADMODE DEH-XT IS ?BADMODE ( FLAG -- ) \ IS THE ADDRESS MODE ILLEGAL? |
DEFER ?REG,R/M DEH-XT IS ?REG,R/M ( -- ) \ IS THE DEST A REG? |
DEFER ?R/M,REG DEH-XT IS ?R/M,REG ( -- ) \ IS THE SOURCE A REG? |
DEFER ?MEM DEH-XT IS ?MEM ( -- ) \ DO WE HAVE AN ILLEGAL REGISTER OPERAND? |
DEFER ?REG DEH-XT IS ?REG ( -- ) \ DO WE HAVE AN ILLEGAL MEMORY OPERAND? |
( DEFER THE WORD THAT CALLS THE WORDS THAT CREATE THE CODE ) |
( IT COMES IN TWO FLAVORS -- PREFIX AND POSTFIX ) |
( IT'S DEFERRED HERE SO I CAN USE IT NOW ) |
: NO-OPCODE-HANDLER -1 ABORT" NO OPCODE CREATOR INSTALLED" ; |
DEFER DO-OPCODE ' NO-OPCODE-HANDLER IS DO-OPCODE ( X? \ X? \ 0|ADDR -- ) |
\ POSTFIX MODE: THIS ACTUALLY SAVES THE CURRENT INSTRUCTION AND |
\ DOES THE PREVIOUS ONE. |
IN-ASM |
: A; ( FINISH THE ASSEMBLY OF THE PREVIOUS INSTRUCTION ) |
( -- ) |
0 DO-OPCODE ; |
( ADDRESS AND DATA SIZES ) |
IN-HIDDEN |
0 CONSTANT UNKNOWN ( ALSO, OPERAND TYPE AND NUMBER ) |
1 CONSTANT 8BIT |
2 CONSTANT 16BIT |
3 CONSTANT 32BIT |
4 CONSTANT 64BIT |
5 CONSTANT 80BIT |
( DETERMINE WHAT SIZE CODE TO GENERATE ) |
32BIT VALUE DEFAULT-SIZE ( THE DEFAULT USE SIZE ) |
: !DEFAULT-SIZE ( NOT THE DEFAULT SIZE, EG. CHANGE 16BIT TO 32BIT ) |
( -- SIZE ) |
DEFAULT-SIZE 16BIT = IF 32BIT ELSE 16BIT THEN ; |
IN-ASM |
: USE16 ( GENERATE 16 BIT CODE BY DEFAULT ) |
16BIT TO DEFAULT-SIZE ; |
: USE32 ( GENERATE 32 BIT CODE BY DEFAULT ) |
32BIT TO DEFAULT-SIZE ; |
( CREATE A STACK FOR OPERANDS ) |
IN-HIDDEN |
7 CONSTANT MAX-OPERANDS ( MAXIMUM NUMBER OF OPERANDS ON THE OPSTACK ) |
CREATE OPSTACK MAX-OPERANDS 1+ CELLS ALLOT HERE CONSTANT OPSTACK-END |
: CLR-OPSTACK OPSTACK DUP CELL+ SWAP DATA-! ; |
CLR-OPSTACK ( INITIALIZE THE OPSTACK ) |
: ?CLR-OPSTACK ( CLEAR THE OPERAND STACK WHEN THE FLAG IS NON-ZERO ) |
( F -- ) |
IF CLR-OPSTACK THEN ; |
IN-ASM |
: PUSH-OP ( MOVE A PARAMETER STACK ITEM TO THE OPSTACK ) |
( X -- ) |
OPSTACK DATA-@ OPSTACK-END = DUP ?CLR-OPSTACK |
ABORT" OPSTACK OVERFLOW" OPSTACK DUP DATA-@ DUP CELL+ ROT DATA-! |
DATA-! ; |
: POP-OP ( MOVE AN ITEM FROM THE OPERAND STACK TO THE PARAMETER STACK ) |
( -- X ) |
OPSTACK DUP DATA-@ SWAP CELL+ = DUP ?CLR-OPSTACK |
ABORT" OPSTACK UNDERFLOW" OPSTACK DUP DATA-@ CELL- DUP ROT |
DATA-! DATA-@ ; |
IN-HIDDEN |
: OP-DEPTH ( CHECK THE DEPTH OF THE OPERAND STACK ) |
OPSTACK DUP DATA-@ SWAP - CELL- CELL/ ; |
( WORDS TO SUPPORT FORWARD REFERENCED LOCAL LABELS ) |
100 CONSTANT FRMAX ( MAX NUMBER OF UNRESOLVED FORWARD REFERENCES ) |
140 CONSTANT LBMAX ( MAX NUMBER OF LOCAL LABELS ) |
CREATE FRTABLE FRMAX 2* CELLS ALLOT ( HOLDS UNRESOLVED FORWARD REFERENCES ) |
CREATE LBTABLE LBMAX CELLS ALLOT ( HOLDS LOCAL LABEL BINDINGS ) |
: ADDREF ( ADD A FORWARD REFERENCE AT CODE-HERE ) |
( REF# -- REF# ) |
FRTABLE [ FRMAX 1+ ] LITERAL 0 DO |
FRMAX I = DUP ?CLR-OPSTACK |
ABORT" TOO MANY UNRESOLVED FORWARD REFERENCES" |
DUP DATA-@ IF |
CELL+ CELL+ ELSE 2DUP DATA-! CODE-HERE OVER CELL+ |
DATA-! LEAVE |
THEN |
LOOP DROP ; |
: BACKPATCH ( BACKPATCH A FORWARD REFERENCE TO HERE ) |
( ADDRESS \ SIZE -- ) |
CASE 8BIT OF |
CODE-HERE OVER 1+ - DUP ABS 7F > ?TOOFAR SWAP CODE-C! |
ENDOF 16BIT OF |
CODE-HERE OVER 2+ - DUP ABS 7FFF > ?TOOFAR SWAP CODE-W! |
ENDOF 32BIT OF |
CODE-HERE OVER 4+ - SWAP CODE-D! |
ENDOF ?NOADSIZE DROP ENDCASE ; |
: REFSIZE ( DETERMINE THE SIZE OF A BOUND REFERENCE ) |
( ADDR OF INSTR -- ADDR OF OPERAND \ SIZE ) |
DUP CODE-C@ 67 ( ADDR SIZE OVERRIDE PREFIX ) = IF |
1+ !DEFAULT-SIZE |
ELSE |
DEFAULT-SIZE |
THEN |
( STACK: ADDRESS OF ACTUAL INSTRUCTION \ PROVISIONAL SIZE ) |
>R DUP CODE-C@ CASE |
0F OF ( A NEAR CONDITIONAL BRANCH ) |
1+ ( ADJUST FOR THE FIRST BYTE OF THE OPCODE ) |
ENDOF 0E9 OF ( A JMP NEAR, DON'T NEED TO DO ANYTHING ) |
ENDOF 0E8 OF ( A NEAR CALL, DON'T NEED TO DO ANYTHING ) |
ENDOF ( IF WE GET TO HERE, IT MUST BE 8 BIT ) |
R> DROP 8BIT >R |
ENDCASE 1+ R> ; |
: RESOLVE ( RESOLVE A FORWARD REFERENCE TO CODE-HERE ) |
( REF# -- REF# ) |
FRTABLE FRMAX 0 DO |
2DUP DATA-@ = IF |
DUP CELL+ DATA-@ REFSIZE BACKPATCH 0 OVER DATA-! |
THEN |
CELL+ CELL+ |
LOOP |
DROP ; |
: !LABEL ( BIND A LABEL TO CODE-HERE ) |
( REF# -- ) |
RESOLVE CODE-HERE SWAP CELLS LBTABLE + DATA-! ; |
: @LABEL ( FETCH THE BINDING OF A LABEL, OR RETURN A PSEUDO ADDRESS IF NOT ) |
( YET BOUND TO AN ADDRESS ) |
( REF# -- ADDR ) |
DUP CELLS LBTABLE + DATA-@ ?DUP IF SWAP DROP ELSE ADDREF DROP |
CODE-HERE THEN ; |
: CREATE-REF ( CREATE WORDS TO REFERENCE LOCAL LABELS ) |
( C:: INDEX -- ) |
( R:: -- ADDR ) |
CREATE DATA-, DOES> DATA-@ @LABEL ; |
: CREATE-BIND ( CREATE WORDS TO BIND LOCAL LABELS ) |
( C:: INDEX -- ) |
( R:: -- ) |
CREATE DATA-, DOES> >R A; R> DATA-@ !LABEL ; |
( THESE REFERENCES AND BINDINGS ARE NAMED FOR GENERAL USE. DO NOT USE THEM ) |
( IN MACROS ) |
IN-ASM |
1 CREATE-REF @@1 1 CREATE-BIND @@1: |
2 CREATE-REF @@2 2 CREATE-BIND @@2: |
3 CREATE-REF @@3 3 CREATE-BIND @@3: |
4 CREATE-REF @@4 4 CREATE-BIND @@4: |
5 CREATE-REF @@5 5 CREATE-BIND @@5: |
6 CREATE-REF @@6 6 CREATE-BIND @@6: |
7 CREATE-REF @@7 7 CREATE-BIND @@7: |
8 CREATE-REF @@8 8 CREATE-BIND @@8: |
9 CREATE-REF @@9 9 CREATE-BIND @@9: |
IN-HIDDEN |
0 VALUE IN-MACRO? ( A SEMAPHORE TO TELL IF WE'RE IN EXECUTION OF A MACRO ) |
0A VALUE MACRO-LABELS ( THE FIRST LABEL USED FOR MACROS ) |
VARIABLE MACRO-LABEL-LEVEL ( FOR LABELS TO USE IN MACROS ) |
: IN-MACRO ( FLAG THE FACT THAT WE ARE IN A MACRO ) |
( -- ) |
1 +TO IN-MACRO? ; |
: !IN-MACRO ( FLAG THE FACT THAT WE'VE LEFT A MACRO ) |
( -- ) |
-1 +TO IN-MACRO? ; |
: +MACRO ( GET AN INDEX INTO THE LABEL TABLE FROM AN OFFSET ) |
( OFFSET -- INDEX ) |
MACRO-LABEL-LEVEL DATA-@ + DUP LBMAX > |
ABORT" TOO MANY LOCAL LABELS IN MACROS" ; |
: +MACRO-REF ( REFERENCE A LABEL OFFSET FROM THE MACRO LEVEL ) |
( OFFSET -- ADDR ) |
+MACRO @LABEL ; |
: +MACRO-BIND ( BIND A LABEL OFFSET FROM THE MACRO LEVEL ) |
( OFFSET -- ) |
+MACRO !LABEL ; |
: ENTER-MACRO ( SET UP MACRO RELATIVE LOCAL LABELS ) |
( -- ) |
MACRO-LABELS MACRO-LABEL-LEVEL DUP DATA-@ ROT + DUP ROT DATA-! CELLS |
LBTABLE + MACRO-LABELS CELLS ERASE IN-MACRO ; |
: LEAVE-MACRO ( GO BACK TO THE OLD REGIME ) |
( OLD MACRO LABEL LEVEL -- ) |
MACRO-LABELS MACRO-LABEL-LEVEL DUP DATA-@ ROT - SWAP DATA-! !IN-MACRO ; |
: CREATE-MACRO-REF ( CREATE MACRO-SAFE LOCAL LABEL REFERENCES ) |
( C:: LABEL OFFSET -- ) |
( R:: -- ADDR ) |
CREATE DATA-, DOES> DATA-@ +MACRO-REF ; |
: CREATE-MACRO-BIND ( CREATE MACRO-SAFE LOCAL LABEL BINDINGS ) |
( C:: LABEL OFFSET -- ) |
( R:: -- ) |
CREATE DATA-, DOES> >R A; R> DATA-@ +MACRO-BIND ; |
: LOC-INIT ( INITIALIZE THE TABLES AND VARIABLES ) |
( -- ) |
FRTABLE [ FRMAX 2* CELLS ] LITERAL ERASE LBTABLE [ LBMAX CELLS ] |
LITERAL ERASE MACRO-LABELS MACRO-LABEL-LEVEL DATA-! ; |
( MACRO SAFE LOCAL LABELS ) |
IN-ASM |
0 CREATE-MACRO-REF @@M0 0 CREATE-MACRO-BIND @@M0: |
1 CREATE-MACRO-REF @@M1 1 CREATE-MACRO-BIND @@M1: |
2 CREATE-MACRO-REF @@M2 2 CREATE-MACRO-BIND @@M2: |
3 CREATE-MACRO-REF @@M3 3 CREATE-MACRO-BIND @@M3: |
4 CREATE-MACRO-REF @@M4 4 CREATE-MACRO-BIND @@M4: |
5 CREATE-MACRO-REF @@M5 5 CREATE-MACRO-BIND @@M5: |
6 CREATE-MACRO-REF @@M6 6 CREATE-MACRO-BIND @@M6: |
7 CREATE-MACRO-REF @@M7 7 CREATE-MACRO-BIND @@M7: |
8 CREATE-MACRO-REF @@M8 8 CREATE-MACRO-BIND @@M8: |
9 CREATE-MACRO-REF @@M9 9 CREATE-MACRO-BIND @@M9: |
( CREATE ALTERNATIVE LABEL REFERENCE AND BINDING NAMES FOR TOM ) |
0 CREATE-MACRO-REF L$0 0 CREATE-MACRO-BIND L$0: |
1 CREATE-MACRO-REF L$1 1 CREATE-MACRO-BIND L$1: |
2 CREATE-MACRO-REF L$2 2 CREATE-MACRO-BIND L$2: |
3 CREATE-MACRO-REF L$3 3 CREATE-MACRO-BIND L$3: |
4 CREATE-MACRO-REF L$4 4 CREATE-MACRO-BIND L$4: |
5 CREATE-MACRO-REF L$5 5 CREATE-MACRO-BIND L$5: |
6 CREATE-MACRO-REF L$6 6 CREATE-MACRO-BIND L$6: |
7 CREATE-MACRO-REF L$7 7 CREATE-MACRO-BIND L$7: |
8 CREATE-MACRO-REF L$8 8 CREATE-MACRO-BIND L$8: |
9 CREATE-MACRO-REF L$9 9 CREATE-MACRO-BIND L$9: |
( CONSTANTS FOR OPERAND TYPING ) |
( OPERAND TYPES ) |
IN-HIDDEN |
1 CONSTANT INDIRECT ( 16 BIT REGISTER INDIRECT ) |
2 CONSTANT BASED ( 32 BIT REGISTER INDIRECT OR SCALED INDEX/BASE ) |
3 CONSTANT INDEX ( 32 BIT SCALED INDEX ) |
4 CONSTANT IMMEDIATE ( AN IMMEDIATE OPERAND ) |
5 CONSTANT REGISTER ( A GENERAL PURPOSE MACHINE REGISTER ) |
6 CONSTANT SREG ( A SEGMENT REGISTER ) |
7 CONSTANT CREG ( A CONTROL REGISTER ) |
8 CONSTANT DREG ( A DEBUG REGISTER ) |
9 CONSTANT TREG ( A TEST REGISTER ) |
0A CONSTANT FREG ( A FLOATING POINT REGISTER ) |
( ENCODE AND DECODE REGISTER REPRESENTATIONS ) |
( REGISTER ENCODING: ) |
( BITS USE ) |
( 0-3 DATA SIZE ) |
( 4-7 ADDRESS SIZE ) |
( 8-11 TYPE ) |
( 12-13 R/M OR S-I-B ) |
: <ENC-REG> ( ENCODE THE SINGLE CELL OPERAND REPRESENTATION FROM THE VALUES ) |
( ON THE STACK ) |
( DATA SIZE \ ADDR SIZE \ TYPE \ R/M OR S-I-B -- REG VAL ) |
16*+ 16*+ 16*+ ; |
: <DEC-REG> ( DECODE THE SINGLE CELL OPERAND REPRESENTATION TO ITS ) |
( CONSTITUENT PARTS ) |
( REG VAL -- DATA SIZE \ ADDR SIZE \ TYPE \ R/M OR S-I-B ) |
16/MOD 16/MOD 16/MOD ; |
: ASM-OP ( CREATE THE ASSEMBLER OPERANDS FROM OPERAND DESCRIPTIONS ) |
( C:: DATA SIZE \ ADDR SIZE \ TYPE \ R/M OR S-I-B -- ) |
( R:: -- ) |
( R::OS: -- X ) |
CREATE <ENC-REG> DATA-, DOES> DATA-@ PUSH-OP ; |
( THE ASSEMBLER OPERANDS ) |
IN-ASM |
8BIT UNKNOWN REGISTER 0 ASM-OP AL |
8BIT UNKNOWN REGISTER 1 ASM-OP CL |
8BIT UNKNOWN REGISTER 2 ASM-OP DL |
8BIT UNKNOWN REGISTER 3 ASM-OP BL |
8BIT UNKNOWN REGISTER 4 ASM-OP AH |
8BIT UNKNOWN REGISTER 5 ASM-OP CH |
8BIT UNKNOWN REGISTER 6 ASM-OP DH |
8BIT UNKNOWN REGISTER 7 ASM-OP BH |
16BIT UNKNOWN REGISTER 0 ASM-OP AX |
16BIT UNKNOWN REGISTER 1 ASM-OP CX |
16BIT UNKNOWN REGISTER 2 ASM-OP DX |
16BIT UNKNOWN REGISTER 3 ASM-OP BX |
16BIT UNKNOWN REGISTER 4 ASM-OP SP |
16BIT UNKNOWN REGISTER 5 ASM-OP BP |
16BIT UNKNOWN REGISTER 6 ASM-OP SI |
16BIT UNKNOWN REGISTER 7 ASM-OP DI |
32BIT UNKNOWN REGISTER 0 ASM-OP EAX |
32BIT UNKNOWN REGISTER 1 ASM-OP ECX |
32BIT UNKNOWN REGISTER 2 ASM-OP EDX |
32BIT UNKNOWN REGISTER 3 ASM-OP EBX |
32BIT UNKNOWN REGISTER 4 ASM-OP ESP |
32BIT UNKNOWN REGISTER 5 ASM-OP EBP |
32BIT UNKNOWN REGISTER 6 ASM-OP ESI |
32BIT UNKNOWN REGISTER 7 ASM-OP EDI |
UNKNOWN 16BIT INDIRECT 0 ASM-OP [BX+SI] |
UNKNOWN 16BIT INDIRECT 1 ASM-OP [BX+DI] |
UNKNOWN 16BIT INDIRECT 2 ASM-OP [BP+SI] |
UNKNOWN 16BIT INDIRECT 3 ASM-OP [BP+DI] |
UNKNOWN 16BIT INDIRECT 4 ASM-OP [SI] |
UNKNOWN 16BIT INDIRECT 5 ASM-OP [DI] |
UNKNOWN 16BIT INDIRECT 6 ASM-OP [BP] |
UNKNOWN 16BIT INDIRECT 7 ASM-OP [BX] |
UNKNOWN 32BIT BASED 0 ASM-OP [EAX] |
UNKNOWN 32BIT BASED 1 ASM-OP [ECX] |
UNKNOWN 32BIT BASED 2 ASM-OP [EDX] |
UNKNOWN 32BIT BASED 3 ASM-OP [EBX] |
UNKNOWN 32BIT BASED 4 ASM-OP [ESP] |
UNKNOWN 32BIT BASED 5 ASM-OP [EBP] |
UNKNOWN 32BIT BASED 6 ASM-OP [ESI] |
UNKNOWN 32BIT BASED 7 ASM-OP [EDI] |
UNKNOWN 32BIT INDEX 8 ASM-OP [EAX*2] |
UNKNOWN 32BIT INDEX 9 ASM-OP [ECX*2] |
UNKNOWN 32BIT INDEX 0A ASM-OP [EDX*2] |
UNKNOWN 32BIT INDEX 0B ASM-OP [EBX*2] |
UNKNOWN 32BIT INDEX 0D ASM-OP [EBP*2] |
UNKNOWN 32BIT INDEX 0E ASM-OP [ESI*2] |
UNKNOWN 32BIT INDEX 0F ASM-OP [EDI*2] |
UNKNOWN 32BIT INDEX 10 ASM-OP [EAX*4] |
UNKNOWN 32BIT INDEX 11 ASM-OP [ECX*4] |
UNKNOWN 32BIT INDEX 12 ASM-OP [EDX*4] |
UNKNOWN 32BIT INDEX 13 ASM-OP [EBX*4] |
UNKNOWN 32BIT INDEX 15 ASM-OP [EBP*4] |
UNKNOWN 32BIT INDEX 16 ASM-OP [ESI*4] |
UNKNOWN 32BIT INDEX 17 ASM-OP [EDI*4] |
UNKNOWN 32BIT INDEX 18 ASM-OP [EAX*8] |
UNKNOWN 32BIT INDEX 19 ASM-OP [ECX*8] |
UNKNOWN 32BIT INDEX 1A ASM-OP [EDX*8] |
UNKNOWN 32BIT INDEX 1B ASM-OP [EBX*8] |
UNKNOWN 32BIT INDEX 1D ASM-OP [EBP*8] |
UNKNOWN 32BIT INDEX 1E ASM-OP [ESI*8] |
UNKNOWN 32BIT INDEX 1F ASM-OP [EDI*8] |
16BIT UNKNOWN SREG 0 ASM-OP ES |
16BIT UNKNOWN SREG 1 ASM-OP CS |
16BIT UNKNOWN SREG 2 ASM-OP SS |
16BIT UNKNOWN SREG 3 ASM-OP DS |
16BIT UNKNOWN SREG 4 ASM-OP FS |
16BIT UNKNOWN SREG 5 ASM-OP GS |
32BIT UNKNOWN CREG 0 ASM-OP CR0 |
32BIT UNKNOWN CREG 2 ASM-OP CR2 |
32BIT UNKNOWN CREG 3 ASM-OP CR3 |
32BIT UNKNOWN CREG 4 ASM-OP CR4 |
32BIT UNKNOWN DREG 0 ASM-OP DR0 |
32BIT UNKNOWN DREG 1 ASM-OP DR1 |
32BIT UNKNOWN DREG 2 ASM-OP DR2 |
32BIT UNKNOWN DREG 3 ASM-OP DR3 |
32BIT UNKNOWN DREG 6 ASM-OP DR6 |
32BIT UNKNOWN DREG 7 ASM-OP DR7 |
32BIT UNKNOWN TREG 3 ASM-OP TR3 |
32BIT UNKNOWN TREG 4 ASM-OP TR4 |
32BIT UNKNOWN TREG 5 ASM-OP TR5 |
32BIT UNKNOWN TREG 6 ASM-OP TR6 |
32BIT UNKNOWN TREG 7 ASM-OP TR7 |
UNKNOWN UNKNOWN FREG 0 ASM-OP ST |
UNKNOWN UNKNOWN FREG 0 ASM-OP ST(0) |
UNKNOWN UNKNOWN FREG 1 ASM-OP ST(1) |
UNKNOWN UNKNOWN FREG 2 ASM-OP ST(2) |
UNKNOWN UNKNOWN FREG 3 ASM-OP ST(3) |
UNKNOWN UNKNOWN FREG 4 ASM-OP ST(4) |
UNKNOWN UNKNOWN FREG 5 ASM-OP ST(5) |
UNKNOWN UNKNOWN FREG 6 ASM-OP ST(6) |
UNKNOWN UNKNOWN FREG 7 ASM-OP ST(7) |
8BIT UNKNOWN UNKNOWN UNKNOWN ASM-OP BYTE |
16BIT UNKNOWN UNKNOWN UNKNOWN ASM-OP WORD |
32BIT UNKNOWN UNKNOWN UNKNOWN ASM-OP DWORD |
64BIT UNKNOWN UNKNOWN UNKNOWN ASM-OP QWORD |
32BIT UNKNOWN UNKNOWN UNKNOWN ASM-OP FLOAT |
64BIT UNKNOWN UNKNOWN UNKNOWN ASM-OP DOUBLE |
80BIT UNKNOWN UNKNOWN UNKNOWN ASM-OP LONG |
80BIT UNKNOWN UNKNOWN UNKNOWN ASM-OP EXTENDED |
80BIT UNKNOWN UNKNOWN UNKNOWN ASM-OP TBYTE |
UNKNOWN 8BIT UNKNOWN UNKNOWN ASM-OP SHORT |
UNKNOWN 16BIT UNKNOWN UNKNOWN ASM-OP NEAR |
UNKNOWN 32BIT UNKNOWN UNKNOWN ASM-OP FAR |
UNKNOWN UNKNOWN IMMEDIATE UNKNOWN ASM-OP # |
UNKNOWN UNKNOWN UNKNOWN UNKNOWN ASM-OP , |
( VARIABLES USED FOR INSTRUCTION CODING ) |
IN-HIDDEN |
VARIABLE INST-PREFIX ( INSTRUCTION PREFIXES ) |
VARIABLE ADDR-PREFIX ( ADDRESS SIZE PREFIX ) |
VARIABLE DATA-PREFIX ( DATA SIZE PREFIX ) |
VARIABLE SEG-PREFIX ( SEGMENT OVERRIDE PREFIX ) |
VARIABLE SV-INST-PREFIX ( THE SAVED INSTRUCTION PREFIX ) |
VARIABLE INST-SAVE ( THE PREVIOUSLY EXECUTED INSTRUCTION ) |
VARIABLE SP-SAVE ( THE STACK POINTER ) |
VARIABLE OFFSET-SV ( SAVE THE OFFSET PART ) |
VARIABLE IMMED-SV ( SAVE THE IMMEDIATE PART ) |
VARIABLE DT-SIZE ( DATA ITEM SIZE ) |
VARIABLE AD-SIZE ( ADDRESS SIZE ) |
VARIABLE RTYPE ( THE WORKING REGISTER TYPE ) |
VARIABLE MAXTYPE ( THE MAXIMUM NUMERICAL TYPE VALUE ENCOUNTERED ) |
VARIABLE MOD-R/M ( THE WORKING AREA FOR THE MOD-R/M BYTE ) |
VARIABLE S-I-B ( THE WORKING AREA FOR THE S-I-B BYTE ) |
VARIABLE ADDMODE ( ADDRESSING MODE FLAGS ) |
: RESET-VARS ( STORE 0 INTO ALL INSTRUCTION CODING VARIABLES ) |
0 INST-PREFIX DATA-! 0 ADDR-PREFIX DATA-! 0 DATA-PREFIX DATA-! |
0 SEG-PREFIX DATA-! 0 SV-INST-PREFIX DATA-! 0 INST-SAVE DATA-! |
0 SP-SAVE DATA-! 0 OFFSET-SV DATA-! 0 IMMED-SV DATA-! 0 DT-SIZE DATA-! |
0 AD-SIZE DATA-! 0 RTYPE DATA-! 0 MAXTYPE DATA-! 0 MOD-R/M DATA-! |
0 S-I-B DATA-! 0 ADDMODE DATA-! ; |
: RESET-FOR-NEXT-INSTR ( STORE A 0 INTO INTERMEDIATE CODING VARIABLES ) |
0 OFFSET-SV DATA-! 0 IMMED-SV DATA-! 0 DT-SIZE DATA-! |
0 AD-SIZE DATA-! 0 RTYPE DATA-! 0 MAXTYPE DATA-! 0 MOD-R/M DATA-! |
0 S-I-B DATA-! 0 ADDMODE DATA-! ; |
( SET/RESET MODE BITS ) |
1 CONSTANT IMMED-BIT ( FLAG AN IMMEDIATE OPERAND ) |
2 CONSTANT DIRECT-BIT ( FLAG THE DIRECTION ) |
4 CONSTANT MOD-R/M-BIT ( FLAG THAT WE'VE STARTED THE MOD-R/M ) |
8 CONSTANT S-I-B-BIT ( FLAG THE BEGINNING OF S-I-B CREATION ) |
10 CONSTANT FULL-OFF-BIT ( FLAG A FULL OFFSET ) |
20 CONSTANT BASED-BIT ( FLAG THAT WE'VE SEEN A BASE ) |
40 CONSTANT OFFSET-BIT ( FLAG AN OFFSET ) |
80 CONSTANT SHORT-BIT ( FLAG SHORT ) |
100 CONSTANT NEAR-BIT ( FLAG NEAR ) |
200 CONSTANT FAR-BIT ( FLAG FAR ) |
400 CONSTANT DO-1OP-BIT ( FLAG WE'VE BEEN THROUGH DO-1OP ONCE ) |
800 CONSTANT MAYBE-OFFSET-BIT ( FLAG THAT MAYBE WE'VE GOT AN OFFSET ) |
IMMED-BIT |
DIRECT-BIT OR |
MOD-R/M-BIT OR |
S-I-B-BIT OR |
FULL-OFF-BIT OR |
BASED-BIT OR |
OFFSET-BIT OR |
SHORT-BIT OR |
NEAR-BIT OR |
FAR-BIT OR |
DO-1OP-BIT OR |
MAYBE-OFFSET-BIT OR |
CONSTANT MODE-MASK ( ALL MODE BITS SET ) |
: 1MODE-BIT! ( SET A MODE BIT ) |
( BIT CONSTANT -- ) |
ADDMODE SWAP OVER DATA-@ OR SWAP DATA-! ; |
: 0MODE-BIT! ( CLEAR A MODE BIT ) |
( BIT CONSTANT -- ) |
MODE-MASK XOR ADDMODE SWAP OVER DATA-@ AND SWAP DATA-! ; |
: MODE-BIT@ ( FETCH A MODE BIT ) |
( BIT MASK -- FLAG ) |
ADDMODE DATA-@ AND 0<> ; |
: HAS-IMMED ( FLAG AN IMMEDIATE OPERAND ) |
( -- ) |
IMMED-BIT 1MODE-BIT! ; |
: HAS-IMMED? ( DO WE HAVE AN IMMEDIATE OPERAND? ) |
( -- FLAG ) |
IMMED-BIT MODE-BIT@ ; |
: HAS-MOD-R/M ( WE'VE SEEN AT LEAST ONE OPERAND ) |
( -- ) |
MOD-R/M-BIT 1MODE-BIT! ; |
: HAS-MOD-R/M? ( HAVE WE SEEN AN OPERAND? ) |
( -- FLAG ) |
MOD-R/M-BIT MODE-BIT@ ; |
: HAS-S-I-B ( WE'VE STARTED WORK ON THE S-I-B ) |
( -- ) |
S-I-B-BIT 1MODE-BIT! ; |
: HAS-S-I-B? ( HAVE WE STARTED WORK ON THE S-I-B ) |
( -- FLAG ) |
S-I-B-BIT MODE-BIT@ ; |
: REG,R/M ( ADDRESSING MODE IS REGISTER, REGISTER/MEMORY ) |
( -- ) |
DIRECT-BIT 1MODE-BIT! ; |
: R/M,REG ( ADDRESSING MODE IS REGISTER/MEMORY, REGISTER ) |
( -- ) |
DIRECT-BIT 0MODE-BIT! ; |
: DIRECTION? ( IS THE DESTINATION A REGISTER? ) |
( -- FLAG ) |
DIRECT-BIT MODE-BIT@ ; |
: HAS-FULL-OFF ( MUST GENERATE A FULL OFFSET ) |
( -- ) |
FULL-OFF-BIT 1MODE-BIT! ; |
: HAS-FULL-OFF? ( DO WE NEED A FULL OFFSET? ) |
( -- FLAG ) |
FULL-OFF-BIT MODE-BIT@ ; |
: HAS-BASE ( WE HAVE A BASE ) |
( -- ) |
BASED-BIT 1MODE-BIT! ; |
: HAS-BASE? ( DO WE HAVE A BASE? ) |
( -- FLAG ) |
BASED-BIT MODE-BIT@ ; |
: MAYBE-S-I-B? ( DO WE HAVE A POSSIBLE S-I-B? ) |
( -- FLAG ) |
BASED-BIT MODE-BIT@ S-I-B-BIT MODE-BIT@ OR ; |
: HAS-OFFSET ( FLAG THAT WE DO HAVE AN OFFSET ) |
( -- ) |
OFFSET-BIT 1MODE-BIT! ; |
: HAS-OFFSET? ( DO WE HAVE AN OFFSET? ) |
( -- FLAG ) |
OFFSET-BIT MODE-BIT@ FULL-OFF-BIT MODE-BIT@ OR ; |
: IS-SHORT ( WE HAVE A SHORT DISPLACEMENT ) |
( -- ) |
SHORT-BIT 1MODE-BIT! ; |
: IS-SHORT? ( IS THE DISPLACEMENT SHORT? ) |
( -- FLAG ) |
SHORT-BIT MODE-BIT@ ; |
: IS-NEAR ( WE HAVE A NEAR DISPLACEMENT ) |
( -- ) |
NEAR-BIT 1MODE-BIT! ; |
: IS-NEAR? ( DO WE HAVE A NEAR DISPLACEMENT? ) |
( -- FLAG ) |
NEAR-BIT MODE-BIT@ FAR-BIT MODE-BIT@ 0= OR ; |
: IS-FAR ( WE HAVE A FAR POINTER ) |
( -- ) |
FAR-BIT 1MODE-BIT! ; |
: IS-FAR? ( DO WE HAVE A FAR DISPLACEMENT? ) |
( -- FLAG ) |
FAR-BIT MODE-BIT@ ; |
: DO-1OP-EXED ( WE'VE EXEC'D DO-1OP ) |
( -- ) |
DO-1OP-BIT 1MODE-BIT! ; |
( NOTE: WHEN WE START TO ASSEMBLE AN OPCODE, ALL FLAGS ARE OFF ) |
: DO-1OP-EXED? ( HAVE WE EXEC'D DO-1OP? ) |
( -- FLAG ) |
DO-1OP-BIT MODE-BIT@ ; |
: MAYBE-HAS-OFFSET ( FLAG THAT WE'VE PICKED SOMETHING UP FROM THE STACK ) |
( -- ) |
MAYBE-OFFSET-BIT 1MODE-BIT! ; |
: MAYBE-HAS-OFFSET? ( HAVE WE PICKED UP SOMETHING FROM THE STACK? ) |
( -- FLAG ) |
MAYBE-OFFSET-BIT MODE-BIT@ ; |
( TEST FOR ERROR CONDITIONS ) |
: _?PARAMS ( ARE THERE PARAMETERS ON THE STACK? ) |
SP@ SP-SAVE DATA-@ - DUP ?CLR-OPSTACK |
ABORT" OFFSET OR IMMEDIATE OPERAND NOT ALLOWED WITH THIS INSTRUCTION" ; |
' _?PARAMS IS ?PARAMS |
: _?SEG ( IS THERE A SEGMENT OVERRIDE? ) |
SEG-PREFIX DATA-@ DUP ?CLR-OPSTACK |
ABORT" SEGMENT OVERRIDE NOT ALLOWED WITH THIS INSTRUCTION" ; |
' _?SEG IS ?SEG |
: _?LOCK ( IS THERE A LOCK PREFIX? ) |
INST-PREFIX DATA-@ 0F0 = DUP ?CLR-OPSTACK |
ABORT" LOCK PREFIX NOT ALLOWED WITH THIS INSTRUCTION" ; |
' _?LOCK IS ?LOCK |
: _?REP ( IS THERE A REPEAT PREFIX? ) |
INST-PREFIX DATA-@ 0F3 OVER = 0F2 ROT = OR DUP ?CLR-OPSTACK |
ABORT" REP, ETC. NOT ALLOWED WITH THIS INSTRUCTION" ; |
' _?REP IS ?REP |
: _?INST-PRE ( IS THERE ANY INSTRUCTION PREFIX? ) |
INST-PREFIX DATA-@ DUP ?CLR-OPSTACK |
ABORT" INSTRUCTION PREFIXES NOT ALLOWED WITH THIS INSTRUCTION" ; |
' _?INST-PRE IS ?INST-PRE |
: _?OPERANDS ( ARE THERE ANY OPERANDS? ) |
OP-DEPTH DUP ?CLR-OPSTACK |
ABORT" OPERANDS NOT ALLOWED WITH THIS INSTRUCTION" ; |
' _?OPERANDS IS ?OPERANDS |
: _?OPSIZE1 ( IS THE OPERAND SIZE MISMATCHED? ) |
( N -- ) |
?DUP IF DT-SIZE DATA-@ ?DUP IF - DUP ?CLR-OPSTACK |
ABORT" OPERAND SIZE MISMATCHED" ELSE DT-SIZE DATA-! THEN THEN ; |
: _?OPSIZE2 ( JUST STORE THE OPERAND SIZE ) |
( N -- ) |
?DUP IF DT-SIZE DATA-! THEN ; |
' _?OPSIZE1 IS ?OPSIZE |
: _?ADSIZE1 ( IS THE ADDRESS SIZE MISMATCHED? ) |
( N -- ) |
?DUP IF AD-SIZE DATA-@ ?DUP IF - DUP ?CLR-OPSTACK |
ABORT" ADDRESS SIZE MISMATCHED" ELSE AD-SIZE DATA-! THEN THEN ; |
: _?ADSIZE2 ( JUST STORE THE ADDRESS SIZE ) |
( N -- ) |
?DUP IF AD-SIZE DATA-! THEN ; |
' _?ADSIZE1 IS ?ADSIZE |
: _?SHORT ( IS THE ADDRESS SHORT? ) |
( -- ) |
AD-SIZE DATA-@ 8BIT = DUP ?CLR-OPSTACK |
ABORT" SHORT NOT ALLOWED WITH THIS INSTRUCTION" ; |
' _?SHORT IS ?SHORT |
: ?NOSHORT ( DO WE HAVE AN ILLEGAL SHORT? ) |
( -- ) |
IS-SHORT? IF 8BIT AD-SIZE DATA-! ?SHORT THEN ; |
: _?TOOFAR ( IS THE BRANCH OFFSET TO FAR? ) |
( FLAG -- ) |
DUP ?CLR-OPSTACK |
ABORT" BRANCH OFFSET TOO BIG TO FIT SPECIFIED WIDTH" ; |
' _?TOOFAR IS ?TOOFAR |
: _?UNRES ( ARE THERE ANY UNRESOLVED FORWARD REFERENCE LABELS? ) |
( -- ) |
FRTABLE FRMAX 0 DO DUP DATA-@ DUP ?CLR-OPSTACK |
ABORT" UNRESOLVED FORWARD REFERENCE" CELL+ CELL+ LOOP DROP ; |
' _?UNRES IS ?UNRES |
: _?NOADSIZE ( NO OR UNKNOWN ADDRESS SIZE ) |
( -- ) |
CLR-OPSTACK -1 |
ABORT" NO OR UNKNOWN ADDRESS SIZE" ; |
' _?NOADSIZE IS ?NOADSIZE |
: _?TOOMANYOPS ( ARE THERE TOO MANY OPERANDS? ) |
( MAX ALLOWED OPERANDS -- ) |
OP-DEPTH < DUP ?CLR-OPSTACK |
ABORT" TOO MANY OPERANDS" ; |
' _?TOOMANYOPS IS ?TOOMANYOPS |
: _?NOFAR ( IS THERE AN UNALLOWED FAR REFERENCE? ) |
( -- ) |
AD-SIZE DATA-@ 32BIT = DUP ?CLR-OPSTACK |
ABORT" FAR REFERENCES NOT ALLOWED WITH THIS INSTRUCTION" ; |
' _?NOFAR IS ?NOFAR |
: <_?MATCH> ( THE ERROR ACTION FOR ?MATCH AND ?NOMATCH ) |
( FLAG -- ) |
DUP ?CLR-OPSTACK |
ABORT" OPERAND MISMATCH" ; |
: _?MATCH ( ERROR IF THE PARAMETERS MATCH ) |
( X1 \ X2 -- ) |
= <_?MATCH> ; |
' _?MATCH IS ?MATCH |
: _?NOMATCH ( ERROR IF THE PARAMETERS DON'T MATCH ) |
( X1 \ X2 -- ) |
- <_?MATCH> ; |
' _?NOMATCH IS ?NOMATCH |
: _?FINISHED ( ARE THERE OPERANDS LEFT? ) |
( -- ) |
OP-DEPTH DUP ?CLR-OPSTACK |
ABORT" UNCONSUMED OPERANDS" ; |
' _?FINISHED IS ?FINISHED |
: _?BADTYPE ( IS THE OPERAND TYPE ALLOWED? ) |
( MAX TYPE ALLOWED -- ) |
MAXTYPE DATA-@ < DUP ?CLR-OPSTACK |
ABORT" ADDRESSING MODE NOT ALLOWED" ; |
' _?BADTYPE IS ?BADTYPE |
: _?BADCOMBINE ( CAN THE OPERAND TYPES BE COMBINED? ) |
( FLAG -- ) |
DUP ?CLR-OPSTACK |
ABORT" ILLEGAL OPERAND COMBINATION" ; |
' _?BADCOMBINE IS ?BADCOMBINE |
: _?NOTENOUGH ( ARE THERE NOT ENOUGH OPERANDS? ) |
( N -- ) |
OP-DEPTH > DUP ?CLR-OPSTACK |
ABORT" NOT ENOUGH OPERANDS" ; |
' _?NOTENOUGH IS ?NOTENOUGH |
: _?NOIMMED ( IS THERE AN ILLEGAL IMMEDIATE OPERAND? ) |
( -- ) HAS-IMMED? DUP ?CLR-OPSTACK |
ABORT" IMMEDIATE OPERANDS NOT ALLOWED WITH THIS INSTRUCTION" ; |
' _?NOIMMED IS ?NOIMMED |
: _?BADMODE ( IS THE ADDRESS MODE ILLEGAL? ) |
( FLAG -- ) |
DUP ?CLR-OPSTACK |
ABORT" ILLEGAL ADDRESS MODE" ; |
' _?BADMODE IS ?BADMODE |
: _?REG,R/M ( IS THE DESTINATION A REGISTER? ) |
( -- ) |
DIRECTION? 0= MOD-R/M DATA-@ 0C0 < AND DUP ?CLR-OPSTACK |
ABORT" DESTINATION MUST BE A REGISTER" ; |
' _?REG,R/M IS ?REG,R/M |
: _?R/M,REG ( IS THE SOURCE A REGISTER? ) |
( -- ) |
DIRECTION? MOD-R/M DATA-@ 0C0 < AND DUP ?CLR-OPSTACK |
ABORT" SOURCE MUST BE A REGISTER" ; |
' _?R/M,REG IS ?R/M,REG |
: _?MEM ( IS ONE OF THE OPERANDS IN MEMORY? ) |
( -- ) |
MOD-R/M DATA-@ 0BF > MAYBE-HAS-OFFSET? 0= AND DUP ?CLR-OPSTACK |
ABORT" INSTRUCTION REQUIRES A MEMORY OPERAND" ; |
' _?MEM IS ?MEM |
: _?REG ( ARE ALL OF THE OPERANDS REGISTER? ) |
( -- ) |
MOD-R/M DATA-@ 0C0 < HAS-OFFSET? OR DUP ?CLR-OPSTACK |
ABORT" THIS INSTRUCTION MAY ONLY USE REGISTERS" ; |
' _?REG IS ?REG |
: ?MEM,REG ( IS THE INSTRUCTION CODED AS MEMORY,REGISTER? ) |
( -- ) |
?R/M,REG ?MEM ; |
: ?REG,MEM ( IS THE INSTRUCTION CODED AS REGISTER,MEMORY? ) |
( -- ) |
?REG,R/M ?MEM ; |
: ?REGEXCLUS ( IS THE ADDRESSING MODE EXCLUSIVE? ) |
( -- ) |
RTYPE DATA-@ 0 ?NOMATCH ; |
IN-ASM |
: REPORT-ERRORS ( TURN ON ERROR REPORTING ) |
['] _?PARAMS IS ?PARAMS |
['] _?SEG IS ?SEG |
['] _?LOCK IS ?LOCK |
['] _?REP IS ?REP |
['] _?INST-PRE IS ?INST-PRE |
['] _?OPERANDS IS ?OPERANDS |
['] _?OPSIZE1 IS ?OPSIZE |
['] _?ADSIZE1 IS ?ADSIZE |
['] _?SHORT IS ?SHORT |
['] _?TOOFAR IS ?TOOFAR |
['] _?UNRES IS ?UNRES |
['] _?NOADSIZE IS ?NOADSIZE |
['] _?TOOMANYOPS IS ?TOOMANYOPS |
['] _?NOFAR IS ?NOFAR |
['] _?MATCH IS ?MATCH |
['] _?NOMATCH IS ?NOMATCH |
['] _?FINISHED IS ?FINISHED |
['] _?BADTYPE IS ?BADTYPE |
['] _?BADCOMBINE IS ?BADCOMBINE |
['] _?NOTENOUGH IS ?NOTENOUGH |
['] _?NOIMMED IS ?NOIMMED |
['] _?BADMODE IS ?BADMODE |
['] _?REG,R/M IS ?REG,R/M |
['] _?R/M,REG IS ?R/M,REG |
['] _?MEM IS ?MEM |
['] _?REG IS ?REG ; |
: NO-ERRORS ( TURN OFF ERROR REPORTING ) |
['] NOOP IS ?PARAMS |
['] NOOP IS ?SEG |
['] NOOP IS ?LOCK |
['] NOOP IS ?REP |
['] NOOP IS ?INST-PRE |
['] NOOP IS ?OPERANDS |
['] _?OPSIZE2 IS ?OPSIZE |
['] _?ADSIZE2 IS ?ADSIZE |
['] NOOP IS ?SHORT |
['] DROP IS ?TOOFAR |
['] NOOP IS ?UNRES |
['] NOOP IS ?NOADSIZE |
['] DROP IS ?TOOMANYOPS |
['] NOOP IS ?NOFAR |
['] 2DROP IS ?MATCH |
['] 2DROP IS ?NOMATCH |
['] NOOP IS ?FINISHED |
['] DROP IS ?BADTYPE |
['] DROP IS ?BADCOMBINE |
['] DROP IS ?NOTENOUGH |
['] NOOP IS ?NOIMMED |
['] DROP IS ?BADMODE |
['] NOOP IS ?REG,R/M |
['] NOOP IS ?R/M,REG |
['] NOOP IS ?MEM |
['] NOOP IS ?REG ; |
( GENERATE PREFIX SEQUENCES ) |
IN-HIDDEN |
: INST, ( GENERATE A NECESSARY INSTRUCTION PREFIX ) |
( -- ) |
INST-PREFIX DATA-@ ?DUP IF CODE-C, 0 INST-PREFIX DATA-! THEN ; |
: ADDR, ( GENERATE A NECESSARY ADDRESS SIZE PREFIX ) |
( -- ) |
ADDR-PREFIX DATA-@ IF 67 CODE-C, 0 ADDR-PREFIX DATA-! THEN ; |
: DATA, ( GENERATE A NECESSARY DATA SIZE PREFIX ) |
( -- ) |
DATA-PREFIX DATA-@ IF 66 CODE-C, 0 DATA-PREFIX DATA-! THEN ; |
: SEG, ( GENERATE A NECESSARY SEGMENT OVERRIDE PREFIX ) |
( -- ) |
SEG-PREFIX DATA-@ ?DUP IF CODE-C, 0 SEG-PREFIX DATA-! THEN ; |
: GENERATE-PREFIXES ( GENERATE NECESSARY PREFIXES ) |
( -- ) |
INST, ADDR, DATA, SEG, ; |
( THE PREFIXES ) |
: SEG-PRE CREATE DATA-, DOES> DATA-@ SEG-PREFIX DATA-! ; |
: INST-PRE CREATE DATA-, DOES> DATA-@ INST-PREFIX DATA-! ; |
IN-ASM |
2E SEG-PRE CS: |
36 SEG-PRE SS: |
3E SEG-PRE DS: |
26 SEG-PRE ES: |
64 SEG-PRE FS: |
65 SEG-PRE GS: |
0F3 INST-PRE REP |
0F3 INST-PRE REPE |
0F3 INST-PRE REPZ |
0F2 INST-PRE REPNE |
0F2 INST-PRE REPNZ |
0F0 INST-PRE LOCK |
( SAVE THE P-STACK DEPTH ) |
IN-HIDDEN |
: SAVE-DEPTH ( -- ) |
SP@ SP-SAVE DATA-! ; |
: DEPTH-CHANGE ( REPORT ON A CHANGE OF DEPTH ) |
SP@ SP-SAVE DATA-@ SWAP - CELL/ ; |
( CREATE AN ASSEMBLY MNEMONIC ) |
: COMPILE-OPCODE ( COMPILE THE BYTES IN AN OPCODE ) |
( 0 -- | A -- | X \ A -- | X \ X' \ A -- ) |
( OS: X ... -- ) |
( A IS THE ADDRESS OF A TWO CELL DATA STRUCTURE: ) |
( OFFSET 0 -- XT OF THE ACTUAL ROUTINE TO COMPILE THE CODE ) |
( OFFSET 1 -- PARAMETER USED TO GENERATE THE CODE ) |
?DUP IF |
DUP CELL+ DATA-@ SWAP DATA-@ REGISTER-ASM EXECUTE |
THEN ; |
DEFER SAVE-INST ( SAVE THE CURRENT INSTRUCTION -- USED IN POSTFIX MODE ) |
: _SAVE-INST ( SAVE THE CURRENT INSTRUCTION, AND FETCH THE PREVIOUS ONE ) |
( ALSO SWAPS INSTRUCTION PREFIXES ) |
( A -- A' ) |
INST-SAVE DUP DATA-@ >R DATA-! R> INST-PREFIX SV-INST-PREFIX |
2DUP DATA-@ SWAP DATA-@ ROT DATA-! SWAP DATA-! ; |
' _SAVE-INST IS SAVE-INST |
IN-ASM |
: POSTFIX ['] _SAVE-INST IS SAVE-INST ; |
: PREFIX ['] NOOP IS SAVE-INST ; |
IN-HIDDEN |
: _DO-OPCODE ( CREATE THE ACTUAL OPCODE, OR AT LEAST CALL THE FUNCTIONS ) |
( THAT DO ... ) |
( X? \ X? \ 0|ADDR -- ) |
SAVE-INST COMPILE-OPCODE RESET-FOR-NEXT-INSTR SAVE-DEPTH ; |
' _DO-OPCODE IS DO-OPCODE |
: OPCODE ( C:: PARAMETER \ XT -- ) |
( R:: -- | X -- | X \ X' -- ) |
( R::OS: X ... -- ) |
CREATE DATA-, DATA-, DOES> DO-OPCODE ; |
( SUPPORT ROUTINES FOR CREATING ASSEMBLY CODE ) |
: ALL-EXCEPT ( PROCESS ALL OPERANDS EXCEPT ONE IN PARTICULAR ) |
( X \ N -- TYPE \ MOD-R/M {X!=N} | -- 0 \ 0 ) |
OVER = IF DROP 0 0 ELSE <DEC-REG> >R >R ?ADSIZE ?OPSIZE R> R> THEN ; |
: OFFSET8, ( CREATE AN 8 BIT CODE-HERE RELATIVE OFFSET ) |
( ADDR -- ) |
8B-REL REGISTER-REF CODE-HERE 1+ - DUP ABS 7F > ?TOOFAR CODE-C, ; |
: OFFSET16, ( CREATE A 16 BIT CODE-HERE RELATIVE OFFSET ) |
( ADDR -- ) |
16B-REL REGISTER-REF CODE-HERE 2+ - DUP ABS 7FFF > ?TOOFAR CODE-W, ; |
: OFFSET32, ( CREATE A 32 BIT CODE-HERE RELATIVE OFFSET ) |
( ADDR -- ) |
32B-REL REGISTER-REF CODE-HERE 4+ - CODE-D, ; |
: OFFSET16/32, ( CREATE A 16 OR 32 BIT CODE-HERE RELATIVE OFFSET ) |
( ADDR \ 16BIT? -- ) |
IF OFFSET16, ELSE OFFSET32, THEN ; |
: FLAG-FOR-SIZE-PREFIX ( DO WE NEED A SIZE PREFIX? ) |
( SIZE -- FLAG ) |
DUP IF DUP 8BIT - IF DEFAULT-SIZE - ELSE DROP 0 THEN THEN ; |
: CHECK-AD-SIZE ( CHECK THE ADDRESS SIZE ) |
( -- ) |
AD-SIZE DATA-@ FLAG-FOR-SIZE-PREFIX ADDR-PREFIX DATA-! ; |
: CHECK-DT-SIZE ( CHECK THE OPERAND SIZE ) |
( -- ) |
DT-SIZE DATA-@ FLAG-FOR-SIZE-PREFIX DATA-PREFIX DATA-! ; |
: CHECK-SIZES ( CHECK THE ADDRESS AND OPERAND SIZES ) |
( -- ) |
CHECK-AD-SIZE CHECK-DT-SIZE ; |
: RTYPE! ( STORE THE ADDRESSING MODE TYPE AND UPDATE MAXTYPE ) |
( TYPE -- ) |
DUP RTYPE DATA-! MAXTYPE DATA-@ OVER < IF MAXTYPE DATA-! ELSE |
DROP THEN ; |
: SPECIAL-PROCESS? ( DO WE NEED TO SPECIALLY PROCESS THIS REGISTER? ) |
( -- FLAG ) |
MAXTYPE DATA-@ DUP REGISTER > SWAP FREG < AND ; |
: SPECIAL-REGISTER? ( IS THIS A SPECIAL REGISTER? ) |
( -- FLAG ) |
RTYPE DATA-@ DUP REGISTER > SWAP FREG < AND ; |
: DO-REG ( DO ANY REGISTER ADDRESSING MODE TRANSLATION ) |
( REG \ TYPE -- ) |
?REGEXCLUS RTYPE! DO-1OP-EXED? IF |
HAS-MOD-R/M? IF |
MOD-R/M DATA-@ SWAP SPECIAL-PROCESS? IF |
SPECIAL-REGISTER? IF |
8*+ REG,R/M |
ELSE |
MAXTYPE DATA-@ SREG = IF |
C0+ SWAP C0-8* + |
ELSE |
C0+ + |
THEN R/M,REG |
THEN |
ELSE |
8*+ REG,R/M |
THEN |
ELSE ( *MUST* BE REG,DISP OR REG,IMMED ) |
C0+ REG,R/M HAS-MOD-R/M HAS-IMMED? 0= IF |
HAS-OFFSET |
THEN |
THEN |
ELSE ( FIRST TIME THROUGH DO-1OP ) |
SPECIAL-REGISTER? RTYPE DATA-@ SREG <> AND IF |
8* |
ELSE ( EITHER A GENERAL OR SEGMENT REGISTER ) |
C0+ |
THEN HAS-MOD-R/M R/M,REG |
THEN MOD-R/M DATA-! ; |
: DO-IMMED ( DO AN IMMEDIATE ADDRESSING MODE OPERAND ) |
( X \ 0 -- ) |
DROP IMMED-SV DATA-! HAS-IMMED IMMEDIATE RTYPE! ; |
: DO-INDIRE ( DO AN INDIRECT ADDRESSING MODE OPERAND ) |
( REG -- ) |
HAS-MOD-R/M? IF |
MOD-R/M DATA-@ DUP 0BF > IF |
C0-8* + |
ELSE |
+ |
THEN |
ELSE |
HAS-MOD-R/M |
THEN MOD-R/M DATA-! HAS-BASE ; |
: DO-INDEX ( DO A SCALED INDEX ADDRESSING MODE ) |
( REG -- ) |
HAS-S-I-B 8* S-I-B DATA-@ 8/ + S-I-B DATA-! HAS-MOD-R/M? IF |
MOD-R/M DATA-@ DUP 0BF > IF |
C0-8* 4+ |
ELSE |
[ 7 -1 XOR ] LITERAL AND 4+ |
THEN |
ELSE |
4 HAS-MOD-R/M |
THEN MOD-R/M DATA-! ; |
: DO-BASED ( DO A BASE REGISTER ADDRESSING MODE ) |
( REG -- ) |
HAS-MOD-R/M? IF |
MOD-R/M DATA-@ DUP 0BF > IF |
C0-8* OVER 8* S-I-B DATA-! + |
ELSE |
MAYBE-S-I-B? IF |
HAS-S-I-B S-I-B ROT OVER DATA-@ + SWAP |
DATA-! [ 7 -1 XOR ] LITERAL AND 4+ |
ELSE |
OVER 8* S-I-B DATA-! + |
THEN |
THEN |
ELSE |
DUP 8* S-I-B DATA-! HAS-MOD-R/M |
THEN MOD-R/M DATA-! HAS-BASE ; |
: OPERAND-CASES ( PROCESS AN OPERAND BASED ON ITS TYPE ) |
( REG \ TYPE -- | X \ REG \ TYPE -- ) |
CASE UNKNOWN OF |
DROP |
ENDOF IMMEDIATE OF |
DO-IMMED |
ENDOF INDIRECT OF |
?REGEXCLUS INDIRECT RTYPE! DO-INDIRE |
ENDOF INDEX OF |
RTYPE DATA-@ ?DUP IF BASED ?NOMATCH THEN INDEX RTYPE! DO-INDEX |
ENDOF BASED OF |
RTYPE DATA-@ ?DUP IF BASED OVER = INDEX ROT = OR 0= ?BADCOMBINE |
THEN BASED RTYPE! DO-BASED |
ENDOF ( MUST BE A REGISTER TYPE ) DO-REG DUP ( SO ENDCASE HAS ) |
( SOMETHING TO DISCARD ) ENDCASE ; |
: SAVE-OFFSET ( SAVE THE OFFSET, IF IT'S PRESENT ) |
( X -- | -- ) |
DEPTH-CHANGE IF MAYBE-HAS-OFFSET ?DUP IF OFFSET-SV DATA-! HAS-OFFSET |
THEN THEN ; |
: DO-1OP ( PROCESS A SINGLE OPERAND ) |
( -- | X -- | X \ X' -- ) |
0 RTYPE DATA-! BEGIN OP-DEPTH IF POP-OP ELSE FALSE THEN ?DUP WHILE |
0 ALL-EXCEPT SWAP OPERAND-CASES REPEAT SAVE-OFFSET DO-1OP-EXED ; |
: LIT-OP ( INSTERT THE LITERAL VALUE OF AN OPERAND INTO CODE ) |
( C:: -- ) |
( R:: -- X ) |
' >BODY DATA-@ POSTPONE LITERAL ; ALSO FORTH IMMEDIATE IN-HIDDEN |
: PARSE-CALL/JMP-OPERANDS ( PARSE THE OPERANDS FOR CALLS AND JUMPS ) |
( -- | X -- ) |
0 RTYPE DATA-! BEGIN OP-DEPTH WHILE POP-OP DUP LIT-OP SHORT = OVER |
LIT-OP NEAR = OR OVER LIT-OP FAR = OR IF CASE LIT-OP SHORT OF |
IS-SHORT ENDOF LIT-OP NEAR OF IS-NEAR ENDOF IS-FAR ENDCASE ELSE |
0 ALL-EXCEPT SWAP OPERAND-CASES THEN REPEAT ?NOIMMED SAVE-OFFSET ; |
: DO-2OPS ( DO TWO OPERANDS AND SET SIZE PREFIXES ) |
( -- | X -- | X \ X -- ) |
DO-1OP DO-1OP CHECK-SIZES ; |
: INSTALL-/R ( INSTALL THE /R FIELD IN A MOD-R/M BYTE ) |
( /R VALUE -- ) |
8* MOD-R/M DATA-@ [ 7 8* -1 XOR ] LITERAL AND OR MOD-R/M DATA-! ; |
: DISP, ( COMPILE THE DISPLACEMENT ) |
( -- ) |
HAS-OFFSET? IF OFFSET-SV DATA-@ DUP ABS 7F > HAS-FULL-OFF? OR |
IF AD-SIZE DATA-@ 16BIT = IF 16B-ABS REGISTER-REF CODE-W, ELSE 32B-ABS |
REGISTER-REF CODE-D, THEN ELSE 8B-ABS REGISTER-REF CODE-C, THEN THEN ; |
: DEFAULT-8BIT ( CHANGE A ZERO SIZE TO 8BIT ) |
( SIZE -- SIZE' ) |
?DUP 0= IF 8BIT THEN ; |
: >DEFAULT-SIZE ( CHANGE A ZERO SIZE TO THE DEFAULT SIZE ) |
( SIZE -- SIZE' ) |
?DUP 0= IF DEFAULT-SIZE THEN ; |
: GET-DT-SIZE ( GET THE CURRENT DATA SIZE, DEFAULT IS 8 BIT ) |
( -- DATA SIZE ) |
DT-SIZE DATA-@ DEFAULT-8BIT ; |
: GET-AD-SIZE ( GET THE CURRENT ADDRESS SIZE, DEFAULT IS DEFAULT-SIZE ) |
( -- ADDRESS SIZE ) |
AD-SIZE DATA-@ >DEFAULT-SIZE ; |
: GET-FP-SIZE ( GET THE SIZE OF FP OPERAND, DEFAULT IS DEFAULT-SIZE ) |
DT-SIZE DATA-@ >DEFAULT-SIZE ; |
: IMMED, ( COMPILE THE IMMEDIATE OPERAND ) |
( -- ) |
HAS-IMMED? IF |
IMMED-SV DATA-@ GET-DT-SIZE CASE |
8BIT OF 8B-ABS REGISTER-REF CODE-C, ENDOF |
16BIT OF 16B-ABS REGISTER-REF CODE-W, ENDOF |
32BIT OF 32B-ABS REGISTER-REF CODE-D, ENDOF |
?NOADSIZE DROP |
ENDCASE |
THEN ; |
: 8BIT? ( IS THE OPERATION 8 BITS WIDE? ) |
( -- FLAG ) |
GET-DT-SIZE 8BIT = ; |
: A16BIT? ( IS THE ADDRESS SIZE 16 BITS? ) |
( -- FLAG ) |
GET-AD-SIZE 16BIT = ; |
: A32BIT? ( IS THE ADDRESS SIZE 32 BITS? ) |
( -- FLAG ) |
GET-AD-SIZE 32BIT = ; |
: S-I-B, ( COMPILE THE S-I-B BYTE ) |
( -- ) |
HAS-S-I-B? A32BIT? AND IF S-I-B DATA-@ CODE-C, THEN ; |
: +SIZE-BIT ( ADJUST AN OPCODE FOR THE SIZE OF THE OPERATION ) |
( OP-CODE -- OP-CODE' ) |
8BIT? 0= IF 1+ THEN ; |
: +DIRECT-BIT ( ADJUST AN OPCODE FOR THE DIRECTION OF THE OPERANDS ) |
( OP-CODE -- OP-CODE' ) |
DIRECTION? IF 2+ THEN ; |
: MATCH-R/M? ( DOES THE VALUE MATCH THE R/M FIELD OF THE MOD-R/M? ) |
( VALUE -- FLAG ) |
MOD-R/M DATA-@ 7 AND = ; |
: PURE-REG? ( IS THE MOD FIELD OF THE MOD-R/M = 3? ) |
( -- FLAG ) |
MOD-R/M DATA-@ 0BF > ; |
: DISPLACEMENT? ( DOES THE ADDRESS MODE HAVE A PURE DISPLACEMENT? ) |
( -- FLAG ) |
HAS-MOD-R/M? IF PURE-REG? MAYBE-HAS-OFFSET? AND ELSE TRUE THEN ; |
: [(E)BP]? ( DOES THE ADDRESS MODE HAVE EITHER [BP] OR [EBP] ALONE? ) |
( -- FLAG ) |
A16BIT? 6 MATCH-R/M? AND A32BIT? 5 MATCH-R/M? AND OR MOD-R/M |
DATA-@ 40 < AND ; |
: [REG*N]? ( DOES IT HAVE ONLY AN INDEX REGISTER? ) |
( -- FLAG ) |
HAS-S-I-B? HAS-BASE? 0= AND ; |
: [ESP][REG]? ( DOES IT HAVE ESP AS AN INDEX REGISTER? ) |
( -- FLAG ) |
S-I-B DATA-@ 8/ 4 = ; |
: [ESP]? ( DOES IT HAVE ONLY A BASE OF ESP? ) |
( -- FLAG ) |
A32BIT? HAS-BASE? HAS-S-I-B? 0= 4 MATCH-R/M? AND AND AND ; |
: DO-[(E)BP] ( DO A NAKED [BP] OR [EBP] ) |
( -- ) |
[(E)BP]? IF HAS-OFFSET THEN ; |
: DO-DISP ( PROCESS A DISPLACEMENT ) |
( -- ) |
MOD-R/M DATA-@ DUP 0BF > IF C0-8* THEN 5 + A16BIT? IF 1+ THEN |
CODE-C, HAS-FULL-OFF ; |
: DO-[REG*N] ( PROCESS A NAKED INDEX ) |
( -- ) |
[REG*N]? IF HAS-FULL-OFF 5 S-I-B DATA-+! -80 MOD-R/M DATA-+! THEN ; |
: DO-[ESP][REG] ( SWAP INDEX AND BASE REGISTERS IN S-I-B ) |
( -- ) |
[ESP][REG]? IF S-I-B DATA-@ 7 AND 8* 4+ S-I-B DATA-! THEN ; |
: DO-[ESP] ( DO [ESP] ONLY ) |
( -- ) |
[ESP]? IF 24 S-I-B DATA-! HAS-S-I-B THEN ; |
: MOD-R/M, ( COMPILE THE MOD-R/M FIELD ) |
( -- ) |
DISPLACEMENT? IF DO-DISP ELSE DO-[(E)BP] DO-[ESP][REG] DO-[REG*N] |
DO-[ESP] MOD-R/M DATA-@ HAS-OFFSET? IF OFFSET-SV DATA-@ ABS |
7F > HAS-FULL-OFF? OR IF 80 ELSE 40 THEN + THEN CODE-C, THEN ; |
: COMPILE-FIELDS ( COMPILE THE MOD-R/M, S-I-B, DISPLACEMENT, AND IMMED FIELDS ) |
( -- ) |
MOD-R/M, S-I-B, DISP, IMMED, ; |
: GENERIC-ENTRY2 ( GENERIC ENTRY SEQUENCE FOR TWO OPERAND INSTRUCTIONS ) |
( PARAM \ MAX TYPE -- ) |
( | X \ PARAM \ MAX TYPE -- ) |
( | X \ X' \ PARAM \ MAX TYPE -- ) |
2>R DO-2OPS ?FINISHED 2R> ?BADTYPE GENERATE-PREFIXES ; |
: +FP-SIZE ( ADD 4 IF THE OPERATION SIZE IS 64BIT: IE., DEFAULT FLOAT ) |
( N -- N' ) |
DT-SIZE DATA-@ 64BIT = IF 4+ THEN ; |
: /R&FREG>MOD-R/M ( TURN /R AND FP REG INTO THE RQD MOD-R/M ) |
( /R \ FREG -- MOD-R/M ) |
SWAP 8*+ C0+ ; |
: SWAP-REGS ( SWAP THE ORDER OF REGISTERS IN THE MOD-R/M BYTE ) |
( -- ) |
MOD-R/M DATA-@ DUP 0BF > IF 3F AND 8 /MOD /R&FREG>MOD-R/M THEN MOD-R/M |
DATA-! ; |
: PARSE-FP-OPS ( PARSE FLOATING POINT INSTRUCTION OPERANDS ) |
( -- N | X -- N ) |
DEPTH-CHANGE 0<> OP-DEPTH 0<> OR IF DO-1OP OP-DEPTH IF DO-1OP 2 ELSE |
1 THEN ELSE 0 THEN ?NOIMMED ?FINISHED CHECK-SIZES ; |
: MOD-R/M>FREG ( CONVERT MOD-R/M BYTE INTO AN FP REGISTER NUMBER ) |
( -- N ) |
MOD-R/M DATA-@ C0- DUP 7 > IF 8/ THEN ; |
: FP-DIRECTION? ( WHICH DIRECTION IS THE FLOATING POINT DATA GOING? ) |
( -- FLAG ) |
MOD-R/M DATA-@ 0C7 > ; |
: +FP-DIRECT-BIT ( ADD 4, DEPENDING ON THE DIRECTION OF THE OPERANDS ) |
( X -- X' ) |
FP-DIRECTION? IF 4+ THEN ; |
: FP-GENERIC-ASSEMBLE ( GENERIC ASSEMBLY OF FLOATING POINT INSTRUCTIONS ) |
( OPCODE \ /R FIELD -- ) |
INSTALL-/R ADDR, SEG, CODE-C, COMPILE-FIELDS ; |
: SAVE-IMMED ( SAVE IMMEDIATE OPERANDS FOR DOUBLE-SHIFT ) |
( X \ PARAM -- PARAM ) |
SWAP IMMED-SV DATA-! HAS-IMMED ; |
: NEXT-IS-, ( MAKE SURE THE NEXT OPERAND IS A COMMA ) |
( -- ) |
POP-OP LIT-OP , - ?BADMODE ; |
( THE ASSEMBLY ENGINE WORDS -- ACTUALLY DO THE ASSEMBLY ) |
( SIMPLE ASSEMBLY INSTRUCTIONS -- NO-BRAINERS ) |
: 1BYTE ( COMPILE A SINGLE BYTE, NO OPERAND, NO OVERRIDE OPCODE ) |
( PARAM -- ) |
>R ?PARAMS R> ?SEG ?INST-PRE ?OPERANDS CODE-C, ; |
: 2BYTE ( COMPILE A TWO BYTE, NO OPERAND, NO OVERRIDE OPCODE ) |
( PARAM -- ) |
>R ?PARAMS R> ?SEG ?INST-PRE ?OPERANDS CODE-W, ; |
: 3BYTE ( COMPILE A THREE BYTE, NO OPERAND, NO OVERRIDE OPCODE ) |
( PARAM -- ) |
>R ?PARAMS R> ?SEG ?INST-PRE ?OPERANDS 10000 /MOD SWAP CODE-W, |
CODE-C, ; |
: SIZE-COND-COMP ( COMPILE A SIZE CONDITIONAL ASSEMBLY SEQUENCE ) |
( PARAM -- ) |
>R ?PARAMS R> ?SEG ?INST-PRE ?OPERANDS 100 /MOD DEFAULT-SIZE - IF |
66 CODE-C, THEN CODE-C, ; |
( STRING INSTRUCTIONS ) |
: STR-ENTRY ( CHECK FOR ENTRY ERROR CONDITIONS ) |
( PARAM -- PARAM ) |
>R ?PARAMS R> ?LOCK SEG-PREFIX DATA-@ ?DUP IF 3E OVER - 0<> |
26 ROT - 0<> AND IF ?SEG THEN 0 SEG-PREFIX DATA-! THEN ; |
: STR-OPERANDS ( PROCESS OPERANDS FOR STRING INSTRUCTIONS ) |
( -- ) |
BEGIN OP-DEPTH WHILE POP-OP LIT-OP DX ALL-EXCEPT 2DROP REPEAT ; |
: STR-INST ( THE ENGINE TO CREATE STRING INSTRUCTIONS ) |
( PARAM -- ) |
STR-ENTRY STR-OPERANDS ?SHORT CHECK-SIZES |
DT-SIZE DATA-@ DUP 0= 8BIT ROT = OR 0= IF 1+ THEN |
GENERATE-PREFIXES CODE-C, ; |
: BYTE-STR-INST ( BYTE STRING INSTRUCTIONS ) |
( PARAM -- ) |
BYTE STR-INST ; |
: WORD-STR-INST ( WORD STRING INSTRUCTIONS ) |
( PARAM -- ) |
WORD STR-INST ; |
: DWORD-STR-INST ( DWORD STRING INSTRUCTIONS ) |
( PARAM -- ) |
DWORD STR-INST ; |
( CONDITIONAL BRANCH INSTRUCTIONS ) |
: JCC-ENTRY ( THE ENTRY SEQUENCE FOR CONDITIONAL BRANCH INSTRUCTIONS ) |
( -- ) |
?SEG ?INST-PRE 1 ?TOOMANYOPS OP-DEPTH IF POP-OP 0 ALL-EXCEPT |
2DROP ?NOFAR AD-SIZE DATA-@ 16BIT = IF DEFAULT-SIZE AD-SIZE DATA-! |
THEN DT-SIZE DATA-@ ?DUP IF AD-SIZE DATA-! THEN THEN ; |
: JCC-8BIT ( COMPILE AN 8 BIT CONDITIONAL BRANCH ) |
( ADDR \ PARAM -- ) |
CODE-C, OFFSET8, ; |
: JCC-16/32BIT ( COMPILE A 16 OR 32BIT CONDITIONAL BRANCH ) |
( ADDR \ PARAM \ SIZE -- ) |
DUP >R FLAG-FOR-SIZE-PREFIX IF 67 ( ADDRESS SIZE PREFIX ) CODE-C, |
THEN 0F CODE-C, 10 + CODE-C, R> 16BIT = OFFSET16/32, ; |
: JCC-UNKNOWN ( COMPILE A CONDITIONAL BRANCH WITH AN UNKNOWN SIZE ) |
( ADDR \ PARAM -- ) |
OVER CODE-HERE = IF ( UNRESOLVED FORWARD REFERENCE ) |
DEFAULT-SIZE JCC-16/32BIT |
ELSE |
OVER CODE-HERE 2+ SWAP - ABS 7F > IF ( CAN'T BE SHORT ) |
DEFAULT-SIZE JCC-16/32BIT |
ELSE ( IT CAN BE SHORT ) |
JCC-8BIT |
THEN |
THEN ; |
: JCC-COMPILE ( COMPILE A CONDITIONAL BRANCH ) |
( ADDR \ PARAM -- ) |
JCC-ENTRY AD-SIZE DATA-@ CASE |
UNKNOWN OF JCC-UNKNOWN ENDOF |
8BIT OF JCC-8BIT ENDOF |
16BIT OF 16BIT JCC-16/32BIT ENDOF |
32BIT OF 32BIT JCC-16/32BIT ENDOF |
?NOADSIZE 2DROP ENDCASE ; |
( LOOP INSTRUCTIONS ) |
: LOOP-ENTRY ( THE ENTRY SEQUENCE FOR LOOP INSTRUCTIONS ) |
( -- ) |
?SEG ?INST-PRE 2 ?TOOMANYOPS OP-DEPTH IF POP-OP ?DUP 0= IF POP-OP |
THEN 0 ALL-EXCEPT OP-DEPTH IF POP-OP DROP THEN 1 ?NOMATCH |
REGISTER ?NOMATCH DT-SIZE DATA-@ DUP 8BIT ?MATCH ELSE DEFAULT-SIZE |
THEN AD-SIZE DATA-! ; |
: LOOP-COMPILE ( COMPILE A LOOP INSTRUCTION ) |
( ADDRESS \ PARAM -- ) |
LOOP-ENTRY AD-SIZE DATA-@ FLAG-FOR-SIZE-PREFIX IF 67 CODE-C, THEN |
JCC-8BIT ; |
( JCXZ/JECXZ ) |
: JCXZ-COMPILE ( COMPILE JCXZ ) |
( ADDRESS \ PARAM -- ) |
CX LOOP-COMPILE ; |
: JECXZ-COMPILE ( COMPILE JECXZ ) |
( ADDRESS \ PARAM -- ) |
ECX LOOP-COMPILE ; |
( GROUP 1 INSTRUCTIONS -- ADD, ETC. ) |
: GROUP1-COMPILE ( COMPILE GROUP 1 INSTRUCTIONS ) |
( PARAM -- | X \ PARAM -- | X \ X \ PARAM -- ) |
?REP REGISTER GENERIC-ENTRY2 HAS-IMMED? IF 80 +SIZE-BIT IMMED-SV |
DATA-@ 80 OVER > -81 ROT < AND GET-DT-SIZE 8BIT <> AND IF 2+ 8BIT |
DT-SIZE DATA-! THEN SWAP INSTALL-/R ELSE 8* +SIZE-BIT +DIRECT-BIT |
THEN GENERATE-PREFIXES CODE-C, COMPILE-FIELDS ; |
( GROUP 2 INSTRUCTIONS -- RCL, ETC. ) |
: GROUP2-COMPILE ( COMPILE GROUP 2 INSTRUCTIONS ) |
( PARAM -- | X \ PARAM -- | X \ X \ PARAM -- ) |
?INST-PRE 1 ?NOTENOUGH >R POP-OP CASE |
LIT-OP , OF 0 SAVE-IMMED DROP ENDOF |
LIT-OP # OF 0 SAVE-IMMED DROP NEXT-IS-, ENDOF |
LIT-OP CL OF NEXT-IS-, ENDOF |
DUP PUSH-OP 1 0 SAVE-IMMED DROP |
ENDCASE DO-1OP CHECK-SIZES REGISTER ?BADTYPE HAS-IMMED? IF 0C0 |
ELSE 0D2 THEN +SIZE-BIT GENERATE-PREFIXES CODE-C, R> INSTALL-/R |
MOD-R/M, S-I-B, DISP, 8BIT DT-SIZE DATA-! IMMED, ; |
( GROUP 3 INSTRUCTIONS -- DIV, ETC. ) |
: GROUP3-COMPILE ( COMPILE GROUP 3 INSTRUCTIONS ) |
( PARAM -- | X \ PARAM -- ) |
?REP >R DO-1OP BEGIN OP-DEPTH WHILE POP-OP 0 ALL-EXCEPT 2DROP REPEAT |
?NOIMMED REGISTER ?BADTYPE CHECK-SIZES GENERATE-PREFIXES R> INSTALL-/R |
0F6 +SIZE-BIT CODE-C, COMPILE-FIELDS ; |
: TEST-COMPILE ( COMPILE THE TEST INSTRUCTION, WHICH IS A SPECIAL GROUP3 INS ) |
( PARAM -- | X \ PARAM -- | X \ X' \ PARAM -- ) |
?INST-PRE REGISTER GENERIC-ENTRY2 DROP HAS-IMMED? IF 0F6 0 INSTALL-/R |
ELSE 84 THEN +SIZE-BIT CODE-C, COMPILE-FIELDS ; |
( INC AND DEC ) |
: INC-DEC-ENTRY ( PARAM -- | X \ PARAM -- ) |
?REP >R DO-1OP R> |
CHECK-SIZES ?FINISHED REGISTER ?BADTYPE |
GENERATE-PREFIXES |
MAXTYPE @ REGISTER = |
; |
: INC-COMPILE ( COMPILE AN INC OR DEC ) |
( PARAM -- | X \ PARAM -- ) |
INC-DEC-ENTRY |
IF MOD-R/M DATA-@ [ 40 C0 - ] LITERAL + CODE-C, DROP EXIT |
ELSE 0FE +SIZE-BIT CODE-C, |
THEN |
INSTALL-/R COMPILE-FIELDS |
; |
: DEC-COMPILE ( COMPILE AN INC OR DEC ) |
( PARAM -- | X \ PARAM -- ) |
INC-DEC-ENTRY |
IF MOD-R/M DATA-@ [ 48 C0 - ] LITERAL + CODE-C, DROP EXIT |
ELSE 0FE +SIZE-BIT CODE-C, |
THEN |
INSTALL-/R COMPILE-FIELDS |
; |
( GROUP 6 AND 7 INSTRUCTIONS -- SLDT, SGDT, ETC. ) |
: GROUP6&7-COMPILE ( COMPILE A GROUP 6 OR 7 INSTRUCTION ) |
( PARAM -- | X \ PARAM -- ) |
?INST-PRE >R DO-1OP R> ?FINISHED DUP 100 > OVER 0FF AND 4 <> AND |
IF ?MEM THEN CHECK-SIZES ADDR, SEG, 0F CODE-C, 100 /MOD CODE-C, |
INSTALL-/R COMPILE-FIELDS ; |
( GROUP 8 INSTRUCTIONS -- BT, ETC. ) |
: GROUP8-COMPILE ( COMPILE A GROUP 8 INSTRUCTION ) |
( PARAM -- | X \ PARAM -- | X \ X' \ PARAM -- ) |
?REP REGISTER GENERIC-ENTRY2 0F CODE-C, HAS-IMMED? IF INSTALL-/R BA |
ELSE 8* 83 + ?R/M,REG THEN CODE-C, MOD-R/M, S-I-B, DISP, 8BIT DT-SIZE |
DATA-! IMMED, ; |
( ENTER ) |
: ENTER-COMPILE ( COMPILE THE ENTER INSTRUCTION ) |
( X \ X' \ PARAM -- ) |
3 ?TOOMANYOPS ?INST-PRE ?SEG CLR-OPSTACK DROP 0C8 CODE-C, SWAP |
CODE-W, CODE-C, ; |
( ARPL ) |
: ARPL-COMPILE ( COMPILE THE ARPL INSTRUCTION ) |
( PARAM -- | X \ PARAM -- ) |
?INST-PRE DROP DO-2OPS ?FINISHED REGISTER ?BADTYPE ?R/M,REG ?NOIMMED |
ADDR, SEG, 63 CODE-C, SWAP-REGS COMPILE-FIELDS ; |
( ECHANGE & ALU INSTRUCTIONS -- CMPXCHG, XADD ) |
: XCHG&ALU-COMPILE ( COMPILE CMPXCHG OR XADD ) |
( PARAM -- | X \ PARAM -- ) |
?REP REGISTER GENERIC-ENTRY2 ?R/M,REG ?NOIMMED 0F CODE-C, +SIZE-BIT |
CODE-C, SWAP-REGS COMPILE-FIELDS ; |
( CMPXCHG8B -- PENTIUM INSTRUCTION SET ) |
: CMPXCHG8B-COMP ( ASSEMBLE CMPXCHG8B ) |
( PARAM -- ) |
?REP DROP ?PARAMS DO-1OP CHECK-AD-SIZE DT-SIZE DATA-@ ?DUP IF 64BIT <> |
?BADMODE THEN ?MEM ?NOIMMED GENERATE-PREFIXES 0C70F CODE-W, |
COMPILE-FIELDS ; |
( BOUND CHECKING ) |
: BOUND-COMPILE ( COMPILE THE BOUND INSTRUCTION ) |
( PARAM -- | X \ PARAM -- ) |
?INST-PRE REGISTER GENERIC-ENTRY2 ?REG,MEM ?NOIMMED DROP 62 CODE-C, |
COMPILE-FIELDS ; |
( BSWAP ) |
: BSWAP-COMPILE ( COMPILE BSWAP ) |
( PARAM -- ) |
?INST-PRE ?SEG DROP ?PARAMS 1 ?TOOMANYOPS POP-OP 0 ALL-EXCEPT SWAP |
REGISTER ?NOMATCH 0F CODE-C, 0C8 + CODE-C, ; |
( PUSH AND POP ) |
: PUSH/POP-ENTRY ( ENTRY SEQUENCE FOR PUSH AND POP COMPILERS ) |
( PARAM -- ) |
?INST-PRE DROP DO-1OP ?FINISHED SREG ?BADTYPE CHECK-SIZES |
SREG MAXTYPE DATA-@ - IF GENERATE-PREFIXES THEN MAXTYPE DATA-@ ; |
: PUSH-COMPILE ( COMPILE PUSH ) |
( PARAM -- | X \ PARAM -- ) |
PUSH/POP-ENTRY CASE |
UNKNOWN OF A16BIT? IF 6 ELSE 5 THEN MOD-R/M DATA-! 6 |
INSTALL-/R 0FF CODE-C, MOD-R/M DATA-@ CODE-C, |
HAS-FULL-OFF DISP, |
ENDOF REGISTER OF MOD-R/M DATA-@ [ 50 C0- ] LITERAL + |
CODE-C, |
ENDOF SREG OF MOD-R/M DATA-@ C0-8* 6 + DUP 1E > IF 0F CODE-C, |
[ 0A0 26 - ] LITERAL + THEN CODE-C, |
ENDOF IMMEDIATE OF IMMED-SV DATA-@ ABS 7F > IF 68 GET-FP-SIZE |
DT-SIZE DATA-! ELSE 6A 8BIT DT-SIZE DATA-! THEN |
CODE-C, IMMED, |
ENDOF 0FF CODE-C, 6 INSTALL-/R COMPILE-FIELDS |
ENDCASE ; |
: POP-COMPILE ( COMPILE POP ) |
( PARAM -- | X \ PARAM -- ) |
PUSH/POP-ENTRY ?NOIMMED CASE |
UNKNOWN OF A16BIT? IF 6 ELSE 5 THEN MOD-R/M DATA-! 0 |
INSTALL-/R 8F CODE-C, MOD-R/M DATA-@ CODE-C, |
HAS-FULL-OFF DISP, |
ENDOF REGISTER OF MOD-R/M DATA-@ [ 58 C0- ] LITERAL + |
CODE-C, |
ENDOF SREG OF MOD-R/M DATA-@ C0-8* 7 + DUP 1F > IF 0F CODE-C, |
[ 0A1 27 - ] LITERAL + THEN CODE-C, |
ENDOF 8F CODE-C, 0 INSTALL-/R COMPILE-FIELDS |
ENDCASE ; |
( CALL AND JMP ) |
: CALL/JMP-ENTRY ( ENTRY FOR CALL AND JUMP ) |
( PARAM -- ) |
DROP ?INST-PRE PARSE-CALL/JMP-OPERANDS REGISTER ?BADTYPE CHECK-SIZES ; |
: CALL-COMPILE ( COMPILE CALL ) |
( PARAM -- | X \ PARAM -- ) |
CALL/JMP-ENTRY ?NOSHORT GENERATE-PREFIXES IS-NEAR? IF HAS-MOD-R/M? |
IF 0FF CODE-C, 2 INSTALL-/R COMPILE-FIELDS ELSE 0E8 CODE-C, OFFSET-SV |
DATA-@ A16BIT? OFFSET16/32, THEN ELSE HAS-MOD-R/M? IF 0FF CODE-C, 3 |
INSTALL-/R COMPILE-FIELDS ELSE 9A CODE-C, OFFSET-SV DATA-@ A16BIT? |
IF CODE-W, ELSE CODE-D, THEN CODE-W, THEN THEN ; |
: JMP-COMPILE ( COMPILE JMP ) |
( PARAM -- | X \ PARAM -- ) |
CALL/JMP-ENTRY GENERATE-PREFIXES IS-SHORT? IF OFFSET-SV DATA-@ 0EB |
CODE-C, OFFSET8, ELSE IS-NEAR? IF HAS-MOD-R/M? IF 0FF CODE-C, 4 |
INSTALL-/R COMPILE-FIELDS ELSE 0E9 CODE-C, OFFSET-SV DATA-@ A16BIT? |
OFFSET16/32, THEN ELSE HAS-MOD-R/M? IF 0FF CODE-C, 5 INSTALL-/R |
COMPILE-FIELDS ELSE 0EA CODE-C, OFFSET-SV DATA-@ A16BIT? IF CODE-W, |
ELSE CODE-D, THEN CODE-W, THEN THEN THEN ; |
( I/O INSTRUCTIONS ) |
: I/O-COMPILE ( COMPILE AN IN OR OUT ) |
( PARAM -- | X \ PARAM -- ) |
?INST-PRE ?SEG 3 ?TOOMANYOPS >R DEPTH-CHANGE IF IMMED-SV DATA-! |
HAS-IMMED THEN R> BEGIN OP-DEPTH WHILE POP-OP CASE |
LIT-OP , OF ( DISCARD IT ) ENDOF |
LIT-OP DX OF ( DISCARD IT ) ENDOF |
LIT-OP # OF ( DISCARD IT ) ENDOF |
LIT-OP AL OF 8BIT ?OPSIZE ENDOF |
LIT-OP BYTE OF 8BIT ?OPSIZE ENDOF |
LIT-OP AX OF 16BIT ?OPSIZE ENDOF |
LIT-OP WORD OF 16BIT ?OPSIZE ENDOF |
LIT-OP EAX OF 32BIT ?OPSIZE ENDOF |
LIT-OP DWORD OF 32BIT ?OPSIZE ENDOF |
-1 ?BADMODE |
ENDCASE REPEAT CHECK-DT-SIZE DATA, +SIZE-BIT HAS-IMMED? |
IF CODE-C, IMMED-SV DATA-@ CODE-C, ELSE 8+ CODE-C, THEN ; |
( BIT SCAN INSTRUCTIONS ) |
: BS-COMPILE ( COMPILE A BIT SCAN INSTRUCTION, AND ALSO SELECTOR VALIDATION ) |
( PARAM -- | X \ PARAM -- ) |
?INST-PRE REGISTER GENERIC-ENTRY2 ?NOIMMED ?REG,R/M 0F CODE-C, CODE-C, |
COMPILE-FIELDS ; |
( MOV INSTRUCTION ) |
: MOV-COMPILE ( COMPILE A MOV INSTRUCTION ) |
( PARAM -- | X \ PARAM -- | X \ X' \ PARAM -- ) |
?REP TREG GENERIC-ENTRY2 DROP HAS-IMMED? IF 0C6 +SIZE-BIT ELSE |
MAXTYPE DATA-@ CASE |
REGISTER OF 88 +SIZE-BIT ENDOF |
SREG OF 8C ENDOF |
CREG OF ?REG 0F CODE-C, 20 ENDOF |
DREG OF ?REG 0F CODE-C, 21 ENDOF |
TREG OF ?REG 0F CODE-C, 24 ENDOF |
-1 ?BADMODE 0 |
ENDCASE +DIRECT-BIT THEN CODE-C, COMPILE-FIELDS ; |
( XCHG INSTRUCTION ) |
: XCHG-COMPILE ( COMPILE THE XCHG INSTRUCTION ) |
( PARAM -- | X \ PARAM -- ) |
?REP REGISTER GENERIC-ENTRY2 ?NOIMMED +SIZE-BIT CODE-C, |
COMPILE-FIELDS ; |
( RET INSTRUCTION ) |
: RETF? ( ADJUST OPCODE FOR FAR RETURN ) |
( X -- X' ) |
IS-FAR? IF 8+ THEN ; |
: RET-COMPILE ( COMPILE THE RET INSTRUCTION ) |
( PARAM -- | X \ PARAM -- ) |
?INST-PRE 2 ?TOOMANYOPS DROP DEPTH-CHANGE IF IMMED-SV DATA-! HAS-IMMED |
THEN BEGIN OP-DEPTH WHILE POP-OP CASE |
LIT-OP NEAR OF IS-NEAR ENDOF |
LIT-OP FAR OF IS-FAR ENDOF |
LIT-OP # OF ENDOF |
-1 ?BADMODE |
ENDCASE REPEAT HAS-IMMED? IF 0C2 RETF? CODE-C, IMMED-SV DATA-@ CODE-W, |
ELSE 0C3 RETF? CODE-C, THEN ; |
: RETF-COMPILE ( COMPILE RETF ) |
( PARAM -- | X \ PARAM -- ) |
FAR RET-COMPILE ; |
( INT INSTRUCTION ) |
: INT-COMPILE ( COMPILE THE INT INSTRUCTION ) |
( X \ PARAM -- ) |
?INST-PRE DROP 0 ?TOOMANYOPS DEPTH-CHANGE 0= IF 2 ?NOTENOUGH THEN |
DUP 3 = IF DROP 0CC ELSE 0CD CODE-C, THEN CODE-C, ; |
( SETCC INSTRUCTIONS ) |
: SETCC-COMPILE ( COMPILE SETCC INSTRUCTIONS ) |
( PARAM -- | X \ PARAM -- ) |
?INST-PRE >R DO-1OP ?FINISHED ?NOIMMED REGISTER ?BADTYPE CHECK-SIZES |
GENERATE-PREFIXES 0F CODE-C, R> CODE-C, COMPILE-FIELDS ; |
( XLAT/XLATB ) |
: XLAT-COMPILE ( COMPILE XLAT ) |
( PARAM -- ) |
?INST-PRE DROP ?PARAMS 3 ?TOOMANYOPS BEGIN OP-DEPTH WHILE POP-OP CASE |
LIT-OP AL OF ENDOF |
LIT-OP [BX] OF 16BIT ?OPSIZE ENDOF |
LIT-OP [EBX] OF 32BIT ?OPSIZE ENDOF |
-1 ?BADMODE |
ENDCASE REPEAT CHECK-SIZES GENERATE-PREFIXES 0D7 CODE-C, ; |
: XLATB-COMPILE ( COMPILE XLATB ) |
( PARAM -- ) |
?SEG ?OPERANDS DEFAULT-SIZE 16BIT = IF [BX] ELSE [EBX] THEN |
XLAT-COMPILE ; |
( DOUBLE PRECISION SHIFT INSTRUCTIONS ) |
: DOUBLE-SHIFT ( COMPILE SHLD, SHRD ) |
( PARAM -- | X \ PARAM -- | X \ X' \ PARAM -- ) |
?INST-PRE POP-OP CASE LIT-OP , OF SAVE-IMMED ENDOF LIT-OP # OF |
SAVE-IMMED NEXT-IS-, ENDOF LIT-OP CL OF 1+ NEXT-IS-, ENDOF -1 |
?BADMODE ENDCASE REGISTER GENERIC-ENTRY2 0F CODE-C, CODE-C, MOD-R/M, |
S-I-B, DISP, 8BIT DT-SIZE DATA-! IMMED, ; |
( POINTER LOADING INSTRUCTIONS ) |
: LOAD-PTR-COMP ( COMPILE A POINTER LOAD INSTRUCTION ) |
( PARAM -- | X \ PARAM -- ) |
?INST-PRE REGISTER GENERIC-ENTRY2 ?NOIMMED ?REG,R/M ?MEM DUP 100 > |
IF CODE-W, ELSE CODE-C, THEN COMPILE-FIELDS ; |
( EXTENDED MOV INSTRUCTIONS ) |
: MOVX-COMPILE ( COMPILE MOVSX/MOVZX ) |
( PARAM -- | X \ PARAM -- ) |
?INST-PRE >R DO-1OP R> +SIZE-BIT 0 DT-SIZE DATA-! >R DO-1OP R> |
?FINISHED ?NOIMMED ?REG,R/M CHECK-SIZES GENERATE-PREFIXES 0F CODE-C, |
CODE-C, COMPILE-FIELDS ; |
( FADD & FMUL ) |
: FAD/FMUL-COMPILE ( COMPILE FADD AND FMUL ) |
( PARAM -- | X \ PARAM -- ) |
?INST-PRE >R PARSE-FP-OPS R> SWAP CASE |
0 OF 1 /R&FREG>MOD-R/M ?SEG 0DE CODE-C, CODE-C, ENDOF |
1 OF 0D8 +FP-SIZE SWAP FP-GENERIC-ASSEMBLE ENDOF |
2 OF ?SEG 0D8 +FP-DIRECT-BIT CODE-C, MOD-R/M>FREG |
/R&FREG>MOD-R/M CODE-C, ENDOF |
ENDCASE ; |
( FST & FSTP ) |
: FST-COMPILE ( COMPILE FST AND FSTP ) |
( PARAM -- | X \ PARAM -- ) |
?INST-PRE >R DO-1OP R> ?FINISHED ?NOIMMED MAXTYPE DATA-@ FREG = IF |
?SEG 0DD CODE-C, MOD-R/M>FREG /R&FREG>MOD-R/M CODE-C, |
ELSE |
REGISTER ?BADTYPE ?MEM CHECK-SIZES DT-SIZE DATA-@ |
CASE |
UNKNOWN OF ( FLOAT BY DEFAULT ) 0D9 ENDOF |
32BIT OF 0D9 ENDOF |
64BIT OF 0DD ENDOF |
80BIT OF 4+ 0DB ENDOF |
-1 ?BADMODE 0 |
ENDCASE SWAP FP-GENERIC-ASSEMBLE |
THEN ; |
( INTEGER/FLOATING POINT OPERATIONS ) |
: FIX-COMPILE ( COMPILE FIX INSTRUCTIONS ) |
( PARAM -- | X \ PARAM -- ) |
?INST-PRE >R DO-1OP ?FINISHED REGISTER ?BADTYPE ?NOIMMED ?MEM |
CHECK-SIZES 0DA DT-SIZE DATA-@ 16BIT = IF 4+ THEN R> |
FP-GENERIC-ASSEMBLE ; |
( FLOAT OPS THAT POP THE STACK ) |
: FXP-COMPILE ( COMPILE FXP INSTRUCTIONS ) |
( PARAM -- ) |
?INST-PRE ?SEG >R PARSE-FP-OPS 2- ?BADMODE R> 0DE CODE-C, |
MOD-R/M>FREG + CODE-C, ; |
( FCOM ) |
: FCOM-COMPILE ( COMPILE FCOM AND FCOMP ) |
( PARAM -- | X \ PARAM -- ) |
?INST-PRE >R PARSE-FP-OPS R> SWAP CASE |
0 OF 0D8 CODE-C, 1 /R&FREG>MOD-R/M CODE-C, ENDOF |
1 OF MAXTYPE DATA-@ FREG = IF |
0D8 CODE-C, MOD-R/M>FREG /R&FREG>MOD-R/M CODE-C, |
ELSE |
REGISTER ?BADTYPE ?MEM 0D8 +FP-SIZE SWAP |
FP-GENERIC-ASSEMBLE |
THEN ENDOF |
-1 ?BADMODE DROP |
ENDCASE ; |
( MISCELLANEOUS FLOATING POINT INSTRUCTIONS ) |
: FMISC-COMPILE ( COMPILE MISCELLANEOUS FP INSTRUCTIONS ) |
( PARAM -- ) |
?INST-PRE ?SEG >R ?PARAMS PARSE-FP-OPS R> 100 /MOD ROT CASE |
0 OF 1+ ENDOF |
1 OF MAXTYPE DATA-@ FREG - ?BADMODE MOD-R/M>FREG + ENDOF |
-1 ?BADMODE |
ENDCASE SWAP CODE-C, CODE-C, ; |
( FBLD & FBSTP, AND LOAD AND STORE CONTROL WORD, ENVIRONMENT, ETC. ) |
: GENERIC-FP-ENTRY1 ( GENERIC ENTRY SEQUENCE FOR FP INST THAT TAKE ONE MEMORY ) |
( OPERAND ) |
( PARAM -- PARAM | X \ PARAM -- PARAM ) |
?INST-PRE >R PARSE-FP-OPS 1- ?BADMODE R> REGISTER ?BADTYPE ?MEM ; |
: FBLD/STP-COMPILE ( COMPILE FBLD & FBSTP ) |
( PARAM -- | X \ PARAM -- ) |
GENERIC-FP-ENTRY1 100 /MOD DUP 7 > IF 8- 9B CODE-C, THEN |
FP-GENERIC-ASSEMBLE ; |
( FIST ) |
: FIST-COMPILE ( COMPILE FIST & FISTP ) |
( PARAM -- | X \ PARAM -- ) |
GENERIC-FP-ENTRY1 GET-FP-SIZE CASE |
16BIT OF 0DF ENDOF |
32BIT OF 0DB ENDOF |
64BIT OF 4+ 0DF ENDOF |
-1 ?BADMODE 0 |
ENDCASE SWAP FP-GENERIC-ASSEMBLE ; |
( FSTSW ) |
: FSTSW-COMPILE ( COMPILE FSTSW & FNSTSW ) |
( PARAM -- | X \ PARAM -- ) |
?INST-PRE >R PARSE-FP-OPS DUP 1 > ?BADMODE REGISTER ?BADTYPE R> IF |
9B CODE-C, THEN CASE |
0 OF ?SEG 0E0DF CODE-W, ENDOF |
1 OF MAXTYPE DATA-@ REGISTER = IF |
MOD-R/M DATA-@ C0- ?BADMODE ?SEG 0E0DF CODE-W, |
ELSE |
0DD 7 FP-GENERIC-ASSEMBLE |
THEN ENDOF |
ENDCASE ; |
( FILD ) |
: FILD-COMPILE ( COMPILE FILD ) |
( PARAM -- | X \ PARAM -- ) |
GENERIC-FP-ENTRY1 DROP GET-FP-SIZE CASE |
16BIT OF 0DF 0 ENDOF |
32BIT OF 0DB 0 ENDOF |
64BIT OF 0DF 5 ENDOF |
-1 ?BADMODE 0 0 |
ENDCASE FP-GENERIC-ASSEMBLE ; |
( FLD COMPILE ) |
: FLD-COMPILE ( COMPILE FLD ) |
( PARAM -- | X \ PARAM -- ) |
?INST-PRE DROP PARSE-FP-OPS 1- ?BADMODE MAXTYPE DATA-@ FREG = IF |
?SEG 0D9 CODE-C, MOD-R/M>FREG C0+ CODE-C, |
ELSE |
REGISTER ?BADTYPE ?MEM DT-SIZE DATA-@ CASE |
UNKNOWN OF ( ASSUME FLOAT ) 0D9 0 ENDOF |
32BIT OF 0D9 0 ENDOF |
64BIT OF 0DD 0 ENDOF |
80BIT OF 0DB 5 ENDOF |
-1 ?BADMODE 0 0 |
ENDCASE FP-GENERIC-ASSEMBLE |
THEN ; |
( FDIV, FDIVR, FSUB, FSUBR ) |
: FDIV/SUB-COMPILE ( COMPILE FDIV, FDIVR, FSUB, & FSUBR ) |
( PARAM -- | X \ PARAM -- ) |
?INST-PRE >R PARSE-FP-OPS R> SWAP CASE |
0 OF ?SEG 1 XOR 0DE CODE-C, 1 /R&FREG>MOD-R/M CODE-C, ENDOF |
1 OF ?MEM 0D8 +FP-SIZE SWAP FP-GENERIC-ASSEMBLE ENDOF |
2 OF ?SEG MAXTYPE DATA-@ FREG ?NOMATCH 0D8 +FP-DIRECT-BIT |
CODE-C, FP-DIRECTION? IF 1 XOR THEN MOD-R/M>FREG |
/R&FREG>MOD-R/M CODE-C, ENDOF |
ENDCASE ; |
( THE INSTRUCTIONS ) |
IN-ASM |
37 ' 1BYTE OPCODE AAA |
0AD5 ' 2BYTE OPCODE AAD |
0AD4 ' 2BYTE OPCODE AAM |
3F ' 1BYTE OPCODE AAS |
02 ' GROUP1-COMPILE OPCODE ADC |
00 ' GROUP1-COMPILE OPCODE ADD |
04 ' GROUP1-COMPILE OPCODE AND |
0 ' ARPL-COMPILE OPCODE ARPL |
0 ' BOUND-COMPILE OPCODE BOUND |
0BC ' BS-COMPILE OPCODE BSF |
0BD ' BS-COMPILE OPCODE BSR |
0 ' BSWAP-COMPILE OPCODE BSWAP |
04 ' GROUP8-COMPILE OPCODE BT |
07 ' GROUP8-COMPILE OPCODE BTC |
06 ' GROUP8-COMPILE OPCODE BTR |
05 ' GROUP8-COMPILE OPCODE BTS |
0 ' CALL-COMPILE OPCODE CALL |
298 ' SIZE-COND-COMP OPCODE CBW |
399 ' SIZE-COND-COMP OPCODE CDQ |
0F8 ' 1BYTE OPCODE CLC |
0FC ' 1BYTE OPCODE CLD |
0FA ' 1BYTE OPCODE CLI |
060F ' 2BYTE OPCODE CLTS |
0F5 ' 1BYTE OPCODE CMC |
07 ' GROUP1-COMPILE OPCODE CMP |
0A6 ' STR-INST OPCODE CMPS |
0A6 ' BYTE-STR-INST OPCODE CMPSB |
0A6 ' DWORD-STR-INST OPCODE CMPSD |
0A6 ' WORD-STR-INST OPCODE CMPSW |
0BC ' XCHG&ALU-COMPILE OPCODE CMPXCHG |
0 ' CMPXCHG8B-COMP OPCODE CMPXCHG8B |
0A20F ' 2BYTE OPCODE CPUID |
299 ' SIZE-COND-COMP OPCODE CWD |
398 ' SIZE-COND-COMP OPCODE CWDE |
27 ' 1BYTE OPCODE DAA |
2F ' 1BYTE OPCODE DAS |
01 ' DEC-COMPILE OPCODE DEC |
06 ' GROUP3-COMPILE OPCODE DIV |
0 ' ENTER-COMPILE OPCODE ENTER |
0F0D9 ' 2BYTE OPCODE F2XM1 |
0E1D9 ' 2BYTE OPCODE FABS |
00 ' FAD/FMUL-COMPILE OPCODE FADD |
0C0 ' FXP-COMPILE OPCODE FADDP |
4DF ' FBLD/STP-COMPILE OPCODE FBLD |
6DF ' FBLD/STP-COMPILE OPCODE FBSTP |
0E0D9 ' 2BYTE OPCODE FCHS |
0E2DB9B ' 3BYTE OPCODE FCLEX |
02 ' FCOM-COMPILE OPCODE FCOM |
03 ' FCOM-COMPILE OPCODE FCOMP |
0D9DE ' 2BYTE OPCODE FCOMPP |
0FFD9 ' 2BYTE OPCODE FCOS |
0F6D9 ' 2BYTE OPCODE FDECSTP |
06 ' FDIV/SUB-COMPILE OPCODE FDIV |
0F8 ' FXP-COMPILE OPCODE FDIVP |
07 ' FDIV/SUB-COMPILE OPCODE FDIVR |
0F0 ' FXP-COMPILE OPCODE FDIVPR |
0C0DD ' FMISC-COMPILE OPCODE FFREE |
00 ' FIX-COMPILE OPCODE FIADD |
02 ' FIX-COMPILE OPCODE FICOM |
03 ' FIX-COMPILE OPCODE FICOMP |
06 ' FIX-COMPILE OPCODE FIDIV |
07 ' FIX-COMPILE OPCODE FIDIVR |
0 ' FILD-COMPILE OPCODE FILD |
01 ' FIX-COMPILE OPCODE FIMUL |
0F7D9 ' 2BYTE OPCODE FINCSTP |
0E3DB9B ' 3BYTE OPCODE FINIT |
04 ' FIX-COMPILE OPCODE FISUB |
05 ' FIX-COMPILE OPCODE FISUBR |
02 ' FIST-COMPILE OPCODE FIST |
03 ' FIST-COMPILE OPCODE FISTP |
0 ' FLD-COMPILE OPCODE FLD |
0E8D9 ' 2BYTE OPCODE FLD1 |
5D9 ' FBLD/STP-COMPILE OPCODE FLDCW |
4D9 ' FBLD/STP-COMPILE OPCODE FLDENV |
0E9D9 ' 2BYTE OPCODE FLDL2T |
0EAD9 ' 2BYTE OPCODE FLDL2E |
0EBD9 ' 2BYTE OPCODE FLDPI |
0ECD9 ' 2BYTE OPCODE FLDLG2 |
0EDD9 ' 2BYTE OPCODE FLDLN2 |
0EED9 ' 2BYTE OPCODE FLDZ |
01 ' FAD/FMUL-COMPILE OPCODE FMUL |
0C8 ' FXP-COMPILE OPCODE FMULP |
0E2DB ' 2BYTE OPCODE FNCLEX |
0E3DB ' 2BYTE OPCODE FNINIT |
0D0D9 ' 2BYTE OPCODE FNOP |
6DD ' FBLD/STP-COMPILE OPCODE FNSAVE |
7D9 ' FBLD/STP-COMPILE OPCODE FNSTCW |
00 ' FSTSW-COMPILE OPCODE FNSTSW |
6D9 ' FBLD/STP-COMPILE OPCODE FNSTENV |
0F3D9 ' 2BYTE OPCODE FPATAN |
0F8D9 ' 2BYTE OPCODE FPREM |
0F5D9 ' 2BYTE OPCODE FPREM1 |
0F2D9 ' 2BYTE OPCODE FPTAN |
0FCD9 ' 2BYTE OPCODE FRNDINT |
4DD ' FBLD/STP-COMPILE OPCODE FRSTOR |
0EDD ' FBLD/STP-COMPILE OPCODE FSAVE |
0FDD9 ' 2BYTE OPCODE FSCALE |
0FED9 ' 2BYTE OPCODE FSIN |
0FBD9 ' 2BYTE OPCODE FSINCOS |
0FAD9 ' 2BYTE OPCODE FSQRT |
02 ' FST-COMPILE OPCODE FST |
0FD9 ' FBLD/STP-COMPILE OPCODE FSTCW |
0ED9 ' FBLD/STP-COMPILE OPCODE FSTENV |
03 ' FST-COMPILE OPCODE FSTP |
01 ' FSTSW-COMPILE OPCODE FSTSW |
04 ' FDIV/SUB-COMPILE OPCODE FSUB |
0E8 ' FXP-COMPILE OPCODE FSUBP |
0E0 ' FXP-COMPILE OPCODE FSUBPR |
05 ' FDIV/SUB-COMPILE OPCODE FSUBR |
0E4D9 ' 2BYTE OPCODE FTST |
0E0DD ' FMISC-COMPILE OPCODE FUCOM |
0E8DD ' FMISC-COMPILE OPCODE FUCOMP |
0E9DA ' 2BYTE OPCODE FUCOMPP |
9B ' 1BYTE OPCODE FWAIT |
0E5D9 ' 2BYTE OPCODE FXAM |
0C8D9 ' FMISC-COMPILE OPCODE FXCH |
0F4D9 ' 2BYTE OPCODE FXTRACT |
0F1D9 ' 2BYTE OPCODE FYL2X |
0F9D9 ' 2BYTE OPCODE FYL2XP1 |
0F4 ' 1BYTE OPCODE HLT |
07 ' GROUP3-COMPILE OPCODE IDIV |
05 ' GROUP3-COMPILE OPCODE IMUL |
0E4 ' I/O-COMPILE OPCODE IN |
00 ' INC-COMPILE OPCODE INC |
6C ' STR-INST OPCODE INS |
6C ' BYTE-STR-INST OPCODE INSB |
6C ' DWORD-STR-INST OPCODE INSD |
6C ' WORD-STR-INST OPCODE INSW |
0 ' INT-COMPILE OPCODE INT |
0C3 ' 1BYTE OPCODE INTO |
080F ' 2BYTE OPCODE INVD |
107 ' GROUP6&7-COMPILE OPCODE INVLPG |
2CF ' SIZE-COND-COMP OPCODE IRET |
3CF ' SIZE-COND-COMP OPCODE IRETD |
77 ' JCC-COMPILE OPCODE JA |
73 ' JCC-COMPILE OPCODE JAE |
72 ' JCC-COMPILE OPCODE JB |
76 ' JCC-COMPILE OPCODE JBE |
72 ' JCC-COMPILE OPCODE JC |
0E3 ' JCXZ-COMPILE OPCODE JCXZ |
0E3 ' JECXZ-COMPILE OPCODE JECXZ |
74 ' JCC-COMPILE OPCODE JE |
7F ' JCC-COMPILE OPCODE JG |
7D ' JCC-COMPILE OPCODE JGE |
7C ' JCC-COMPILE OPCODE JL |
7E ' JCC-COMPILE OPCODE JLE |
0 ' JMP-COMPILE OPCODE JMP |
76 ' JCC-COMPILE OPCODE JNA |
72 ' JCC-COMPILE OPCODE JNAE |
73 ' JCC-COMPILE OPCODE JNB |
77 ' JCC-COMPILE OPCODE JNBE |
73 ' JCC-COMPILE OPCODE JNC |
75 ' JCC-COMPILE OPCODE JNE |
7E ' JCC-COMPILE OPCODE JNG |
7C ' JCC-COMPILE OPCODE JNGE |
7D ' JCC-COMPILE OPCODE JNL |
7F ' JCC-COMPILE OPCODE JNLE |
71 ' JCC-COMPILE OPCODE JNO |
7B ' JCC-COMPILE OPCODE JNP |
79 ' JCC-COMPILE OPCODE JNS |
75 ' JCC-COMPILE OPCODE JNZ |
70 ' JCC-COMPILE OPCODE JO |
7A ' JCC-COMPILE OPCODE JP |
7A ' JCC-COMPILE OPCODE JPE |
7B ' JCC-COMPILE OPCODE JPO |
78 ' JCC-COMPILE OPCODE JS |
74 ' JCC-COMPILE OPCODE JZ |
9F ' 1BYTE OPCODE LAHF |
02 ' BS-COMPILE OPCODE LAR |
0C5 ' LOAD-PTR-COMP OPCODE LDS |
8D ' LOAD-PTR-COMP OPCODE LEA |
0C9 ' 1BYTE OPCODE LEAVE |
0C4 ' LOAD-PTR-COMP OPCODE LES |
0B40F ' LOAD-PTR-COMP OPCODE LFS |
0B50F ' LOAD-PTR-COMP OPCODE LGS |
03 ' BS-COMPILE OPCODE LSL |
0B20F ' LOAD-PTR-COMP OPCODE LSS |
102 ' GROUP6&7-COMPILE OPCODE LGDT |
103 ' GROUP6&7-COMPILE OPCODE LIDT |
02 ' GROUP6&7-COMPILE OPCODE LLDT |
106 ' GROUP6&7-COMPILE OPCODE LMSW |
0AC ' STR-INST OPCODE LODS |
0AC ' BYTE-STR-INST OPCODE LODSB |
0AC ' DWORD-STR-INST OPCODE LODSD |
0AC ' WORD-STR-INST OPCODE LODSW |
0E2 ' LOOP-COMPILE OPCODE LOOP |
0E1 ' LOOP-COMPILE OPCODE LOOPE |
0E0 ' LOOP-COMPILE OPCODE LOOPNE |
0E0 ' LOOP-COMPILE OPCODE LOOPNZ |
0E1 ' LOOP-COMPILE OPCODE LOOPZ |
03 ' GROUP6&7-COMPILE OPCODE LTR |
0 ' MOV-COMPILE OPCODE MOV |
0A4 ' STR-INST OPCODE MOVS |
0BE ' MOVX-COMPILE OPCODE MOVSX |
0A4 ' BYTE-STR-INST OPCODE MOVSB |
0A4 ' DWORD-STR-INST OPCODE MOVSD |
0A4 ' WORD-STR-INST OPCODE MOVSW |
0B6 ' MOVX-COMPILE OPCODE MOVZX |
04 ' GROUP3-COMPILE OPCODE MUL |
03 ' GROUP3-COMPILE OPCODE NEG |
90 ' 1BYTE OPCODE NOP |
02 ' GROUP3-COMPILE OPCODE NOT |
01 ' GROUP1-COMPILE OPCODE OR |
0E6 ' I/O-COMPILE OPCODE OUT |
6E ' STR-INST OPCODE OUTS |
6E ' BYTE-STR-INST OPCODE OUTSB |
6E ' DWORD-STR-INST OPCODE OUTSD |
6E ' WORD-STR-INST OPCODE OUTSW |
0 ' POP-COMPILE OPCODE POP |
261 ' SIZE-COND-COMP OPCODE POPA |
361 ' SIZE-COND-COMP OPCODE POPAD |
29D ' SIZE-COND-COMP OPCODE POPF |
39D ' SIZE-COND-COMP OPCODE POPFD |
0 ' PUSH-COMPILE OPCODE PUSH |
260 ' SIZE-COND-COMP OPCODE PUSHA |
360 ' SIZE-COND-COMP OPCODE PUSHAD |
29C ' SIZE-COND-COMP OPCODE PUSHF |
39C ' SIZE-COND-COMP OPCODE PUSHFD |
02 ' GROUP2-COMPILE OPCODE RCL |
03 ' GROUP2-COMPILE OPCODE RCR |
320F ' 2BYTE OPCODE RDMSR |
310F ' 2BYTE OPCODE RDTSC |
0 ' RET-COMPILE OPCODE RET |
0 ' RETF-COMPILE OPCODE RETF |
00 ' GROUP2-COMPILE OPCODE ROL |
01 ' GROUP2-COMPILE OPCODE ROR |
0AA0F ' 2BYTE OPCODE RSM |
9E ' 1BYTE OPCODE SAHF |
04 ' GROUP2-COMPILE OPCODE SAL |
07 ' GROUP2-COMPILE OPCODE SAR |
03 ' GROUP1-COMPILE OPCODE SBB |
0AE ' STR-INST OPCODE SCAS |
0AE ' BYTE-STR-INST OPCODE SCASB |
0AE ' DWORD-STR-INST OPCODE SCASD |
0AE ' WORD-STR-INST OPCODE SCASW |
97 ' SETCC-COMPILE OPCODE SETA |
93 ' SETCC-COMPILE OPCODE SETAE |
92 ' SETCC-COMPILE OPCODE SETB |
96 ' SETCC-COMPILE OPCODE SETBE |
92 ' SETCC-COMPILE OPCODE SETC |
94 ' SETCC-COMPILE OPCODE SETE |
9F ' SETCC-COMPILE OPCODE SETG |
9D ' SETCC-COMPILE OPCODE SETGE |
9C ' SETCC-COMPILE OPCODE SETL |
9E ' SETCC-COMPILE OPCODE SETLE |
96 ' SETCC-COMPILE OPCODE SETNA |
92 ' SETCC-COMPILE OPCODE SETNAE |
93 ' SETCC-COMPILE OPCODE SETNB |
97 ' SETCC-COMPILE OPCODE SETNBE |
93 ' SETCC-COMPILE OPCODE SETNC |
95 ' SETCC-COMPILE OPCODE SETNE |
9E ' SETCC-COMPILE OPCODE SETNG |
9C ' SETCC-COMPILE OPCODE SETNGE |
9D ' SETCC-COMPILE OPCODE SETNL |
9F ' SETCC-COMPILE OPCODE SETNLE |
91 ' SETCC-COMPILE OPCODE SETNO |
9B ' SETCC-COMPILE OPCODE SETNP |
99 ' SETCC-COMPILE OPCODE SETNS |
95 ' SETCC-COMPILE OPCODE SETNZ |
90 ' SETCC-COMPILE OPCODE SETO |
9A ' SETCC-COMPILE OPCODE SETP |
9A ' SETCC-COMPILE OPCODE SETPE |
9B ' SETCC-COMPILE OPCODE SETPO |
98 ' SETCC-COMPILE OPCODE SETS |
94 ' SETCC-COMPILE OPCODE SETZ |
100 ' GROUP6&7-COMPILE OPCODE SGDT |
04 ' GROUP2-COMPILE OPCODE SHL |
0A4 ' DOUBLE-SHIFT OPCODE SHLD |
05 ' GROUP2-COMPILE OPCODE SHR |
0AC ' DOUBLE-SHIFT OPCODE SHRD |
101 ' GROUP6&7-COMPILE OPCODE SIDT |
00 ' GROUP6&7-COMPILE OPCODE SLDT |
104 ' GROUP6&7-COMPILE OPCODE SMSW |
0F9 ' 1BYTE OPCODE STC |
0FD ' 1BYTE OPCODE STD |
0FB ' 1BYTE OPCODE STI |
0AA ' STR-INST OPCODE STOS |
0AA ' BYTE-STR-INST OPCODE STOSB |
0AA ' DWORD-STR-INST OPCODE STOSD |
0AA ' WORD-STR-INST OPCODE STOSW |
01 ' GROUP6&7-COMPILE OPCODE STR |
05 ' GROUP1-COMPILE OPCODE SUB |
0 ' TEST-COMPILE OPCODE TEST |
04 ' GROUP6&7-COMPILE OPCODE VERR |
05 ' GROUP6&7-COMPILE OPCODE VERW |
9B ' 1BYTE OPCODE WAIT |
090F ' 2BYTE OPCODE WBINVD |
300F ' 2BYTE OPCODE WRMSR |
0C0 ' XCHG&ALU-COMPILE OPCODE XADD |
86 ' XCHG-COMPILE OPCODE XCHG |
0 ' XLAT-COMPILE OPCODE XLAT |
0 ' XLATB-COMPILE OPCODE XLATB |
06 ' GROUP1-COMPILE OPCODE XOR |
( CREATE CODE DEFINITIONS ) |
IN-HIDDEN |
VARIABLE CURRENT-SV ( NEEDED FOR STASHING THE CURRENT VOCABULARY ) |
: SAVE-CURRENT ( SAVE THE CURRENT VOCABULARY LINKAGE ) |
( -- ) |
CURRENT DATA-@ CURRENT-SV DATA-! ; |
: UNSAVE-CURRENT ( RESET CURRENT-SV ) |
( -- ) |
0 CURRENT-SV DATA-! ; |
: RESTORE-CURRENT ( RESTORE CURRENT TO ITS PREVIOUSLY SAVED VALUE ) |
( -- ) |
CURRENT-SV DATA-@ ?DUP IF CURRENT DATA-! UNSAVE-CURRENT THEN ; |
( DEBUGGING ) |
: RESET-ASM RESET-VARS CLR-OPSTACK LOC-INIT SAVE-DEPTH ; |
IN-ASM |
: INIT-ASM ( INITALIZE ASSEMBLY ) |
( -- ) |
ALSO ASSEMBLER RESET-ASM ; |
( FORTH HEADER CREATION WORDS ) |
IN-HIDDEN |
: _CODE ( START A NATIVE CODE DEFINITION ) |
CODE-HEADER CODE-HERE CELL+ CODE-D, HIDE !CSP INIT-ASM ; |
: _;CODE ( CREATE THE [;CODE] PART OF A LOW LEVEL DEFINING WORD ) |
?CSP !CSP COMPILE (;CODE) POSTPONE [ INIT-ASM ; |
IN-FORTH |
DEFER CODE ' _CODE IS CODE |
DEFER ;CODE ' _;CODE IS ;CODE |
ALSO FORTH IMMEDIATE PREVIOUS ( NECESSARY BECAUSE OF ASM-HIDDEN IMMEDIATE ) |
: SUBR: ( CREATE A SUBROUTINE IN THE ASSEMBLER VOCABULARY ) |
SAVE-CURRENT INIT-ASM DEFINITIONS !CSP CREATE HIDE DATA-HERE 0 |
DATA-, CODE-ALIGN CODE-HERE SWAP DATA-! DOES> DATA-@ ; |
: MACRO: ( CREATE A MACRO IN THE ASSEMBLER VOCABULARY ) |
SAVE-CURRENT ALSO ASSEMBLER DEFINITIONS : POSTPONE ENTER-MACRO ; |
( END CODE DEFINITIONS ) |
IN-ASM |
: END-ASM A; PREVIOUS ; |
IN-HIDDEN |
: _END-CODE ( END A CODE DEFINITION ) |
END-ASM ?FINISHED ?UNRES ?CSP REVEAL RESTORE-CURRENT CODE-ALIGN |
EXIT-ASSEMBLER ; |
IN-ASM |
DEFER END-CODE ' _END-CODE IS END-CODE |
DEFER ;C ' _END-CODE IS ;C |
: ENDM ( END A MACRO DEFINITION ) |
POSTPONE LEAVE-MACRO POSTPONE ; PREVIOUS RESTORE-CURRENT ; |
ALSO FORTH IMMEDIATE PREVIOUS |
: ;MACRO ( END A MACRO DEFINITION ) |
POSTPONE ENDM ; ALSO FORTH IMMEDIATE PREVIOUS |
\ : EXIT ( REDEFINE EXIT TO TAKE CARE OF MACROS ) |
\ IN-MACRO? IF LEAVE-MACRO THEN R> DROP ; |
( REDEFINE EXIT TO BE CLOSER TO STANDARD ) |
: ?LEAVE-MACRO ( CONDITIONALLY UNNEST A MACRO ) |
IN-MACRO? IF LEAVE-MACRO THEN ; |
: EXIT ( REDEFINE EXIT TO TAKE CARE OF MACROS ) |
STATE @ IF POSTPONE ?LEAVE-MACRO POSTPONE EXIT ELSE |
?LEAVE-MACRO EXIT THEN ; ALSO FORTH IMMEDIATE PREVIOUS |
( UTILITY WORDS ) |
: PREFIX? ( ARE WE IN PREFIX MODE? ) |
( -- FLAG ) |
DEFER@ SAVE-INST ['] NOOP = ; |
: POSTFIX? ( ARE WE IN POSTFIX MODE? ) |
( -- FLAG ) |
PREFIX? 0= ; |
( SETTING AND RESTORING THE ASSEMBLER SYNTAX ) |
: SET-POSTFIX ( SET THE ASSEMBLER TO POSTFIX MODE, LEAVE A MODE FLAG ) |
( -- PREV. MODE==PREFIX ) |
PREFIX? DUP IF >R A; POSTFIX R> THEN ; |
: SET-PREFIX ( SET THE ASSEMBLER TO PREFIX MODE, LEAVE A MODE FLAG ) |
( -- PREV. MODE==PREFIX ) |
PREFIX? DUP 0= IF >R A; PREFIX R> THEN ; |
: RESET-SYNTAX ( RESET THE ASSEMBLER TO THE PREVIOUSLY FLAGGED SYNTAX ) |
( PREV. MODE==PREFIX -- ) |
IF A; PREFIX ELSE A; POSTFIX THEN ; |
ONLY FORTH DEFINITIONS BASE ! |
/programs/develop/SPForth/lib/asm/asmmac.f |
---|
0,0 → 1,111 |
( Miscellaneous macros for Win32FORTH 486ASM version 1.24 ) |
( copyright [c] 1994 by Jim Schneider ) |
( This file version 1.2 ) |
( This program is free software; you can redistribute it and/or modify ) |
( it under the terms of the GNU General Public License as published by ) |
( the Free Software Foundation; either version 2 of the License, or ) |
( <at your option> any later version. ) |
( ) |
( This program is distributed in the hope that it will be useful, ) |
( but WITHOUT ANY WARRANTY; without even the implied warranty of ) |
( MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ) |
( GNU General Public License for more details. ) |
( ) |
( You should have received a copy of the GNU General Public License ) |
( along with this program; if not, write to the Free Software ) |
( Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ) |
MACRO: ;M POSTPONE ;MACRO ENDM IMMEDIATE |
MACRO: AL, AL , ;M |
MACRO: CL, CL , ;M |
MACRO: DL, DL , ;M |
MACRO: BL, BL , ;M |
MACRO: AH, AH , ;M |
MACRO: CH, CH , ;M |
MACRO: DH, DH , ;M |
MACRO: BH, BH , ;M |
MACRO: AX, AX , ;M |
MACRO: CX, CX , ;M |
MACRO: DX, DX , ;M |
MACRO: BX, BX , ;M |
MACRO: SP, SP , ;M |
MACRO: BP, BP , ;M |
MACRO: SI, SI , ;M |
MACRO: DI, DI , ;M |
MACRO: EAX, EAX , ;M |
MACRO: ECX, ECX , ;M |
MACRO: EDX, EDX , ;M |
MACRO: EBX, EBX , ;M |
MACRO: ESP, ESP , ;M |
MACRO: EBP, EBP , ;M |
MACRO: ESI, ESI , ;M |
MACRO: EDI, EDI , ;M |
MACRO: [BX+SI], [BX+SI] , ;M |
MACRO: [BX+DI], [BX+DI] , ;M |
MACRO: [BP+SI], [BP+SI] , ;M |
MACRO: [BP+DI], [BP+DI] , ;M |
MACRO: [SI], [SI] , ;M |
MACRO: [DI], [DI] , ;M |
MACRO: [BP], [BP] , ;M |
MACRO: [BX], [BX] , ;M |
MACRO: [EAX], [EAX] , ;M |
MACRO: [ECX], [ECX] , ;M |
MACRO: [EDX], [EDX] , ;M |
MACRO: [EBX], [EBX] , ;M |
MACRO: [ESP], [ESP] , ;M |
MACRO: [EBP], [EBP] , ;M |
MACRO: [ESI], [ESI] , ;M |
MACRO: [EDI], [EDI] , ;M |
MACRO: [EAX*2], [EAX*2] , ;M |
MACRO: [ECX*2], [ECX*2] , ;M |
MACRO: [EDX*2], [EDX*2] , ;M |
MACRO: [EBX*2], [EBX*2] , ;M |
\ MACRO: [ESP*2], [ESP*2] , ;M |
MACRO: [EBP*2], [EBP*2] , ;M |
MACRO: [ESI*2], [ESI*2] , ;M |
MACRO: [EDI*2], [EDI*2] , ;M |
MACRO: [EAX*4], [EAX*4] , ;M |
MACRO: [ECX*4], [ECX*4] , ;M |
MACRO: [EDX*4], [EDX*4] , ;M |
MACRO: [EBX*4], [EBX*4] , ;M |
MACRO: [EBP*4], [EBP*4] , ;M |
MACRO: [ESI*4], [ESI*4] , ;M |
MACRO: [EDI*4], [EDI*4] , ;M |
MACRO: [EAX*8], [EAX*8] , ;M |
MACRO: [ECX*8], [ECX*8] , ;M |
MACRO: [EDX*8], [EDX*8] , ;M |
MACRO: [EBX*8], [EBX*8] , ;M |
MACRO: [EBP*8], [EBP*8] , ;M |
MACRO: [ESI*8], [ESI*8] , ;M |
MACRO: [EDI*8], [EDI*8] , ;M |
MACRO: ES, ES , ;M |
MACRO: CS, CS , ;M |
MACRO: SS, SS , ;M |
MACRO: DS, DS , ;M |
MACRO: FS, FS , ;M |
MACRO: GS, GS , ;M |
MACRO: CR0, CR0 , ;M |
MACRO: CR2, CR2 , ;M |
MACRO: CR3, CR3 , ;M |
MACRO: CR4, CR4 , ;M |
MACRO: DR0, DR0 , ;M |
MACRO: DR1, DR1 , ;M |
MACRO: DR2, DR2 , ;M |
MACRO: DR3, DR3 , ;M |
MACRO: DR6, DR6 , ;M |
MACRO: DR7, DR7 , ;M |
MACRO: TR3, TR3 , ;M |
MACRO: TR4, TR4 , ;M |
MACRO: TR5, TR5 , ;M |
MACRO: TR6, TR6 , ;M |
MACRO: TR7, TR7 , ;M |
MACRO: ST, ST , ;M |
MACRO: ST(0), ST(0) , ;M |
MACRO: ST(1), ST(1) , ;M |
MACRO: ST(2), ST(2) , ;M |
MACRO: ST(3), ST(3) , ;M |
MACRO: ST(4), ST(4) , ;M |
MACRO: ST(5), ST(5) , ;M |
MACRO: ST(6), ST(6) , ;M |
MACRO: ST(7), ST(7) , ;M |
/programs/develop/SPForth/lib/asm |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/SPForth/lib/ext/case.f |
---|
0,0 → 1,42 |
\ Êîíñòðóêöèÿ âûáîðà CASE |
\ ñ ó÷åòîì âîçìîæíîé âëîæåííîñòè îïåðàòîðîâ CASE |
DECIMAL |
VARIABLE CSP \ Óêàçàòåëü ñòåêà êîíòðîëÿ |
6 CONSTANT L-CAS# \ Äîïóñòèìûé óðîâåíü âëîæåííîñòè |
CREATE S-CSP L-CAS# CELLS ALLOT \ Ñòåê êîíòðîëÿ |
S-CSP CSP ! |
: +CSP ( -> P) \ Äîáàâèòü óðîâåíü |
CSP @ DUP CELL+ CSP ! |
; |
: -CSP ( -> ) \ Óáðàòü óðîâåíü |
CSP @ 1 CELLS - CSP ! |
; |
: !CSP ( -> ) \ Èíèöèàëèçèðîâàòü óðîâåíü |
SP@ +CSP ! |
; |
: CSP@ ( -> A) |
CSP @ 1 CELLS - @ |
; |
: ?CSP ( -> ) \ Ïðîâåðèòü âûäåðæàííîñòü ñòåêà |
\ SP@ CSP@ <> 37 ?ERROR ( ABORT" Ñáîé ñòåêà ïî CSP !") |
-CSP |
; |
: CASE ( -> ) |
!CSP |
; IMMEDIATE |
: OF |
POSTPONE OVER POSTPONE = |
[COMPILE] IF POSTPONE DROP |
; IMMEDIATE |
: ENDOF |
[COMPILE] ELSE |
; IMMEDIATE |
: ENDCASE |
POSTPONE DROP BEGIN SP@ CSP@ = |
0= WHILE [COMPILE] THEN REPEAT -CSP |
; IMMEDIATE |
/programs/develop/SPForth/lib/ext/disasm.f |
---|
0,0 → 1,1555 |
\ 80386 DISASSEMBLER |
\ ANDREW MCKEWAN, APRIL 1994 |
\ TOM ZIMMER, 05/18/94 PORT TO WIN32F |
\ MODIFIED TO WORD IN DECIMAL 08/03/94 10:04 TJZ |
\ 06-??-95 SMUB NEXT SEQUENCE DEFINED IN FKERNEL |
\ 06-21-95 SMUB REMOVED REDUNDANT COUNT CALLS FROM TXB, LXS. |
\ 04-??-97 EXTENDED BY C.L. TO INCLUDE P6 AND MMX INSTRUCTIONS |
\ 14-11-2000 Adapted from SPFOPT (Michael Maximov) by Dmitry Yakimov |
\ ??-11-2000 Fixed FE. FF. (Bandaletov) and H.R (Yakimov) |
\ 15-11-2000 Fixed MV2 (Yakimov) |
\ 25-12-2000 Added float literals recognition (Yakimov) |
\ 26-07-2001 Fixed MVX (Maksimov) |
\ 11-05-2004 Fixed FDA and CMV (Serguei Jidkov) |
CR .( Loading Intel Pentium MMX disassembler...) |
WARNING @ |
BASE @ |
GET-CURRENT |
( warn base wid ) |
WARNING 0! |
DECIMAL |
REQUIRE [DEFINED] lib/include/tools.f |
\ REQUIRE [IF] ~mak\CompIF.f |
REQUIRE CASE lib/ext/case.f |
\ REQUIRE WITHIN lib\include\core-ext.f |
REQUIRE NextNFA lib/ext/vocs.f |
: DEFER VECT ; |
: DUP>R R> OVER >R >R ; |
: UMAX ( D1 D2 -- FLAG ) |
2DUP U< IF NIP ELSE DROP THEN ; |
80 CONSTANT MAXSTRING |
255 CONSTANT MAXCOUNTED \ maximum length of contents of a counted string |
: 0X BASE @ HEX >R BL WORD ?LITERAL |
R> BASE ! ; IMMEDIATE |
: "CLIP" ( a1 n1 -- a1 n1' ) \ clip a string to between 0 and MAXCOUNTED |
MAXCOUNTED MIN 0 MAX ; |
: PLACE ( addr len dest -- ) |
SWAP "CLIP" SWAP |
2DUP 2>R |
CHAR+ SWAP MOVE |
2R> C! ; |
: +PLACE ( addr len dest -- ) \ append string addr,len to counted |
\ string dest |
>R "CLIP" MAXCOUNTED R@ C@ - MIN R> |
\ clip total to MAXCOUNTED string |
2DUP 2>R |
COUNT CHARS + SWAP MOVE |
2R> +! ; |
: C+PLACE ( c1 a1 -- ) \ append char c1 to the counted string at a1 |
DUP 1+! COUNT + 1- C! ; |
: OFF 0! ; |
: BLANK ( addr len -- ) \ fill addr for len with spaces (blanks) |
BL FILL ; |
128 CONSTANT SPCS-MAX ( optimization for SPACES ) |
CREATE SPCS SPCS-MAX ALLOT |
SPCS SPCS-MAX BLANK |
C" UPC" FIND NIP 0= |
[IF] |
: UPC ( c -- c' ) |
DUP [CHAR] Z U> |
IF 0xDF AND |
THEN ; |
[THEN] |
: (D.) ( d -- addr len ) TUCK DABS <# #S ROT SIGN #> ; |
80 VALUE COLS |
: H.R ( n1 n2 -- ) \ display n1 as a hex number right |
\ justified in a field of n2 characters |
BASE @ >R HEX >R |
0 <# #S #> R> OVER - 0 MAX SPACES TYPE |
R> BASE ! ; |
: H.N ( n1 n2 -- ) \ display n1 as a HEX number of n2 digits |
BASE @ >R HEX >R |
0 <# R> 0 ?DO # LOOP #> TYPE |
R> BASE ! ; |
0 VALUE DEFAULT-16BIT? |
: DEFAULT-16BIT ( -- ) |
TRUE TO DEFAULT-16BIT? ; |
: DEFAULT-32BIT ( -- ) |
FALSE TO DEFAULT-16BIT? ; |
DEFER SHOW-NAME ( CFA -- ) \ DISPLAY NEAREST SYMBOL |
0 VALUE BASE-ADDR |
VOCABULARY DISASSEMBLER |
ALSO DISASSEMBLER DEFINITIONS |
CREATE S-BUF MAXSTRING ALLOT |
: >S ( A1 N1 -- ) |
S-BUF +PLACE ; |
: 0>S ( -- ) \ RESET S-BUF |
S-BUF OFF ; |
: SSPACES ( N1 -- ) |
SPCS SWAP S-BUF +PLACE ; |
: SSPACE ( -- ) |
1 SSPACES ; |
: EMIT>S ( C1 -- ) |
S-BUF C+PLACE ; |
: S> ( -- A1 N1 ) |
S-BUF COUNT ; |
: (.S") ( addr len -- ) |
S-BUF +PLACE ; |
: .S" ( 'TEXT' -- ) |
[CHAR] " PARSE |
POSTPONE SLITERAL |
POSTPONE (.S") ; IMMEDIATE |
: D.R>S ( D W -- ) |
>R (D.) R> OVER - SSPACES >S ; |
: .R>S ( N W -- ) |
>R S>D R> D.R>S ; |
: U.R>S ( U W -- ) |
0 SWAP D.R>S ; |
: H.>S ( U -- ) |
BASE @ SWAP HEX 0 (D.) >S SSPACE BASE ! ; |
: H.R>S ( N1 N2 -- ) |
BASE @ >R HEX >R |
0 <# #S #> R> OVER - SSPACES >S |
R> BASE ! ; |
: ?.NAME>S ( CFA -- ) |
\ ELIMINATE " 0X" |
DUP 1 H.R>S SSPACE |
NEAR_NFA |
>R DUP |
IF .S" ( " DUP COUNT >S |
NAME> R> - DUP |
IF DUP .S" +" NEGATE H.>S |
THEN DROP .S" ) " |
ELSE RDROP DROP |
THEN |
; |
' ?.NAME>S TO SHOW-NAME |
\ 32 CONSTANT COMMENT-COL |
0 VALUE SIZE |
0 VALUE 16-BIT-DATA |
0 VALUE 16-BIT-ADDR |
0 VALUE PREFIX-OP |
0 VALUE MMX-REG |
: @+ ( ADDR -- ADDR N ) DUP CELL+ SWAP @ ; |
: W@+ ( ADDR -- ADDR N ) DUP 2 + SWAP W@ ; |
: SEXT ( BYTE -- N ) DUP 128 AND IF 0xFFFFFF00 OR THEN ; |
: MOD/SIB ( MOD-R-R/M -- R/M R MOD ) \ R INCLUDING GENERAL, SPECIAL, SEGMENT, MMX |
( MOD-OP-R/M -- R/M OP MOD ) |
( S-I-B -- B I S ) |
255 AND 8 /MOD 8 /MOD ; |
: ??? ( N1 -- ) |
.S" ??? " DROP ; |
: SS. ( N ADR LEN W ) >R DROP SWAP R@ * + R> >S SSPACE ; |
: TTTN ( CODE -- ) 15 AND S" O NOB AEE NEBEA S NSP NPL GELEG " 2 SS. ; |
: SREG ( SREG -- ) 3 RSHIFT 7 AND S" ESCSSSDSFSGSXXXX" 2 SS. ; |
: CREG ( EEE -- ) 3 RSHIFT 7 AND S" CR0???CR2CR3CR4?????????" 3 SS. ; |
: DREG ( EEE -- ) 3 RSHIFT 7 AND S" DR0DR1DR2DR3??????DR6DR7" 3 SS. ; |
: TREG ( EEE -- ) 3 RSHIFT 7 AND S" ?????????TR3TR4TR5TR6TR7" 3 SS. ; \ OBSOLETE |
: MREG ( N -- ) 7 AND S" MM0MM1MM2MM3MM4MM5MM6MM7" 3 SS. ; |
: REG8 ( N -- ) 7 AND S" ALCLDLBLAHCHDHBH" 2 SS. ; |
: REG16 ( N -- ) 7 AND S" AXCXDXBXSPBPSIDI" 2 SS. ; |
: REG32 ( N -- ) 7 AND S" EAXECXEDXEBXESPEBPESIEDI" 3 SS. ; |
: REG16/32 ( N -- ) |
16-BIT-DATA |
IF REG16 |
ELSE REG32 |
THEN ; |
: REG ( A N -- A ) |
MMX-REG |
IF MREG |
ELSE SIZE |
IF REG16/32 |
ELSE REG8 |
THEN |
THEN |
; |
: [BASE16] ( R/M -- ) 4 - S" [SI][DI][BP][BX]" 4 SS. ; |
\ R/M = 4 , 5 , 6 , 7 |
: [IND16] ( R/M -- ) S" [BX+SI][BX+DI][BP+SI][BP+DI]" 7 SS. ; |
\ R/M = 0 , 1 , 2 , 3 |
: [REG16] ( R/M -- ) DUP 4 < |
IF [IND16] |
ELSE [BASE16] |
THEN ; |
: [REG32] ( N -- ) 7 AND S" [EAX][ECX][EDX][EBX][ESP][EBP][ESI][EDI]" 5 SS. ; |
: [REG*2] ( I -- ) S" [EAX*2][ECX*2][EDX*2][EBX*2][XXX*2][EBP*2][ESI*2][EDI*2]" 7 SS. ; |
: [REG*4] ( I -- ) S" [EAX*4][ECX*4][EDX*4][EBX*4][XXX*4][EBP*4][ESI*4][EDI*4]" 7 SS. ; |
: [REG*8] ( I -- ) S" [EAX*8][ECX*8][EDX*8][EBX*8][XXX*8][EBP*8][ESI*8][EDI*8]" 7 SS. ; |
: [INDEX] ( SIB -- ) MOD/SIB OVER 4 = |
IF 2DROP \ NO ESP SCALED INDEX |
ELSE CASE ( S ) |
0 OF [REG32] ENDOF |
1 OF [REG*2] ENDOF |
2 OF [REG*4] ENDOF |
3 OF [REG*8] ENDOF |
ENDCASE |
THEN DROP ; |
: DISP8 ( ADR -- ADR' ) COUNT H.>S ; |
: DISP16 ( ADR -- ADR' ) W@+ SHOW-NAME ; |
: DISP32 ( ADR -- ADR' ) @+ ( BODY> ) SHOW-NAME ; |
: DISP16/32 ( ADR -- ADR' ) |
16-BIT-ADDR |
IF DISP16 |
ELSE DISP32 |
THEN ; |
: ., ( -- ) .S" , " ; |
: .# ., .S" # " ; |
: IMM8 ( ADR -- ADR' ) .# COUNT H.>S ; |
\ : IMM16 ( ADR -- ADR' ) .# W@+ H.>S ; |
: IMM16/32 ( ADR -- ADR' ) |
.# 16-BIT-DATA |
IF W@+ |
ELSE @+ |
THEN H.>S ; |
: SIB ( ADR MOD -- ADR ) |
>R COUNT TUCK 7 AND 5 = R@ 0= AND |
IF DISP32 SWAP [INDEX] R> DROP \ EBP BASE AND MOD = 00 |
ELSE R> CASE ( MOD ) |
1 OF DISP8 ENDOF |
2 OF DISP32 ENDOF |
ENDCASE |
SWAP DUP [REG32] [INDEX] |
THEN ; |
: MOD-R/M32 ( ADR R/M MOD -- ADR' ) |
DUP 3 = |
IF DROP REG \ MOD = 3, REGISTER CASE |
ELSE OVER 4 = |
IF NIP SIB \ R/M = 4, SIB CASE |
ELSE 2DUP 0= SWAP 5 = AND \ MOD = 0, R/M = 5, |
IF 2DROP DISP32 \ DISP32 CASE |
ELSE ROT SWAP |
CASE ( MOD ) |
1 OF DISP8 ENDOF |
2 OF DISP32 ENDOF |
ENDCASE |
SWAP [REG32] |
THEN |
THEN |
THEN ; |
: MOD-R/M16 ( ADR R/M MOD -- ADR' ) |
2DUP 0= SWAP 6 = AND |
IF 2DROP DISP16 \ DISP16 CASE |
ELSE CASE ( MOD ) |
0 OF [REG16] ENDOF |
1 OF SWAP DISP8 SWAP [REG16] ENDOF |
2 OF SWAP DISP16 SWAP [REG16] ENDOF |
3 OF REG ENDOF |
ENDCASE |
THEN ; |
: MOD-R/M ( ADR MODR/M -- ADR' ) |
MOD/SIB NIP 16-BIT-ADDR |
IF MOD-R/M16 |
ELSE MOD-R/M32 |
THEN ; |
: R/M8 0 TO SIZE MOD-R/M ; |
: R/M16/32 1 TO SIZE MOD-R/M ; |
: R/M16 TRUE TO 16-BIT-DATA R/M16/32 ; |
: R,R/M ( ADR -- ADR' ) |
COUNT DUP 3 RSHIFT REG ., MOD-R/M ; |
: R/M,R ( ADR -- ADR' ) |
COUNT DUP>R MOD-R/M ., R> 3 RSHIFT REG ; |
: R/M ( ADR OP -- ADR' ) |
2 AND |
IF R,R/M |
ELSE R/M,R |
THEN ; |
\ -------------------- SIMPLE OPCODES -------------------- |
: INH ( -<NAME>- ) |
CREATE |
BL WORD COUNT HERE PLACE |
HERE C@ 1+ ALLOT |
DOES> COUNT >S SSPACE DROP ; |
INH CLC CLC |
INH STC STC |
INH CLD CLD |
INH STD STD |
\ INH RPNZ REPNZ |
\ INH REPZ REPZ |
INH CBW CBW |
INH CDQ CDQ |
INH DAA DAA |
INH DAS DAS |
INH AAA AAA |
INH AAS AAS |
\ INH LOCK LOCK |
INH INB INSB |
INH OSB OUTSB |
INH SAH SAHF |
INH LAH LAHF |
\ INH AAM AAM |
\ INH AAD AAD |
INH HLT HLT |
INH CMC CMC |
INH XLT XLAT |
INH CLI CLI |
INH STI STI |
INH CLT CLTS |
INH INV INVD |
INH WIV WBINVD |
INH UD2 UD2 |
INH WMR WRMSR |
INH RTC RDTSC |
INH RMR RDMSR |
INH RPC RDPMC |
INH EMS EMMS |
INH RSM RSM |
INH CPU CPUID |
INH UD1 UD1 |
\ INH LSS LSS |
\ INH LFS LFS |
\ INH LGS LGS |
\ INH D16: D16: |
\ INH A16: A16: |
\ INH ES: ES: |
\ INH CS: CS: |
\ INH DS: DS: |
\ INH FS: FS: |
\ INH GS: GS: |
: AAM ( ADR CODE -- ADR' ) |
.S" AAM" DROP COUNT DROP ; |
: AAD ( ADR CODE -- ADR' ) |
.S" AAD" DROP COUNT DROP ; |
: D16 ( ADR CODE -- ADR' ) |
DROP .S" D16:" |
TRUE TO 16-BIT-DATA |
TRUE TO PREFIX-OP |
; |
: A16 ( ADR CODE -- ADR' ) |
DROP .S" A16:" |
TRUE TO 16-BIT-ADDR |
TRUE TO PREFIX-OP |
; |
: RPZ ( ADR CODE -- ADR' ) |
DROP .S" REPNZ" |
TRUE TO PREFIX-OP |
; |
: REP ( ADR CODE -- ADR' ) |
DROP .S" REPZ" |
TRUE TO PREFIX-OP |
; |
: LOK ( ADR CODE -- ADR' ) \ THIS SHOULD HAVE ERROR CHECKING ADDED |
DROP .S" LOCK" |
TRUE TO PREFIX-OP |
; |
: CS: ( ADR CODE -- ADR' ) |
DROP .S" CS:" |
TRUE TO PREFIX-OP |
; |
: DS: ( ADR CODE -- ADR' ) |
DROP .S" DS:" |
TRUE TO PREFIX-OP |
; |
: SS: ( ADR CODE -- ADR' ) |
DROP .S" SS:" |
TRUE TO PREFIX-OP |
; |
: ES: ( ADR CODE -- ADR' ) |
DROP .S" ES:" |
TRUE TO PREFIX-OP |
; |
: GS: ( ADR CODE -- ADR' ) |
DROP .S" GS:" |
TRUE TO PREFIX-OP |
; |
: FS: ( ADR CODE -- ADR' ) |
DROP .S" FS:" |
TRUE TO PREFIX-OP |
; |
: ISD ( ADR CODE -- ADR' ) |
DROP 16-BIT-DATA |
IF .S" INSW " |
ELSE .S" INSD " |
THEN ; |
: OSD ( ADR CODE -- ADR' ) |
DROP 16-BIT-DATA |
IF .S" OUTSW " |
ELSE .S" OUTSD " |
THEN ; |
: INP ( ADDR CODE -- ADDR' ) |
.S" IN " 1 AND |
IF 16-BIT-DATA |
IF .S" AX , " |
ELSE .S" EAX , " |
THEN |
ELSE .S" AL , " |
THEN |
COUNT H.>S ; |
: OTP ( ADDR CODE -- ADDR' ) |
.S" OUT " 1 AND |
IF COUNT H.>S 16-BIT-DATA |
IF .S" , AX" |
ELSE .S" , EAX" |
THEN |
ELSE COUNT H.>S .S" , AL" |
THEN |
; |
: IND ( ADDR CODE -- ADDR' ) |
.S" IN " 1 AND |
IF 16-BIT-DATA |
IF .S" AX , DX" |
ELSE .S" EAX , DX" |
THEN |
ELSE .S" AL , DX" |
THEN |
; |
: OTD ( ADDR CODE -- ADDR' ) |
.S" OUT " 1 AND |
IF 16-BIT-DATA |
IF .S" DX , AX" |
ELSE .S" DX , EAX" |
THEN |
ELSE .S" DX , AL" |
THEN |
; |
\ -------------------- ALU OPCODES -------------------- |
: .ALU ( N -- ) |
7 AND S" ADDOR ADCSBBANDSUBXORCMP" 3 SS. 4 SSPACES |
; |
: ALU ( ADR OP -- ADR' ) |
DUP 3 RSHIFT .ALU R/M ; |
: ALI ( ADR OP -- ADR' ) |
>R COUNT |
DUP 3 RSHIFT .ALU |
MOD-R/M |
R> 3 AND ?DUP |
IF 1 = |
IF IMM16/32 |
ELSE .# COUNT SEXT 0 .R>S SSPACE |
THEN |
ELSE IMM8 |
THEN ; |
: ALA ( ADR OP -- ADR' ) |
DUP 3 RSHIFT .ALU |
1 AND IF 0 REG IMM16/32 ELSE 0 REG8 IMM8 THEN ; |
\ -------------------- TEST/XCHG -------------------- |
: TXB ( ADDR OP -- ADDR' ) |
DUP 3 AND S" TESTTESTXCHGXCHG" 4 SS. 3 SSPACES |
1 AND |
IF 1 TO SIZE R,R/M \ SMUB REMOVED COUNT |
ELSE 0 TO SIZE R,R/M \ SMUB REMOVED COUNT |
THEN |
; |
: TST ( ADDR OP -- ADDR' ) |
.S" TEST " 1 AND |
IF 16-BIT-DATA |
IF .S" AX , " |
ELSE .S" EAX , " |
THEN |
IMM16/32 |
ELSE .S" AL , " IMM8 |
THEN |
; |
\ -------------------- INC/DEC ---------------------- |
: INC ( ADDR OP -- ADDR' ) |
.S" INC " REG16/32 ; |
: DEC ( ADDR OP -- ADDR' ) |
.S" DEC " REG16/32 ; |
\ -------------------- PUSH/POP -------------------- |
: PSH ( ADDR OP -- ADDR' ) |
.S" PUSH " REG16/32 ; |
: POP ( ADDR OP -- ADDR' ) |
.S" POP " REG16/32 ; |
: PSS ( ADDR OP -- ADDR' ) |
.S" PUSH " SREG ; |
: PPS ( ADDR OP -- ADDR' ) |
.S" POP " SREG ; |
: PSA ( ADDR OP -- ADDR' ) |
DROP 16-BIT-DATA |
IF .S" PUSHA " |
ELSE .S" PUSHAD " |
THEN ; |
: PPA ( ADDR OP -- ADDR' ) |
DROP 16-BIT-DATA |
IF .S" POPA " |
ELSE .S" POPAD " |
THEN ; |
: PSI ( ADDR OP -- ADDR' ) |
.S" PUSH " 2 AND |
IF IMM8 |
ELSE IMM16/32 |
THEN ; |
: PSF ( ADDR OP -- ADDR' ) |
DROP 16-BIT-DATA |
IF .S" PUSHF " |
ELSE .S" PUSHFD " |
THEN ; |
: PPF ( ADDR OP -- ADDR' ) |
DROP 16-BIT-DATA |
IF .S" POPF " |
ELSE .S" POPFD " |
THEN ; |
: 8F. ( ADDR OP -- ADDR' ) |
DROP COUNT .S" POP " R/M16/32 ; |
\ -------------------- MOVE -------------------- |
: MOV ( ADDR OP -- ADDR' ) |
.S" MOV " R/M ; |
: MRI ( ADDR OP -- ADDR' ) ( MOV REGISTER, IMM ) |
.S" MOV " DUP 8 AND |
IF REG16/32 IMM16/32 |
ELSE REG8 IMM8 |
THEN ; |
: MVI ( ADR OP -- ADR' ) ( MOV MEM, IMM ) |
.S" MOV " DROP COUNT MOD-R/M |
SIZE |
IF IMM16/32 |
ELSE IMM8 |
THEN |
; |
: MRS ( ADDR OP -- ADDR' ) |
\ ? REMOVE REDUNDANT >R , R> |
16-BIT-DATA |
IF .S" MOV " DROP |
1 TO SIZE |
COUNT DUP MOD-R/M ., |
SREG |
ELSE ??? |
THEN ; |
: MSR ( ADDR OP -- ADDR' ) |
16-BIT-DATA |
IF .S" MOV " DROP |
1 TO SIZE |
COUNT DUP SREG ., |
MOD-R/M |
ELSE ??? |
THEN ; |
: MRC ( ADDR OP -- ADDR' ) |
.S" MOV " |
DROP COUNT DUP REG32 .S" , " |
CREG ; |
: MCR ( ADDR OP -- ADDR' ) |
.S" MOV " |
DROP COUNT DUP CREG .S" , " |
REG32 ; |
: MRD ( ADDR OP -- ADDR' ) |
.S" MOV " |
DROP COUNT DUP REG32 .S" , " |
DREG ; |
: MDR ( ADDR OP -- ADDR' ) |
.S" MOV " |
DROP COUNT DUP DREG .S" , " |
REG32 ; |
: MRT ( ADDR OP -- ADDR' ) |
\ OBSOLETE |
.S" MOV " |
DROP COUNT DUP REG32 .S" , " |
TREG ; |
: MTR ( ADDR OP -- ADDR' ) |
\ OBSOLETE |
.S" MOV " |
DROP COUNT DUP TREG .S" , " |
REG32 ; |
: MV1 ( ADDR OP -- ADDR' ) |
.S" MOV " 1 AND |
IF 16-BIT-DATA |
IF .S" AX , " |
ELSE .S" EAX , " |
THEN |
ELSE .S" AL , " |
THEN |
DISP16/32 ; |
: MV2 ( ADDR OP -- ADDR' ) |
.S" MOV " SWAP DISP16/32 ., |
SWAP 1 AND |
IF 16-BIT-DATA |
IF .S" AX" |
ELSE .S" EAX" |
THEN |
ELSE .S" AL" |
THEN |
; |
: LEA ( ADDR OP -- ADDR' ) |
.S" LEA " DROP 1 TO SIZE R,R/M ; |
: LXS ( ADDR OP -- ADDR' ) |
1 AND |
IF .S" LDS " |
ELSE .S" LES " |
THEN |
R,R/M \ SMUB REMOVED COUNT |
; |
: BND ( ADDR OP -- ADDR' ) |
.S" BOUND " DROP 1 TO SIZE R,R/M ; |
: ARP ( ADDR OP -- ADDR' ) |
.S" ARPL " DROP |
1 TO SIZE |
TRUE TO 16-BIT-DATA |
R,R/M |
; |
: MLI ( ADDR OP -- ADDR' ) |
1 TO SIZE |
.S" IMUL " 0x69 = |
IF R,R/M IMM16/32 |
ELSE R,R/M IMM8 |
THEN ; |
\ -------------------- JUMPS AND CALLS -------------------- |
0 VALUE MAX_REFERENCE |
: >MAX_R DUP MAX_REFERENCE UMAX TO MAX_REFERENCE ; |
: REL8 ( ADDR OP -- ADDR' ) |
COUNT SEXT OVER + BASE-ADDR - >MAX_R H.>S ; |
: REL16/32 ( ADDR OP -- ADDR' ) |
16-BIT-ADDR |
IF W@+ |
ELSE @+ |
THEN OVER + BASE-ADDR - >MAX_R SHOW-NAME ; |
: JSR ( ADDR OP -- ADDR' ) |
.S" CALL " DROP REL16/32 ; |
: JMP ( ADDR OP -- ADDR' ) |
.S" JMP " 2 AND IF REL8 ELSE REL16/32 THEN ; |
: .JXX ( ADDR OP -- ADDR' ) |
.S" J" TTTN 4 SSPACES ; |
: BRA ( ADDR OP -- ADDR' ) |
.JXX REL8 ; |
: LUP ( ADDR OP -- ADDR' ) |
3 AND S" LOOPNZLOOPZ LOOP JECXZ " 6 SS. 1 SSPACES REL8 ; |
: LBR ( ADDR OP -- ADDR' ) |
.JXX REL16/32 ; |
: RTN ( ADDR OP -- ADDR' ) |
.S" RET NEAR " 1 AND 0= |
IF W@+ H.>S |
THEN ; |
: RTF ( ADDR OP -- ADDR' ) |
.S" RET FAR " 1 AND 0= |
IF W@+ H.>S |
THEN ; |
: ENT ( ADDR OP -- ADDR' ) |
DROP |
.S" ENTER " W@+ H.>S ., COUNT H.>S ; |
: CIS ( ADDR OP -- ADDR' ) |
0x9A = |
IF .S" CALL " |
ELSE .S" JMP " |
THEN |
16-BIT-DATA |
IF .S" PTR16:16 " |
ELSE .S" PTR16:32 " |
THEN |
COUNT MOD-R/M ; |
: NT3 ( ADDR OP -- ADDR' ) |
DROP .S" INT 3 " |
; |
: INT ( ADDR OP -- ADDR' ) |
DROP .S" INT " |
COUNT H.>S ; |
INH LEV LEAVE |
INH IRT IRET |
INH NTO INTO |
\ -------------------- STRING OPS -------------------- |
: STR INH DOES> COUNT >S 1 AND IF .S" D" ELSE .S" B" THEN ; |
STR MVS MOVS |
STR CPS CMPS |
STR STS STOS |
STR LDS LODS |
STR SCS SCAS |
\ -------------------- EXCHANGE -------------------- |
: XGA ( ADDR OP -- ADDR' ) |
.S" XCHG EAX, " REG16/32 ; |
\ : XCH ( ADDR OP -- ADDR' ) |
\ .S" XCHG " DROP R,R/M ; |
\ -------------------- SHIFTS & ROTATES -------------------- |
: .SHIFT ( N -- ) |
7 AND S" ROLRORRCLRCRSHLSHRXXXSAR" 3 SS. 4 SSPACES ; |
: SHF ( ADDR OP -- ADDR' ) |
>R COUNT |
DUP 3 RSHIFT .SHIFT |
MOD-R/M ., |
R> 0xD2 AND |
CASE |
0xC0 OF COUNT H.>S ENDOF |
0xD0 OF 1 H.>S ENDOF |
0xD2 OF 1 REG8 ENDOF |
ENDCASE ; |
\ -------------------- EXTENDED OPCODES -------------------- |
: WF1 ( ADDR -- ADDR' ) |
1+ COUNT DUP |
0x0C0 < |
IF DUP |
3 RSHIFT 7 AND |
CASE 6 OF .S" FSTENV " MOD-R/M ENDOF |
7 OF .S" FSTCW WORD " MOD-R/M ENDOF |
2DROP 2 - DUP .S" FWAIT " |
ENDCASE |
ELSE DROP 2 - .S" FWAIT " |
THEN ; |
: WF2 ( ADDR -- ADDR' ) |
1+ COUNT |
CASE 0xE2 OF .S" FCLEX " ENDOF |
0xE3 OF .S" FINIT " ENDOF |
SWAP 2 - SWAP .S" FWAIT " |
ENDCASE ; |
: WF3 ( ADDR -- ADDR' ) |
1+ COUNT DUP 3 RSHIFT 7 AND |
CASE 6 OF .S" FSAVE " MOD-R/M ENDOF |
7 OF .S" FSTSW WORD " MOD-R/M ENDOF |
2DROP 2 - DUP .S" FWAIT " |
ENDCASE ; |
: WF4 ( ADDR -- ADDR' ) |
1+ COUNT 0xE0 = |
IF .S" FSTSW AX " |
ELSE 2 - .S" FWAIT " |
THEN ; |
: FWAITOPS ( ADDR OP -- ADDR' ) |
CASE 0xD9 OF WF1 ENDOF |
0xDB OF WF2 ENDOF |
0xDD OF WF3 ENDOF |
0xDF OF WF4 ENDOF |
.S" FWAIT " |
ENDCASE ; |
: W8F ( ADDR OP -- ADDR' ) |
DROP DUP C@ DUP 0xF8 AND 0xD8 = |
IF FWAITOPS |
ELSE DROP .S" WAIT " |
THEN ; |
: FALU1 ( XOPCODE -- ) |
3 RSHIFT 7 AND |
S" FADD FMUL FCOM FCOMPFSUB FSUBRFDIV FDIVR" |
5 SS. 2 SSPACES ; |
: FALU5 ( XOPCODE -- ) |
3 RSHIFT 7 AND |
S" FADD FMUL ???? ???? FSUBRFSUB FDIVRFDIV " |
5 SS. 2 SSPACES ; |
: STI. ( OP -- ) |
7 AND .S" ST(" 1 .R>S .S" )"; |
\ : STI.ST ( OP -- ) |
\ 7 AND |
\ .S" ST(" 1 .R>S .S" )" .S" ST " ; |
: FD8 ( ADDR OPCODE -- ADDR' ) |
DROP COUNT DUP FALU1 |
DUP 0xC0 < |
IF .S" FLOAT " MOD-R/M |
ELSE DUP 0xF0 AND 0xD0 = |
IF STI. |
ELSE .S" ST , " STI. |
THEN |
THEN ; |
: FDC ( ADDR OPCODE -- ADDR' ) |
DROP COUNT |
DUP DUP 0xC0 < |
IF FALU1 .S" DOUBLE " MOD-R/M |
ELSE FALU5 STI. .S" , ST" |
THEN ; |
: FNULLARY-F ( OP -- ) |
0x0F AND DUP 8 < |
IF |
S" F2XM1 FYL2X FPTAN FPATAN FXTRACTFPREM1 FDECSTPFINCSTP" |
ELSE 8 - |
S" FPREM FYL2XP1FSQRT FSINCOSFRNDINTFSCALE FSIN FCOS " |
THEN |
7 SS. ; |
: FNULLARY-E ( OP -- ) |
0x0F AND DUP 8 < |
IF |
S" FCHS FABS ??? ??? FTST FXAM ??? ??? " |
ELSE 8 - |
S" FLD1 FLDL2T FLDL2E FLDPI FLDLG2 FLDLN2 FLDZ ??? " |
THEN |
7 SS. ; |
: FNULLARY ( OP -- ) |
DUP 0xEF > |
IF FNULLARY-F EXIT |
THEN |
DUP 0xE0 < |
IF 0xD0 = |
IF .S" FNOP" |
ELSE DUP ??? |
THEN |
EXIT |
THEN |
FNULLARY-E ; |
\ : FALU2 ( OP -- ) |
\ 3 RSHIFT 7 AND |
\ S" FLD ??? FST FSTP FLDENV FLDCW FNSTENVFNSTCW " |
\ 7 SS. ; |
: FD9 ( ADDR OP -- ADDR' ) |
DROP COUNT DUP 0xC0 < |
IF DUP 0x38 AND |
CASE |
0x00 OF .S" FLD FLOAT " ENDOF |
0x10 OF .S" FST FLOAT " ENDOF |
0x18 OF .S" FSTP FLOAT " ENDOF |
0x20 OF .S" FLDENV " ENDOF |
0x28 OF .S" FLDCW WORD " ENDOF |
0x30 OF .S" FNSTENV " ENDOF |
0x38 OF .S" FNSTCW WORD " ENDOF |
DUP ??? |
ENDCASE |
MOD-R/M |
ELSE |
DUP 0xD0 < |
IF DUP 0xC8 < |
IF .S" FLD " |
ELSE .S" FXCH " |
THEN |
STI. |
ELSE FNULLARY |
THEN |
THEN ; |
: FALU3 ( OP -- ) |
3 RSHIFT 7 AND |
S" FIADD FIMUL FICOM FICOMPFISUB FISUBRFIDIV FIDIVR" |
6 SS. 1 SSPACES ; |
: FCMOVA ( OP -- ) |
3 RSHIFT 7 AND |
S" FCMOVB FCMOVE FCMOVBEFCMOVU ??? ??? ??? ??? " |
7 SS. ; |
: FDA ( ADDR OP -- ) |
DROP COUNT DUP 0xC0 < |
IF DUP FALU3 .S" DWORD " MOD-R/M |
ELSE DUP 0xE9 = |
IF .S" FUCOMPP" DROP |
ELSE DUP FCMOVA STI. |
THEN |
THEN ; |
: FALU7 ( OP -- ) |
3 RSHIFT 7 AND |
S" FADDP FMULP ??? ??? FSUBRPFSUBP FDIVRPFDIVP " |
6 SS. SSPACE ; |
: FDE ( ADDR OP -- ADDR' ) |
DROP COUNT DUP 0xC0 < |
IF DUP FALU3 .S" WORD " MOD-R/M |
ELSE DUP 0xD9 = |
IF .S" FCOMPP" DROP |
ELSE DUP FALU7 STI. |
THEN |
THEN ; |
: FCMOVB ( OP -- ) |
3 RSHIFT 7 AND |
S" FCMOVNB FCMOVNE FCMOVNBEFCMOVNU ??? FUCOMI FCOMI ??? " |
8 SS. ; |
: FDB ( ADDR OP -- ADDR' ) |
DROP COUNT DUP 0xC0 < |
IF DUP 0x38 AND |
CASE 0x00 OF .S" FILD DWORD " ENDOF |
0x10 OF .S" FIST DWORD " ENDOF |
0x18 OF .S" FISTP DWORD " ENDOF |
0x28 OF .S" FLD EXTENDED " ENDOF |
0x38 OF .S" FSTP EXTENDED " ENDOF |
DUP ??? |
ENDCASE |
MOD-R/M |
ELSE |
CASE 0xE2 OF .S" FNCLEX" ENDOF |
0xE3 OF .S" FNINIT" ENDOF |
DUP DUP FCMOVB STI. |
ENDCASE |
THEN ; |
: FALU6 ( OP -- ) |
3 RSHIFT 7 AND |
S" FFREE ??? FST FSTP FUCOM FUCOMP??? ??? " |
6 SS. SSPACE ; |
: FDD ( ADDR OP -- ADDR' ) |
DROP COUNT DUP 0xC0 < |
IF DUP 0x38 AND |
CASE 0x00 OF .S" FLD DOUBLE " ENDOF |
0x10 OF .S" FST DOUBLE " ENDOF |
0x18 OF .S" FSTP DOUBLE " ENDOF |
0x20 OF .S" FRSTOR " ENDOF |
0x30 OF .S" FNSAVE " ENDOF |
0x38 OF .S" FNSTSW WORD " ENDOF |
DUP ??? |
ENDCASE |
MOD-R/M |
ELSE DUP FALU6 STI. |
THEN ; |
: FDF ( ADDR OP -- ADDR' ) |
DROP COUNT DUP 0xC0 < |
IF DUP 0x38 AND |
CASE 0x00 OF .S" FILD WORD " ENDOF |
0x10 OF .S" FIST WORD " ENDOF |
0x18 OF .S" FISTP WORD " ENDOF |
0x20 OF .S" FBLD TBYTE " ENDOF |
0x28 OF .S" FILD QWORD " ENDOF |
0x30 OF .S" FBSTP TBYTE " ENDOF |
0x38 OF .S" FISTP QWORD " ENDOF |
DUP ??? |
ENDCASE |
MOD-R/M |
ELSE DUP 0xE0 = |
IF .S" FNSTSW AX " DROP |
ELSE DUP 0x38 AND |
CASE 0x28 OF .S" FUCOMIP " STI. ENDOF |
0x30 OF .S" FCOMIP " STI. ENDOF |
??? |
ENDCASE |
THEN |
THEN ; |
: GP6 ( ADDR OP -- ADDR' ) |
DROP COUNT DUP 3 RSHIFT |
7 AND S" SLDTSTR LLDTLTR VERRVERW??? ???" 4 SS. 3 SSPACES |
R/M16 ; |
: GP7 ( ADDR OP -- ADDR' ) |
DROP COUNT DUP 3 RSHIFT |
7 AND DUP S" SGDT SIDT LGDT LIDT SMSW ??? LMSW INVLPG" 6 SS. 1 SSPACES |
4 AND 4 = |
IF R/M16 |
ELSE R/M16/32 |
THEN ; |
: BTX. ( N -- ) |
3 RSHIFT |
3 AND S" BT BTSBTRBTC" 3 SS. 4 SSPACES ; |
: GP8 ( ADDR OP -- ADDR' ) |
DROP COUNT DUP BTX. |
R/M16/32 IMM8 ; |
: LAR ( ADDR OP -- ADDR' ) |
.S" LAR " DROP R,R/M ; |
: LSL ( ADDR OP -- ADDR' ) |
.S" LSL " DROP R,R/M ; |
: LSS ( ADDR OP -- ADDR' ) |
.S" LSS " DROP R,R/M ; |
: LFS ( ADDR OP -- ADDR' ) |
.S" LFS " DROP R,R/M ; |
: LGS ( ADDR OP -- ADDR' ) |
.S" LGS " DROP R,R/M ; |
: BTX ( ADDR OP -- ADDR' ) |
BTX. R/M,R ; |
: SLI ( ADDR OP -- ADDR' ) |
.S" SHLD " DROP R/M,R IMM8 ; |
: SRI ( ADDR OP -- ADDR' ) |
.S" SHRD " DROP R/M,R IMM8 ; |
: SLC ( ADDR OP -- ADDR' ) |
.S" SHLD " DROP R/M,R .S" , CL" ; |
: SRC ( ADDR OP -- ADDR' ) |
.S" SHRD " DROP R/M,R .S" , CL" ; |
: IML ( ADDR OP -- ADDR' ) |
.S" IMUL " DROP R,R/M ; |
: CXC ( ADDR OP -- ADDR' ) |
.S" CMPXCHG " 1 AND TO SIZE R/M,R ; |
: MVX ( ADDR OP -- ADDR' ) |
DUP 8 AND |
IF .S" MOVSX " |
ELSE .S" MOVZX " |
THEN |
1 AND >R |
COUNT MOD/SIB R> \ SIZE BIT |
IF SWAP REG32 ., \ WORD TO DWORD CASE |
3 = |
IF REG16 |
ELSE .S" WORD PTR " DROP DUP 1- C@ MOD-R/M |
THEN |
ELSE SWAP REG16/32 ., \ BYTE CASE |
3 = |
IF REG8 |
ELSE .S" BYTE PTR " DROP DUP 1- C@ MOD-R/M |
THEN |
THEN ; |
: XAD ( ADDR OP -- ADDR' ) |
.S" XADD " 1 AND TO SIZE R/M,R ; |
: BSF ( ADDR OP -- ADDR' ) |
.S" BSF " DROP R,R/M ; |
: BSR ( ADDR OP -- ADDR' ) |
.S" BSR " DROP R,R/M ; |
: CX8 ( ADDR OP -- ADDR' ) |
.S" CMPXCHG8B " DROP COUNT R/M16/32 ; |
: BSP ( ADDR OP -- ADDR' ) |
.S" BSWAP " REG32 ; |
: F6. ( ADDR OP -- ADDR' ) |
\ ?? |
>R COUNT |
DUP 3 RSHIFT 7 AND DUP>R S" TESTXXXXNOT NEG MUL IMULDIV IDIV" 4 SS. 3 SSPACES |
MOD-R/M |
R> 0= IF |
R@ 1 AND IF IMM16/32 |
ELSE IMM8 |
THEN |
THEN |
R> DROP ; |
: FE. ( ADDR OP -- ADDR' ) |
DROP COUNT |
DUP 3 RSHIFT 7 AND |
CASE |
0 OF .S" INC " ENDOF |
1 OF .S" DEC " ENDOF |
.S" ??? " |
ENDCASE R/M8 ; |
: FF. ( ADDR OP -- ADDR' ) |
DROP COUNT |
DUP 3 RSHIFT 7 AND |
CASE |
0 OF .S" INC " ENDOF |
1 OF .S" DEC " ENDOF |
2 OF .S" CALL " ENDOF |
3 OF .S" CALL FAR " ENDOF |
4 OF .S" JMP " ENDOF |
5 OF .S" JMP FAR " ENDOF |
6 OF .S" PUSH " ENDOF |
.S" ??? " |
ENDCASE R/M16/32 ; |
\ --------------------- CONDITIONAL MOVE --------------- |
: SET ( ADR OP -- ) |
.S" SET" |
TTTN 2 SSPACES |
COUNT R/M8 ; |
: CMV ( ADR OP -- ) |
.S" CMOV" |
TTTN 1 SSPACES |
R,R/M ; |
\ --------------------- MMX OPERATIONS ----------------- |
: MMX-SIZE ( OP -- ) |
3 AND S" BWDQ" 1 SS. ; |
: UPL ( ADR OP -- ADR' ) |
3 AND S" PUNPCKLBWPUNPCKLWDPUNPCKLDQ" 9 SS. R,R/M ; |
: UPH ( ADR OP -- ADR' ) |
3 AND S" PUNPCKHBWPUNPCKHWDPUNPCKHDQ" 9 SS. R,R/M ; |
: CGT ( ADR OP -- ADR' ) |
.S" PCMPGT" MMX-SIZE R,R/M ; |
: CEQ ( ADR OP -- ADR' ) |
.S" PCMPEQ" MMX-SIZE R,R/M ; |
: PSH. ( OP -- ) |
0x30 AND |
CASE |
0x10 OF .S" PSRL" ENDOF |
0x20 OF .S" PSRA" ENDOF |
0x30 OF .S" PSLL" ENDOF |
ENDCASE ; |
: GPA ( ADR OP -- ADR' ) |
>R COUNT DUP PSH. R> MMX-SIZE 2 SSPACES MREG IMM8 ; |
: PUW ( ADR OP -- ADR' ) |
.S" PACKUSDW " DROP R,R/M ; |
: PSB ( ADR OP -- ADR' ) |
.S" PACKSSWB " DROP R,R/M ; |
: PSW ( ADR OP -- ADR' ) |
.S" PACKSSDW " DROP R,R/M ; |
: MPD ( ADR OP -- ADR' ) |
.S" MOVD " DROP COUNT MOD/SIB |
SWAP MREG ., 3 = |
IF REG32 |
ELSE MOD-R/M |
THEN ; |
: MDP ( ADR OP -- ADR' ) |
.S" MOVD " DROP COUNT MOD/SIB |
3 = |
IF SWAP REG32 |
ELSE SWAP MOD-R/M |
THEN ., MREG ; |
: MPQ ( ADR OP -- ADR' ) |
.S" MOVQ " DROP R,R/M ; |
: MQP ( ADR OP -- ADR' ) |
.S" MOVQ " DROP R/M,R ; |
: SHX ( ADR OP -- ADR' ) |
DUP PSH. MMX-SIZE 2 SSPACES R,R/M ; |
: MLL ( ADR OP -- ADR' ) |
.S" PMULLW " DROP R,R/M ; |
: MLH ( ADR OP -- ADR' ) |
.S" PMULHW " DROP R,R/M ; |
: MAD ( ADR OP -- ADR' ) |
.S" PMADDWD " DROP R,R/M ; |
: SUS ( ADR OP -- ADR' ) |
.S" PSUBUS" MMX-SIZE R,R/M ; |
: SBS ( ADR OP -- ADR' ) |
.S" PSUBS" MMX-SIZE SSPACE R,R/M ; |
: SUB ( ADR OP -- ADR' ) |
.S" PSUB" MMX-SIZE 2 SSPACES R,R/M ; |
: AUS ( ADR OP -- ADR' ) |
.S" PADDUS" MMX-SIZE R,R/M ; |
: ADS ( ADR OP -- ADR' ) |
.S" PADDS" MMX-SIZE SSPACE R,R/M ; |
: ADD ( ADR OP -- ADR' ) |
.S" PADD" MMX-SIZE 2 SSPACES R,R/M ; |
: PAD ( ADR OP -- ADR' ) |
.S" PAND " DROP R,R/M ; |
: POR ( ADR OP -- ADR' ) |
.S" POR " DROP R,R/M ; |
: PAN ( ADR OP -- ADR' ) |
.S" PANDN " DROP R,R/M ; |
: PXR ( ADR OP -- ADR' ) |
.S" PXOR " DROP R,R/M ; |
\ -------------------- OPCODE TABLE -------------------- |
: OPS 0x10 0 DO ' , LOOP ; |
CREATE OP-TABLE2 |
\ 0 1 2 3 4 5 6 7 8 9 A B C D E F |
OPS GP6 GP7 LAR LSL ??? ??? CLT ??? INV WIV ??? UD2 ??? ??? ??? ??? \ 0 |
OPS ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? \ 1 |
OPS MRC MRD MCR MDR MRT ??? MTR ??? ??? ??? ??? ??? ??? ??? ??? ??? \ 2 |
OPS WMR RTC RMR RPC ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? \ 3 |
OPS CMV CMV CMV CMV CMV CMV CMV CMV CMV CMV CMV CMV CMV CMV CMV CMV \ 4 |
OPS ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? \ 5 |
OPS UPL UPL UPL PUW CGT CGT CGT PSB UPH UPH UPH PSW ??? ??? MPD MPQ \ 6 |
OPS ??? GPA GPA GPA CEQ CEQ CEQ EMS ??? ??? ??? ??? ??? ??? MDP MQP \ 7 |
OPS LBR LBR LBR LBR LBR LBR LBR LBR LBR LBR LBR LBR LBR LBR LBR LBR \ 8 |
OPS SET SET SET SET SET SET SET SET SET SET SET SET SET SET SET SET \ 9 |
OPS PSS PPS CPU BTX SLI SLC ??? ??? PSS PPS RSM BTX SRI SRC ??? IML \ A |
OPS CXC CXC LSS BTX LFS LGS MVX MVX ??? UD1 GP8 BTX BSF BSR MVX MVX \ B |
OPS XAD XAD ??? ??? ??? ??? ??? CX8 BSP BSP BSP BSP BSP BSP BSP BSP \ C |
OPS ??? SHX SHX SHX ??? MLL ??? ??? SUS SUS ??? PAD AUS AUS ??? PAN \ D |
OPS ??? SHX SHX ??? ??? MLH ??? ??? SBS SBS ??? POR ADS ADS ??? PXR \ E |
OPS ??? ??? SHX SHX ??? MAD ??? ??? SUB SUB SUB ??? ADD ADD ADD ??? \ F |
\ 0 1 2 3 4 5 6 7 8 9 A B C D E F |
: 0F. ( ADR CODE -- ) |
DROP COUNT DUP |
DUP 0x70 AND 0x50 0x80 WITHIN TO MMX-REG |
CELLS OP-TABLE2 + @ EXECUTE |
0 TO MMX-REG ; |
CREATE OP-TABLE |
\ 0 1 2 3 4 5 6 7 8 9 A B C D E F |
OPS ALU ALU ALU ALU ALA ALA PSS PPS ALU ALU ALU ALU ALA ALA PSS 0F. \ 0 |
OPS ALU ALU ALU ALU ALA ALA PSS PPS ALU ALU ALU ALU ALA ALA PSS PPS \ 1 |
OPS ALU ALU ALU ALU ALA ALA ES: DAA ALU ALU ALU ALU ALA ALA CS: DAS \ 2 |
OPS ALU ALU ALU ALU ALA ALA SS: AAA ALU ALU ALU ALU ALA ALA DS: AAS \ 3 |
OPS INC INC INC INC INC INC INC INC DEC DEC DEC DEC DEC DEC DEC DEC \ 4 |
OPS PSH PSH PSH PSH PSH PSH PSH PSH POP POP POP POP POP POP POP POP \ 5 |
OPS PSA PPA BND ARP FS: GS: D16 A16 PSI MLI PSI MLI INB ISD OSB OSD \ 6 |
OPS BRA BRA BRA BRA BRA BRA BRA BRA BRA BRA BRA BRA BRA BRA BRA BRA \ 7 |
OPS ALI ALI ??? ALI TXB TXB TXB TXB MOV MOV MOV MOV MRS LEA MSR 8F. \ 8 |
OPS XGA XGA XGA XGA XGA XGA XGA XGA CBW CDQ CIS W8F PSF PPF SAH LAH \ 9 |
OPS MV1 MV1 MV2 MV2 MVS MVS CPS CPS TST TST STS STS LDS LDS SCS SCS \ A |
OPS MRI MRI MRI MRI MRI MRI MRI MRI MRI MRI MRI MRI MRI MRI MRI MRI \ B |
OPS SHF SHF RTN RTN LXS LXS MVI MVI ENT LEV RTF RTF NT3 INT NTO IRT \ C |
OPS SHF SHF SHF SHF AAM AAD ??? XLT FD8 FD9 FDA FDB FDC FDD FDE FDF \ D |
OPS LUP LUP LUP LUP INP INP OTP OTP JSR JMP CIS JMP IND IND OTD OTD \ E |
OPS LOK ??? RPZ REP HLT CMC F6. F6. CLC STC CLI STI CLD STD FE. FF. \ F |
\ 0 1 2 3 4 5 6 7 8 9 A B C D E F |
: DIS-OP ( ADR -- ADR' ) |
0>S |
FALSE TO PREFIX-OP \ SMUB |
COUNT |
DUP 1 AND TO SIZE |
DUP CELLS OP-TABLE + @ EXECUTE |
PREFIX-OP 0= |
IF DEFAULT-16BIT? 0= |
IF FALSE TO 16-BIT-DATA |
FALSE TO 16-BIT-ADDR |
ELSE TRUE TO 16-BIT-DATA |
TRUE TO 16-BIT-ADDR |
THEN |
THEN ; |
0 VALUE NEXT-INST |
: X". ( ADDR -- ADDR' ) |
\ CR DUP BASE-ADDR - 6 H.R SPACE |
DUP C@ 2DUP DUMP |
+ 2+ |
\ ." C, " 1+ OVER + SWAP |
\ DO I C@ 2 H.R ." C, " LOOP |
\ COUNT + 1+ |
; |
[DEFINED] G. [IF] |
: FLIT8. ( ADDR -- ADDR' ) |
." FLITERAL: " |
DUP DF@ G. 8 + |
; |
: FLIT10. ( ADDR -- ADDR' ) |
." FLITERAL: " |
DUP F@ G. 10 + |
; |
[ELSE] |
: FLIT8. |
CR DUP BASE-ADDR - 6 H.R SPACE |
." A; " DUP 8 OVER + SWAP |
DO I C@ 3 H.R ." C," LOOP |
8 + |
; |
: FLIT10. ( ADDR -- ADDR' ) |
CR DUP BASE-ADDR - 6 H.R SPACE |
." A; " DUP 10 OVER + SWAP |
DO I C@ 3 H.R ." C," LOOP |
10 + |
; |
[THEN] |
: VECT. ( ADDR -- ADDR' ) |
CR DUP BASE-ADDR - 6 H.R SPACE |
." A; " DUP @ 8 H.R DUP CELL+ SWAP @ ." , \ " WordByAddr TYPE |
; |
: CONS. ( ADDR -- ) |
CR DUP BASE-ADDR - 6 H.R SPACE |
." A; " @ 8 H.R ." ," |
; |
: USER. ( ADDR -- ) |
CR DUP BASE-ADDR - 6 H.R SPACE |
." A; " @ 8 H.R ." , \ Relative in heap [hex]" \ CELL+ |
; |
: UVAL. ( ADDR -- ADDR' ) |
CR DUP BASE-ADDR - 6 H.R SPACE |
." A; " DUP @ 8 H.R ." , \ Relative in heap [hex]" CELL+ |
; |
: CODE. ( ADDR -- ) |
DUP NextNFA |
?DUP |
IF OVER - 5 - |
ELSE |
DUP DP @ SWAP - ABS DUP 512 > IF DROP 40 THEN \ no applicable end found |
THEN |
." Size of data: ~" DUP . |
DUMP |
; |
: DIS-DB CR .S" DB " COUNT H.>S ; |
: DIS-DW CR .S" DW " W@+ H.>S ; |
: DIS-DD CR .S" DD " @+ H.>S ; |
: DIS-DS CR .S" STRING " 0x22 EMIT>S COUNT 2DUP >S + 0x22 EMIT>S ; |
: FIND-REST-END ( xt -- addr | 0) |
DUP NextNFA DUP |
IF |
NIP |
NAME>C 1- \ Skip CFA field |
ELSE |
DROP |
DP @ - ABS 100 > IF 0 EXIT THEN \ no applicable end found |
DP @ 1- |
THEN |
BEGIN \ Skip alignment |
DUP C@ 0= WHILE 1- |
REPEAT ; |
( wid ) SET-CURRENT |
: INST ( ADR -- ADR' ) |
DUP TO NEXT-INST |
COLS 0x29 < |
IF DIS-OP |
S-BUF COUNT TYPE |
ELSE DUP DIS-OP |
OVER BASE-ADDR - 6 H.R SPACE |
DUP ROT |
2DUP - DUP>R 0x10 U> ABORT" DECOMPILER ERROR" |
DO I C@ 2 H.N LOOP |
R> 5 < IF 9 EMIT THEN |
9 EMIT S-BUF COUNT TYPE |
THEN NEXT-INST C@ 0xE8 = |
IF NEXT-INST 1+ @+ SWAP + |
CASE |
['] _CLITERAL-CODE OF X". ENDOF |
['] _SLITERAL-CODE OF X". ENDOF |
['] _VECT-CODE OF VECT. 2DROP RDROP ENDOF |
['] _CONSTANT-CODE OF CONS. DROP RDROP ENDOF |
['] _USER-CODE OF USER. DROP RDROP ENDOF |
['] _CREATE-CODE OF CODE. DROP RDROP ENDOF |
['] _USER-VALUE-CODE OF UVAL. ENDOF |
['] _FLIT-CODE10 OF FLIT10. ENDOF |
['] _FLIT-CODE8 OF FLIT8. ENDOF |
ENDCASE |
THEN ; |
: (REST-AREA) ( addr1 addr2 -- ) |
\ if addr2 = 0 continue till RET instruction |
SWAP DUP TO NEXT-INST |
BEGIN |
\ We do not look for JMP's because there may be |
\ a jump in a forth word |
CR |
OVER 0= IF NEXT-INST C@ 0xC3 <> |
ELSE 2DUP < INVERT |
THEN |
WHILE INST |
REPEAT 2DROP ." END-CODE " |
; |
VECT REST-AREA |
' (REST-AREA) TO REST-AREA |
: REST ( addr -- ) |
DUP HERE U> 0= HERE 1- AND REST-AREA |
; |
: SEE ( "name" -- ) |
' DUP FIND-REST-END ['] REST-AREA CATCH DROP |
; |
PREVIOUS |
( warn base ) |
BASE ! |
WARNING ! |
.( Ok) CR |
/programs/develop/SPForth/lib/ext/disasm2.f |
---|
0,0 → 1,1955 |
\ 80386 DISASSEMBLER |
\ ANDREW MCKEWAN, APRIL 1994 |
\ TOM ZIMMER, 05/18/94 PORT TO WIN32F |
\ MODIFIED TO WORD IN DECIMAL 08/03/94 10:04 TJZ |
\ 06-??-95 SMUB NEXT SEQUENCE DEFINED IN FKERNEL |
\ 06-21-95 SMUB REMOVED REDUNDANT COUNT CALLS FROM TXB, LXS. |
\ 04-??-97 EXTENDED BY C.L. TO INCLUDE P6 AND MMX INSTRUCTIONS |
\ 14-11-2000 Adapted from SPFOPT (Michael Maximov) by Dmitry Yakimov |
\ ??-11-2000 Fixed FE. FF. (Bandaletov) and H.R (Yakimov) |
\ 15-11-2000 Fixed MV2 (Yakimov) |
\ 25-12-2000 Added float literals recognition (Yakimov) |
\ 26-07-2001 Fixed MVX (Maksimov) |
CR .( Loading Intel Pentium MMX disassembler...) |
WARNING 0! |
DECIMAL |
\ REQUIRE [IF] ~mak/CompIF.f |
\ REQUIRE CASE lib/ext/case.f |
\ REQUIRE WITHIN lib/include/core-ext.f |
REQUIRE [DEFINED] lib/include/tools.f |
\ REQUIRE [IF] ~mak\CompIF.f |
REQUIRE CASE lib/ext/case.f |
\ REQUIRE WITHIN lib\include\core-ext.f |
REQUIRE NextNFA lib/ext/vocs.f |
VARIABLE END-WORD |
VARIABLE START-WORD |
\ VARIABLE START-LAB |
\ VARIABLE FINISH-LAB |
\ VARIABLE START-LIST |
\ VARIABLE FINISH-LIST |
\ VARIABLE IMAGE-END |
VARIABLE START-LAB |
VARIABLE FINISH-LAB |
VARIABLE START-LIST |
VARIABLE FINISH-LIST |
VARIABLE START-LIST2 |
VARIABLE FINISH-LIST2 |
VARIABLE FINISH-LIST3 |
VARIABLE START-VAR |
VARIABLE FINISH-VAR |
VARIABLE START-ARRAY |
VARIABLE FINISH-ARRAY |
0 VALUE IMAGE-END |
VARIABLE CALL-TYPE? |
VARIABLE TRIGER |
VARIABLE TRIGER3 |
VARIABLE DISP8? |
: ADD-CALL |
>R START-LIST @ |
BEGIN DUP @ R@ = |
IF DROP RDROP 0 CALL-TYPE? ! EXIT |
ELSE DUP FINISH-LIST @ = 0= THEN |
WHILE CELL+ REPEAT CELL+ DUP FINISH-LIST ! R> OVER ! |
BEGIN DUP CELL- 2DUP 2>R @ SWAP @ < IF 2R@ @ SWAP 2R@ SWAP @ SWAP ! ! THEN |
2R> NIP DUP START-LIST @ = UNTIL |
DROP 1 CALL-TYPE? ! |
; |
: ADD-CALL2 |
>R START-LIST2 @ |
BEGIN DUP @ R@ = |
IF DROP RDROP 0 CALL-TYPE? ! EXIT |
ELSE DUP FINISH-LIST2 @ = 0= THEN |
WHILE CELL+ REPEAT CELL+ DUP FINISH-LIST2 ! R> OVER ! |
BEGIN DUP CELL- 2DUP 2>R @ SWAP @ < IF 2R@ @ SWAP 2R@ SWAP @ SWAP ! ! THEN |
2R> NIP DUP START-LIST2 @ = UNTIL |
DROP 1 CALL-TYPE? ! |
; |
: ADD-LAB |
>R START-LAB @ |
BEGIN DUP @ R@ = |
IF DROP RDROP EXIT |
ELSE DUP FINISH-LAB @ = 0= THEN |
WHILE CELL+ REPEAT CELL+ DUP FINISH-LAB ! R> OVER ! |
BEGIN DUP CELL- 2DUP 2>R @ SWAP @ < IF 2R@ @ SWAP 2R@ SWAP @ SWAP ! ! THEN |
2R> NIP DUP START-LAB @ = UNTIL DROP ; |
: ADD-VAR |
>R START-VAR @ |
BEGIN DUP @ R@ = |
IF DROP RDROP EXIT |
ELSE DUP FINISH-VAR @ = 0= THEN |
WHILE CELL+ REPEAT CELL+ DUP FINISH-VAR ! R> OVER ! |
BEGIN DUP CELL- 2DUP 2>R @ SWAP @ < IF 2R@ @ SWAP 2R@ SWAP @ SWAP ! ! THEN |
2R> NIP DUP START-VAR @ = UNTIL DROP ; |
: LAB |
>R START-LIST @ |
BEGIN DUP @ R@ = |
IF DROP RDROP 1 EXIT |
ELSE DUP FINISH-LIST @ = 0= THEN |
WHILE CELL+ REPEAT DROP RDROP 0 ; |
: TYPE-LAB |
>R START-LAB @ |
BEGIN DUP @ R@ = |
IF DROP RDROP 0 EXIT |
ELSE DUP FINISH-LAB @ = 0= THEN |
WHILE CELL+ REPEAT DROP RDROP 1 |
; |
\ : TYPE-ARRAY START-ARRAY @ DUP FINISH-ARRAY @ = IF DROP EXIT THEN |
\ BEGIN DUP 2@ HEX . . DECIMAL CR 2 CELLS + DUP FINISH-ARRAY @ = |
\ UNTIL DROP |
\ ; |
VARIABLE TRIGER4 |
VARIABLE ALLOTN |
: ARRAY? 0 ALLOTN ! |
>R START-ARRAY @ DUP FINISH-ARRAY @ = IF RDROP 0 TRIGER4 ! EXIT THEN |
BEGIN DUP @ R@ = |
IF ." ALLOT" ALLOTN @ . ." :" ." array[0.." 2@ DROP |
BASE @ >R DECIMAL . R> BASE ! |
." ] of byte;" CR RDROP 1 TRIGER3 ! 1 TRIGER4 ! EXIT THEN \ 1 EXIT THEN |
ALLOTN 1+! 2 CELLS + DUP FINISH-ARRAY @ = |
UNTIL DROP RDROP 0 TRIGER4 ! |
; |
: ARRAY2? 0 ALLOTN ! |
>R START-ARRAY @ DUP FINISH-ARRAY @ = IF RDROP 0 EXIT THEN |
BEGIN DUP @ R@ = |
IF ." ALLOT" ALLOTN @ |
BASE @ >R DECIMAL . R> BASE ! ." ;" CR |
DROP RDROP 1 EXIT THEN |
ALLOTN 1+! 2 CELLS + DUP FINISH-ARRAY @ = |
UNTIL DROP RDROP 0 |
; |
: DEFER VECT ; |
: DUP>R R> OVER >R >R ; |
: UMAX ( D1 D2 -- FLAG ) |
2DUP U< IF NIP ELSE DROP THEN ; |
80 CONSTANT MAXSTRING |
255 CONSTANT MAXCOUNTED \ maximum length of contents of a counted string |
: 0X BASE @ HEX >R BL WORD ?LITERAL |
R> BASE ! ; IMMEDIATE |
: "CLIP" ( a1 n1 -- a1 n1' ) \ clip a string to between 0 and MAXCOUNTED |
MAXCOUNTED MIN 0 MAX ; |
: PLACE ( addr len dest -- ) |
SWAP "CLIP" SWAP |
2DUP 2>R |
CHAR+ SWAP MOVE |
2R> C! ; |
: +PLACE ( addr len dest -- ) \ append string addr,len to counted |
\ string dest |
>R "CLIP" MAXCOUNTED R@ C@ - MIN R> |
\ clip total to MAXCOUNTED string |
2DUP 2>R |
COUNT CHARS + SWAP MOVE |
2R> +! ; |
: C+PLACE ( c1 a1 -- ) \ append char c1 to the counted string at a1 |
DUP 1+! COUNT + 1- C! ; |
: OFF 0! ; |
: BLANK ( addr len -- ) \ fill addr for len with spaces (blanks) |
BL FILL ; |
128 CONSTANT SPCS-MAX ( optimization for SPACES ) |
CREATE SPCS SPCS-MAX ALLOT |
SPCS SPCS-MAX BLANK |
C" UPC" FIND NIP 0= |
[IF] |
: UPC ( c -- c' ) |
DUP [CHAR] Z U> |
IF 0xDF AND |
THEN ; |
[THEN] |
: (D.) ( d -- addr len ) TUCK DABS <# #S ROT SIGN #> ; |
80 VALUE COLS |
: H.R ( n1 n2 -- ) \ display n1 as a hex number right |
\ justified in a field of n2 characters |
BASE @ >R HEX >R |
0 <# #S #> R> OVER - 0 MAX SPACES TYPE |
R> BASE ! ; |
: H.N ( n1 n2 -- ) \ display n1 as a HEX number of n2 digits |
BASE @ >R HEX >R |
0 <# R> 0 ?DO # LOOP #> TYPE |
R> BASE ! ; |
ONLY FORTH ALSO DEFINITIONS |
0 VALUE DEFAULT-16BIT? |
: DEFAULT-16BIT ( -- ) |
TRUE TO DEFAULT-16BIT? ; |
: DEFAULT-32BIT ( -- ) |
FALSE TO DEFAULT-16BIT? ; |
DEFER SHOW-NAME ( CFA -- ) \ DISPLAY NEAREST SYMBOL |
0 VALUE BASE-ADDR |
VOCABULARY DISASSEMBLER |
DISASSEMBLER ALSO DEFINITIONS |
DECIMAL |
CREATE S-BUF MAXSTRING ALLOT |
: >S ( A1 N1 -- ) |
S-BUF +PLACE ; |
: 0>S ( -- ) \ RESET S-BUF |
S-BUF OFF ; |
: SSPACES ( N1 -- ) |
SPCS SWAP S-BUF +PLACE ; |
: SSPACE ( -- ) |
1 SSPACES ; |
: EMIT>S ( C1 -- ) |
S-BUF C+PLACE ; |
: S> ( -- A1 N1 ) |
S-BUF COUNT ; |
: (.S") ( addr len -- ) |
S-BUF +PLACE ; |
: .S" ( 'TEXT' -- ) |
[CHAR] " PARSE |
POSTPONE SLITERAL |
POSTPONE (.S") ; IMMEDIATE |
VARIABLE ADR@ |
: D.>S BASE @ SWAP DECIMAL DUP 0= IF DROP ELSE DUP 128 > IF .S" -" 256 SWAP - ELSE .S" +" THEN |
0 (D.) >S THEN BASE ! 0 DISP8? ! ; |
: D.R>S ( D W -- ) |
\ >R (D.) R> OVER - SSPACES >S ; |
>R (D.) R> OVER - SSPACES >S ; |
: .R>S ( N W -- ) |
>R S>D R> D.R>S ; |
: U.R>S ( U W -- ) |
0 SWAP D.R>S ; |
: H.>S ( U -- ) |
BASE @ SWAP |
DUP DUP IMAGE-BEGIN > SWAP IMAGE-END < AND IF DUP ADD-LAB \ .S" [OFFSET @" HEX 0 (D.) >S .S" ]" ELSE |
.S" OFFSET [" SHOW-NAME .S" ]" ELSE \ .S" [OFFSET @" SHOW-NAME .S" ]" ELSE |
.S" $" HEX 0 (D.) >S THEN |
( SSPACE ) BASE ! ; |
: H.>Sn ( U -- ) |
BASE @ SWAP HEX 0 (D.) >S ( SSPACE ) BASE ! ; |
: H.R>S ( N1 N2 -- ) |
BASE @ >R HEX >R |
0 <# #S #> R> OVER - SSPACES >S |
R> BASE ! ; |
VARIABLE NAME |
\ [THEN] |
: ?.NAME>S ( CFA -- ) |
\ ELIMINATE " 0X" |
\ DUP 1 H.R>S SSPACE \ ïå÷àòü àäðåñà ïåðåõîäà |
NEAR_NFA |
>R DUP |
IF \ .S" @" |
\ IF ñþäà ïðîâåðêó ELSE |
R@ DUP START-WORD @ < >R END-WORD @ > R> OR R@ START-WORD @ = OR 0= IF R> DUP ADD-LAB .S" @" 1 H.R>S ELSE |
\ .S" @" |
ADR@ @ R@ = IF 0 ADR@ ! ELSE R@ ADD-LAB THEN \ .S" 2@" <-- |
DUP NAME ! \ COUNT >S \ ïå÷àòü ñêîáîê. Çíàê ìåòêè |
NAME> DUP ADD-CALL2 \ áåç ADD-CALL íå ðàáîòàþò ññûëêè íà ïåðåìåííûå ADD-LAB CR WordByAddr TYPE CR |
( DUP H.>Sn ) R@ - |
DUP IF .S" [OFFSET " \ .S" [OFFSET @@" |
\ DUP .S" +" NEGATE H.>S |
\ R> H.>Sn .S" ]" NAME @ COUNT >S |
RDROP NAME @ COUNT >S .S" ]" |
ELSE |
.S" @@" RDROP NAME @ COUNT >S THEN \ êîíåö ïðîâåðêè |
THEN |
DROP \ .S" ) " |
ELSE R> .S" [" H.>S .S" ]" DROP \ òóò |
THEN |
; |
' ?.NAME>S TO SHOW-NAME |
\ 32 CONSTANT COMMENT-COL |
0 VALUE SIZE |
0 VALUE 16-BIT-DATA |
0 VALUE 16-BIT-ADDR |
0 VALUE PREFIX-OP |
0 VALUE MMX-REG |
: @+ ( ADDR -- ADDR N ) DUP CELL+ SWAP @ ; |
: W@+ ( ADDR -- ADDR N ) DUP 2 + SWAP W@ ; |
: SEXT ( BYTE -- N ) DUP 128 AND IF 0xFFFFFF00 OR THEN ; |
: MOD/SIB ( MOD-R-R/M -- R/M R MOD ) \ R INCLUDING GENERAL, SPECIAL, SEGMENT, MMX |
( MOD-OP-R/M -- R/M OP MOD ) |
( S-I-B -- B I S ) |
255 AND 8 /MOD 8 /MOD ; |
: ??? ( N1 -- ) |
.S" ??? " DROP ; |
: SS. ( N ADR LEN W ) >R DROP SWAP R@ * + R> >S SSPACE ; |
: TTTN ( CODE -- ) 15 AND S" O NOB AEE NEBEA S NSP NPL GELEG " 2 SS. ; |
: SREG ( SREG -- ) 3 RSHIFT 7 AND S" ESCSSSDSFSGSXXXX" 2 SS. ; |
: CREG ( EEE -- ) 3 RSHIFT 7 AND S" CR0???CR2CR3CR4?????????" 3 SS. ; |
: DREG ( EEE -- ) 3 RSHIFT 7 AND S" DR0DR1DR2DR3??????DR6DR7" 3 SS. ; |
: TREG ( EEE -- ) 3 RSHIFT 7 AND S" ?????????TR3TR4TR5TR6TR7" 3 SS. ; \ OBSOLETE |
: MREG ( N -- ) 7 AND S" MM0MM1MM2MM3MM4MM5MM6MM7" 3 SS. ; |
: REG8 ( N -- ) 7 AND S" ALCLDLBLAHCHDHBH" 2 SS. ; |
: REG16 ( N -- ) 7 AND S" AXCXDXBXSPBPSIDI" 2 SS. ; |
: REG32 ( N -- ) 7 AND S" EAXECXEDXEBXESPEBPESIEDI" 3 SS. ; |
: REG16/32 ( N -- ) |
16-BIT-DATA |
IF REG16 |
ELSE REG32 |
THEN ; |
: REG ( A N -- A ) |
MMX-REG |
IF MREG |
ELSE SIZE |
IF REG16/32 |
ELSE REG8 |
THEN |
THEN |
; |
: [BASE16] ( R/M -- ) 4 - S" [SI][DI][BP][BX]" 4 SS. ; |
\ R/M = 4 , 5 , 6 , 7 |
: [IND16] ( R/M -- ) S" [BX+SI][BX+DI][BP+SI][BP+DI]" 7 SS. ; |
\ R/M = 0 , 1 , 2 , 3 |
: [REG16] ( R/M -- ) DUP 4 < |
IF [IND16] |
ELSE [BASE16] |
THEN ; |
: [REG32] ( N -- ) 7 AND \ TRIGER3 @ IF |
\ S" [EAX][ECX][EDX][EBX][ESP][EBP][ESI][EDI]" 5 SS. |
\ ELSE |
S" [EAX[ECX[EDX[EBX[ESP[EBP[ESI[EDI" 4 SS. DISP8? @ D.>S .S" ]" |
\ THEN |
; |
: [REG*2] ( I -- ) S" [EAX*2][ECX*2][EDX*2][EBX*2][XXX*2][EBP*2][ESI*2][EDI*2]" 7 SS. ; |
: [REG*4] ( I -- ) S" [EAX*4][ECX*4][EDX*4][EBX*4][XXX*4][EBP*4][ESI*4][EDI*4]" 7 SS. ; |
: [REG*8] ( I -- ) S" [EAX*8][ECX*8][EDX*8][EBX*8][XXX*8][EBP*8][ESI*8][EDI*8]" 7 SS. ; |
: [INDEX] ( SIB -- ) MOD/SIB OVER 4 = |
IF 2DROP \ NO ESP SCALED INDEX |
ELSE CASE ( S ) |
0 OF [REG32] ENDOF |
1 OF [REG*2] ENDOF |
2 OF [REG*4] ENDOF |
3 OF [REG*8] ENDOF |
ENDCASE |
THEN DROP ; |
: DISP8 ( ADR -- ADR' ) |
\ COUNT DUP DISP8? ! D.>S ; |
COUNT DISP8? ! ; |
: DISP16 ( ADR -- ADR' ) W@+ SHOW-NAME ; |
: DISP32 ( ADR -- ADR' ) @+ ( BODY> ) SHOW-NAME ; |
: DISP16/32 ( ADR -- ADR' ) |
16-BIT-ADDR |
IF DISP16 |
ELSE DISP32 |
THEN ; |
: ., ( -- ) TRIGER @ IF .S" , " THEN 1 TRIGER ! ; |
: .# ., .S" $" ; |
\ : .# ., ; |
\ : .# ., .S" # " ; |
: IMM8 ( ADR -- ADR' ) .# COUNT H.>Sn ; |
\ : IMM16 ( ADR -- ADR' ) .# W@+ H.>S ; |
: IMM16/32 ( ADR -- ADR' ) |
\ .# |
., |
16-BIT-DATA |
IF W@+ |
ELSE @+ |
THEN H.>S ; \ \\\\\\\ |
: SIB ( ADR MOD -- ADR ) |
>R COUNT TUCK 7 AND 5 = R@ 0= AND |
IF DISP32 SWAP [INDEX] R> DROP \ EBP BASE AND MOD = 00 |
ELSE R> CASE ( MOD ) |
1 OF DISP8 ENDOF |
2 OF DISP32 ENDOF |
ENDCASE |
SWAP DUP [REG32] [INDEX] |
THEN ; |
: MOD-R/M32 ( ADR R/M MOD -- ADR' ) |
DUP 3 = |
IF DROP REG \ MOD = 3, REGISTER CASE |
ELSE OVER 4 = |
IF NIP SIB \ R/M = 4, SIB CASE |
ELSE 2DUP 0= SWAP 5 = AND \ MOD = 0, R/M = 5, |
IF 2DROP DISP32 \ DISP32 CASE |
ELSE ROT SWAP |
CASE ( MOD ) |
1 OF DISP8 ENDOF |
2 OF DISP32 ENDOF |
ENDCASE |
SWAP [REG32] |
THEN |
THEN |
THEN ; |
: MOD-R/M16 ( ADR R/M MOD -- ADR' ) |
2DUP 0= SWAP 6 = AND |
IF 2DROP DISP16 \ DISP16 CASE |
ELSE CASE ( MOD ) |
0 OF [REG16] ENDOF |
1 OF SWAP DISP8 SWAP [REG16] ENDOF |
2 OF SWAP DISP16 SWAP [REG16] ENDOF |
3 OF REG ENDOF |
ENDCASE |
THEN ; |
: MOD-R/M ( ADR MODR/M -- ADR' ) |
MOD/SIB NIP 16-BIT-ADDR |
IF MOD-R/M16 |
ELSE MOD-R/M32 |
THEN ; |
: R/M8 0 TO SIZE MOD-R/M ; |
: R/M16/32 1 TO SIZE MOD-R/M ; |
: R/M16 TRUE TO 16-BIT-DATA R/M16/32 ; |
: R,R/M ( ADR -- ADR' ) |
COUNT DUP 3 RSHIFT REG ., MOD-R/M ; |
: R/M,R ( ADR -- ADR' ) |
COUNT DUP>R MOD-R/M ., R> 3 RSHIFT REG ; |
: R/M ( ADR OP -- ADR' ) |
2 AND |
IF R,R/M |
ELSE R/M,R |
THEN ; |
\ -------------------- SIMPLE OPCODES -------------------- |
: INH ( -<NAME>- ) |
CREATE |
BL WORD COUNT HERE PLACE |
HERE C@ 1+ ALLOT |
DOES> COUNT >S SSPACE DROP ; |
INH CLC CLC |
INH STC STC |
INH CLD CLD |
INH STD STD |
\ INH RPNZ REPNZ |
\ INH REPZ REPZ |
INH CBW CBW |
INH CDQ CDQ |
INH DAA DAA |
INH DAS DAS |
INH AAA AAA |
INH AAS AAS |
\ INH LOCK LOCK |
INH INB INSB |
INH OSB OUTSB |
INH SAH SAHF |
INH LAH LAHF |
\ INH AAM AAM |
\ INH AAD AAD |
INH HLT HLT |
INH CMC CMC |
INH XLT XLAT |
INH CLI CLI |
INH STI STI |
INH CLT CLTS |
INH INV INVD |
INH WIV WBINVD |
INH UD2 UD2 |
INH WMR WRMSR |
INH RTC RDTSC |
INH RMR RDMSR |
INH RPC RDPMC |
INH EMS EMMS |
INH RSM RSM |
INH CPU CPUID |
INH UD1 UD1 |
\ INH LSS LSS |
\ INH LFS LFS |
\ INH LGS LGS |
\ INH D16: D16: |
\ INH A16: A16: |
\ INH ES: ES: |
\ INH CS: CS: |
\ INH DS: DS: |
\ INH FS: FS: |
\ INH GS: GS: |
: AAM ( ADR CODE -- ADR' ) |
.S" AAM" DROP COUNT DROP ; |
: AAD ( ADR CODE -- ADR' ) |
.S" AAD" DROP COUNT DROP ; |
: D16 ( ADR CODE -- ADR' ) |
DROP .S" D16:" |
TRUE TO 16-BIT-DATA |
TRUE TO PREFIX-OP |
; |
: A16 ( ADR CODE -- ADR' ) |
DROP .S" A16:" |
TRUE TO 16-BIT-ADDR |
TRUE TO PREFIX-OP |
; |
: RPZ ( ADR CODE -- ADR' ) |
DROP .S" REPNZ" |
TRUE TO PREFIX-OP |
; |
: REP ( ADR CODE -- ADR' ) |
DROP .S" REPZ" |
TRUE TO PREFIX-OP |
; |
: LOK ( ADR CODE -- ADR' ) \ THIS SHOULD HAVE ERROR CHECKING ADDED |
DROP .S" LOCK" |
TRUE TO PREFIX-OP |
; |
: CS: ( ADR CODE -- ADR' ) |
DROP .S" CS:" |
TRUE TO PREFIX-OP |
; |
: DS: ( ADR CODE -- ADR' ) |
DROP .S" DS:" |
TRUE TO PREFIX-OP |
; |
: SS: ( ADR CODE -- ADR' ) |
DROP .S" SS:" |
TRUE TO PREFIX-OP |
; |
: ES: ( ADR CODE -- ADR' ) |
DROP .S" ES:" |
TRUE TO PREFIX-OP |
; |
: GS: ( ADR CODE -- ADR' ) |
DROP .S" GS:" |
TRUE TO PREFIX-OP |
; |
: FS: ( ADR CODE -- ADR' ) |
DROP .S" FS:" |
TRUE TO PREFIX-OP |
; |
: ISD ( ADR CODE -- ADR' ) |
DROP 16-BIT-DATA |
IF .S" INSW " |
ELSE .S" INSD " |
THEN ; |
: OSD ( ADR CODE -- ADR' ) |
DROP 16-BIT-DATA |
IF .S" OUTSW " |
ELSE .S" OUTSD " |
THEN ; |
: INP ( ADDR CODE -- ADDR' ) |
.S" IN " 1 AND |
IF 16-BIT-DATA |
IF .S" AX , " |
ELSE .S" EAX , " |
THEN |
ELSE .S" AL , " |
THEN |
COUNT H.>S ; |
: OTP ( ADDR CODE -- ADDR' ) |
.S" OUT " 1 AND |
IF COUNT H.>S 16-BIT-DATA |
IF .S" , AX" |
ELSE .S" , EAX" |
THEN |
ELSE COUNT H.>S .S" , AL" |
THEN |
; |
: IND ( ADDR CODE -- ADDR' ) |
.S" IN " 1 AND |
IF 16-BIT-DATA |
IF .S" AX , DX" |
ELSE .S" EAX , DX" |
THEN |
ELSE .S" AL , DX" |
THEN |
; |
: OTD ( ADDR CODE -- ADDR' ) |
.S" OUT " 1 AND |
IF 16-BIT-DATA |
IF .S" DX , AX" |
ELSE .S" DX , EAX" |
THEN |
ELSE .S" DX , AL" |
THEN |
; |
\ -------------------- ALU OPCODES -------------------- |
: .ALU ( N -- ) |
7 AND S" ADDOR ADCSBBANDSUBXORCMP" 3 SS. 4 SSPACES |
; |
: ALU ( ADR OP -- ADR' ) |
DUP 3 RSHIFT .ALU R/M ; |
: ALI ( ADR OP -- ADR' ) |
>R COUNT |
DUP 3 RSHIFT .ALU |
MOD-R/M |
R> 3 AND ?DUP |
IF 1 = |
IF IMM16/32 |
ELSE .# COUNT SEXT 0 .R>S SSPACE |
THEN |
ELSE IMM8 |
THEN ; |
: ALA ( ADR OP -- ADR' ) |
DUP 3 RSHIFT .ALU |
1 AND IF 0 REG IMM16/32 ELSE 0 REG8 IMM8 THEN ; |
\ -------------------- TEST/XCHG -------------------- |
: TXB ( ADDR OP -- ADDR' ) |
DUP 3 AND S" TESTTESTXCHGXCHG" 4 SS. 3 SSPACES |
1 AND |
IF 1 TO SIZE R,R/M \ SMUB REMOVED COUNT |
ELSE 0 TO SIZE R,R/M \ SMUB REMOVED COUNT |
THEN |
; |
: TST ( ADDR OP -- ADDR' ) |
.S" TEST " 1 AND |
IF 16-BIT-DATA |
IF .S" AX , " |
ELSE .S" EAX , " |
THEN |
IMM16/32 |
ELSE .S" AL , " IMM8 |
THEN |
; |
\ -------------------- INC/DEC ---------------------- |
: INC ( ADDR OP -- ADDR' ) |
.S" INC " REG16/32 ; |
: DEC ( ADDR OP -- ADDR' ) |
.S" DEC " REG16/32 ; |
\ -------------------- PUSH/POP -------------------- |
: PSH ( ADDR OP -- ADDR' ) |
.S" PUSH " REG16/32 |
0 TRIGER ! |
; |
: POP ( ADDR OP -- ADDR' ) |
.S" POP " REG16/32 |
0 TRIGER ! |
; |
: PSS ( ADDR OP -- ADDR' ) |
.S" PUSH " SREG ; |
: PPS ( ADDR OP -- ADDR' ) |
.S" POP " SREG |
0 TRIGER ! |
; |
: PSA ( ADDR OP -- ADDR' ) |
DROP 16-BIT-DATA |
IF .S" PUSHA " |
ELSE .S" PUSHAD " |
THEN |
0 TRIGER ! |
; |
: PPA ( ADDR OP -- ADDR' ) |
DROP 16-BIT-DATA |
IF .S" POPA " |
ELSE .S" POPAD " |
THEN |
0 TRIGER ! |
; |
: PSI ( ADDR OP -- ADDR' ) |
.S" PUSH " 2 AND |
IF IMM8 |
ELSE IMM16/32 |
THEN |
0 TRIGER ! |
; |
: PSF ( ADDR OP -- ADDR' ) |
DROP 16-BIT-DATA |
IF .S" PUSHF " |
ELSE .S" PUSHFD " |
THEN |
0 TRIGER ! |
; |
: PPF ( ADDR OP -- ADDR' ) |
DROP 16-BIT-DATA |
IF .S" POPF " |
ELSE .S" POPFD " |
THEN |
0 TRIGER ! |
; |
: 8F. ( ADDR OP -- ADDR' ) |
DROP COUNT .S" POP " R/M16/32 |
0 TRIGER ! |
; |
\ -------------------- MOVE -------------------- |
: MOV ( ADDR OP -- ADDR' ) |
.S" MOV " R/M ; |
: MRI ( ADDR OP -- ADDR' ) ( MOV REGISTER, IMM ) |
.S" MOV " DUP 8 AND |
IF REG16/32 IMM16/32 |
ELSE REG8 IMM8 |
THEN ; |
: MVI ( ADR OP -- ADR' ) ( MOV MEM, IMM ) |
.S" MOV " DROP COUNT MOD-R/M |
SIZE |
IF IMM16/32 |
ELSE IMM8 |
THEN |
; |
: MRS ( ADDR OP -- ADDR' ) |
\ ? REMOVE REDUNDANT >R , R> |
16-BIT-DATA |
IF .S" MOV " DROP |
1 TO SIZE |
COUNT DUP MOD-R/M ., |
SREG |
ELSE ??? |
THEN ; |
: MSR ( ADDR OP -- ADDR' ) |
16-BIT-DATA |
IF .S" MOV " DROP |
1 TO SIZE |
COUNT DUP SREG ., |
MOD-R/M |
ELSE ??? |
THEN ; |
: MRC ( ADDR OP -- ADDR' ) |
.S" MOV " |
DROP COUNT DUP REG32 .S" , " |
CREG ; |
: MCR ( ADDR OP -- ADDR' ) |
.S" MOV " |
DROP COUNT DUP CREG .S" , " |
REG32 ; |
: MRD ( ADDR OP -- ADDR' ) |
.S" MOV " |
DROP COUNT DUP REG32 .S" , " |
DREG ; |
: MDR ( ADDR OP -- ADDR' ) |
.S" MOV " |
DROP COUNT DUP DREG .S" , " |
REG32 ; |
: MRT ( ADDR OP -- ADDR' ) |
\ OBSOLETE |
.S" MOV " |
DROP COUNT DUP REG32 .S" , " |
TREG ; |
: MTR ( ADDR OP -- ADDR' ) |
\ OBSOLETE |
.S" MOV " |
DROP COUNT DUP TREG .S" , " |
REG32 ; |
: MV1 ( ADDR OP -- ADDR' ) |
.S" MOV " 1 AND |
IF 16-BIT-DATA |
IF .S" AX , " |
ELSE .S" EAX , " |
THEN |
ELSE .S" AL , " |
THEN |
DISP16/32 ; |
: MV2 ( ADDR OP -- ADDR' ) |
.S" MOV " SWAP DISP16/32 ., |
SWAP 1 AND |
IF 16-BIT-DATA |
IF .S" AX" |
ELSE .S" EAX" |
THEN |
ELSE .S" AL" |
THEN |
; |
: LEA ( ADDR OP -- ADDR' ) |
.S" LEA " DROP 1 TO SIZE R,R/M ; |
: LXS ( ADDR OP -- ADDR' ) |
1 AND |
IF .S" LDS " |
ELSE .S" LES " |
THEN |
R,R/M \ SMUB REMOVED COUNT |
; |
: BND ( ADDR OP -- ADDR' ) |
.S" BOUND " DROP 1 TO SIZE R,R/M ; |
: ARP ( ADDR OP -- ADDR' ) |
.S" ARPL " DROP |
1 TO SIZE |
TRUE TO 16-BIT-DATA |
R,R/M |
; |
: MLI ( ADDR OP -- ADDR' ) |
1 TO SIZE |
.S" IMUL " 0x69 = |
IF R,R/M IMM16/32 |
ELSE R,R/M IMM8 |
THEN ; |
\ -------------------- JUMPS AND CALLS -------------------- |
0 VALUE MAX_REFERENCE |
: >MAX_R DUP MAX_REFERENCE UMAX TO MAX_REFERENCE ; |
: REL8 ( ADDR OP -- ADDR' ) |
\ .S" @" \ |
COUNT SEXT OVER + BASE-ADDR - >MAX_R DUP ADD-LAB |
SHOW-NAME ; \ H.>Sn ; |
: REL16/32 ( ADDR OP -- ADDR' ) |
\ .S" @" |
16-BIT-ADDR |
IF W@+ |
ELSE @+ |
THEN OVER + BASE-ADDR - >MAX_R DUP ADR@ ! DUP ADD-LAB SHOW-NAME ; |
: JSR ( ADDR OP -- ADDR' ) |
.S" CALL " DROP REL16/32 \ DUP @ >R REL16/32 DUP R> + DROP |
; |
: JMP ( ADDR OP -- ADDR' ) |
.S" JMP " 2 AND IF REL8 ELSE REL16/32 THEN |
; |
: .JXX ( ADDR OP -- ADDR' ) |
.S" J" TTTN 4 SSPACES |
; |
: BRA ( ADDR OP -- ADDR' ) |
.JXX REL8 ; |
: LUP ( ADDR OP -- ADDR' ) |
3 AND S" LOOPNZLOOPZ LOOP JECXZ " 6 SS. 1 SSPACES REL8 ; |
: LBR ( ADDR OP -- ADDR' ) |
.JXX REL16/32 ; |
: RTN ( ADDR OP -- ADDR' ) |
.S" RET" 1 AND 0= \ .S" RET NEAR " 1 AND 0= |
IF W@+ H.>S |
THEN ; |
: RTF ( ADDR OP -- ADDR' ) |
.S" RET FAR " 1 AND 0= |
IF W@+ H.>S |
THEN ; |
: ENT ( ADDR OP -- ADDR' ) |
DROP |
.S" ENTER " W@+ H.>S ., COUNT H.>S ; |
: CIS ( ADDR OP -- ADDR' ) |
0x9A = |
IF .S" CALL " |
ELSE .S" JMP " |
THEN |
16-BIT-DATA |
IF .S" PTR16:16 " |
ELSE .S" PTR16:32 " |
THEN |
COUNT MOD-R/M |
; |
: NT3 ( ADDR OP -- ADDR' ) |
DROP .S" INT 3 " |
; |
: INT ( ADDR OP -- ADDR' ) |
DROP .S" INT " |
COUNT H.>S ; |
INH LEV LEAVE |
INH IRT IRET |
INH NTO INTO |
\ -------------------- STRING OPS -------------------- |
: STR INH DOES> COUNT >S 1 AND IF .S" D" ELSE .S" B" THEN ; |
STR MVS MOVS |
STR CPS CMPS |
STR STS STOS |
STR LDS LODS |
STR SCS SCAS |
\ -------------------- EXCHANGE -------------------- |
: XGA ( ADDR OP -- ADDR' ) |
.S" XCHG EAX, " REG16/32 ; |
\ : XCH ( ADDR OP -- ADDR' ) |
\ .S" XCHG " DROP R,R/M ; |
\ -------------------- SHIFTS & ROTATES -------------------- |
: .SHIFT ( N -- ) |
7 AND S" ROLRORRCLRCRSHLSHRXXXSAR" 3 SS. 4 SSPACES ; |
: SHF ( ADDR OP -- ADDR' ) |
>R COUNT |
DUP 3 RSHIFT .SHIFT |
MOD-R/M ., |
R> 0xD2 AND |
CASE |
0xC0 OF COUNT H.>S ENDOF |
0xD0 OF 1 H.>S ENDOF |
0xD2 OF 1 REG8 ENDOF |
ENDCASE ; |
\ -------------------- EXTENDED OPCODES -------------------- |
: WF1 ( ADDR -- ADDR' ) |
1+ COUNT DUP |
0x0C0 < |
IF DUP |
3 RSHIFT 7 AND |
CASE 6 OF .S" FSTENV " MOD-R/M ENDOF |
7 OF .S" FSTCW WORD " MOD-R/M ENDOF |
2DROP 2 - DUP .S" FWAIT " |
ENDCASE |
ELSE DROP 2 - .S" FWAIT " |
THEN ; |
: WF2 ( ADDR -- ADDR' ) |
1+ COUNT |
CASE 0xE2 OF .S" FCLEX " ENDOF |
0xE3 OF .S" FINIT " ENDOF |
SWAP 2 - SWAP .S" FWAIT " |
ENDCASE ; |
: WF3 ( ADDR -- ADDR' ) |
1+ COUNT DUP 3 RSHIFT 7 AND |
CASE 6 OF .S" FSAVE " MOD-R/M ENDOF |
7 OF .S" FSTSW WORD " MOD-R/M ENDOF |
2DROP 2 - DUP .S" FWAIT " |
ENDCASE ; |
: WF4 ( ADDR -- ADDR' ) |
1+ COUNT 0xE0 = |
IF .S" FSTSW AX " |
ELSE 2 - .S" FWAIT " |
THEN ; |
: FWAITOPS ( ADDR OP -- ADDR' ) |
CASE 0xD9 OF WF1 ENDOF |
0xDB OF WF2 ENDOF |
0xDD OF WF3 ENDOF |
0xDF OF WF4 ENDOF |
.S" FWAIT " |
ENDCASE ; |
: W8F ( ADDR OP -- ADDR' ) |
DROP DUP C@ DUP 0xF8 AND 0xD8 = |
IF FWAITOPS |
ELSE DROP .S" WAIT " |
THEN ; |
: FALU1 ( XOPCODE -- ) |
3 RSHIFT 7 AND |
S" FADD FMUL FCOM FCOMPFSUB FSUBRFDIV FDIVR" |
5 SS. 2 SSPACES ; |
: FALU5 ( XOPCODE -- ) |
3 RSHIFT 7 AND |
S" FADD FMUL ???? ???? FSUBRFSUB FDIVRFDIV " |
5 SS. 2 SSPACES ; |
: STI. ( OP -- ) |
7 AND .S" ST(" 1 .R>S .S" )"; |
\ : STI.ST ( OP -- ) |
\ 7 AND |
\ .S" ST(" 1 .R>S .S" )" .S" ST " ; |
: FD8 ( ADDR OPCODE -- ADDR' ) |
DROP COUNT DUP FALU1 |
DUP 0xC0 < |
IF .S" FLOAT " MOD-R/M |
ELSE DUP 0xF0 AND 0xD0 = |
IF STI. |
ELSE .S" ST , " STI. |
THEN |
THEN ; |
: FDC ( ADDR OPCODE -- ADDR' ) |
DROP COUNT |
DUP DUP 0xC0 < |
IF FALU1 .S" DOUBLE " MOD-R/M |
ELSE FALU5 STI. .S" , ST" |
THEN ; |
: FNULLARY-F ( OP -- ) |
0x0F AND DUP 8 < |
IF |
S" F2XM1 FYL2X FPTAN FPATAN FXTRACTFPREM1 FDECSTPFINCSTP" |
ELSE 8 - |
S" FPREM FYL2XP1FSQRT FSINCOSFRNDINTFSCALE FSIN FCOS " |
THEN |
7 SS. ; |
: FNULLARY-E ( OP -- ) |
0x0F AND DUP 8 < |
IF |
S" FCHS FABS ??? ??? FTST FXAM ??? ??? " |
ELSE 8 - |
S" FLD1 FLDL2T FLDL2E FLDPI FLDLG2 FLDLN2 FLDZ ??? " |
THEN |
7 SS. ; |
: FNULLARY ( OP -- ) |
DUP 0xEF > |
IF FNULLARY-F EXIT |
THEN |
DUP 0xE0 < |
IF 0xD0 = |
IF .S" FNOP" |
ELSE DUP ??? |
THEN |
EXIT |
THEN |
FNULLARY-E ; |
\ : FALU2 ( OP -- ) |
\ 3 RSHIFT 7 AND |
\ S" FLD ??? FST FSTP FLDENV FLDCW FNSTENVFNSTCW " |
\ 7 SS. ; |
: FD9 ( ADDR OP -- ADDR' ) |
DROP COUNT DUP 0xC0 < |
IF DUP 0x38 AND |
CASE |
0x00 OF .S" FLD FLOAT " ENDOF |
0x10 OF .S" FST FLOAT " ENDOF |
0x18 OF .S" FSTP FLOAT " ENDOF |
0x20 OF .S" FLDENV " ENDOF |
0x28 OF .S" FLDCW WORD " ENDOF |
0x30 OF .S" FNSTENV " ENDOF |
0x38 OF .S" FNSTCW WORD " ENDOF |
DUP ??? |
ENDCASE |
MOD-R/M |
ELSE |
DUP 0xD0 < |
IF DUP 0xC8 < |
IF .S" FLD " |
ELSE .S" FXCH " |
THEN |
STI. |
ELSE FNULLARY |
THEN |
THEN ; |
: FALU3 ( OP -- ) |
3 RSHIFT 7 AND |
S" FIADD FIMUL FICOM FICOMPFISUB FISUBRFIDIV FIDIVR" |
6 SS. 1 SSPACES ; |
: FCMOVA ( OP -- ) |
3 RSHIFT 7 AND |
S" FCMOVB FCMOVE FCMOVBEFCMOVU ??? ??? ??? ??? " |
7 SS. ; |
: FDA ( ADDR OP -- ) |
DROP COUNT DUP 0xC0 < |
IF DUP FALU3 .S" DWORD " MOD-R/M |
ELSE DUP 0xE9 = |
IF .S" FUCOMPP" DROP |
ELSE DUP FCMOVA STI. |
THEN |
THEN ; |
: FALU7 ( OP -- ) |
3 RSHIFT 7 AND |
S" FADDP FMULP ??? ??? FSUBRPFSUBP FDIVRPFDIVP " |
6 SS. SSPACE ; |
: FDE ( ADDR OP -- ADDR' ) |
DROP COUNT DUP 0xC0 < |
IF DUP FALU3 .S" WORD " MOD-R/M |
ELSE DUP 0xD9 = |
IF .S" FCOMPP" DROP |
ELSE DUP FALU7 STI. |
THEN |
THEN ; |
: FCMOVB ( OP -- ) |
3 RSHIFT 7 AND |
S" FCMOVNB FCMOVNE FCMOVNBEFCMOVNU ??? FUCOMI FCOMI ??? " |
8 SS. ; |
: FDB ( ADDR OP -- ADDR' ) |
DROP COUNT DUP 0xC0 < |
IF DUP 0x38 AND |
CASE 0x00 OF .S" FILD DWORD " ENDOF |
0x10 OF .S" FIST DWORD " ENDOF |
0x18 OF .S" FISTP DWORD " ENDOF |
0x28 OF .S" FLD EXTENDED " ENDOF |
0x38 OF .S" FSTP EXTENDED " ENDOF |
DUP ??? |
ENDCASE |
MOD-R/M |
ELSE |
CASE 0xE2 OF .S" FNCLEX" ENDOF |
0xE3 OF .S" FNINIT" ENDOF |
DUP DUP FCMOVB STI. |
ENDCASE |
THEN ; |
: FALU6 ( OP -- ) |
3 RSHIFT 7 AND |
S" FFREE ??? FST FSTP FUCOM FUCOMP??? ??? " |
6 SS. SSPACE ; |
: FDD ( ADDR OP -- ADDR' ) |
DROP COUNT DUP 0xC0 < |
IF DUP 0x38 AND |
CASE 0x00 OF .S" FLD DOUBLE " ENDOF |
0x10 OF .S" FST DOUBLE " ENDOF |
0x18 OF .S" FSTP DOUBLE " ENDOF |
0x20 OF .S" FRSTOR " ENDOF |
0x30 OF .S" FNSAVE " ENDOF |
0x38 OF .S" FNSTSW WORD " ENDOF |
DUP ??? |
ENDCASE |
MOD-R/M |
ELSE DUP FALU6 STI. |
THEN ; |
: FDF ( ADDR OP -- ADDR' ) |
DROP COUNT DUP 0xC0 < |
IF DUP 0x38 AND |
CASE 0x00 OF .S" FILD WORD " ENDOF |
0x10 OF .S" FIST WORD " ENDOF |
0x18 OF .S" FISTP WORD " ENDOF |
0x20 OF .S" FBLD TBYTE " ENDOF |
0x28 OF .S" FILD QWORD " ENDOF |
0x30 OF .S" FBSTP TBYTE " ENDOF |
0x38 OF .S" FISTP QWORD " ENDOF |
DUP ??? |
ENDCASE |
MOD-R/M |
ELSE DUP 0xE0 = |
IF .S" FNSTSW AX " DROP |
ELSE DUP 0x38 AND |
CASE 0x28 OF .S" FUCOMIP " STI. ENDOF |
0x30 OF .S" FCOMIP " STI. ENDOF |
??? |
ENDCASE |
THEN |
THEN ; |
: GP6 ( ADDR OP -- ADDR' ) |
DROP COUNT DUP 3 RSHIFT |
7 AND S" SLDTSTR LLDTLTR VERRVERW??? ???" 4 SS. 3 SSPACES |
R/M16 ; |
: GP7 ( ADDR OP -- ADDR' ) |
DROP COUNT DUP 3 RSHIFT |
7 AND DUP S" SGDT SIDT LGDT LIDT SMSW ??? LMSW INVLPG" 6 SS. 1 SSPACES |
4 AND 4 = |
IF R/M16 |
ELSE R/M16/32 |
THEN ; |
: BTX. ( N -- ) |
3 RSHIFT |
3 AND S" BT BTSBTRBTC" 3 SS. 4 SSPACES ; |
: GP8 ( ADDR OP -- ADDR' ) |
DROP COUNT DUP BTX. |
R/M16/32 IMM8 ; |
: LAR ( ADDR OP -- ADDR' ) |
.S" LAR " DROP R,R/M ; |
: LSL ( ADDR OP -- ADDR' ) |
.S" LSL " DROP R,R/M ; |
: LSS ( ADDR OP -- ADDR' ) |
.S" LSS " DROP R,R/M ; |
: LFS ( ADDR OP -- ADDR' ) |
.S" LFS " DROP R,R/M ; |
: LGS ( ADDR OP -- ADDR' ) |
.S" LGS " DROP R,R/M ; |
: BTX ( ADDR OP -- ADDR' ) |
BTX. R/M,R ; |
: SLI ( ADDR OP -- ADDR' ) |
.S" SHLD " DROP R/M,R IMM8 ; |
: SRI ( ADDR OP -- ADDR' ) |
.S" SHRD " DROP R/M,R IMM8 ; |
: SLC ( ADDR OP -- ADDR' ) |
.S" SHLD " DROP R/M,R .S" , CL" ; |
: SRC ( ADDR OP -- ADDR' ) |
.S" SHRD " DROP R/M,R .S" , CL" ; |
: IML ( ADDR OP -- ADDR' ) |
.S" IMUL " DROP R,R/M ; |
: CXC ( ADDR OP -- ADDR' ) |
.S" CMPXCHG " 1 AND TO SIZE R/M,R ; |
: MVX ( ADDR OP -- ADDR' ) |
DUP 8 AND |
IF .S" MOVSX " |
ELSE .S" MOVZX " |
THEN |
1 AND >R |
COUNT MOD/SIB R> \ SIZE BIT |
IF SWAP REG32 ., \ WORD TO DWORD CASE |
3 = |
IF REG16 |
ELSE .S" WORD PTR " DROP DUP 1- C@ MOD-R/M |
THEN |
ELSE SWAP REG16/32 ., \ BYTE CASE |
3 = |
IF REG8 |
ELSE .S" BYTE PTR " DROP DUP 1- C@ MOD-R/M |
THEN |
THEN ; |
: XAD ( ADDR OP -- ADDR' ) |
.S" XADD " 1 AND TO SIZE R/M,R ; |
: BSF ( ADDR OP -- ADDR' ) |
.S" BSF " DROP R,R/M ; |
: BSR ( ADDR OP -- ADDR' ) |
.S" BSR " DROP R,R/M ; |
: CX8 ( ADDR OP -- ADDR' ) |
.S" CMPXCHG8B " DROP COUNT R/M16/32 ; |
: BSP ( ADDR OP -- ADDR' ) |
.S" BSWAP " REG32 ; |
: F6. ( ADDR OP -- ADDR' ) |
\ ?? |
>R COUNT |
DUP 3 RSHIFT 7 AND DUP>R S" TESTXXXXNOT NEG MUL IMULDIV IDIV" 4 SS. 3 SSPACES |
MOD-R/M |
R> 0= IF |
R@ 1 AND IF IMM16/32 |
ELSE IMM8 |
THEN |
THEN |
R> DROP ; |
: FE. ( ADDR OP -- ADDR' ) |
DROP COUNT |
DUP 3 RSHIFT 7 AND |
CASE |
0 OF .S" INC " ENDOF |
1 OF .S" DEC " ENDOF |
.S" ??? " |
ENDCASE R/M8 ; |
: FF. ( ADDR OP -- ADDR' ) |
DROP COUNT |
DUP 3 RSHIFT 7 AND |
CASE |
0 OF .S" INC " ENDOF |
1 OF .S" DEC " ENDOF |
2 OF .S" CALL " ENDOF |
3 OF .S" CALL FAR " ENDOF |
4 OF .S" JMP " ENDOF |
5 OF .S" JMP FAR " ENDOF |
6 OF .S" PUSH " ENDOF |
.S" ??? " |
ENDCASE R/M16/32 ; |
\ --------------------- CONDITIONAL MOVE --------------- |
: SET ( ADR OP -- ) |
.S" SET" |
TTTN 2 SSPACES |
COUNT R/M8 ; |
: CMV ( ADR OP -- ) |
.S" CMOV" |
TTTN 1 SSPACES |
R,R/M ; |
\ --------------------- MMX OPERATIONS ----------------- |
: MMX-SIZE ( OP -- ) |
3 AND S" BWDQ" 1 SS. ; |
: UPL ( ADR OP -- ADR' ) |
3 AND S" PUNPCKLBWPUNPCKLWDPUNPCKLDQ" 9 SS. R,R/M ; |
: UPH ( ADR OP -- ADR' ) |
3 AND S" PUNPCKHBWPUNPCKHWDPUNPCKHDQ" 9 SS. R,R/M ; |
: CGT ( ADR OP -- ADR' ) |
.S" PCMPGT" MMX-SIZE R,R/M ; |
: CEQ ( ADR OP -- ADR' ) |
.S" PCMPEQ" MMX-SIZE R,R/M ; |
: PSH. ( OP -- ) |
0x30 AND |
CASE |
0x10 OF .S" PSRL" ENDOF |
0x20 OF .S" PSRA" ENDOF |
0x30 OF .S" PSLL" ENDOF |
ENDCASE ; |
: GPA ( ADR OP -- ADR' ) |
>R COUNT DUP PSH. R> MMX-SIZE 2 SSPACES MREG IMM8 ; |
: PUW ( ADR OP -- ADR' ) |
.S" PACKUSDW " DROP R,R/M ; |
: PSB ( ADR OP -- ADR' ) |
.S" PACKSSWB " DROP R,R/M ; |
: PSW ( ADR OP -- ADR' ) |
.S" PACKSSDW " DROP R,R/M ; |
: MPD ( ADR OP -- ADR' ) |
.S" MOVD " DROP COUNT MOD/SIB |
SWAP MREG ., 3 = |
IF REG32 |
ELSE MOD-R/M |
THEN ; |
: MDP ( ADR OP -- ADR' ) |
.S" MOVD " DROP COUNT MOD/SIB |
3 = |
IF SWAP REG32 |
ELSE SWAP MOD-R/M |
THEN ., MREG ; |
: MPQ ( ADR OP -- ADR' ) |
.S" MOVQ " DROP R,R/M ; |
: MQP ( ADR OP -- ADR' ) |
.S" MOVQ " DROP R/M,R ; |
: SHX ( ADR OP -- ADR' ) |
DUP PSH. MMX-SIZE 2 SSPACES R,R/M ; |
: MLL ( ADR OP -- ADR' ) |
.S" PMULLW " DROP R,R/M ; |
: MLH ( ADR OP -- ADR' ) |
.S" PMULHW " DROP R,R/M ; |
: MAD ( ADR OP -- ADR' ) |
.S" PMADDWD " DROP R,R/M ; |
: SUS ( ADR OP -- ADR' ) |
.S" PSUBUS" MMX-SIZE R,R/M ; |
: SBS ( ADR OP -- ADR' ) |
.S" PSUBS" MMX-SIZE SSPACE R,R/M ; |
: SUB ( ADR OP -- ADR' ) |
.S" PSUB" MMX-SIZE 2 SSPACES R,R/M ; |
: AUS ( ADR OP -- ADR' ) |
.S" PADDUS" MMX-SIZE R,R/M ; |
: ADS ( ADR OP -- ADR' ) |
.S" PADDS" MMX-SIZE SSPACE R,R/M ; |
: ADD ( ADR OP -- ADR' ) |
.S" PADD" MMX-SIZE 2 SSPACES R,R/M ; |
: PAD ( ADR OP -- ADR' ) |
.S" PAND " DROP R,R/M ; |
: POR ( ADR OP -- ADR' ) |
.S" POR " DROP R,R/M ; |
: PAN ( ADR OP -- ADR' ) |
.S" PANDN " DROP R,R/M ; |
: PXR ( ADR OP -- ADR' ) |
.S" PXOR " DROP R,R/M ; |
\ -------------------- OPCODE TABLE -------------------- |
: OPS 0x10 0 DO ' , LOOP ; |
CREATE OP-TABLE2 |
\ 0 1 2 3 4 5 6 7 8 9 A B C D E F |
OPS GP6 GP7 LAR LSL ??? ??? CLT ??? INV WIV ??? UD2 ??? ??? ??? ??? \ 0 |
OPS ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? \ 1 |
OPS MRC MRD MCR MDR MRT ??? MTR ??? ??? ??? ??? ??? ??? ??? ??? ??? \ 2 |
OPS WMR RTC RMR RPC ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? \ 3 |
OPS CMV CMV CMV CMV CMV CMV CMV CMV CMV CMV CMV CMV CMV CMV CMV CMV \ 4 |
OPS ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? \ 5 |
OPS UPL UPL UPL PUW CGT CGT CGT PSB UPH UPH UPH PSW ??? ??? MPD MPQ \ 6 |
OPS ??? GPA GPA GPA CEQ CEQ CEQ EMS ??? ??? ??? ??? ??? ??? MDP MQP \ 7 |
OPS LBR LBR LBR LBR LBR LBR LBR LBR LBR LBR LBR LBR LBR LBR LBR LBR \ 8 |
OPS SET SET SET SET SET SET SET SET SET SET SET SET SET SET SET SET \ 9 |
OPS PSS PPS CPU BTX SLI SLC ??? ??? PSS PPS RSM BTX SRI SRC ??? IML \ A |
OPS CXC CXC LSS BTX LFS LGS MVX MVX ??? UD1 GP8 BTX BSF BSR MVX MVX \ B |
OPS XAD XAD ??? ??? ??? ??? ??? CX8 BSP BSP BSP BSP BSP BSP BSP BSP \ C |
OPS ??? SHX SHX SHX ??? MLL ??? ??? SUS SUS ??? PAD AUS AUS ??? PAN \ D |
OPS ??? SHX SHX ??? ??? MLH ??? ??? SBS SBS ??? POR ADS ADS ??? PXR \ E |
OPS ??? ??? SHX SHX ??? MAD ??? ??? SUB SUB SUB ??? ADD ADD ADD ??? \ F |
\ 0 1 2 3 4 5 6 7 8 9 A B C D E F |
: 0F. ( ADR CODE -- ) |
DROP COUNT DUP |
DUP 0x70 AND 0x50 0x80 WITHIN TO MMX-REG |
CELLS OP-TABLE2 + @ EXECUTE |
0 TO MMX-REG ; |
CREATE OP-TABLE |
\ 0 1 2 3 4 5 6 7 8 9 A B C D E F |
OPS ALU ALU ALU ALU ALA ALA PSS PPS ALU ALU ALU ALU ALA ALA PSS 0F. \ 0 |
OPS ALU ALU ALU ALU ALA ALA PSS PPS ALU ALU ALU ALU ALA ALA PSS PPS \ 1 |
OPS ALU ALU ALU ALU ALA ALA ES: DAA ALU ALU ALU ALU ALA ALA CS: DAS \ 2 |
OPS ALU ALU ALU ALU ALA ALA SS: AAA ALU ALU ALU ALU ALA ALA DS: AAS \ 3 |
OPS INC INC INC INC INC INC INC INC DEC DEC DEC DEC DEC DEC DEC DEC \ 4 |
OPS PSH PSH PSH PSH PSH PSH PSH PSH POP POP POP POP POP POP POP POP \ 5 |
OPS PSA PPA BND ARP FS: GS: D16 A16 PSI MLI PSI MLI INB ISD OSB OSD \ 6 |
OPS BRA BRA BRA BRA BRA BRA BRA BRA BRA BRA BRA BRA BRA BRA BRA BRA \ 7 |
OPS ALI ALI ??? ALI TXB TXB TXB TXB MOV MOV MOV MOV MRS LEA MSR 8F. \ 8 |
OPS XGA XGA XGA XGA XGA XGA XGA XGA CBW CDQ CIS W8F PSF PPF SAH LAH \ 9 |
OPS MV1 MV1 MV2 MV2 MVS MVS CPS CPS TST TST STS STS LDS LDS SCS SCS \ A |
OPS MRI MRI MRI MRI MRI MRI MRI MRI MRI MRI MRI MRI MRI MRI MRI MRI \ B |
OPS SHF SHF RTN RTN LXS LXS MVI MVI ENT LEV RTF RTF NT3 INT NTO IRT \ C |
OPS SHF SHF SHF SHF AAM AAD ??? XLT FD8 FD9 FDA FDB FDC FDD FDE FDF \ D |
OPS LUP LUP LUP LUP INP INP OTP OTP JSR JMP CIS JMP IND IND OTD OTD \ E |
OPS LOK ??? RPZ REP HLT CMC F6. F6. CLC STC CLI STI CLD STD FE. FF. \ F |
\ 0 1 2 3 4 5 6 7 8 9 A B C D E F |
: DIS-OP ( ADR -- ADR' ) |
0>S |
FALSE TO PREFIX-OP \ SMUB |
COUNT |
DUP 1 AND TO SIZE |
DUP CELLS OP-TABLE + @ EXECUTE |
PREFIX-OP 0= |
IF DEFAULT-16BIT? 0= |
IF FALSE TO 16-BIT-DATA |
FALSE TO 16-BIT-ADDR |
ELSE TRUE TO 16-BIT-DATA |
TRUE TO 16-BIT-ADDR |
THEN |
THEN ; |
0 VALUE NEXT-INST |
: X". ( ADDR -- ADDR' ) |
\ CR DUP BASE-ADDR - 6 H.R SPACE |
DUP C@ 2DUP SWAP 1+ SWAP ." '" TYPE ." '" |
+ 2+ |
\ ." C, " 1+ OVER + SWAP |
\ DO I C@ 2 H.R ." C, " LOOP |
\ COUNT + 1+ |
; |
[DEFINED] G. [IF] |
: FLIT8. ( ADDR -- ADDR' ) CR |
." FLITERAL: " |
DUP DF@ G. 8 + |
; |
: FLIT10. ( ADDR -- ADDR' ) CR |
." FLITERAL: " |
DUP F@ G. 10 + |
; |
[ELSE] |
: FLIT8. |
CR DUP BASE-ADDR - 6 H.R SPACE |
." A; " DUP 8 OVER + SWAP |
DO I C@ 3 H.R ." C," LOOP |
8 + |
; |
: FLIT10. ( ADDR -- ADDR' ) |
CR DUP BASE-ADDR - 6 H.R SPACE |
." A; " DUP 10 OVER + SWAP |
DO I C@ 3 H.R ." C," LOOP |
10 + |
; |
[THEN] |
: VECT. ( ADDR -- ADDR' ) CR |
\ ." @" DUP BASE-ADDR - 6 H.R ." :" SPACE |
." A; " DUP @ 8 H.R DUP CELL+ SWAP @ ." , \ " WordByAddr TYPE CR |
; |
\ : CONS. ( ADDR -- ) \ CR |
\ \ ." @" DUP BASE-ADDR - 6 H.R ." :" SPACE |
\ SPACE ." CONSTANT " @ 8 SPACES DUP LAB IF ." @" WordByAddr TYPE ELSE DUP ARRAY2? IF DROP ELSE ." $" 1 H.R CR THEN THEN |
\ ; |
: CONS. ( ADDR -- ) |
CR DUP BASE-ADDR - 6 H.R SPACE |
." A; " @ 8 H.R ." ," |
; |
: USER. ( ADDR -- ) CR |
\ ." @" DUP BASE-ADDR - 6 H.R ." :" SPACE |
." A; " @ 8 H.R ." \ Relative in heap [hex]" \ CELL+ |
CR |
; |
\ : UVAL. ( ADDR -- ADDR' ) CR |
\ ." @" DUP BASE-ADDR - 6 H.R ." :" SPACE |
\ ." A; " DUP @ 8 H.R ." \ Relative in heap [hex]" CELL+ |
\ CR |
\ ; |
: UVAL. ( ADDR -- ADDR' ) |
CR DUP BASE-ADDR - 6 H.R SPACE |
." A; " DUP @ 8 H.R ." , \ Relative in heap [hex]" CELL+ |
; |
VARIABLE ENDDB |
VARIABLE ENDDD |
VARIABLE FLAGDB |
: TLABEL TRIGER3 @ IF 0 TRIGER3 ! ELSE OVER . ." :" 6 SPACES THEN ; |
: DDADR? OVER @ DUP IMAGE-BEGIN > SWAP IMAGE-END < AND ; |
: CODE. ( ADDR -- ) 4 SPACES |
DUP NextNFA |
?DUP |
IF OVER - 5 - |
ELSE |
DUP DP @ SWAP - ABS DUP 512 > IF DROP 124 THEN \ no applicable end found |
THEN |
BEGIN DUP WHILE OVER LAB 0= IF OVER ARRAY? TLABEL ELSE 24 SPACES THEN |
DDADR? IF OVER @ ARRAY2? 0= |
IF ." dd @" OVER @ DUP @ ADD-LAB . CR THEN 4 - SWAP 4 + SWAP ELSE |
DUP 4 < IF ." db " |
\ FLAGDB @ IF ." , " ELSE ." db " THEN OVER C@ . 1- SWAP 1+ SWAP |
2DUP OVER + DUP ENDDB ! SWAP DO I DUP ." $" C@ . ENDDB @ 1- <> IF ." , " THEN LOOP CR DROP 0 |
ELSE OVER @ 0= IF \ OVER @ . 4 - SWAP 4 + SWAP CR |
0 FLAGDB ! TRIGER4 @ IF 2DROP EXIT ELSE ." dd $" BEGIN OVER @ 0= OVER 0 > AND |
WHILE 4 - SWAP 4 + SWAP FLAGDB 1+! REPEAT FLAGDB @ . ." DUP (?)" THEN CR |
ELSE |
." db " 4 - OVER DUP 4 + DUP ENDDB ! SWAP DO I DUP |
." $" C@ . ENDDB @ 1- <> IF ." , " THEN LOOP SWAP 4 + SWAP CR THEN |
THEN |
THEN |
REPEAT 2DROP |
; |
\ IMAGE-BEGIN - ïîïðîáîâàòü âìåìåñòî ìåòêè OVER @ IMAGE-BEGIN > IF ." DD" OVER @ . HERE . THEN |
: DIS-DB CR .S" DB " COUNT H.>S ; |
: DIS-DW CR .S" DW " W@+ H.>S ; |
: DIS-DD CR .S" DD " @+ H.>S ; |
: DIS-DS CR .S" STRING " 0x22 EMIT>S COUNT 2DUP >S + 0x22 EMIT>S ; |
: FIND-REST-END ( xt -- addr | 0) |
DUP NextNFA DUP |
IF |
NIP |
NAME>C 1- \ Skip CFA field |
ELSE |
DROP |
DP @ - ABS 100 > IF 0 EXIT THEN \ no applicable end found |
DP @ 1- |
THEN |
BEGIN \ Skip alignment |
DUP C@ 0= WHILE 1- |
REPEAT ; |
: INST ( ADR -- ADR' ) |
DUP TO NEXT-INST |
COLS 0x29 < |
IF DIS-OP |
S-BUF COUNT TYPE |
ELSE DUP DIS-OP |
OVER BASE-ADDR - 6 |
\ H.R SPACE \ ïå÷àòü àäðåñà ìåòêè ïî óñëîâèþ, 2DROP óáðàòü |
\ 2DROP \ H.R SPACE àäðåñà |
OVER TYPE-LAB |
IF 2DROP ELSE |
OVER LAB IF 0 TRIGER3 ! 2DROP ELSE S" @" TYPE H.R S" :" TYPE SSPACE THEN |
THEN |
DUP ROT |
2DUP - DUP>R 0x10 U> ABORT" DECOMPILER ERROR" |
2DROP \ DO I C@ 2 SPACES DROP ( H.N ) LOOP \ 2DROP ( H.N ) LOOP \ äàìï êîìàíäû |
R> 12 < IF 9 EMIT THEN |
\ NEXT-INST C@ 0xE8 = |
\ IF NEXT-INST 1+ @+ SWAP + |
\ CASE |
\ ['] _CLITERAL-CODE OF 0 ENDOF |
\ ['] _SLITERAL-CODE OF 0 ENDOF |
\ ['] _VECT-CODE OF 0 ENDOF |
\ ['] _CONSTANT-CODE OF 0 ENDOF |
\ ['] _USER-CODE OF 0 ENDOF |
\ ['] _CREATE-CODE OF 0 ." // Îôîðìèò êàê var èëè label: array[0..10] of Byte/Integer;" ENDOF |
\ ['] _USER-VALUE-CODE OF 0 ." // Îôîðìèò êàê" ENDOF |
\ ['] _FLIT-CODE10 OF 0 ENDOF |
\ ['] _FLIT-CODE8 OF 0 ENDOF |
\ ENDCASE |
\ THEN |
?DUP IF 9 EMIT S-BUF COUNT TYPE THEN |
THEN NEXT-INST C@ 0xE8 = |
IF NEXT-INST 1+ @+ SWAP + |
CASE |
['] _CLITERAL-CODE OF CR X". ENDOF |
['] _SLITERAL-CODE OF CR X". ENDOF |
['] _VECT-CODE OF VECT. 2DROP RDROP ENDOF |
['] _CONSTANT-CODE OF CONS. DROP RDROP ENDOF |
['] _USER-CODE OF USER. DROP RDROP ENDOF |
['] _CREATE-CODE OF CODE. DROP RDROP ENDOF |
['] _USER-VALUE-CODE OF UVAL. DROP RDROP ENDOF |
['] _FLIT-CODE10 OF FLIT10. ENDOF |
['] _FLIT-CODE8 OF FLIT8. ENDOF |
ENDCASE |
THEN |
; |
: INST1 ( ADR -- ADR' ) |
DUP TO NEXT-INST |
COLS 0x29 < |
IF DIS-OP |
\ S-BUF COUNT TYPE |
ELSE DUP DIS-OP |
DUP ROT |
2DUP - DUP>R 0x10 U> ABORT" DECOMPILER ERROR" |
2DROP RDROP |
THEN |
; |
: (REST-AREA) ( addr1 addr2 -- ) |
\ if addr2 = 0 continue till RET instruction |
SWAP DUP TO NEXT-INST |
BEGIN |
\ We do not look for JMP's because there may be |
\ a jump in a forth word |
CR |
OVER 0= IF NEXT-INST C@ 0xC3 <> |
ELSE 2DUP < INVERT |
THEN |
WHILE INST \ CR |
REPEAT 2DROP |
; |
\ : ALLOT DUP HERE FINISH-ARRAY @ 2! FINISH-ARRAY @ 2 CELLS + FINISH-ARRAY ! ALLOT ; |
FORTH DEFINITIONS |
VECT REST-AREA |
\ ' (REST-AREA) TO REST-AREA |
\ : REST ( addr -- ) |
\ DUP HERE U> 0= HERE 1- AND REST-AREA |
\ ; |
\ : SEE ( "name" -- ) |
\ ' DUP FIND-REST-END ['] REST-AREA CATCH DROP |
\ ; |
: CALL-TYPE |
\ WordByAddr TYPE |
\ DUP ADD-CALL DUP ADD-LAB \ ! ! ! ! ! |
1 TRIGER3 ! S" @@" TYPE NEAR_NFA >R COUNT TYPE S" :" TYPE DROP R> |
\ DUP SEE2 |
; |
: CALL-FIND \ DUP SEE2 |
HEX |
DUP FIND-REST-END |
SWAP DUP TO NEXT-INST |
BEGIN |
\ We do not look for JMP's because there may be |
\ a jump in a forth word |
OVER 0= IF NEXT-INST C@ 0xC3 <> |
ELSE 2DUP < INVERT |
THEN |
WHILE DUP INST1 DROP DUP TO NEXT-INST |
DUP C@ 0xE8 = IF NEXT-INST 1+ DUP @ + 4 + DUP ADD-CALL |
CALL-TYPE? @ IF RECURSE ELSE DROP 5 + THEN |
ELSE DIS-OP THEN \ CR |
REPEAT 2DROP |
; |
: SEE2 ( "addr" -- ) |
DUP FIND-REST-END 2DUP END-WORD ! START-WORD ! |
['] REST-AREA CATCH DROP |
; |
: VAR-VECT |
1+ @+ SWAP + |
CASE |
['] _CLITERAL-CODE OF 5 + X". ENDOF |
['] _SLITERAL-CODE OF 5 + X". ENDOF |
['] _VECT-CODE OF 5 + VECT. DROP ENDOF |
['] _CONSTANT-CODE OF 5 + CONS. ENDOF |
['] _USER-CODE OF 5 + USER. ENDOF |
['] _CREATE-CODE OF 5 + CODE. ENDOF |
['] _USER-VALUE-CODE OF 5 + UVAL. ENDOF |
['] _FLIT-CODE10 OF 5 + FLIT10. ENDOF |
['] _FLIT-CODE8 OF 5 + FLIT8. ENDOF |
ENDCASE |
; |
: TYPE-VAR |
FINISH-VAR @ START-VAR @ = IF EXIT THEN |
FINISH-VAR @ 4 - |
BEGIN DUP @ |
\ DUP 5 + @ ARRAY? . |
DUP WordByAddr TYPE 1 TRIGER3 ! DUP VAR-VECT \ SEE2 |
DUP START-VAR @ = 0= WHILE CELL- REPEAT DROP CR CR |
; |
: TYPE-ALL |
START-LIST2 @ FINISH-LIST2 @ 4 - FINISH-LIST3 ! |
BEGIN DUP @ |
DUP 1+ @+ SWAP + |
CASE |
\ ['] _CLITERAL-CODE OF 0 ENDOF |
\ ['] _SLITERAL-CODE OF 0 ENDOF |
['] _VECT-CODE OF 0 ENDOF |
['] _CONSTANT-CODE OF 0 ENDOF |
['] _USER-CODE OF 0 ENDOF |
['] _CREATE-CODE OF 0 ENDOF |
['] _USER-VALUE-CODE OF 0 ENDOF |
['] _FLIT-CODE10 OF 0 ENDOF |
['] _FLIT-CODE8 OF 0 ENDOF |
ENDCASE |
?DUP IF ADD-CALL ELSE ADD-VAR THEN DUP FINISH-LIST3 @ = 0= \ ADD-CALL CR WordByAddr TYPE CR |
WHILE CELL+ REPEAT DROP |
TYPE-VAR |
FINISH-LIST @ BEGIN DUP @ DUP CALL-TYPE |
SEE2 DUP START-LIST @ = 0= WHILE CELL- REPEAT DROP |
; |
: DISASM-LIST |
['] (REST-AREA) TO REST-AREA |
DUP START-LIST @ ! CALL-FIND |
; |
: DIS ( ADR -- ) |
BEGIN |
DUP |
CR INST |
KEY UPC DUP 0x1B = OVER [CHAR] Q = OR 0= |
WHILE |
CASE |
[CHAR] Q OF DROP DIS-DB ENDOF |
[CHAR] W OF DROP DIS-DW ENDOF |
[CHAR] D OF DROP DIS-DD ENDOF |
[CHAR] S OF DROP DIS-DS ENDOF |
ROT DROP |
ENDCASE |
REPEAT 2DROP DROP ; |
0 VALUE SHOW-NEXT? \ DEFAULT TO NOT SHOWING NEXT INSTRUCTIONS |
DECIMAL |
TRUE VALUE SEE-KET-FL |
VARIABLE COUNT-LINE |
: REST ( ADR -- ) |
20 COUNT-LINE ! |
0 TO MAX_REFERENCE |
DUP TO NEXT-INST |
BEGIN |
CR |
NEXT-INST C@ |
DUP 0xC3 <> |
SWAP 0xE9 <> AND \ NEXT, BEHIND US? |
NEXT-INST MAX_REFERENCE U< OR |
OVER HERE - 0x100 U> AND |
WHILE INST |
COUNT-LINE @ 1- DUP 0= SEE-KET-FL AND |
IF 9 EMIT ." \ Press <enter> | q | any" KEY UPC |
DUP 0xD = IF 2DROP 1 ELSE |
DUP [CHAR] Q = SWAP 0x1B = |
OR IF 2DROP CR EXIT THEN |
DROP 20 THEN |
THEN |
COUNT-LINE ! |
REPEAT DROP ." END-CODE " |
; |
: SEE ( -- ) |
' REST ; |
ONLY FORTH DEFINITIONS |
.( Ok) CR |
TRUE WARNING ! |
/programs/develop/SPForth/lib/ext/locals.f |
---|
0,0 → 1,324 |
( 28.Mar.2000 Andrey Cherezov Copyright [C] RU FIG |
Èñïîëüçîâàíû èäåè ñëåäóþùèõ àâòîðîâ: |
Ruvim Pinka; Dmitry Yakimov; Oleg Shalyopa; Yuriy Zhilovets; |
Konstantin Tarasov; Michail Maximov. |
!! Ðàáîòàåò òîëüêî â SPF4. |
) |
( Ïðîñòîå ðàñøèðåíèå ÑÏ-Ôîðòà ëîêàëüíûìè ïåðåìåííûìè. |
Ðåàëèçîâàíî áåç èñïîëüçîâàíèÿ LOCALS ñòàíäàðòà 94. |
Îáúÿâëåíèå âðåìåííûõ ïåðåìåííûõ, âèäèìûõ òîëüêî âíóòðè |
òåêóùåãî ñëîâà è îãðàíè÷åííûõ âðåìåíåì âûçîâà äàííîãî |
ñëîâà âûïîëíÿåòñÿ ñ ïîìîùüþ ñëîâà "{". Âíóòðè îïðåäåëåíèÿ |
ñëîâà èñïîëüçóåòñÿ êîíñòðóêöèÿ, ïîäîáíàÿ ñòåêîâîé íîòàöèè Ôîðòà |
{ ñïèñîê_èíèöèàëèçèðîâàííûõ_ëîêàëîâ \ ñï.íåèíèö.ëîêàëîâ -- ÷òî óãîäíî } |
Íàïðèìåð: |
{ a b c d \ e f -- i j } |
Èëè { a b c d \ e f[ EVALUATE_âûðàæåíèå ] -- i j } |
Ýòî çíà÷èò ÷òî äëÿ ïåðåìåííîé f[ áóäåò âûäåëåí íà ñòåêå âîçâðàòîâ ó÷àñòîê |
ïàìÿòè äëèíîé n áàéò. Èñïîëüçîâàíèå ïåðåìåííîé f[ äàñò àäðåñ íà÷àëà ýòîãî |
ó÷àñòêà. \ ñòèëå MPE\ |
Èëè { a b c d \ e [ 12 ] f -- i j } |
Ýòî çíà÷èò ÷òî äëÿ ïåðåìåííîé f áóäåò âûäåëåí íà ñòåêå âîçâðàòîâ ó÷àñòîê |
ïàìÿòè äëèíîé 12 áàéò. Èñïîëüçîâàíèå ïåðåìåííîé f äàñò àäðåñ íà÷àëà ýòîãî |
ó÷àñòêà. |
×àñòü "\ ñï.íåèíèö.ëîêàëîâ" ìîæåò îòñóòñòâîâàòü, íàïðèìåð: |
{ item1 item2 -- } |
Ýòî çàñòàâëÿåò ÑÏ-Ôîðò àâòîìàòè÷åñêè âûäåëÿòü ìåñòî â |
ñòåêå âîçâðàòîâ äëÿ ýòèõ ïåðåìåííûõ â ìîìåíò âûçîâà ñëîâà |
è àâòîìàòè÷åñêè îñâîáîæäàòü ìåñòî ïðè âûõîäå èç íåãî. |
Îáðàùåíèå ê òàêèì ëîêàëüíûì ïåðåìåííûì - êàê ê VALUE-ïåðåìåííûì |
ïî èìåíè. Åñëè íóæåí àäðåñ ïåðåìåííîé, òî èñïîëüçóåòñÿ "^ èìÿ" |
èëè "AT èìÿ". |
Âìåñòî \ ìîæíî èñïîëüçîâàòü | |
Âìåñòî -> ìîæíî èñïîëüçîâàòü TO |
Ïðèìåðû: |
: TEST { a b c d \ e f -- } a . b . c . b c + -> e e . f . ^ a @ . ; |
Ok |
1 2 3 4 TEST |
1 2 3 5 0 1 Ok |
: TEST { a b -- } a . b . CR 5 0 DO I . a . b . CR LOOP ; |
Ok |
12 34 TEST |
12 34 |
0 12 34 |
1 12 34 |
2 12 34 |
3 12 34 |
4 12 34 |
Ok |
: TEST { a b } a . b . ; |
Ok |
1 2 TEST |
1 2 Ok |
: TEST { a b \ c } a . b . c . ; |
Ok |
1 2 TEST |
1 2 0 Ok |
: TEST { a b -- } a . b . ; |
Ok |
1 2 TEST |
1 2 Ok |
: TEST { a b \ c -- d } a . b . c . ; |
Ok |
1 2 TEST |
1 2 0 Ok |
: TEST { \ a b } a . b . 1 -> a 2 -> b a . b . ; |
Ok |
TEST |
0 0 1 2 Ok |
Èìåíà ëîêàëüíûõ ïåðåìåííûõ ñóùåñòâóþò â äèíàìè÷åñêîì |
âðåìåííîì ñëîâàðå òîëüêî â ìîìåíò êîìïèëÿöèè ñëîâà, à |
ïîñëå ýòîãî âû÷èùàþòñÿ è áîëåå íåäîñòóïíû. |
Èñïîëüçîâàòü êîíñòðóêöèþ "{ ... }" âíóòðè îäíîãî îïðåäåëåíèÿ ìîæíî |
òîëüêî îäèí ðàç. |
Êîìïèëÿöèÿ ýòîé áèáëèîòåêè äîáàâëÿåò â òåêóùèé ñëîâàðü êîìïèëÿöèè |
Òîëüêî äâà ñëîâà: |
ñëîâàðü "vocLocalsSupport" è "{" |
Âñå îñòàëüíûå äåòàëè "ñïðÿòàíû" â ñëîâàðå, èñïîëüçîâàòü èõ |
íå ðåêîìåíäóåòñÿ. |
) |
MODULE: vocLocalsSupport |
USER widLocals |
USER uLocalsCnt |
USER uLocalsUCnt |
USER uPrevCurrent |
USER uAddDepth |
: (Local^) ( N -- ADDR ) |
RP@ + |
; |
: LocalOffs ( n -- offs ) |
uLocalsCnt @ SWAP - CELLS CELL+ uAddDepth @ + |
; |
BASE @ HEX |
: CompileLocalsInit |
uPrevCurrent @ SET-CURRENT |
uLocalsCnt @ uLocalsUCnt @ - ?DUP IF CELLS LIT, POSTPONE DRMOVE THEN |
uLocalsUCnt @ ?DUP |
IF |
LIT, POSTPONE (RALLOT) |
THEN |
uLocalsCnt @ ?DUP |
IF CELLS RLIT, ['] (LocalsExit) RLIT, THEN |
; |
: CompileLocal@ ( n -- ) |
['] DUP MACRO, |
LocalOffs DUP SHORT? |
OPT_INIT SetOP |
IF 8B B, 44 B, 24 B, B, \ mov eax, offset [esp] |
ELSE 8B B, 84 B, 24 B, , \ mov eax, offset [esp] |
THEN OPT |
OPT_CLOSE |
; |
\ : CompileLocal@ ( n -- ) |
\ LocalOffs LIT, POSTPONE RP+@ |
\ ; |
: CompileLocal! ( n -- ) |
LocalOffs DUP SHORT? |
OPT_INIT SetOP |
IF 89 B, 44 B, 24 B, B, \ mov offset [esp], eax |
ELSE 89 B, 84 B, 24 B, , \ mov offset [esp], eax |
THEN OPT |
OPT_CLOSE |
['] DROP MACRO, |
; |
: CompileLocalRec ( u -- ) |
LocalOffs DUP |
['] DUP MACRO, |
SHORT? |
OPT_INIT SetOP |
IF 8D B, 44 B, 24 B, B, \ lea eax, offset [esp] |
ELSE 8D B, 84 B, 24 B, , \ lea eax, offset [esp] |
THEN OPT |
OPT_CLOSE |
; |
BASE ! |
: LocalsStartup |
TEMP-WORDLIST widLocals ! |
GET-CURRENT uPrevCurrent ! |
ALSO vocLocalsSupport |
ALSO widLocals @ CONTEXT ! DEFINITIONS |
uLocalsCnt 0! |
uLocalsUCnt 0! |
uAddDepth 0! |
; |
: LocalsCleanup |
PREVIOUS PREVIOUS |
widLocals @ FREE-WORDLIST |
; |
: ProcessLocRec ( "name" -- u ) |
[CHAR] ] PARSE |
STATE 0! |
EVALUATE CELL 1- + CELL / \ äåëàåì êðàòíûì 4 |
-1 STATE ! |
DUP uLocalsCnt +! |
uLocalsCnt @ 1- |
; |
: CreateLocArray |
ProcessLocRec |
CREATE , |
; |
: LocalsRecDoes@ ( -- u ) |
DOES> @ CompileLocalRec |
; |
: LocalsRecDoes@2 ( -- u ) |
ProcessLocRec , |
DOES> @ CompileLocalRec |
; |
: LocalsDoes@ |
uLocalsCnt @ , |
uLocalsCnt 1+! |
DOES> @ CompileLocal@ |
; |
: ;; POSTPONE ; ; IMMEDIATE |
: ^ |
' >BODY @ |
CompileLocalRec |
; IMMEDIATE |
: -> ' >BODY @ CompileLocal! ; IMMEDIATE |
WARNING DUP @ SWAP 0! |
: AT |
[COMPILE] ^ |
; IMMEDIATE |
: TO ( "name" -- ) |
>IN @ NextWord widLocals @ SEARCH-WORDLIST 1 = |
IF >BODY @ CompileLocal! DROP |
ELSE >IN ! [COMPILE] TO |
THEN |
; IMMEDIATE |
WARNING ! |
: â POSTPONE -> ; IMMEDIATE |
WARNING @ WARNING 0! |
\ === |
\ ïåðåîïðåäåëåíèå ñîîòâåòñòâóþùèõ ñëîâ äëÿ âîçìîæíîñòè èñïîëüçîâàòü |
\ âðåìåííûå ïåðåìåííûå âíóòðè öèêëà DO LOOP è íåçàâèñèìî îò èçìåíåíèÿ |
\ ñîäåðæèìîãî ñòåêà âîçâðàòîâ ñëîâàìè >R R> |
: DO POSTPONE DO [ 3 CELLS ] LITERAL uAddDepth +! ; IMMEDIATE |
: ?DO POSTPONE ?DO [ 3 CELLS ] LITERAL uAddDepth +! ; IMMEDIATE |
: LOOP POSTPONE LOOP [ -3 CELLS ] LITERAL uAddDepth +! ; IMMEDIATE |
: +LOOP POSTPONE +LOOP [ -3 CELLS ] LITERAL uAddDepth +! ; IMMEDIATE |
: >R POSTPONE >R [ 1 CELLS ] LITERAL uAddDepth +! ; IMMEDIATE |
: R> POSTPONE R> [ -1 CELLS ] LITERAL uAddDepth +! ; IMMEDIATE |
: RDROP POSTPONE RDROP [ -1 CELLS ] LITERAL uAddDepth +! ; IMMEDIATE |
: 2>R POSTPONE 2>R [ 2 CELLS ] LITERAL uAddDepth +! ; IMMEDIATE |
: 2R> POSTPONE 2R> [ -2 CELLS ] LITERAL uAddDepth +! ; IMMEDIATE |
\ === |
\ { ... | ... -- _____ } |
: ParseLocals3 |
BEGIN |
PARSE-NAME |
DUP 0= ABORT" Locals bad syntax (3)" |
2DUP S" }" COMPARE 0= IF 2DROP EXIT THEN |
2DROP |
AGAIN |
; |
\ { ... | _____ -- ... } |
: ParseLocals2 |
BEGIN |
PARSE-NAME |
DUP 0= ABORT" Locals bad syntax (2)" |
2DUP S" --" COMPARE 0= IF 2DROP ParseLocals3 EXIT THEN |
2DUP S" }" COMPARE 0= IF 2DROP EXIT THEN |
2DUP S" [" COMPARE 0= |
IF |
2DROP CreateLocArray LocalsRecDoes@ |
ELSE |
CREATED |
LATEST DUP C@ CHARS + C@ |
[CHAR] [ = |
IF |
LocalsRecDoes@2 |
ELSE |
LocalsDoes@ 1 |
THEN |
THEN |
uLocalsUCnt +! IMMEDIATE |
AGAIN |
; |
\ { _____ | ... -- ... } |
: ParseLocals1 |
BEGIN |
PARSE-NAME |
DUP 0= ABORT" Locals bad syntax (1)" |
2DUP S" |" COMPARE 0= IF 2DROP ParseLocals2 EXIT THEN |
2DUP S" \" COMPARE 0= IF 2DROP ParseLocals2 EXIT THEN |
2DUP S" --" COMPARE 0= IF 2DROP ParseLocals3 EXIT THEN |
2DUP S" }" COMPARE 0= IF 2DROP EXIT THEN |
CREATED LocalsDoes@ IMMEDIATE |
AGAIN ; |
\ uLocalsCnt @ ?DUP |
\ IF CELLS RLIT, ['] (LocalsExit) RLIT, THEN |
: ; LocalsCleanup |
S" ;" EVAL-WORD |
; IMMEDIATE |
WARNING ! |
\ ===================================================================== |
EXPORT |
: { |
LocalsStartup |
ParseLocals1 |
CompileLocalsInit |
;; IMMEDIATE |
;MODULE |
/programs/develop/SPForth/lib/ext/patch.f |
---|
0,0 → 1,8 |
\ from gforth |
: REPLACE-WORD ( by-xt what-xt ) |
[ HEX ] E9 [ DECIMAL ] OVER C! \ JMP ... |
1+ DUP >R |
CELL+ - |
R> ! |
; |
/programs/develop/SPForth/lib/ext/spf-asm.f |
---|
0,0 → 1,40 |
REQUIRE CASE lib/ext/case.f |
REQUIRE !CSP ~mak/lib/csr.f |
: DEFER CREATE ['] NOOP , DOES> @ EXECUTE ; |
: DEFER@ ' >BODY STATE @ IF POSTPONE LITERAL POSTPONE @ ELSE @ THEN ; IMMEDIATE |
: IS ' >BODY STATE @ IF POSTPONE LITERAL POSTPONE ! ELSE ! THEN ; IMMEDIATE |
: +TO ' >BODY STATE @ IF POSTPONE LITERAL POSTPONE +! ELSE +! THEN ; IMMEDIATE |
: REVEAL SMUDGE ; |
: COMPILE ' POSTPONE LITERAL POSTPONE COMPILE, ; IMMEDIATE |
: (;CODE) R> LATEST 5 - ! ; |
VECT EXIT-ASSEMBLER |
VOCABULARY ASSEMBLER |
S" lib/asm/486asm.f" INCLUDED |
( FORTH HEADER CREATION WORDS ) |
ALSO ASSEMBLER ALSO ASM-HIDDEN |
IN-HIDDEN |
: _CODE ( START A NATIVE CODE DEFINITION ) |
CREATE CFL NEGATE ALLOT HIDE !CSP INIT-ASM ; |
: _;CODE ( CREATE THE [;CODE] PART OF A LOW LEVEL DEFINING WORD ) |
?CSP !CSP COMPILE (;CODE) POSTPONE [ INIT-ASM ; |
IN-FORTH |
' _CODE IS CODE |
' _;CODE IS ;CODE |
: FCALL A; [COMPILE] ' COMPILE, ; |
ONLY FORTH DEFINITIONS |
ALSO FORTH IMMEDIATE PREVIOUS |
S" lib/asm/asmmac.f" INCLUDED |
/programs/develop/SPForth/lib/ext/vocs.f |
---|
0,0 → 1,60 |
REQUIRE [DEFINED] lib/include/tools.f |
\ Ðàñïå÷àòàòü ñïèñîê ñëîâàðåé. |
: VOCS |
VOC-LIST |
BEGIN @ DUP WHILE |
DUP CELL+ VOC-NAME. |
DUP 3 CELLS + @ \ wid ïðåäêà |
?DUP IF ." defined in " VOC-NAME. |
ELSE ." is the main vocabulary" |
THEN CR |
REPEAT |
DROP |
; |
0x200 VALUE MAX-WORD-SIZE |
C" NEAR_NFA" FIND NIP 0= |
[IF] : NEAR_NFA ( addr -- NFA addr | 0 addr ) DUP WordByAddr DROP 1- SWAP |
2DUP 1000 - U< IF NIP 0 SWAP THEN ; |
[THEN] |
\ Opposite to CDR, might be slow! |
\ It does not take wordlists into account. |
: NextNFA ( nfa1 -- nfa2 | 0 ) |
NEAR_NFA SWAP >R |
BEGIN |
1+ NEAR_NFA ( nfa addr ) |
OVER 0 > |
ROT R@ <> AND |
OVER R@ - MAX-WORD-SIZE > OR |
UNTIL |
DUP R> - MAX-WORD-SIZE > |
IF DROP 0 |
ELSE NEAR_NFA DROP |
THEN |
; |
: NFAInVoc? ( nfa voc -- f ) |
@ \ last nfa |
BEGIN ( nfa 'nfa ) |
DUP |
WHILE |
2DUP = IF 2DROP TRUE EXIT THEN |
CDR |
REPEAT 2DROP 0 |
; |
: VocByNFA ( nfa -- wid | 0 ) |
VOC-LIST |
BEGIN @ DUP WHILE ( nfa voc ) |
2DUP CELL+ NFAInVoc? |
IF |
NIP CELL+ EXIT |
THEN |
REPEAT |
2DROP 0 |
; |
/programs/develop/SPForth/lib/ext |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/SPForth/lib/include/core-ext.f |
---|
0,0 → 1,81 |
\ 94 CORE EXT |
: .R ( n1 n2 -- ) \ 94 CORE EXT |
\ Âûâåñòè íà ýêðàí n1 âûðàâíåííûì âïðàâî â ïîëå øèðèíîé n2 ñèìâîëîâ. |
\ Åñëè ÷èñëî ñèìâîëîâ, íåîáõîäèìîå äëÿ èçîáðàæåíèÿ n1, áîëüøå ÷åì n2, |
\ èçîáðàæàþòñÿ âñå öèôðû ÷èñëà áåç âåäóùèõ ïðîáåëîâ â ïîëå íåîáõîäèìîé |
\ øèðèíû. |
>R DUP >R ABS |
S>D <# #S R> SIGN #> |
R> OVER - 0 MAX SPACES TYPE |
; |
: 0> ( n -- flag ) \ 94 CORE EXT |
\ flag "èñòèíà" òîãäà è òîëüêî òîãäà, êîãäà n áîëüøå íóëÿ |
0 > |
; |
: MARKER ( "<spaces>name" -- ) \ 94 CORE EXT |
\ Ïðîïóñòèòü âåäóùèå ïðîáåëû. Âûäåëèòü name, îãðàíè÷åííîå ïðîáåëàìè. |
\ Ñîçäàòü îïðåäåëåíèå ñ ñåìàíòèêîé âûïîëíåíèÿ, îïèñàííîé íèæå. |
\ name Âûïîëíåíèå: ( -- ) |
\ Âîññòàíîâèòü ðàñïðåäåëåíèå ïàìÿòè ñëîâàðÿ è óêàçàòåëè ïîðÿäêà ïîèñêà |
\ ê ñîñòîÿíèþ, êîòîðîå îíè èìåëè ïåðåä îïðåäåëåíèåì name. Óáðàòü |
\ îïðåäåëåíèå name è âñå ïîñëåäóþùèå îïðåäåëåíèÿ. Íå òðåáóåòñÿ |
\ îáÿçàòåëüíî âîññòàíàâëèâàòü ëþáûå îñòàâøèåñÿ ñòðóêòóðû, êîòîðûå |
\ ìîãóò áûòü ñâÿçàíû ñ óäàëåííûìè îïðåäåëåíèÿìè èëè îñâîáîæäåííûì |
\ ïðîñòðàíñòâîì äàííûõ. Íèêàêàÿ äðóãàÿ êîíòåêñòóàëüíàÿ èíôîðìàöèÿ, |
\ êàê îñíîâàíèå ñèñòåìû ñ÷èñëåíèÿ, íå èçìåíÿåòñÿ. |
HERE |
\ [C]HERE , [E]HERE , |
GET-CURRENT , |
GET-ORDER DUP , 0 ?DO DUP , @ , LOOP |
CREATE , |
DOES> @ DUP \ ONLY |
\ DUP @ [C]DP ! CELL+ |
\ DUP @ [E]DP ! CELL+ |
DUP @ SET-CURRENT CELL+ |
DUP @ >R R@ CELLS 2* + 1 CELLS - R@ 0 |
?DO DUP DUP @ SWAP CELL+ @ OVER ! SWAP 2 CELLS - LOOP |
DROP R> SET-ORDER |
DP ! |
; |
: SAVE-INPUT ( -- xn ... x1 n ) \ 94 CORE EXT |
\ x1 - xn îïèñûâàþò òåêóùåå ñîñòîÿíèå ñïåöèôèêàöèé âõîäíîãî ïîòîêà äëÿ |
\ ïîñëåäóþùåãî èñïîëüçîâàíèÿ ñëîâîì RESTORE-INPUT. |
SOURCE-ID 0> |
IF TIB #TIB @ 2DUP C/L 2 + ALLOCATE THROW DUP >R SWAP CMOVE |
R> TO TIB >IN @ |
SOURCE-ID FILE-POSITION THROW |
5 |
ELSE BLK @ >IN @ 2 THEN |
; |
: RESTORE-INPUT ( xn ... x1 n -- flag ) \ 94 CORE EXT |
\ Ïîïûòêà âîññòàíîâèòü ñïåöèôèêàöèè âõîäíîãî ïîòîêà ê ñîñòîÿíèþ, |
\ îïèñàííîìó x1 - xn. flag "èñòèíà", åñëè ñïåöèôèêàöèè âõîäíîãî |
\ ïîòîêà íå ìîãóò áûòü âîññòàíîâëåíû. |
\ Íåîïðåäåëåííàÿ ñèòóàöèÿ âîçíèêàåò, åñëè âõîäíîé ïîòîê, |
\ ïðåäñòàâëåííûé àðãóìåíòàìè íå òîò æå, ÷òî è òåêóùèé âõîäíîé ïîòîê. |
SOURCE-ID 0> |
IF DUP 5 <> IF 0 ?DO DROP LOOP -1 EXIT THEN |
DROP SOURCE-ID REPOSITION-FILE ?DUP IF >R 2DROP DROP R> EXIT THEN |
>IN ! #TIB ! TO TIB FALSE |
ELSE DUP 2 <> IF 0 ?DO DROP LOOP -1 EXIT THEN |
DROP >IN ! BLK ! FALSE |
THEN |
; |
: U.R ( u n -- ) \ 94 CORE EXT |
\ Âûâåñòè íà ýêðàí u âûðàâíåííûì âïðàâî â ïîëå øèðèíîé n ñèìâîëîâ. |
\ Åñëè ÷èñëî ñèìâîëîâ, íåîáõîäèìîå äëÿ èçîáðàæåíèÿ u, áîëüøå ÷åì n, |
\ èçîáðàæàþòñÿ âñå öèôðû ÷èñëà áåç âåäóùèõ ïðîáåëîâ â ïîëå íåîáõîäèìîé |
\ øèðèíû. |
>R U>D <# #S #> |
R> OVER - 0 MAX SPACES TYPE |
; |
\EOF |
: UNUSED ( -- u ) \ 94 CORE EXT |
\ u - îáúåì ïàìÿòè, îñòàâøåéñÿ â îáëàñòè, àäðåñóåìîé HERE, |
\ â áàéòàõ. |
IMAGE-SIZE |
HERE IMAGE-BASE - - |
; |
/programs/develop/SPForth/lib/include/tools.f |
---|
0,0 → 1,78 |
\ 94 TOOLS |
: .S ( -- ) \ 94 TOOLS |
\ Ñêîïèðîâàòü è ïîêàçàòü çíà÷åíèÿ, íàõîäÿùèåñÿ íà ñòåêå äàííûõ. Ôîðìàò çàâèñèò |
\ îò ðåàëèçàöèè. |
\ .S ìîæåò áûòü ðåàëèçîâàíî ñ èñïîëüçîâàíèåì ñëîâ ôîðìàòíîãî ïðåîáðàçîâàíèÿ |
\ ÷èñåë. Ñîîòâåòñòâåííî, îí ìîæåò èñïîðòèòü ïåðåìåùàåìóþ îáëàñòü, |
\ èäåíòèôèöèðóåìóþ #>. |
DEPTH .SN |
; |
: ? ( a-addr -- ) \ 94 TOOLS |
\ Ïîêàçàòü çíà÷åíèå, õðàíÿùååñÿ ïî àäðåñó a-addr. |
\ ? ìîæåò áûòü ðåàëèçîâàí ñ èñïîëüçîâàíèåì ñëîâ ôîðìàòíîãî ïðåîáðàçîâàíèÿ |
\ ÷èñåë. Ñîîòâåòñòâåííî, îí ìîæåò èñïîðòèòü ïåðåìåùàåìóþ îáëàñòü, |
\ èäåíòèôèöèðóåìóþ #>. |
@ . |
; |
: AHEAD \ 94 TOOLS EXT |
\ Èíòåðïðåòàöèÿ: ñåìàíòèêà íåîïðåäåëåíà. |
\ Êîìïèëÿöèÿ: ( C: -- orig ) |
\ Ïîëîæèòü ìåñòî íåðàçðåøåííîé ññûëêè âïåðåä orig íà ñòåê óïðàâëåíèÿ. |
\ Äîáàâèòü ñåìàíòèêó âðåìåíè âûïîëíåíèÿ, äàííóþ íèæå, ê òåêóùåìó îïðåäåëåíèþ. |
\ Ñåìàíòèêà íåçàâåðøåíà äî òåõ ïîð, ïîêà orig íå ðàçðåøèòñÿ (íàïðèìåð, |
\ ïî THEN). |
\ Âðåìÿ âûïîëíåíèÿ: ( -- ) |
\ Ïðîäîëæèòü âûïîëíåíèå ñ ïîçèöèè, çàäàííîé ðàçðåøåíèåì orig. |
HERE BRANCH, >MARK 2 |
; IMMEDIATE |
: [ELSE] \ 94 TOOLS EXT |
\ Êîìïèëÿöèÿ: Âûïîëíèòü ñåìàíòèêó âûïîëíåíèÿ, äàííóþ íèæå. |
\ Âûïîëíåíèå: ( "<spaces>name..." -- ) |
\ Ïðîïóñòèòü âåäóùèå ïðîáåëû, âûäåëèòü è îòáðîñèòü îãðàíè÷åííûå ïðîáåëàìè |
\ ñëîâà èç ðàçáèðàåìîé îáëàñòè, âêëþ÷àÿ âëîæåííûå [IF]...[THEN] è |
\ [IF]...[ELSE]...[THEN], äî âûäåëåíèÿ è îòáðàñûâàíèÿ ñëîâà [THEN]. |
\ Åñëè ðàçáèðàåìàÿ îáëàñòü îïóñòîøàåòñÿ, îíà ñíîâà çàïîëíÿåòñÿ ïî REFILL. |
\ [ELSE] - ñëîâî íåìåäëåííîãî èñïîëíåíèÿ. |
1 |
BEGIN |
NextWord DUP |
IF |
2DUP S" [IF]" COMPARE 0= IF 2DROP 1+ ELSE |
2DUP S" [ELSE]" COMPARE 0= IF 2DROP 1- DUP IF 1+ THEN ELSE |
S" [THEN]" COMPARE 0= IF 1- THEN |
THEN THEN |
ELSE 2DROP REFILL AND \ SOURCE TYPE |
THEN DUP 0= |
UNTIL DROP ; IMMEDIATE |
: [IF] \ 94 TOOLS EXT |
\ Êîìïèëÿöèÿ: Âûïîëíèòü ñåìàíòèêó âûïîëíåíèÿ, äàííóþ íèæå. |
\ Âûïîëíåíèå: ( flag | flag "<spaces>name..." -- ) |
\ Åñëè ôëàã "èñòèíà", íè÷åãî íå äåëàòü. Èíà÷å, ïðîïóñòèâ âåäóùèå ïðîáåëû, |
\ âûäåëÿòü è îòáðàñûâàòü îãðàíè÷åííûå ïðîáåëàìè ñëîâà èç ðàçáèðàåìîé îáëàñòè, |
\ âêëþ÷àÿ âëîæåííûå [IF]...[THEN] è [IF]...[ELSE]...[THEN], äî òåõ ïîð, ïîêà íå |
\ áóäåò âûäåëåíî è îòáðîøåíî ñëîâî [ELSE] èëè [THEN]. |
\ Åñëè ðàçáèðàåìàÿ îáëàñòü îïóñòîøàåòñÿ, îíà ñíîâà çàïîëíÿåòñÿ ïî REFILL. |
\ [ELSE] - ñëîâî íåìåäëåííîãî èñïîëíåíèÿ. |
0= IF POSTPONE [ELSE] THEN |
; IMMEDIATE |
: [THEN] \ 94 TOOLS EXT |
\ Êîìïèëÿöèÿ: Âûïîëíèòü ñåìàíòèêó âûïîëíåíèÿ, äàííóþ íèæå. |
\ Âûïîëíåíèå: ( -- ) |
\ Íè÷åãî íå äåëàòü. [THEN] - ñëîâî íåìåäëåííîãî èñïîëíåíèÿ. |
; IMMEDIATE |
\ Ruvim Pinka additions: |
: [DEFINED] ( -- f ) \ "name" |
NextWord SFIND IF DROP TRUE ELSE 2DROP FALSE THEN |
; IMMEDIATE |
: [UNDEFINED] ( -- f ) \ "name" |
POSTPONE [DEFINED] 0= |
; IMMEDIATE |
/programs/develop/SPForth/lib/include |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/SPForth/lib |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/SPForth/mbuild.bat |
---|
0,0 → 1,0 |
fasm.exe meforth.ASM |
/programs/develop/SPForth/meforth.ASM |
---|
0,0 → 1,504 |
; KolSPForth v12 |
SYSTEM equ EMUL |
;Memory Map |
; |
;0 |
;0x02C7D ;I_END |
;0x05430 ;CTOP |
;0x3F800 ;Data stack |
;0x3FA00 ;return stack |
;0x3FC00 ;User |
;0x3FE00 ;TIB |
;0x30000 ;FILE BUFF |
;0x40000 (256K) |
;; Version control |
VER EQU 1 ;major release version |
EXT EQU 0 ;minor extension |
;; Constants |
TRUEE EQU -1 ;true flag |
COMPO EQU 040H ;lexicon compile only bit |
IMEDD EQU 080H ;lexicon immediate bit |
MASKK EQU 01FH ;lexicon bit mask |
CELLL EQU 4 ;size of a cell |
BASEE EQU 10 ;default radix |
VOCSS EQU 8 ;depth of vocabulary stack |
BKSPP EQU 8 ;back space |
LF EQU 10 ;line feed |
CRR EQU 13 ;carriage return |
ERR EQU 27 ;error escape |
TIC EQU 39 ;tick |
CALLL EQU 0E8H ;CALL opcodes |
ROWH EQU 13 |
KEY_DELAY EQU 20 |
FW_WIDTH equ 500 |
FW_HEIGHT equ 352 |
;; Memory allocation |
EM EQU 256*1024 ;top of memory |
FILE_BS EQU 64*1024 ;file buff size |
US EQU 128*CELLL ;user area size in cells |
RTS EQU 1024*CELLL ;return stack/TIB size |
FILE_B EQU EM-FILE_BS ;terminal input buffer (TIB) |
TIBB EQU FILE_B-RTS ;terminal input buffer (TIB) |
; UPP EQU TIBB-US ;start of user area (UP0) |
RPP EQU UPP-RTS ;start of return stack (ESP0) |
SPP EQU RPP-RTS ;start of data stack (EBP0) |
LastNFA = 0 |
LastCFA EQU INIT |
macro AHEADER FLAG,ID,F_CFA { |
db FLAG |
DD F_CFA |
DD LastNFA |
The_Nfa = $ |
DB ID,0 |
LastNFA = The_Nfa |
F_CFA: |
} |
macro cfa_AHEADER FLAG,ID,F_CFA { |
db FLAG |
DD cfa_#F_CFA |
DD LastNFA |
The_Nfa = $ |
DB ID,0 |
LastNFA = The_Nfa |
cfa_#F_CFA: |
} |
;; Main entry points and COLD start data |
use32 |
org 0x0 |
db 'MENUET01' ; 8 byte id |
dd 0x01 ; header version |
dd ORIG ; start of code |
dd I_END ; size of image |
MEMS: dd EM ; memory for app |
dd SPP ; esp |
if SYSTEM eq MEOS |
dd FINFO.path |
else |
dd 0 |
end if |
dd 0x0 ; I_Param , I_Icon |
lang fix ru |
include 'MACROS.INC' |
include "proc32.inc" |
align 4 |
proc strncmp stdcall, s1:dword, s2:dword, n:dword |
push esi |
push edi |
mov ecx, [n] |
test ecx, ecx ; Max length is zero? |
je .done |
mov esi, [s1] ; esi = string s1 |
mov edi, [s2] ; edi = string s2 |
cld |
.compare: |
cmpsb ; Compare two bytes |
jne .done |
cmp byte [esi-1], 0 ; End of string? |
je .done |
dec ecx ; Length limit reached? |
jne .compare |
.done: |
seta al ; al = (s1 > s2) |
setb ah ; ah = (s1 < s2) |
sub al, ah |
movsx eax, al ; eax = (s1 > s2) - (s1 < s2), i.e. -1, 0, 1 |
pop edi |
pop esi |
ret |
endp |
align 4 |
proc GetPr stdcall, exp:dword, sz_name:dword |
mov edx, [exp] |
.next: |
push edx |
stdcall strncmp, edx, [sz_name], 16 |
pop edx |
test eax, eax |
jz .ok |
mov edx, [edx-4] |
test edx, edx |
jnz .next |
mov eax,edx |
ret |
.ok: |
mov eax, [edx-8] |
ret |
endp |
AHEADER 0 ,'GETPR',cfa_GETPR |
JMP GetPr |
ORIG: |
MOV EBP,RPP ;initialize RP |
CLD ;ESI gets incremented |
finit |
call draw_window |
call calc_lines |
XCHG ESP,EBP |
CALL amain |
BYE: mcall -1 |
ULAST: ; DD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
draw_cursor: |
draw_window: |
pusha |
mcall 12,1 |
mov [fRed],ebx |
mcall 0, <0,FW_WIDTH>, <0,FW_HEIGHT>, 0x03000000, 0x805080D0, 0x005080D0 |
mcall 4, <8,8>, 0x10DDEEFF, header, header.size |
mcall 9,pinfo,-1 |
mov eax,[pinfo.x_size] |
cdq |
sub eax,20 |
mov ebx,6 |
div ebx |
mov [pinfo.x_start],eax |
mov eax,[pinfo.y_size] |
cdq |
sub eax,40 |
mov ebx,ROWH |
div ebx |
mov [pinfo.y_start],eax |
call erase_screen |
mcall 12, 2 |
if ~ SYSTEM eq EMUL |
mcall 67,-1,-1,FW_WIDTH,FW_HEIGHT |
end if |
popa |
ret |
lsz header,\ |
ru,'®àâ ¤«ï MenuetOS (SPF)',\ |
en,'EXAMPLE APPLICATION',\ |
fr,"L'exemplaire programme" |
erase_screen: |
mov ebx,[pinfo.x_size] |
add ebx,10 shl 16-20 |
mov ecx,[pinfo.y_size] |
add ecx,30 shl 16-35 |
mcall 13,,,0;xff |
ret |
AHEADER 0,"CC_LINES",cfa_CC_LINES |
calc_lines: |
cmp dword[UPP+10*4],0 |
je .ex |
pusha |
mov ebp,os_work |
mov al,0xd |
mov edi,screen_buf |
; mov esi,[cursor] |
; mov byte[esi],'_' |
; inc [cursor] |
.again: |
mov [ebp],edi |
mov esi,[cursor] |
sub esi,edi |
mov ecx,[pinfo.x_start] |
; test ecx,ecx |
; jnz .no0 |
; inc ecx |
; .no0: |
cmp ecx,esi |
jbe .ok |
mov ecx,esi |
.ok: |
repne scasb |
jecxz .nocrlf |
cmp byte[edi],10 |
jne .nocrlf |
inc edi |
.nocrlf: |
mov ecx,edi |
sub ecx,[ebp] |
add ebp,8 |
mov [ebp-4],ecx |
cmp edi,[cursor] |
jb .again |
and dword[ebp],0 |
; dpd esi |
mov eax,[pinfo.y_start] |
shl eax,3 |
sub ebp,eax |
cmp ebp,os_work |
jae .ok2 |
mov ebp,os_work |
.ok2: |
cmp ebp,[last_ebp] |
je .ok3 |
mov [last_ebp],ebp |
call erase_screen |
.ok3: |
mov ebx,10 shl 16 +30 |
; ud2 |
.newl: |
mcall 4,,0xffffff,[ebp],[ebp+4] |
add ebp,8 |
add ebx,ROWH |
cmp dword[ebp],0 |
jnz .newl |
SUB ebx,ROWH |
call set_cur |
popa |
.ex: |
ret |
set_cur: |
MOV ecx,EBX |
shl ecx,16 |
add ecx,EBX |
MOV EAX,[ebp+4-8] |
add EAX,2 |
imul EAX,6 |
mov EBX,EAX |
shl ebx,16 |
add EBX,EAX |
mov [lastcur],ecx |
mov [lastcur+4],ebx |
ret |
e_calc_lines: |
cmp dword[UPP+10*4],0 |
je e_.ex |
pusha |
mov ebp,os_work |
mov al,0xd |
mov edi,screen_buf |
; mov esi,[cursor] |
; mov byte[esi],'_' |
; inc [cursor] |
e_.again: |
mov [ebp],edi |
mov esi,[cursor] |
sub esi,edi |
mov ecx,[pinfo.x_start] |
; test ecx,ecx |
; jnz .no0 |
; inc ecx |
; .no0: |
cmp ecx,esi |
jbe e_.ok |
mov ecx,esi |
e_.ok: |
repne scasb |
jecxz e_.nocrlf |
cmp byte[edi],10 |
jne e_.nocrlf |
inc edi |
e_.nocrlf: |
mov ecx,edi |
sub ecx,[ebp] |
add ebp,8 |
mov [ebp-4],ecx |
cmp edi,[cursor] |
jb e_.again |
and dword[ebp],0 |
; dpd esi |
mov eax,[pinfo.y_start] |
shl eax,3 |
sub ebp,eax |
cmp ebp,os_work |
jae e_.ok2 |
mov ebp,os_work |
e_.ok2: |
cmp ebp,[last_ebp] |
je e_.ok3 |
mov [last_ebp],ebp |
cmp byte[edi],10 |
jne e_.ok3 |
call erase_screen |
e_.ok3: |
mov ebx,10 shl 16+30 |
; ud2 |
e_.newl: |
; mcall 4,,0xffffff,[ebp],[ebp+4] |
add ebp,8 |
add ebx,ROWH |
cmp dword[ebp],0 |
jnz e_.newl |
SUB ebx,ROWH |
mcall 4,,0x00ffffff,[ebp-8],[ebp+4-8] |
call set_cur |
popa |
e_.ex: |
ret |
AHEADER 0,"?KEY",cfa_queKEY |
PUSH EDI |
XCHG EBP,ESP |
PUSH EAX |
POP EBX |
mov eax,10 |
test ebx,ebx |
jz QRX0 |
inc eax |
QRX0: |
XOR ECX,ECX ;EBX=0 setup for false flag |
mcall |
cmp eax,1 |
jne QRX_ |
call draw_window |
call calc_lines |
QRX_: |
cmp eax,3 |
je BYE |
cmp eax,2 |
jne QRX3 |
mcall 2 |
QRX1: MOVZX ECX,AH |
QRX2: PUSH ECX ;save character |
QRX_TRUE: |
MOV ECX,TRUEE ;true flag |
QRX3: PUSH ECX |
POP eax |
XCHG EBP,ESP |
POP EDI |
ret |
; ?RX ( -- c T | F ) |
; Return input character and true, or a false if no input. |
AHEADER 0,"EMIT_N",cfa_EMIT_N |
PUSH EDI |
XCHG EBP,ESP |
;char in AL |
CMP AL,0FFH ;0FFH is interpreted as input |
JNZ TX2 ;do NOT allow input |
MOV AL,32 ;change to blank |
TX2: |
mov ebx,[cursor] |
mov [ebx],AL |
inc [cursor] |
POP eax |
XCHG EBP,ESP |
POP EDI |
RET |
;; Basic I/O |
cfa_AHEADER 0,'CL_CUR',CL_CUR |
PUSH EAX |
mcall 38,[lastcur+4],[lastcur],0 |
POP EAX |
RET |
cfa_AHEADER 0,'DR_CUR',DR_CUR |
PUSH EAX |
mcall 38,[lastcur+4],[lastcur],0x00FF00FF |
POP EAX |
RET |
COLOR_ORDER equ MENUETOS |
include 'gif_lite.inc' |
cfa_AHEADER 0,'READ_GIF',READ_GIF ;( gif_ptr, out_ptr -- result ) |
push esi |
push edi |
push ebp |
mov edi, eax |
mov esi,[ebp] |
mov eax,os_work |
call ReadGIF |
pop ebp |
pop edi |
pop esi |
add ebp,4 |
RET |
;=============================================================== |
cursor dd screen_buf |
fRed dd 1 |
last_ebp dd 0 |
include 'amain.asm' |
FINFO: |
.mode dd 0 |
dd 0 |
.blk dd 1 |
.buf dd 0 |
.work dd os_work |
.path: |
if SYSTEM eq MEOS |
; .path db 0 |
; .path db '/HD/1/FORTH/AUTORUN.DAT',0 |
; db '/RD/1/AUTOLOAD.F' |
else |
db '/RD/1/AUTOLOAD.F' |
; db '/RD/1/EXAMPLE.F' |
; db '/RD/1/PICTURE.F' |
; db '/RD/1/AUTORUN.DAT' |
; db '/HD/1/FORTH/AUTORUN.DAT' |
end if |
db 0 |
.end_path: |
rb 256-($-.path) |
lastcur dd 0,0 |
I_END: |
squote_buf rb 1024 |
sys_v rd 6 |
screen_buf: |
; sc_end: |
rb 4096 |
pinfo process_information |
os_work rb 16*1024 |
CTOP = $ ;next available memory in code dictionary |
;============================================================= |
/programs/develop/SPForth/meforth_samples/autoload.f |
---|
0,0 → 1,41 |
VARIABLE wd 256 ALLOT |
: setwd ( uaddr) |
COUNT 1+ SWAP 1- SWAP wd SWAP CMOVE ; |
: _wd |
$" /rd/1/" setwd ; _wd |
: "/ [CHAR] / ; |
: strcat ( uaddr1 uaddr2 -- uaddr1+uaddr2) |
>R DUP COUNT ( ua1 a1 c1) |
>R R@ ( ua1 a1 c1) |
+ OVER R> R@ SWAP >R ( ua1 ea1 ua1 ua1) |
C@ R> + ( ua1 ea1 ua1 u+u2 ) |
SWAP C! ( ua1 ea1 ) |
R> COUNT ( ua1 ea1 a2 c2) |
>R |
SWAP R> CMOVE ; |
: add/ ( uaddr -- uaddr/) |
DUP DUP COUNT SWAP DROP + C@ "/ = IF ELSE $" /" strcat THEN ; |
: cut/ ( uaddr -- uaddr w/o slash) |
COUNT OVER SWAP + 1- ( ua1 lasta1) |
DUP C@ "/ = IF 1- THEN .S |
BEGIN 2DUP < WHILE 4 . DUP C@ "/ = IF OVER - OVER 1- C! 1- LEAVE ELSE 1- THEN |
REPEAT ; |
: t $" cat" $" dog" strcat COUNT TYPE ; |
: makepath ( path normalizer: uaddr1 uaddr2 -- uaddr ) |
DUP 1+ C@ [CHAR] / = IF SWAP DROP ELSE DUP strcat THEN |
add/ ; |
: pwd ( print working directory: -- ) |
CR wd COUNT TYPE ; |
: cd ( change directory) |
wd BL WORD makepath setwd ; |
/programs/develop/SPForth/meforth_samples/autorun2.f |
---|
0,0 → 1,15 |
: >asciiz + 0 SWAP C! ; |
: >path |
finfo @ 20 + 0 finfo @ 8 + ! DUP >R SWAP DUP >R CMOVE R> R> SWAP >asciiz ; |
: >param |
OVER finfo @ 8 + ! >asciiz ; |
: exec |
16 finfo @ ! finfo @ 58 sys2 ." started, code=" . CR 5 sys2 DROP ; |
S" /RD/1/GRSCREEN" >path 99 exec |
S" /RD/1/@RB" >path 30 exec |
S" /RD/1/@SS" >path 30 exec |
S" /RD/1/@PANEL" >path 30 exec |
S" /RD/1/SETUP" >path S" BOOT" >param 30 exec |
S" /RD/1/ICON2" >path S" BOOT" >param 10 exec |
S" /RD/1/board" >path 25 exec |
BYE |
/programs/develop/SPForth/meforth_samples/example.f |
---|
0,0 → 1,53 |
DECIMAL |
S" /rd/1/menuet.f" INCLUDED |
: not_emit |
emit_proc DUP @ NOT SWAP ! ; |
new_reg wnd_size |
CREATE Music $3090 , \ $90 C, $30 C, 0 C, |
: my_wnd |
12 ax 1 bx sysv DROP $805080D0 DUP $02AABBCC 200 50 << 200 DUP << 0 |
sys6 2 bx sysv 2DROP |
$10DDEEFF $" " COUNT 8 DUP sys_print |
0 $" ¦¬¨â¥ «î¡ãî ª« ¢¨èã" COUNT 8 30 sys_print |
$6688DD 1 5 12 << 200 19 - 12 << 8 sys5 DROP ; |
: my_wnd_resize |
200 dx 50 si 67 ax -1 DUP bx cx sysv DROP ; |
: my_key |
2 sys1 8 RSHIFT DUP 96 = IF not_emit DROP ELSE Music DUP si 1+ C! |
55 DUP ax bx sysv DROP THEN ; |
: my_btn |
17 sys1 8 RSHIFT ." Pressed button #" DUP . CR 1 = IF BYE THEN ; |
CREATE handlers ' my_wnd , ' my_key , ' my_btn , |
VARIABLE hnd |
: msg_loop_console ( subs -- ) |
CR DUP hnd ! @EXECUTE my_wnd_resize |
0 emit_proc ! |
BEGIN |
10 sys1 ?DUP |
IF |
1- |
CELLS hnd @ + @EXECUTE |
emit_proc @ |
IF |
WINDOW KEY 96 = |
IF |
not_emit hnd @ @EXECUTE my_wnd_resize |
ELSE |
EXIT |
THEN |
THEN |
THEN |
AGAIN ; |
: new_me ( new main loop) |
handlers msg_loop_console ; |
/programs/develop/SPForth/meforth_samples/locals.f |
---|
0,0 → 1,34 |
( § à ®¢ : |
⥪ ¤ ëå ª ª 㨢¥àá «ì®¥ á।á⢮ ¤«ï ¯¥à¥¤ ç¨ ¯ à ¬¥â஢ ¨ १ã«ìâ ⮢ |
¬¥¦¤ã ä®àâ-á«®¢ ¬¨ ¨¬¥¥â ¥®á¯®à¨¬ë¥ ¯à¥¨¬ãé¥á⢠. ¬¥á⥠á ⥬ ¢ãâਠ|
®¯à¥¤¥«¥¨ï ® ¨á¯®«ì§ã¥âáï ¤«ï ¯à®¬¥¦ãâ®çëå ¢ëç¨á«¥¨© ¨ à §¬¥é¥¨ï § 票©, |
ª®â®àë¥ ¢ ¨å ãç áâ¢ãîâ. â® ¢ë§ë¢ ¥â ®¯à¥¤¥«¥ë¥ âà㤮á⨠¤«ï ¤®áâ㯠ª |
â ª®¬ã «®ª «ì®¬ã § 票î, ¯®áª®«ìªã ¥£® ¯®«®¦¥¨¥ ®â®á¨â¥«ì® ¢¥àè¨ë á⥪ |
¯®áâ®ï® ¬¥ï¥âáï. |
«ï ã¯à®é¥¨ï à ¡®âë ¦¥« â¥«ì® § ªà¥¯¨âì § «®ª «ìë¬ ®¡ê¥ªâ ¬¨ ¢ãâਠ|
®¯à¥¤¥«¥¨ï ¥ª®â®àë¥ ¯®áâ®ïë¥ ¨¬¥ , ç¥à¥§ ª®â®àë¥ ¨ ®áãé¥á⢫ïâì ¤®áâ㯠ª |
¨¬. |
¬¥î騩áï ¢ ï§ëª¥ ¬¥å ¨§¬ ®¯¨á ¨ï ¯¥à¥¬¥ëå ¢ ¤ ®¬ á«ãç ¥ ¥ ¯®¤å®¤¨â, |
¯®áª®«ìªã ᮧ¤ ¥â £«®¡ «ìë¥ ¨¬¥ , ⮣¤ ª ª âॡã¥âáï ¨¬¥®¢ âì «®ª «ìë¥ |
®¡ê¥ªâë, ãç¨âë¢ ï ¯à¨ í⮬ ¢®§¬®¦®áâì ४ãàᨢëå ¢ë§®¢®¢. ®áâ ¢«¥ãî § ¤ çã |
à¥è ¥â ¢ª«î票¥ ¢ à ¡®âã ¤®¯®«¨â¥«ì®£® á⥪ , ®â«¨ç®£® ®â á⥪ ¤ ëå. |
®ª «ìë¥ § 票ï à §¬¥é îâáï ¢ í⮬ á⥪¥ ¯à¨ ¢å®¤¥ ¢ ®¯à¥¤¥«¥¨¥ ¨ 㡨à îâáï |
¨§ ¥£® ¯à¨ ¢ë室¥. |
¢á¥ ¢à¥¬ï ¨á¯®«¥¨ï ®¯à¥¤¥«¥¨ï ¨å ¯®«®¦¥¨¥ ®â®á¨â¥«ì® ¢¥àè¨ë á⥪ |
®áâ ¥âáï ¯®áâ®ïë¬, íâ® ¯®§¢®«ï¥â ®à£ ¨§®¢ âì ®ç¥ì ¯à®á⮩ ¤®áâ㯠ª â ª¨¬ |
§ 票ï¬. |
à®á⥩è ï ¤áâனª ¤ ï§ëª®¬ ®àâ, ª®â®à ï ¯®§¢®«ï¥â à ¡®â âì á «®ª «ì묨 |
¯¥à¥¬¥ë¬¨, ¢ë£«ï¤¨â â ª:) |
100 ALLOT HERE CONSTANT LP0 ( . ) |
VARIABLE LP ( ) |
: INITLP ( ->) LP0 LP ! ; INITLP |
: LOC ( N: ->) 1+ CELLS LP @ OVER - DUP LP ! ! ; |
: UNLOC ( ->) LP @ @ LP +! ; |
: @@ ( N: ->) CREATE , DOES> ( PFA->A) @ CELLS LP @ + @ ; |
: !! ( N: ->) CREATE , DOES> ( A,PFA->) @ CELLS LP @ + ! ; |
1 @@ @1 2 @@ @2 3 @@ @3 4 @@ @4 5 @@ @5 ( ..) |
1 !! !1 2 !! !2 3 !! !3 4 !! !4 5 !! !5 ( ..) |
/programs/develop/SPForth/meforth_samples/menuet.f |
---|
0,0 → 1,27 |
\ S" /rd/1/1st.4th" INCLUDED |
S" /rd/1/locals.f" INCLUDED |
\ : sys_wnd ( border, header, workarea, y, x -- ) |
\ 1 12 sys2 DROP 0 sys6 2 12 sys2 2DROP ; |
\ : thread ( stack, entry -- ) |
\ 1 51 sys4 DROP ; |
: >regs |
reg_struc ! ; |
: new_reg |
CREATE 6 CELLS ALLOT LAST @ NAME> 9 + >regs ; |
: ax reg_struc @ ! ; |
: bx reg_struc @ 1 CELLS + ! ; |
: cx reg_struc @ 2 CELLS + ! ; |
: dx reg_struc @ 3 CELLS + ! ; |
: si reg_struc @ 4 CELLS + ! ; |
: di reg_struc @ 5 CELLS + ! ; |
: << ( x,y -- x<<16+y ) |
SWAP 16 LSHIFT + ; |
: sys_print ( color, stra, u, x, y -- ) |
<< >R SWAP ROT R> 4 sys5 DROP ; |
/programs/develop/SPForth/meforth_samples/picture.f |
---|
0,0 → 1,109 |
DECIMAL |
S" /rd/1/menuet.f" INCLUDED |
: not_emit |
emit_proc DUP @ NOT SWAP ! ; |
new_reg wnd_size |
CREATE Music $3090 , \ $90 C, $30 C, 0 C, |
73 CONSTANT img.width |
22 CONSTANT img.height |
CREATE raw img.width img.height * 3 * 16 + ALLOT |
: my_wnd |
12 ax 1 bx sysv DROP $805080D0 DUP $02AABBCC 200 150 << 200 DUP << 0 |
sys6 2 bx sysv 2DROP |
$10DDEEFF $" " COUNT 8 DUP sys_print |
0 $" ¦¬¨â¥ «î¡ãî ª« ¢¨èã" COUNT 8 30 sys_print |
$6688DD 1 5 12 << 200 19 - 12 << 8 sys5 DROP |
30 DUP << img.width img.height << raw 12 + 7 sys4 ; |
: my_wnd_resize |
200 dx 50 si 67 ax -1 DUP bx cx sysv DROP ; |
: my_key |
2 sys1 8 RSHIFT DUP 96 = IF not_emit DROP ELSE Music DUP si 1+ C! |
55 DUP ax bx sysv DROP THEN ; |
: my_btn |
17 sys1 8 RSHIFT ." Pressed button #" DUP . CR 1 = IF BYE THEN ; |
CREATE handlers ' my_wnd , ' my_key , ' my_btn , |
VARIABLE hnd |
: msg_loop_console ( subs -- ) |
CR DUP hnd ! @EXECUTE my_wnd_resize |
0 emit_proc ! |
BEGIN |
10 sys1 ?DUP |
IF |
1- |
CELLS hnd @ + @EXECUTE |
emit_proc @ |
IF |
WINDOW KEY 96 = |
IF |
not_emit hnd @ @EXECUTE my_wnd_resize |
ELSE |
EXIT |
THEN |
THEN |
THEN |
AGAIN ; |
CREATE gif 600 ALLOT |
: new_me ( new main loop) |
gif DUP $" /rd/1/Menu.gif" COUNT READ 2DROP |
gif raw READ_GIF . |
; |
new_me handlers msg_loop_console WORDS |
ABORT |
: ENDOF ( orig1 #of -- orig2 #of ) |
>R ( ïåðåìåñòèòü ñî ñòåêà â ñëó÷àå, åñëè ) |
( ñòåê ïîòîêà óïðàâëåíèÿ ýòî ñòåê äàííûõ. ) |
POSTPONE ELSE |
R> ( ìû äîëæíû òåïåðü âåðíóòü ñ÷åò÷èê íàçàä ) |
; IMMEDIATE |
: ENDCASE ( orig1..orign #of -- ) |
POSTPONE DROP ( óäàëèòü case ïàðàìåòð ) |
0 ?DO |
POSTPONE THEN |
LOOP |
; IMMEDIATE |
[THEN] |
: SS2 ( N ---> S:ÑÓÌÌÀ ÊÂÀÄÐÀÒÎÂ ÎÒ 1 ÄÎ N) |
0 SWAP ( 0,N S[0]=0 ) |
1+ 1 ( S[0],N+1,1 ) |
DO I ( S[I-1],I ) |
DUP * + ( S[I] S[I]=S[I-1]+I*I) |
LOOP ; ( S[N] ) |
5 SS2 . CR |
: test 10 0 ?DO I . LEAVE LOOP 4 ; |
test |
: priem ( N:ÍÎÌÅÐ ÄÍß->) CASE |
3 OF ." nepriemn" ENDOF |
1 OF ." priemn" ENDOF |
6 OF ." holiday" ENDOF |
CR . ." - day #?" ABORT |
( ENDCASE ) ." day" ; |
/programs/develop/SPForth/meforth_samples |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/SPForth/proc32.inc |
---|
0,0 → 1,268 |
; Macroinstructions for defining and calling procedures |
macro stdcall proc,[arg] ; directly call STDCALL procedure |
{ common |
if ~ arg eq |
reverse |
pushd arg |
common |
end if |
call proc } |
macro invoke proc,[arg] ; indirectly call STDCALL procedure |
{ common |
if ~ arg eq |
reverse |
pushd arg |
common |
end if |
call [proc] } |
macro ccall proc,[arg] ; directly call CDECL procedure |
{ common |
size@ccall = 0 |
if ~ arg eq |
reverse |
pushd arg |
size@ccall = size@ccall+4 |
common |
end if |
call proc |
if size@ccall |
add esp,size@ccall |
end if } |
macro cinvoke proc,[arg] ; indirectly call CDECL procedure |
{ common |
size@ccall = 0 |
if ~ arg eq |
reverse |
pushd arg |
size@ccall = size@ccall+4 |
common |
end if |
call [proc] |
if size@ccall |
add esp,size@ccall |
end if } |
macro proc [args] ; define procedure |
{ common |
match name params, args> |
\{ define@proc name,<params \} } |
prologue@proc equ prologuedef |
macro prologuedef procname,flag,parmbytes,localbytes,reglist |
{ if parmbytes | localbytes |
push ebp |
mov ebp,esp |
if localbytes |
sub esp,localbytes |
end if |
end if |
irps reg, reglist \{ push reg \} } |
epilogue@proc equ epiloguedef |
macro epiloguedef procname,flag,parmbytes,localbytes,reglist |
{ irps reg, reglist \{ reverse pop reg \} |
if parmbytes | localbytes |
leave |
end if |
if (flag and 10000b) | (parmbytes=0) |
retn |
else |
retn parmbytes |
end if } |
macro define@proc name,statement |
{ local params,flag,regs,parmbytes,localbytes,current |
if used name |
name: |
match =stdcall args, statement \{ params equ args |
flag = 11b \} |
match =stdcall, statement \{ params equ |
flag = 11b \} |
match =c args, statement \{ params equ args |
flag = 10001b \} |
match =c, statement \{ params equ |
flag = 10001b \} |
match =params, params \{ params equ statement |
flag = 0 \} |
virtual at ebp+8 |
match =uses reglist=,args, params \{ regs equ reglist |
params equ args \} |
match =regs =uses reglist, regs params \{ regs equ reglist |
params equ \} |
match =regs, regs \{ regs equ \} |
match =,args, params \{ defargs@proc args \} |
match =args@proc args, args@proc params \{ defargs@proc args \} |
parmbytes = $ - (ebp+8) |
end virtual |
name # % = parmbytes/4 |
all@vars equ |
current = 0 |
match prologue:reglist, prologue@proc:<regs> \{ prologue name,flag,parmbytes,localbytes,reglist \} |
macro locals |
\{ virtual at ebp-localbytes+current |
macro label . \\{ deflocal@proc .,:, \\} |
struc db [val] \\{ \common deflocal@proc .,db,val \\} |
struc dw [val] \\{ \common deflocal@proc .,dw,val \\} |
struc dp [val] \\{ \common deflocal@proc .,dp,val \\} |
struc dd [val] \\{ \common deflocal@proc .,dd,val \\} |
struc dt [val] \\{ \common deflocal@proc .,dt,val \\} |
struc dq [val] \\{ \common deflocal@proc .,dq,val \\} |
struc rb cnt \\{ deflocal@proc .,rb cnt, \\} |
struc rw cnt \\{ deflocal@proc .,rw cnt, \\} |
struc rp cnt \\{ deflocal@proc .,rp cnt, \\} |
struc rd cnt \\{ deflocal@proc .,rd cnt, \\} |
struc rt cnt \\{ deflocal@proc .,rt cnt, \\} |
struc rq cnt \\{ deflocal@proc .,rq cnt, \\} \} |
macro endl |
\{ purge label |
restruc db,dw,dp,dd,dt,dq |
restruc rb,rw,rp,rd,rt,rq |
restruc byte,word,dword,pword,tword,qword |
current = $-(ebp-localbytes) |
end virtual \} |
macro ret operand |
\{ match any, operand \\{ retn operand \\} |
match , operand \\{ match epilogue:reglist, epilogue@proc:<regs> |
\\\{ epilogue name,flag,parmbytes,localbytes,reglist \\\} \\} \} |
macro finish@proc \{ localbytes = (((current-1) shr 2)+1) shl 2 |
end if \} } |
macro defargs@proc [arg] |
{ common |
if ~ arg eq |
forward |
local ..arg,current@arg |
match argname:type, arg |
\{ current@arg equ argname |
label ..arg type |
argname equ ..arg |
if dqword eq type |
dd ?,?,?,? |
else if tbyte eq type |
dd ?,?,? |
else if qword eq type | pword eq type |
dd ?,? |
else |
dd ? |
end if \} |
match =current@arg,current@arg |
\{ current@arg equ arg |
arg equ ..arg |
..arg dd ? \} |
common |
args@proc equ current@arg |
forward |
restore current@arg |
common |
end if } |
macro deflocal@proc name,def,[val] |
{ common |
match vars, all@vars \{ all@vars equ all@vars, \} |
all@vars equ all@vars name |
forward |
local ..var,..tmp |
..var def val |
match =?, val \{ ..tmp equ \} |
match any =dup (=?), val \{ ..tmp equ \} |
match tmp : value, ..tmp : val |
\{ tmp: end virtual |
initlocal@proc ..var,def value |
virtual at tmp\} |
common |
match first rest, ..var, \{ name equ first \} } |
macro initlocal@proc name,def |
{ virtual at name |
def |
size@initlocal = $ - name |
end virtual |
position@initlocal = 0 |
while size@initlocal > position@initlocal |
virtual at name |
def |
if size@initlocal - position@initlocal < 2 |
current@initlocal = 1 |
load byte@initlocal byte from name+position@initlocal |
else if size@initlocal - position@initlocal < 4 |
current@initlocal = 2 |
load word@initlocal word from name+position@initlocal |
else |
current@initlocal = 4 |
load dword@initlocal dword from name+position@initlocal |
end if |
end virtual |
if current@initlocal = 1 |
mov byte [name+position@initlocal],byte@initlocal |
else if current@initlocal = 2 |
mov word [name+position@initlocal],word@initlocal |
else |
mov dword [name+position@initlocal],dword@initlocal |
end if |
position@initlocal = position@initlocal + current@initlocal |
end while } |
macro endp |
{ purge ret,locals,endl |
finish@proc |
purge finish@proc |
restore regs@proc |
match all,args@proc \{ restore all \} |
restore args@proc |
match all,all@vars \{ restore all \} } |
macro local [var] |
{ common |
locals |
forward done@local equ |
match varname[count]:vartype, var |
\{ match =BYTE, vartype \\{ varname rb count |
restore done@local \\} |
match =WORD, vartype \\{ varname rw count |
restore done@local \\} |
match =DWORD, vartype \\{ varname rd count |
restore done@local \\} |
match =PWORD, vartype \\{ varname rp count |
restore done@local \\} |
match =QWORD, vartype \\{ varname rq count |
restore done@local \\} |
match =TBYTE, vartype \\{ varname rt count |
restore done@local \\} |
match =DQWORD, vartype \\{ label varname dqword |
rq count+count |
restore done@local \\} |
match , done@local \\{ virtual |
varname vartype |
end virtual |
rb count*sizeof.\#vartype |
restore done@local \\} \} |
match :varname:vartype, done@local:var |
\{ match =BYTE, vartype \\{ varname db ? |
restore done@local \\} |
match =WORD, vartype \\{ varname dw ? |
restore done@local \\} |
match =DWORD, vartype \\{ varname dd ? |
restore done@local \\} |
match =PWORD, vartype \\{ varname dp ? |
restore done@local \\} |
match =QWORD, vartype \\{ varname dq ? |
restore done@local \\} |
match =TBYTE, vartype \\{ varname dt ? |
restore done@local \\} |
match =DQWORD, vartype \\{ label varname dqword |
dq ?,? |
restore done@local \\} |
match , done@local \\{ varname vartype |
restore done@local \\} \} |
match ,done@local |
\{ var |
restore done@local \} |
common |
endl } |
/programs/develop/SPForth/src/KOL/spf_kol_con_io.f |
---|
0,0 → 1,91 |
( ®á®«ìë© ¢¢®¤-¢ë¢®¤. |
) |
: NMNM 0 IF THEN ; |
: ACCEPT0 ( c-addr +n1 -- +n2 ) \ 94 |
\ ¢¥á⨠áâப㠬 ªá¨¬ «ì®© ¤«¨ë ¤® +n1 ᨬ¢®«®¢. |
\ ᪫îç¨â¥«ì ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ +n1 0 ¨«¨ ¡®«ìè¥ 32767. |
\ â®¡à ¦ âì ᨬ¢®«ë ¯® ¬¥à¥ ¢¢®¤ . |
\ ¢®¤ ¯à¥àë¢ ¥âáï, ª®£¤ ¯®«ãç¥ á¨¬¢®« "ª®¥æ áâப¨". |
\ ¨ç¥£® ¥ ¤®¡ ¢«ï¥âáï ¢ áâபã. |
\ +n2 - ¤«¨ áâப¨, § ¯¨á ®© ¯® ¤à¥áã c-addr. |
OVER + 1- OVER \ SA EA A |
NMNM |
BEGIN KEY \ SA EA A C |
\ ." {" DUP H. ." }" |
DUP 10 = OVER 13 = OR 0= |
WHILE |
DUP 0x1B = IF DROP DUP C@ EMIT ELSE |
DUP 8 = IF EMIT BL EMIT 8 EMIT |
2- >R OVER 1- R> UMAX ELSE |
DUP 9 = IF DROP DUP 8 BLANK |
>R OVER R> \ SA EA SA A |
SWAP OVER - \ SA EA SA A-SA |
8 / 1+ 8 * + ELSE DUP EMIT OVER C! |
THEN THEN |
THEN 1+ OVER UMIN \ SA EA A |
REPEAT \ HEX CR DEPTH .SN |
\ SA EA A C |
DROP NIP - NEGATE ; |
VECT ACCEPT |
' ACCEPT0 TO ACCEPT |
: TYPE_M ( c-addr1 u --- ) |
\ Output the string starting at c-addr and length u to the terminal. |
OVER + SWAP BEGIN 2DUP - WHILE DUP C@ EMIT_N CHAR+ REPEAT |
CC_LINES |
2DROP |
; |
: _TYPE ( c-addr1 u --- ) |
\ Output the string starting at c-addr and length u to the terminal. |
2DUP SCR_BUF AT-XY? 80 * + + SWAP CMOVE |
SCR_TYPE |
; |
\ : ZTYPE ( ADDR -- ) |
\ DUP >R LZTYPE DROP RDROP ; |
: _CR ( -- ) \ 94 |
\ ¥à¥¢®¤ áâப¨. |
13 EMIT |
; |
VECT CR ' _CR TO CR |
: _EMIT ( x -- ) \ 94 |
\ ᫨ x - ¨§®¡à ¦ ¥¬ë© ᨬ¢®«, ¢ë¢¥á⨠¥£® ¤¨á¯«¥©. |
\ DUP SCR_BUF AT-XY? 80 * + + C! |
DUP 0xD = IF DROP SCR_CR EXIT THEN |
DUP 0x8 = IF DROP 0x00800000 |
&AT-XY W@ 0xD * 0x15 + 16 LSHIFT 0xB OR |
&AT-XY 2+ W@ 0x6 * 16 LSHIFT 6 OR |
13 SYS4 DROP |
AT-XY? >R 1- R> AT-XY |
EXIT THEN |
>R RP@ 1 _TYPE RDROP |
; |
: SWITCH_CHAR ( c1 -- c2 ) |
DUP [CHAR] a [CHAR] z 1+ WITHIN |
OVER [CHAR] A [CHAR] Z 1+ WITHIN OR |
IF 32 XOR THEN |
; |
: KEY_M DR_CUR BEGIN 0 ?KEY UNTIL CL_CUR SWITCH_CHAR ; |
: _KEY |
CORSOR_DROW |
BEGIN KEY? UNTIL &KEY C@ &KEY 0! SWITCH_CHAR |
; |
: PAGE |
draw_window |
SCR_BUF SCR_WIDTH SCR_HEIGHT * BLANK |
0 0 AT-XY |
DRAW_LINS |
; |
/programs/develop/SPForth/src/KOL/spf_kol_const.f |
---|
0,0 → 1,21 |
( Windows-ª®áâ âë, ¥®¡å®¤¨¬ë¥ ¯à¨ ¢/¢. |
) |
0x80000000 CONSTANT R/O ( -- fam ) \ 94 FILE |
\ fam - ®¯à¥¤¥«¥®¥ ॠ«¨§ 樥© § 票¥ ¤«ï ¢ë¡®à ¬¥â®¤ ¤®áâ㯠|
\ ª ä ©«ã "⮫쪮 ¤«ï ç⥨ï" |
0x40000000 CONSTANT W/O ( -- fam ) \ 94 FILE |
\ fam - ®¯à¥¤¥«¥®¥ ॠ«¨§ 樥© § 票¥ ¤«ï ¢ë¡®à ¬¥â®¤ ¤®áâ㯠|
\ ª ä ©«ã "⮫쪮 ¤«ï § ¯¨á¨" |
0xC0000000 CONSTANT R/W ( -- fam ) \ 94 FILE |
\ fam - ®¯à¥¤¥«¥®¥ ॠ«¨§ 樥© § 票¥ ¤«ï ¢ë¡®à ¬¥â®¤ ¤®áâ㯠|
\ ª ä ©«ã "ç⥨¥/§ ¯¨áì" |
DECIMAL |
\ 7 CONSTANT ZZZ |
/programs/develop/SPForth/src/KOL/spf_kol_io.f |
---|
0,0 → 1,139 |
( ©«®¢ë© ¢¢®¤-¢ë¢®¤. |
) |
CREATE LT 0xD C, 0xA C, 0xD C, 0xA C, \ line terminator |
CREATE LTL 2 , \ line terminator length |
: DOS-LINES ( -- ) |
0xA0D LT ! 2 LTL ! |
; |
: UNIX-LINES ( -- ) |
0xA0A LT ! 1 LTL ! |
; |
: READ-FILE ( c-addr u1 fileid -- u2 ior ) \ 94 FILE |
\ à®ç¥áâì u1 ᨬ¢®«®¢ ¢ c-addr ¨§ ⥪ã饩 ¯®§¨æ¨¨ ä ©« , |
\ ¨¤¥â¨ä¨æ¨à㥬®£® fileid. |
\ ᫨ u1 ᨬ¢®«®¢ ¯à®ç¨â ® ¡¥§ ¨áª«î票©, ior ®«ì ¨ u2 à ¢¥ u1. |
\ ᫨ ª®¥æ ä ©« ¤®á⨣ãâ ¤® ¯à®ç⥨ï u1 ᨬ¢®«®¢, ior ®«ì |
\ ¨ u2 - ª®«¨ç¥á⢮ ॠ«ì® ¯à®ç¨â ëå ᨬ¢®«®¢. |
\ ᫨ ®¯¥à æ¨ï ¯à®¨§¢®¤¨âáï ª®£¤ § 票¥, ¢®§¢à é ¥¬®¥ |
\ FILE-POSITION à ¢® § 票î, ¢®§¢à é ¥¬®¬ã FILE-SIZE ¤«ï ä ©« |
\ ¨¤¥â¨ä¨æ¨à㥬®£® fileid, ior ¨ u2 㫨. |
\ ᫨ ¢®§¨ª« ¨áª«îç¨â¥«ì ï á¨âã æ¨ï, â® ior - ®¯à¥¤¥«¥ë© ॠ«¨§ 樥© |
\ ª®¤ १ã«ìâ â ¢¢®¤ /¢ë¢®¤ , ¨ u2 - ª®«¨ç¥á⢮ ®à¬ «ì® ¯¥à¥¤ ëå ¢ |
\ c-addr ᨬ¢®«®¢. |
\ ¥®¯à¥¤¥«¥ ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ ®¯¥à æ¨ï ¢ë¯®«ï¥âáï, ª®£¤ |
\ § 票¥, ¢®§¢à é ¥¬®¥ FILE-POSITION ¡®«ìè¥ ç¥¬ § 票¥, ¢®§¢à é ¥¬®¥ |
\ FILE-SIZE ¤«ï ä ©« , ¨¤¥â¨ä¨æ¨à㥬®£® fileid, ¨«¨ âॡ㥬 ï ®¯¥à æ¨ï |
\ ¯ëâ ¥âáï ¯à®ç¥áâì ¥§ ¯¨á ãî ç áâì ä ©« . |
\ ®á«¥ § ¢¥àè¥¨ï ®¯¥à 樨 FILE-POSITION ¢®§¢à â¨â á«¥¤ãîéãî ¯®§¨æ¨î |
\ ¢ ä ©«¥ ¯®á«¥ ¯®á«¥¤¥£® ¯à®ç¨â ®£® ᨬ¢®« . |
DUP >R .CODE 0! |
R@ .SIZE ! |
R@ .DATA ! |
R@ 70 SYS2 |
EBX@ SWAP |
DUP 6 = IF DROP 0 THEN |
DUP 0= |
IF R@ .FIRST D@ |
R@ .SIZE @ 0 D+ |
R@ .FIRST D! |
THEN |
RDROP |
; |
22 CONSTANT MAX_OPEN_FILES |
CREATE FILE_STR_BUF FILE_STR 1+ MAX_OPEN_FILES * ALLOT |
: FALLOC ( -- 0|fid ) |
FILE_STR_BUF FILE_STR MAX_OPEN_FILES * BOUNDS |
BEGIN DUP .NAME @ 0= |
IF NIP EXIT THEN |
FILE_STR + 2DUP U< |
UNTIL 2DROP 0 |
; |
: OPEN-FILE ( c-addr u fam -- fileid ior ) |
\ âªàëâì ä ©« á ¨¬¥¥¬, § ¤ ë¬ áâப®© c-addr u, á ¬¥â®¤®¬ ¤®áâ㯠fam. |
\ ¬ëá« § 票ï fam ®¯à¥¤¥«¥ ॠ«¨§ 樥©. |
\ ᫨ ä ©« ãá¯¥è® ®âªàëâ, ior ®«ì, fileid ¥£® ¨¤¥â¨ä¨ª â®à, ¨ ä ©« |
\ ¯®§¨æ¨®¨à®¢ ç «®. |
\ ç¥ ior - ®¯à¥¤¥«¥ë© ॠ«¨§ 樥© ª®¤ १ã«ìâ â ¢¢®¤ /¢ë¢®¤ , |
\ ¨ fileid ¥®¯à¥¤¥«¥. |
DROP |
\ FILE_STR |
FALLOC DUP |
IF |
>R |
R@ FILE_STR ERASE |
R@ .NAME SWAP MOVE |
R> 0 EXIT |
THEN -1 |
; |
: CLOSE-FILE ( fileid -- ior ) \ 94 FILE |
\ ªàëâì ä ©«, § ¤ ë© fileid. |
.NAME 0! 0 |
; |
USER _fp1 |
USER _fp2 |
USER _addr |
: READ-LINE ( c-addr u1 fileid -- u2 flag ior ) \ 94 FILE |
\ à®ç¥áâì á«¥¤ãîéãî áâப㠨§ ä ©« , § ¤ ®£® fileid, ¢ ¯ ¬ïâì |
\ ¯® ¤à¥áã c-addr. ¨â ¥âáï ¥ ¡®«ìè¥ u1 ᨬ¢®«®¢. ® ¤¢ãå |
\ ®¯à¥¤¥«¥ëå ॠ«¨§ 樥© ᨬ¢®«®¢ "ª®¥æ áâப¨" ¬®£ãâ ¡ëâì |
\ ¯à®ç¨â ë ¢ ¯ ¬ïâì § ª®æ®¬ áâப¨, ® ¥ ¢ª«îç¥ë ¢ áç¥â稪 u2. |
\ ãä¥à áâப¨ c-addr ¤®«¦¥ ¨¬¥âì à §¬¥à ª ª ¬¨¨¬ã¬ u1+2 ᨬ¢®« . |
\ ᫨ ®¯¥à æ¨ï ãᯥè , flag "¨á⨠" ¨ ior ®«ì. ᫨ ª®¥æ áâப¨ |
\ ¯®«ãç¥ ¤® ⮣® ª ª ¯à®ç¨â ë u1 ᨬ¢®«®¢, â® u2 - ç¨á«® ॠ«ì® |
\ ¯à®ç¨â ëå ᨬ¢®«®¢ (0<=u2<=u1), ¥ áç¨â ï ᨬ¢®«®¢ "ª®¥æ áâப¨". |
\ ®£¤ u1=u2 ª®¥æ áâப¨ 㦥 ¯®«ãç¥. |
\ ᫨ ®¯¥à æ¨ï ¯à®¨§¢®¤¨âáï, ª®£¤ § 票¥, ¢®§¢à é ¥¬®¥ |
\ FILE-POSITION à ¢® § 票î, ¢®§¢à é ¥¬®¬ã FILE-SIZE ¤«ï ä ©« , |
\ ¨¤¥â¨ä¨æ¨à㥬®£® fileid, flag "«®¦ì", ior ®«ì, ¨ u2 ®«ì. |
\ ᫨ ior ¥ ®«ì, â® ¯à®¨§®è« ¨áª«îç¨â¥«ì ï á¨âã æ¨ï ¨ ior - |
\ ®¯à¥¤¥«¥ë© ॠ«¨§ 樥© ª®¤ १ã«ìâ â ¢¢®¤ -¢ë¢®¤ . |
\ ¥®¯à¥¤¥«¥ ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ ®¯¥à æ¨ï ¢ë¯®«ï¥âáï, ª®£¤ |
\ § 票¥, ¢®§¢à é ¥¬®¥ FILE-POSITION ¡®«ìè¥ ç¥¬ § 票¥, ¢®§¢à é ¥¬®¥ |
\ FILE-SIZE ¤«ï ä ©« , ¨¤¥â¨ä¨æ¨à㥬®£® fileid, ¨«¨ âॡ㥬 ï ®¯¥à æ¨ï |
\ ¯ëâ ¥âáï ¯à®ç¥áâì ¥§ ¯¨á ãî ç áâì ä ©« . |
\ ®á«¥ § ¢¥àè¥¨ï ®¯¥à 樨 FILE-POSITION ¢®§¢à â¨â á«¥¤ãîéãî ¯®§¨æ¨î |
\ ¢ ä ©«¥ ¯®á«¥ ¯®á«¥¤¥£® ¯à®ç¨â ®£® ᨬ¢®« . |
DUP >R |
FILE-POSITION IF 2DROP 0 0 THEN _fp1 ! _fp2 ! |
1+ |
OVER _addr ! |
R@ READ-FILE ?DUP IF NIP RDROP 0 0 ROT EXIT THEN |
DUP >R 0= IF RDROP RDROP 0 0 0 EXIT THEN \ ¡ë«¨ ¢ ª®æ¥ ä ©« |
_addr @ R@ LT 1+ 1 SEARCH |
IF \ ©¤¥ à §¤¥«¨â¥«ì áâப |
DROP _addr @ - |
DUP 1+ S>D _fp2 @ _fp1 @ D+ RDROP R> REPOSITION-FILE DROP |
DUP _addr @ + 1- C@ 0xD = IF 1- THEN |
ELSE \ ¥ ©¤¥ à §¤¥«¨â¥«ì áâப |
2DROP |
R> RDROP \ ¥á«¨ áâப ¯à®ç¨â ¥ ¯®«®áâìî - ¡ã¤¥â à §à¥§ |
THEN |
TRUE 0 |
; |
: FILE-POSITION ( fileid -- ud ior ) \ 94 FILE |
\ ud - ⥪ãé ï ¯®§¨æ¨ï ¢ ä ©«¥, ¨¤¥â¨ä¨æ¨à㥬®¬ fileid. |
.FIRST D@ 0 |
; |
: REPOSITION-FILE ( ud fileid -- ior ) \ 94 FILE |
\ ¥à¥¯®§¨æ¨®¨à®¢ âì ä ©«, ¨¤¥â¨ä¨æ¨àã¥¬ë© fileid, ud. |
.FIRST D! 0 |
; |
/programs/develop/SPForth/src/KOL/spf_kol_memory.f |
---|
0,0 → 1,66 |
( ¯à ¢«¥¨¥ ¯ ¬ïâìî. |
Windows-§ ¢¨á¨¬ë¥ á«®¢ . |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
¥¢¨§¨ï - á¥âï¡àì 1999 |
) |
\ 94 MEMORY |
USER THREAD-HEAP \ åí¤« 娯 ⥪ã饣® ¯®â®ª |
\ VARIABLE USER-OFFS \ ᬥ饨¥ ¢ ®¡« á⨠¤ ëå ¯®â®ª , |
\ £¤¥ ᮧ¤ îâáï ®¢ë¥ ¯¥à¥¬¥ë¥ |
: ERR |
\ IF 0 ELSE DUP GetLastError THEN |
; |
: USER-ALLOT ( n -- ) |
USER-OFFS +! |
\ ¢ë஢塞 ¢ USER-CREATE ~day |
\ USER-OFFS @ + \ á ç « ¯à¨¡ ¢«ï¥¬ |
\ CELL 1- + [ CELL NEGATE ] LITERAL AND \ ¯®â®¬ ¢ëà ¢¨¢ ¥¬ |
\ USER-OFFS ! |
; |
: USER-HERE ( -- n ) |
USER-OFFS @ |
; |
: ALLOCATE ( u -- a-addr ior ) \ 94 MEMORY |
\ á¯à¥¤¥«¨âì u ¡ ©â ¥¯à¥à뢮£® ¯à®áâà á⢠¤ ëå. ª § â¥«ì ¯à®áâà á⢠|
\ ¤ ëå ¥ ¨§¬¥ï¥âáï í⮩ ®¯¥à 樥©. ¥à¢® ç «ì®¥ ᮤ¥à¦¨¬®¥ ¢ë¤¥«¥®£® |
\ ãç á⪠¯ ¬ï⨠¥®¯à¥¤¥«¥®. |
\ ᫨ à á¯à¥¤¥«¥¨¥ ãᯥè®, a-addr - ¢ë஢¥ë© ¤à¥á ç « à á¯à¥¤¥«¥®© |
\ ®¡« á⨠¨ ior ®«ì. |
\ ᫨ ®¯¥à æ¨ï ¥ ¯à®è« , a-addr ¥ ¯à¥¤áâ ¢«ï¥â ¯à ¢¨«ìë© ¤à¥á ¨ ior - |
\ § ¢¨áï騩 ®â ॠ«¨§ 樨 ª®¤ ¢¢®¤ -¢ë¢®¤ . |
5 68 SYS3 0 ; |
: FREE ( a-addr -- ior ) \ 94 MEMORY |
\ ¥àãâì ¥¯à¥àë¢ãî ®¡« áâì ¯à®áâà á⢠¤ ëå, ¨¤¨æ¨à㥬ãî a-addr, á¨á⥬¥ |
\ ¤«ï ¤ «ì¥©è¥£® à á¯à¥¤¥«¥¨ï. a-addr ¤®«¦¥ ¨¤¨æ¨à®¢ âì ®¡« áâì |
\ ¯à®áâà á⢠¤ ëå, ª®â®à ï à ¥¥ ¡ë« ¯®«ãç¥ ¯® ALLOCATE ¨«¨ RESIZE. |
\ ª § â¥«ì ¯à®áâà á⢠¤ ëå ¥ ¨§¬¥ï¥âáï ¤ ®© ®¯¥à 樥©. |
\ ᫨ ®¯¥à æ¨ï ãᯥè , ior ®«ì. ᫨ ®¯¥à æ¨ï ¥ ¯à®è« , ior - § ¢¨áï騩 ®â |
\ ॠ«¨§ 樨 ª®¤ ¢¢®¤ -¢ë¢®¤ . |
5 68 SYS3 DROP 0 ; |
: RESIZE ( a-addr1 u -- a-addr2 ior ) \ 94 MEMORY |
\ §¬¥¨âì à á¯à¥¤¥«¥¨¥ ¥¯à¥à뢮£® ¯à®áâà á⢠¤ ëå, ç¨ î饣®áï á |
\ ¤à¥á a-addr1, à ¥¥ à á¯à¥¤¥«¥®£® ¯® ALLOCATE ¨«¨ RESIZE, u ¡ ©â. |
\ u ¬®¦¥â ¡ëâì ¡®«ìè¥ ¨«¨ ¬¥ìè¥, 祬 ⥪ã騩 à §¬¥à ®¡« áâ¨. |
\ ª § â¥«ì ¯à®áâà á⢠¤ ëå ¥ ¨§¬¥ï¥âáï ¤ ®© ®¯¥à 樥©. |
\ ᫨ ®¯¥à æ¨ï ãᯥè , a-addr2 - ¢ë஢¥ë© ¤à¥á ç « u ¡ ©â |
\ à á¯à¥¤¥«¥®© ¯ ¬ï⨠¨ ior ®«ì. a-addr2 ¬®¦¥â, ® ¥ ¤®«¦¥, ¡ëâì ⥬ ¦¥ |
\ á ¬ë¬, çâ® ¨ a-addr1. ᫨ ®¨ ¥®¤¨ ª®¢ë, § 票ï, ᮤ¥à¦ 騥áï ¢ ®¡« á⨠|
\ a-addr1, ª®¯¨àãîâáï ¢ a-addr2 ¢ ª®«¨ç¥á⢥ ¬¨¨¬ «ì®£® ¨§ à §¬¥à®¢ íâ¨å |
\ ¤¢ãå ®¡« á⥩. ᫨ ®¨ ®¤¨ ª®¢ë, § 票ï, ᮤ¥à¦ 騥áï ¢ ®¡« áâ¨, |
\ á®åà ïîâáï ¤® ¬¨¨¬ «ì®£® ¨§ u ¨«¨ ¯¥à¢® ç «ì®£® à §¬¥à . ᫨ a-addr2 ¥ |
\ â®â ¦¥, çâ® ¨ a-addr1, ®¡« áâì ¯ ¬ï⨠¯® a-addr1 ¢®§¢à é ¥âáï á¨á⥬¥ |
\ ᮣ« á® ®¯¥à 樨 FREE. |
\ ᫨ ®¯¥à æ¨ï ¥ ¯à®è« , a-addr2 à ¢¥ a-addr1, ®¡« áâì ¯ ¬ï⨠a-addr1 ¥ |
\ ¨§¬¥ï¥âáï, ¨ ior - § ¢¨áï騩 ®â ॠ«¨§ 樨 ª®¤ ¢¢®¤ -¢ë¢®¤ . |
THROW ABORT" RESIZE is't in system" |
; |
/programs/develop/SPForth/src/KOL/spf_kol_module.f |
---|
0,0 → 1,40 |
: is_path_delimiter ( c -- flag ) |
DUP [CHAR] \ = SWAP [CHAR] / = OR |
; |
: CUT-PATH ( a u -- a u1 ) |
\ èç ñòðîêè "path\name" âûäåëèòü ñòðîêó "path\" |
OVER + |
BEGIN 2DUP <> WHILE DUP C@ is_path_delimiter 0= WHILE 1- REPEAT 1+ THEN |
\ DUP 0! \ ~ruv (to anfilat): íå äÎëæíî òóò çàòèðàòü ïîäàííûé áóôåð! |
OVER - |
; |
: ModuleName ( -- addr u ) |
ABORT |
; |
: ModuleDirName ( -- addr u ) |
ModuleName CUT-PATH |
; |
: +ModuleDirName ( addr u -- addr2 u2 ) |
2>R |
ModuleDirName 2DUP + |
2R> DUP >R ROT SWAP 1+ MOVE |
R> + |
; |
: +LibraryDirName ( addr u -- addr2 u2 ) |
\ Äîáàâèòü addr u ê ïîëíûé_ïóòü_ïðèëîæåíèÿ+devel\ |
2>R |
ModuleDirName 2DUP + |
S" devel\" ROT SWAP MOVE |
6 + 2DUP + |
2R> DUP >R ROT SWAP 1+ MOVE |
R> + |
; |
: SOURCE-NAME ( -- a u ) |
CURFILE @ DUP IF ASCIIZ> ELSE 0 THEN |
; |
/programs/develop/SPForth/src/KOL/spf_kol_module.f_L |
---|
0,0 → 1,159 |
ZZ=D4 |
: is_path_delimiter ( c -- flag ) |
5A380F 30 38 5A 00 00 11 69 73 5F 70 61 74 68 5F 64 65 08Z...is_path_de |
5A381F 6C 69 6D 69 74 65 72 75 37 5A 00 00 00 00 00 00 limiteru7Z...... |
5A382F 00 . |
DUP [CHAR] \ = SWAP [CHAR] / = OR |
5A3830 89 45 FC 89 45 F8 B8 5C 00 00 00 33 45 F8 83 E8 EüEø¸\...3Eøè |
5A3840 01 1B C0 8B 55 FC 89 45 FC 89 55 F8 B8 2F 00 00 ..ÀUüEüUø¸/.. |
5A3850 00 33 45 F8 83 E8 01 1B C0 0B 45 FC .3Eøè..À.Eü |
; |
5A385C C3 Ã |
: CUT-PATH ( a u -- a u1 ) |
5A385D 70 38 5A 00 00 08 43 55 54 2D 50 41 54 48 14 38 p8Z...CUT-PATH.8 |
5A386D 5A 00 00 Z.. |
\ èç ñòðîêè "path\name" âûäåëèòü ñòðîêó "path\" |
OVER + |
5A3870 89 45 FC 8B 45 00 03 45 FC EüE..Eü |
BEGIN 2DUP <> WHILE DUP C@ is_path_delimiter 0= WHILE 1- REPEAT 1+ THEN |
5A3879 90 90 90 8B 55 00 89 45 FC 89 55 F8 33 45 F8 8B U.EüUø3Eø |
5A3889 45 FC 0F 84 24 00 00 00 89 45 FC 0F B6 00 8D 6D Eü.$...Eü.¶.m |
5A3899 FC E8 91 FF FF FF 0B C0 8B 45 00 8D 6D 04 0F 85 üèÿÿÿ.ÀE.m.. |
5A38A9 05 00 00 00 8D 40 FF EB CA 8D 40 01 ....@ÿëÊ@. |
\ DUP 0! \ ~ruv (to anfilat): íå äÎëæíî òóò çàòèðàòü ïîäàííûé áóôåð! |
OVER - |
5A38B5 89 45 FC 8B 45 00 F7 D8 03 45 FC EüE.÷Ø.Eü |
; |
5A38C0 C3 Ã |
: ModuleName ( -- addr u ) |
5A38C1 E0 38 5A 00 00 0A 4D 6F 64 75 6C 65 4E 61 6D 65 à8Z...ModuleName |
5A38D1 62 38 5A 00 00 00 00 00 00 00 00 00 00 00 00 b8Z............ |
ABORT |
5A38E0 E8 7B F6 FF FF è{öÿÿ |
; |
5A38E5 C3 Ã |
: ModuleDirName ( -- addr u ) |
5A38E6 00 39 5A 00 00 0D 4D 6F 64 75 6C 65 44 69 72 4E .9Z...ModuleDirN |
5A38F6 61 6D 65 C6 38 5A 00 00 00 00 ameÆ8Z.... |
ModuleName CUT-PATH |
5A3900 E8 DB FF FF FF E8 66 FF FF FF èÛÿÿÿèfÿÿÿ |
; |
5A390A C3 Ã |
: +ModuleDirName ( addr u -- addr2 u2 ) |
5A390B 30 39 5A 00 00 0E 2B 4D 6F 64 75 6C 65 44 69 72 09Z...+ModuleDir |
5A391B 4E 61 6D 65 EB 38 5A 00 00 00 00 00 00 00 00 00 Nameë8Z......... |
5A392B 00 00 00 00 00 ..... |
2>R |
5A3930 E8 CB 94 FF FF èËÿÿ |
ModuleDirName 2DUP + |
5A3935 E8 C6 FF FF FF 8B 55 00 89 45 FC 89 55 F8 03 45 èÆÿÿÿU.EüUø.E |
5A3945 F8 8D 6D FC ømü |
2R> DUP >R ROT SWAP 1+ MOVE |
5A3949 E8 D2 94 FF FF 89 45 FC 50 8B 45 FC 8B 55 00 89 èÒÿÿEüPEüU. |
5A3959 45 00 8B 45 04 89 55 04 8B 55 00 89 45 00 8B C2 E.E.U.U.E. |
5A3969 8D 40 01 E8 AF A4 FF FF @.诤ÿÿ |
R> + |
5A3971 89 45 FC 58 03 45 FC EüX.Eü |
; |
5A3978 C3 Ã |
: +LibraryDirName ( addr u -- addr2 u2 ) |
5A3979 A0 39 5A 00 00 0F 2B 4C 69 62 72 61 72 79 44 69 9Z...+LibraryDi |
5A3989 72 4E 61 6D 65 10 39 5A 00 00 00 00 00 00 00 00 rName.9Z........ |
5A3999 00 00 00 00 00 00 00 ....... |
\ Äîáàâèòü addr u ê ïîëíûé_ïóòü_ïðèëîæåíèÿ+devel\ |
2>R |
5A39A0 E8 5B 94 FF FF è[ÿÿ |
ModuleDirName 2DUP + |
5A39A5 E8 56 FF FF FF 8B 55 00 89 45 FC 89 55 F8 03 45 èVÿÿÿU.EüUø.E |
5A39B5 F8 8D 6D FC ømü |
S" devel\" ROT SWAP MOVE |
5A39B9 E8 9E E7 F9 FF 06 64 65 76 65 6C 5C 00 8B 55 00 èçùÿ.devel\.U. |
5A39C9 89 45 00 8B 45 04 89 55 04 8B 55 00 89 45 00 8B E.E.U.U.E. |
5A39D9 C2 E8 41 A4 FF FF ÂèA¤ÿÿ |
6 + 2DUP + |
5A39DF 89 45 FC B8 06 00 00 00 03 45 FC 8B 55 00 89 45 Eü¸.....EüU.E |
5A39EF FC 89 55 F8 03 45 F8 8D 6D FC üUø.Eømü |
2R> DUP >R ROT SWAP 1+ MOVE |
5A39F9 E8 22 94 FF FF 89 45 FC 50 8B 45 FC 8B 55 00 89 è"ÿÿEüPEüU. |
5A3A09 45 00 8B 45 04 89 55 04 8B 55 00 89 45 00 8B C2 E.E.U.U.E. |
5A3A19 8D 40 01 E8 FF A3 FF FF @.èÿ£ÿÿ |
R> + |
5A3A21 89 45 FC 58 03 45 FC EüX.Eü |
; |
5A3A28 C3 Ã |
: SOURCE-NAME ( -- a u ) |
5A3A29 40 3A 5A 00 00 0B 53 4F 55 52 43 45 2D 4E 41 4D @:Z...SOURCE-NAM |
5A3A39 45 7E 39 5A 00 00 00 E~9Z... |
CURFILE @ DUP IF ASCIIZ> ELSE 0 THEN |
5A3A40 E8 4F 2B FA FF 8B 00 0B C0 74 07 E8 D0 A6 FF FF èO+úÿ..Àt.èЦÿÿ |
5A3A50 EB 08 89 45 FC 33 C0 8D 6D FC ë.Eü3Àmü |
; |
5A3A5A C3 Ã |
ZZ=D4 |
/programs/develop/SPForth/src/KOL/spf_kol_sys.f |
---|
0,0 → 1,173 |
( |
) |
Code SYS1 ;( n -- n1 ) |
INT 40H |
RET |
EndCode |
Code SYS2 ;( n n1 -- n2 ) |
MOV EBX, [EBP] |
INT 40H |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code SYS3 ;( n n1 n2 -- n3 ) |
MOV ECX, [EBP+4] |
MOV EBX, [EBP] |
INT 40H |
LEA EBP, [EBP+8] |
RET |
EndCode |
Code SYS4 ;( n n1 n2 n3 -- n4 ) |
MOV EDX, [EBP+8] |
MOV ECX, [EBP+4] |
MOV EBX, [EBP] |
INT 40H |
LEA EBP, [EBP+0CH] |
RET |
EndCode |
Code SYS5 ;( n n1 n2 n3 n4 -- n5 ) |
MOV ESI, [EBP+0CH] |
MOV EDX, [EBP+8] |
MOV ECX, [EBP+4] |
MOV EBX, [EBP] |
INT 40H |
LEA EBP, [EBP+10H] |
RET |
EndCode |
Code SYS6 ;( n n1 n2 n3 n4 n5 -- n6 ) |
PUSH EDI |
MOV EDI, [EBP+10H] |
MOV ESI, [EBP+0CH] |
MOV EDX, [EBP+8] |
MOV ECX, [EBP+4] |
MOV EBX, [EBP] |
INT 40H |
LEA EBP, [EBP+14H] |
POP EDI |
RET |
EndCode |
VARIABLE reg_struc |
Code SYSV ;( -- n ) |
LEA EBP, [EBP-4] |
MOV [EBP], EAX |
MOV EAX, { ' reg_struc } |
PUSH EDI |
MOV EDI, [EAX+14H] |
MOV ESI, [EAX+10H] |
MOV EDX, [EAX+0CH] |
MOV ECX, [EAX+8] |
MOV EBX, [EAX+4] |
MOV EAX, [EAX] |
INT 40H |
POP EDI |
RET |
EndCode |
80 VALUE SCR_WIDTH |
60 VALUE SCR_WIDTH-S |
25 VALUE SCR_HEIGHT |
CREATE &AT-XY 0 , 0 , |
CREATE &KEY 0 , |
CREATE &ATRIB 0x0000FFFF , |
0x0011000D VALUE >PIC |
CREATE SCR_BUF SCR_WIDTH SCR_HEIGHT 1+ * ALLOT |
: AT-XY ( X Y -- ) |
SWAP 16 LSHIFT + &AT-XY ! ; |
: AT-XY? ( -- X Y ) |
&AT-XY 2+ W@ &AT-XY W@ ; |
: __PAGE-UP |
SCR_BUF SCR_WIDTH + SCR_BUF SCR_WIDTH SCR_HEIGHT * CMOVE |
SCR_BUF SCR_WIDTH SCR_HEIGHT 1- * + SCR_WIDTH BLANK |
AT-XY? 1- 0 MAX AT-XY ; |
VECT PAGE-UP |
: ?PAGE-UP ( n -- ) |
&AT-XY 2+ W@ + SCR_WIDTH /MOD SWAP &AT-XY 2+ W! |
&AT-XY W@ + SCR_HEIGHT /MOD |
IF PAGE-UP DROP SCR_HEIGHT 1- THEN &AT-XY W! ; |
: SCR_CR |
&AT-XY @ 0xFFFF AND 1+ &AT-XY ! 0 ?PAGE-UP ; |
: SCR_TYPE ( addr len -- ) |
TUCK SWAP |
&ATRIB @ |
&AT-XY 2+ W@ 0x60000 * |
&AT-XY W@ 0xD * + |
0x00060018 + |
4 SYS5 DROP |
\ &AT-XY 2+ +! |
?PAGE-UP |
; |
: DRAW_LINS |
['] PAGE-UP >BODY @ |
['] NOOP TO PAGE-UP |
AT-XY? |
0 0 AT-XY |
SCR_BUF SCR_WIDTH SCR_HEIGHT * BOUNDS |
DO I SCR_WIDTH SCR_TYPE \ SCR_CR |
SCR_WIDTH |
+LOOP |
AT-XY |
TO PAGE-UP ; |
: _PAGE-UP |
draw_window __PAGE-UP |
DRAW_LINS |
; |
' _PAGE-UP TO PAGE-UP |
CREATE LAST_CUR 0 , 0 , |
: CORSOR_DROW |
0 LAST_CUR 2@ 38 SYS4 DROP |
0x00FF00FF |
&AT-XY W@ 0xD * 0x21 + DUP 16 LSHIFT + |
&AT-XY 2+ W@ 0x6 * 6 + DUP 6 + 16 LSHIFT + |
2DUP LAST_CUR 2! |
38 SYS4 DROP |
; |
: REDRAW |
draw_window |
DRAW_LINS CORSOR_DROW ; |
: EVENT-CASE |
11 SYS1 |
DUP 1 = IF DROP REDRAW EXIT THEN |
DUP 2 = IF DROP 2 SYS1 8 RSHIFT &KEY C! EXIT THEN |
3 = IF -1 SYS1 EXIT THEN ; |
0 |
CELL FIELD .CODE |
2 CELLS FIELD .FIRST \ ¯®§¨æ¨ï ¢ ä ©«¥ (¢ ¡ ©â å) |
CELL FIELD .SIZE \ ᪮«ìª® ¡ ©â R/W |
CELL FIELD .DATA \ 㪠§ â¥«ì ¤ ë¥ |
222 FIELD .NAME \ ASCIIZ-¨¬ï ä ©« |
CONSTANT FILE_STR |
: WINDOW |
draw_window CC_LINES ; |
/programs/develop/SPForth/src/KOL/spf_kol_sys.f_L |
---|
0,0 → 1,752 |
ZZ=D4 ( |
) |
Code SYS1 ;( n -- n1 ) |
59E2C9 E0 E2 59 00 00 04 53 59 53 31 AE E2 59 00 00 00 àâY...SYS1®âY... |
59E2D9 00 00 00 00 00 00 00 ....... |
INT 40H |
59E2E0 CD 40 Í@ |
RET |
59E2E2 C3 Ã |
EndCode |
Code SYS2 ;( n n1 -- n2 ) |
59E2E3 00 E3 59 00 00 04 53 59 53 32 CE E2 59 00 00 00 .ãY...SYS2ÎâY... |
59E2F3 00 00 00 00 00 00 00 00 00 00 00 00 00 ............. |
MOV EBX, [EBP] |
59E300 8B 5D 00 ]. |
INT 40H |
59E303 CD 40 Í@ |
LEA EBP, [EBP+4] |
59E305 8D 6D 04 m. |
RET |
59E308 C3 Ã |
EndCode |
Code SYS3 ;( n n1 n2 -- n3 ) |
59E309 20 E3 59 00 00 04 53 59 53 33 E8 E2 59 00 00 00 ãY...SYS3èâY... |
59E319 00 00 00 00 00 00 00 ....... |
MOV ECX, [EBP+4] |
59E320 8B 4D 04 M. |
MOV EBX, [EBP] |
59E323 8B 5D 00 ]. |
INT 40H |
59E326 CD 40 Í@ |
LEA EBP, [EBP+8] |
59E328 8D 6D 08 m. |
RET |
59E32B C3 Ã |
EndCode |
Code SYS4 ;( n n1 n2 n3 -- n4 ) |
59E32C 40 E3 59 00 00 04 53 59 53 34 0E E3 59 00 00 00 @ãY...SYS4.ãY... |
59E33C 00 00 00 00 .... |
MOV EDX, [EBP+8] |
59E340 8B 55 08 U. |
MOV ECX, [EBP+4] |
59E343 8B 4D 04 M. |
MOV EBX, [EBP] |
59E346 8B 5D 00 ]. |
INT 40H |
59E349 CD 40 Í@ |
LEA EBP, [EBP+0CH] |
59E34B 8D 6D 0C m. |
RET |
59E34E C3 Ã |
EndCode |
Code SYS5 ;( n n1 n2 n3 n4 -- n5 ) |
59E34F 60 E3 59 00 00 04 53 59 53 35 31 E3 59 00 00 00 `ãY...SYS51ãY... |
59E35F 00 . |
MOV ESI, [EBP+0CH] |
59E360 8B 75 0C u. |
MOV EDX, [EBP+8] |
59E363 8B 55 08 U. |
MOV ECX, [EBP+4] |
59E366 8B 4D 04 M. |
MOV EBX, [EBP] |
59E369 8B 5D 00 ]. |
INT 40H |
59E36C CD 40 Í@ |
LEA EBP, [EBP+10H] |
59E36E 8D 6D 10 m. |
RET |
59E371 C3 Ã |
EndCode |
Code SYS6 ;( n n1 n2 n3 n4 n5 -- n6 ) |
59E372 80 E3 59 00 00 04 53 59 53 36 54 E3 59 00 ãY...SYS6TãY. |
PUSH EDI |
59E380 57 W |
MOV EDI, [EBP+10H] |
59E381 8B 7D 10 }. |
MOV ESI, [EBP+0CH] |
59E384 8B 75 0C u. |
MOV EDX, [EBP+8] |
59E387 8B 55 08 U. |
MOV ECX, [EBP+4] |
59E38A 8B 4D 04 M. |
MOV EBX, [EBP] |
59E38D 8B 5D 00 ]. |
INT 40H |
59E390 CD 40 Í@ |
LEA EBP, [EBP+14H] |
59E392 8D 6D 14 m. |
POP EDI |
59E395 5F _ |
RET |
59E396 C3 Ã |
EndCode |
VARIABLE reg_struc |
59E397 AB E3 59 00 00 09 72 65 67 5F 73 74 72 75 63 77 «ãY...reg_strucw |
59E3A7 E3 59 00 00 E8 6C 3C FA FF 00 00 00 00 ãY..èl<úÿ.... |
Code SYSV ;( -- n ) |
59E3B4 D0 E3 59 00 00 04 53 59 53 56 9C E3 59 00 00 00 ÐãY...SYSVãY... |
59E3C4 00 00 00 00 00 00 00 00 00 00 00 00 ............ |
LEA EBP, [EBP-4] |
59E3D0 8D 6D FC mü |
MOV [EBP], EAX |
59E3D3 89 45 00 E. |
MOV EAX, { ' reg_struc } |
59E3D6 B8 AB E3 59 00 ¸«ãY. |
PUSH EDI |
59E3DB 57 W |
MOV EDI, [EAX+14H] |
59E3DC 8B 78 14 x. |
MOV ESI, [EAX+10H] |
59E3DF 8B 70 10 p. |
MOV EDX, [EAX+0CH] |
59E3E2 8B 50 0C P. |
MOV ECX, [EAX+8] |
59E3E5 8B 48 08 H. |
MOV EBX, [EAX+4] |
59E3E8 8B 58 04 X. |
MOV EAX, [EAX] |
59E3EB 8B 00 . |
INT 40H |
59E3ED CD 40 Í@ |
POP EDI |
59E3EF 5F _ |
RET |
59E3F0 C3 Ã |
EndCode |
80 VALUE SCR_WIDTH |
59E3F1 10 E4 59 00 00 09 53 43 52 5F 57 49 44 54 48 B9 .äY...SCR_WIDTH¹ |
59E401 E3 59 00 00 00 00 00 00 00 00 00 00 00 00 00 E8 ãY.............è |
59E411 27 3C FA FF 50 00 00 00 E8 E6 3C FA FF '<úÿP...èæ<úÿ |
60 VALUE SCR_WIDTH-S |
59E41E 40 E4 59 00 00 0B 53 43 52 5F 57 49 44 54 48 2D @äY...SCR_WIDTH- |
59E42E 53 F6 E3 59 00 00 00 00 00 00 00 00 00 00 00 00 SöãY............ |
59E43E 00 00 E8 F7 3B FA FF 3C 00 00 00 E8 B6 3C FA FF ..è÷;úÿ<...è¶<úÿ |
25 VALUE SCR_HEIGHT |
59E44E 70 E4 59 00 00 0A 53 43 52 5F 48 45 49 47 48 54 päY...SCR_HEIGHT |
59E45E 23 E4 59 00 00 00 00 00 00 00 00 00 00 00 00 00 #äY............. |
59E46E 00 00 E8 C7 3B FA FF 19 00 00 00 E8 86 3C FA FF ..èÇ;úÿ....è<úÿ |
CREATE &AT-XY 0 , 0 , |
59E47E 8F E4 59 00 00 06 26 41 54 2D 58 59 53 E4 59 00 äY...&AT-XYSäY. |
59E48E 00 E8 88 3B FA FF 00 00 00 00 00 00 00 00 .è;úÿ........ |
CREATE &KEY 0 , |
59E49C AB E4 59 00 00 04 26 4B 45 59 83 E4 59 00 00 E8 «äY...&KEYäY..è |
59E4AC 6C 3B FA FF 00 00 00 00 l;úÿ.... |
CREATE &ATRIB 0x0000FFFF , |
59E4B4 C7 E4 59 00 00 06 26 41 54 52 49 42 A1 E4 59 00 ÇäY...&ATRIB¡äY. |
59E4C4 00 00 00 E8 50 3B FA FF FF FF 00 00 ...èP;úÿÿÿ.. |
0x0011000D VALUE >PIC |
59E4D0 E0 E4 59 00 00 04 3E 50 49 43 B9 E4 59 00 00 00 àäY...>PIC¹äY... |
59E4E0 E8 57 3B FA FF 0D 00 11 00 E8 16 3C FA FF èW;úÿ....è.<úÿ |
CREATE SCR_BUF SCR_WIDTH SCR_HEIGHT 1+ * ALLOT |
59E4EE FF E4 59 00 00 07 53 43 52 5F 42 55 46 D5 E4 59 ÿäY...SCR_BUFÕäY |
59E4FE 00 E8 18 3B FA FF 00 00 00 00 00 00 00 00 00 00 .è.;úÿ.......... |
59E50E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ |
59E51E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ |
59E52E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ |
59ED24 7E6 bytes |
: AT-XY ( X Y -- ) |
59ED24 40 ED 59 00 00 05 41 54 2D 58 59 F3 E4 59 00 00 @íY...AT-XYóäY.. |
59ED34 00 00 00 00 00 00 00 00 00 00 00 00 ............ |
SWAP 16 LSHIFT + &AT-XY ! ; |
MOV EDX , [EBP ] |
MOV [EBP ], EAX |
MOV [EBP -4], EDX |
MOV EAX , $10 |
MOV ECX , EAX |
MOV EAX , [EBP -4] |
SHL EAX , CL |
ADD EAX , [EBP ] |
LEA EBP , [EBP +4] |
CALL @@&AT-XY |
MOV EDX , [EBP ] |
MOV [EAX ], EDX |
MOV EAX , [EBP +4] |
LEA EBP , [EBP +8] |
RET |
: AT-XY? ( -- X Y ) |
59ED6C 80 ED 59 00 00 06 41 54 2D 58 59 3F 29 ED 59 00 íY...AT-XY?)íY. |
59ED7C 00 00 00 00 .... |
&AT-XY 2+ W@ &AT-XY W@ ; |
CALL @@&AT-XY |
LEA EAX , [EAX +2] |
MOVZX EAX , WORD PTR [EAX ] |
CALL @@&AT-XY |
MOVZX EAX , WORD PTR [EAX ] |
RET |
: __PAGE-UP |
59ED94 B0 ED 59 00 00 09 5F 5F 50 41 47 45 2D 55 50 71 °íY...__PAGE-UPq |
59EDA4 ED 59 00 00 00 00 00 00 00 00 00 00 íY.......... |
SCR_BUF SCR_WIDTH + SCR_BUF SCR_WIDTH SCR_HEIGHT * CMOVE |
CALL @@SCR_BUF |
CALL @@SCR_WIDTH |
ADD EAX , [EBP ] |
LEA EBP , [EBP +4] |
CALL @@SCR_BUF |
CALL @@SCR_WIDTH |
CALL @@SCR_HEIGHT |
IMUL [EBP ] |
LEA EBP , [EBP +4] |
CALL @@CMOVE |
SCR_BUF SCR_WIDTH SCR_HEIGHT 1- * + SCR_WIDTH BLANK |
CALL @@SCR_BUF |
CALL @@SCR_WIDTH |
CALL @@SCR_HEIGHT |
LEA EAX , [EAX -1] |
IMUL [EBP ] |
ADD EAX , [EBP +4] |
LEA EBP , [EBP +8] |
CALL @@SCR_WIDTH |
CALL @@BLANK |
AT-XY? 1- 0 MAX AT-XY ; |
CALL @@AT-XY? |
LEA EAX , [EAX -1] |
MOV [EBP -4], EAX |
XOR EAX , EAX |
LEA EBP , [EBP -4] |
CALL @@MAX |
CALL @@AT-XY |
RET |
VECT PAGE-UP |
59EE1A 30 EE 59 00 00 07 50 41 47 45 2D 55 50 99 ED 59 0îY...PAGE-UPíY |
59EE2A 00 00 00 00 00 00 E8 B3 32 FA FF 60 F0 59 00 E8 ......è³2úÿ`ðY.è |
59EE3A C6 32 FA FF Æ2úÿ |
: ?PAGE-UP ( n -- ) |
59EE3E 50 EE 59 00 00 08 3F 50 41 47 45 2D 55 50 1F EE PîY...?PAGE-UP.î |
59EE4E 59 00 Y. |
&AT-XY 2+ W@ + SCR_WIDTH /MOD SWAP &AT-XY 2+ W! |
CALL @@&AT-XY |
LEA EAX , [EAX +2] |
MOVZX EAX , WORD PTR [EAX ] |
ADD EAX , [EBP ] |
LEA EBP , [EBP +4] |
CALL @@SCR_WIDTH |
MOV ECX , EAX |
MOV EAX , [EBP ] |
CDQ |
IDIV ECX |
MOV [EBP ], EDX |
MOV EDX , [EBP ] |
MOV [EBP ], EAX |
MOV EAX , EDX |
CALL @@&AT-XY |
LEA EAX , [EAX +2] |
CALL @@W! |
&AT-XY W@ + SCR_HEIGHT /MOD |
CALL @@&AT-XY |
MOVZX EAX , WORD PTR [EAX ] |
ADD EAX , [EBP ] |
LEA EBP , [EBP +4] |
CALL @@SCR_HEIGHT |
MOV ECX , EAX |
MOV EAX , [EBP ] |
CDQ |
IDIV ECX |
MOV [EBP ], EDX |
IF PAGE-UP DROP SCR_HEIGHT 1- THEN &AT-XY W! ; |
OR EAX , EAX |
MOV EAX , [EBP ] |
LEA EBP , [EBP +4] |
JE [OFFSET ?PAGE-UP] |
CALL @@PAGE-UP |
MOV EAX , [EBP ] |
LEA EBP , [EBP +4] |
CALL @@SCR_HEIGHT |
LEA EAX , [EAX -1] |
@59EEC1: CALL @@&AT-XY |
CALL @@W! |
RET |
: SCR_CR |
59EECC E0 EE 59 00 00 06 53 43 52 5F 43 52 43 EE 59 00 àîY...SCR_CRCîY. |
59EEDC 00 00 00 00 .... |
&AT-XY @ 0xFFFF AND 1+ &AT-XY ! 0 ?PAGE-UP ; |
CALL @@&AT-XY |
MOV EAX , [EAX ] |
MOV [EBP -4], EAX |
MOV EAX , $FFFF |
AND EAX , [EBP -4] |
LEA EAX , [EAX +1] |
CALL @@&AT-XY |
MOV EDX , [EBP ] |
MOV [EAX ], EDX |
XOR EAX , EAX |
LEA EBP , [EBP +4] |
CALL @@?PAGE-UP |
RET |
: SCR_TYPE ( addr len -- ) |
59EF0A 20 EF 59 00 00 08 53 43 52 5F 54 59 50 45 D1 EE ïY...SCR_TYPEÑî |
59EF1A 59 00 00 00 00 00 Y..... |
TUCK SWAP |
MOV EDX , [EBP ] |
MOV [EBP -4], EDX |
MOV [EBP ], EAX |
MOV EDX , [EBP -4] |
MOV [EBP -4], EAX |
MOV EAX , EDX |
LEA EBP , [EBP -4] |
&ATRIB @ |
CALL @@&ATRIB |
MOV EAX , [EAX ] |
&AT-XY 2+ W@ 0x60000 * |
CALL @@&AT-XY |
MOVZX EAX , WORD PTR [EAX +2] |
MOV [EBP -4], EAX |
MOV EAX , $60000 |
IMUL [EBP -4] |
&AT-XY W@ 0xD * + |
CALL @@&AT-XY |
MOVZX EAX , WORD PTR [EAX ] |
MOV [EBP -4], EAX |
MOV EAX , $D |
IMUL [EBP -4] |
ADD EAX , [EBP ] |
LEA EAX , [$60018][EAX ] |
0x00060018 + |
MOV [EBP ], EAX |
MOV EAX , $4 |
4 SYS5 DROP |
CALL @@SYS5 |
MOV EAX , [EBP ] |
LEA EBP , [EBP +4] |
\ &AT-XY 2+ +! |
?PAGE-UP |
CALL @@?PAGE-UP |
; |
RET |
: DRAW_LINS |
59EF84 A0 EF 59 00 00 09 44 52 41 57 5F 4C 49 4E 53 0F ïY...DRAW_LINS. |
59EF94 EF 59 00 00 00 00 00 00 00 00 00 00 ïY.......... |
['] PAGE-UP >BODY @ |
MOV [EBP -4], EAX |
MOV EAX , $59EE30 |
MOV EAX , [EAX +5] |
MOV [EBP -8], EAX |
MOV EAX , $59D240 |
['] NOOP TO PAGE-UP |
LEA EBP , [EBP -8] |
CALL [OFFSET PAGE-UP] |
AT-XY? |
CALL @@AT-XY? |
0 0 AT-XY |
MOV [EBP -4], EAX |
MOV [EBP -8], $0 |
XOR EAX , EAX |
LEA EBP , [EBP -8] |
CALL @@AT-XY |
SCR_BUF SCR_WIDTH SCR_HEIGHT * BOUNDS |
CALL @@SCR_BUF |
CALL @@SCR_WIDTH |
CALL @@SCR_HEIGHT |
IMUL [EBP ] |
ADD EAX , [EBP +4] |
MOV EDX , [EBP +4] |
MOV [EBP +4], EAX |
MOV EAX , EDX |
MOV EDX , $80000000 |
DO I SCR_WIDTH SCR_TYPE \ SCR_CR |
SUB EDX , [EBP +4] |
LEA EBX , [EDX ][EAX ] |
MOV EAX , [EBP +8] |
LEA EBP , [EBP +12] |
PUSH , $59F037 |
PUSH EDX |
PUSH EBX |
XCHG EAX, EAX |
XCHG EAX, EAX |
XCHG EAX, EAX |
MOV [EBP -4]EAX |
MOV EAX , [ESP ] |
SUB EAX , [ESP +4] |
LEA EBP , [EBP -4] |
CALL @@SCR_WIDTH |
CALL @@SCR_TYPE |
SCR_WIDTH |
CALL @@SCR_WIDTH |
+LOOP |
ADD [ESP ], EAX |
MOV EAX , [EBP ] |
LEA EBP , [EBP +4] |
JNO [OFFSET DRAW_LINS] |
LEA ESP , [ESP +12] |
AT-XY |
CALL @@AT-XY |
TO PAGE-UP ; |
CALL [OFFSET PAGE-UP] |
RET |
: _PAGE-UP |
59F042 60 F0 59 00 00 08 5F 50 41 47 45 2D 55 50 89 EF `ðY..._PAGE-UPï |
59F052 59 00 00 00 00 00 00 00 00 00 00 00 00 00 Y............. |
draw_window __PAGE-UP |
CALL @@draw_window |
CALL @@__PAGE-UP |
DRAW_LINS |
CALL @@DRAW_LINS |
; |
RET |
' _PAGE-UP TO PAGE-UP |
CREATE LAST_CUR 0 , 0 , |
59F070 83 F0 59 00 00 08 4C 41 53 54 5F 43 55 52 47 F0 ðY...LAST_CURGð |
59F080 59 00 00 E8 94 2F FA FF 00 00 00 00 00 00 00 00 Y..è/úÿ........ |
: CORSOR_DROW |
59F090 B0 F0 59 00 00 0B 43 4F 52 53 4F 52 5F 44 52 4F °ðY...CORSOR_DRO |
59F0A0 57 75 F0 59 00 00 00 00 00 00 00 00 00 00 00 00 WuðY............ |
0 LAST_CUR 2@ 38 SYS4 DROP |
MOV [EBP -4], EAX |
XOR EAX , EAX |
LEA EBP , [EBP -4] |
CALL @@LAST_CUR |
MOV EDX , [EAX +4] |
MOV [EBP -4], EDX |
MOV EAX , [EAX ] |
MOV [EBP -8], EAX |
MOV EAX , $26 |
MOV EDX , [EBP ] |
MOV ECX , [EBP -4] |
MOV EBX , [EBP -8] |
INT $40 |
MOV EAX , $FF00FF |
LEA EBP , [EBP +4] |
0x00FF00FF |
&AT-XY W@ 0xD * 0x21 + DUP 16 LSHIFT + |
CALL @@&AT-XY |
MOVZX EAX , WORD PTR [EAX ] |
MOV [EBP -4], EAX |
MOV EAX , $D |
IMUL [EBP -4] |
MOV [EBP -4], EAX |
MOV EAX , $21 |
ADD EAX , [EBP -4] |
MOV [EBP -4], EAX |
MOV [EBP -8], EAX |
MOV EAX , $10 |
MOV ECX , EAX |
MOV EAX , [EBP -8] |
SHL EAX , CL |
ADD EAX , [EBP -4] |
&AT-XY 2+ W@ 0x6 * 6 + DUP 6 + 16 LSHIFT + |
CALL @@&AT-XY |
MOVZX EAX , WORD PTR [EAX +2] |
MOV [EBP -4], EAX |
MOV EAX , $6 |
IMUL [EBP -4] |
MOV [EBP -4], EAX |
MOV EAX , $6 |
ADD EAX , [EBP -4] |
MOV [EBP -4], EAX |
LEA EAX , [EAX +6] |
MOV [EBP -8], EAX |
MOV EAX , $10 |
MOV ECX , EAX |
MOV EAX , [EBP -8] |
SHL EAX , CL |
ADD EAX , [EBP -4] |
2DUP LAST_CUR 2! |
MOV EDX , [EBP ] |
MOV [EBP -4], EAX |
MOV [EBP -8], EDX |
LEA EBP , [EBP -8] |
CALL @@LAST_CUR |
CALL @@2! |
38 SYS4 DROP |
MOV [EBP -4], EAX |
MOV EAX , $26 |
MOV EDX , [EBP +4] |
MOV ECX , [EBP ] |
MOV EBX , [EBP -4] |
INT $40 |
MOV EAX , [EBP +8] |
LEA EBP , [EBP +12] |
; |
RET |
: REDRAW |
59F17A 90 F1 59 00 00 06 52 45 44 52 41 57 95 F0 59 00 ñY...REDRAWðY. |
59F18A 00 00 00 00 00 00 ...... |
draw_window |
CALL @@draw_window |
DRAW_LINS CORSOR_DROW ; |
CALL @@DRAW_LINS |
CALL @@CORSOR_DROW |
RET |
: EVENT-CASE |
59F1A0 C0 F1 59 00 00 0A 45 56 45 4E 54 2D 43 41 53 45 ÀñY...EVENT-CASE |
59F1B0 7F F1 59 00 00 00 00 00 00 00 00 00 00 00 00 00 ñY............. |
11 SYS1 |
MOV [EBP -4], EAX |
MOV EAX , $B |
INT $40 |
MOV [EBP -8], EAX |
DUP 1 = IF DROP REDRAW EXIT THEN |
CMP EAX , $1 |
MOV EAX , [EBP -8] |
LEA EBP , [EBP -4] |
JNE [OFFSET EVENT-CASE] |
MOV EAX , [EBP ] |
LEA EBP , [EBP +4] |
CALL @@REDRAW |
RET |
DUP 2 = IF DROP 2 SYS1 8 RSHIFT &KEY C! EXIT THEN |
@59F1E6: MOV [EBP -4], EAX |
CMP EAX , $2 |
MOV EAX , [EBP -4] |
JNE [OFFSET EVENT-CASE] |
MOV EAX , $2 |
INT $40 |
MOV [EBP -4], EAX |
MOV EAX , $8 |
MOV ECX , EAX |
MOV EAX , [EBP -4] |
SHR EAX , CL |
CALL @@&KEY |
MOV EDX , [EBP ] |
MOV [EAX ], DL |
MOV EAX , [EBP +4] |
LEA EBP , [EBP +8] |
RET |
3 = IF -1 SYS1 EXIT THEN ; |
@59F21A: CMP EAX , $3 |
MOV EAX , [EBP ] |
LEA EBP , [EBP +4] |
JNE [OFFSET EVENT-CASE] |
MOV [EBP -4], EAX |
MOV EAX , $FFFFFFFF |
INT $40 |
LEA EBP , [EBP -4] |
RET |
@59F235: RET |
0 |
CELL FIELD .CODE |
59F236 50 F2 59 00 00 05 2E 43 4F 44 45 A5 F1 59 00 00 PòY....CODE¥ñY.. |
59F246 00 00 00 00 00 00 00 00 00 00 C3 ..........Ã |
2 CELLS FIELD .FIRST \ ¯®§¨æ¨ï ¢ ä ©«¥ (¢ ¡ ©â å) |
59F251 70 F2 59 00 00 06 2E 46 49 52 53 54 3B F2 59 00 pòY....FIRST;òY. |
59F261 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 89 ............... |
59F271 45 FC B8 04 00 00 00 03 45 FC C3 Eü¸.....Eüà |
CELL FIELD .SIZE \ ᪮«ìª® ¡ ©â R/W |
59F27C 90 F2 59 00 00 05 2E 53 49 5A 45 56 F2 59 00 00 òY....SIZEVòY.. |
59F28C 00 00 00 00 89 45 FC B8 0C 00 00 00 03 45 FC C3 ....Eü¸.....Eüà |
CELL FIELD .DATA \ 㪠§ â¥«ì ¤ ë¥ |
59F29C B0 F2 59 00 00 05 2E 44 41 54 41 81 F2 59 00 00 °òY....DATAòY.. |
59F2AC 00 00 00 00 89 45 FC B8 10 00 00 00 03 45 FC C3 ....Eü¸.....Eüà |
222 FIELD .NAME \ ASCIIZ-¨¬ï ä ©« |
59F2BC D0 F2 59 00 00 05 2E 4E 41 4D 45 A1 F2 59 00 00 ÐòY....NAME¡òY.. |
59F2CC 00 00 00 00 89 45 FC B8 14 00 00 00 03 45 FC C3 ....Eü¸.....Eüà |
CONSTANT FILE_STR |
59F2DC F0 F2 59 00 00 08 46 49 4C 45 5F 53 54 52 C1 F2 ðòY...FILE_STRÁò |
59F2EC 59 00 00 00 E8 47 2D FA FF F2 00 00 00 Y...èG-úÿò... |
: WINDOW |
59F2F9 10 F3 59 00 00 06 57 49 4E 44 4F 57 E1 F2 59 00 .óY...WINDOWáòY. |
59F309 00 00 00 00 00 00 00 ....... |
draw_window CC_LINES ; |
CALL @@draw_window |
CALL @@CC_LINES |
RET |
ZZ=D4 |
/programs/develop/SPForth/src/KOL |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/SPForth/src/MEFORTH.F |
---|
0,0 → 1,2 |
: $" POSTPONE C" ; IMMEDIATE |
: .S DEPTH .SN ; |
/programs/develop/SPForth/src/compiler/spf_compile.f |
---|
0,0 → 1,154 |
( Êîìïèëÿöèÿ ÷èñåë è ñòðîê â ñëîâàðü. |
ÎÑ-íåçàâèñèìûå îïðåäåëåíèÿ. |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
Ïðåîáðàçîâàíèå èç 16-ðàçðÿäíîãî â 32-ðàçðÿäíûé êîä - 1995-96ãã |
Ðåâèçèÿ - ñåíòÿáðü 1999, ìàðò 2000 |
) |
HEX |
: HERE ( -- addr ) \ 94 |
\ addr - óêàçàòåëü ïðîñòðàíñòâà äàííûõ. |
DP @ |
DUP TO :-SET |
DUP TO J-SET |
; |
: _COMPILE, \ 94 CORE EXT |
\ Èíòåðïðåòàöèÿ: ñåìàíòèêà íå îïðåäåëåíà. |
\ Âûïîëíåíèå: ( xt -- ) |
\ Äîáàâèòü ñåìàíòèêó âûïîëíåíèÿ îïðåäåëåíèÿ, ïðåäñòàâëåíîãî xt, ê |
\ ñåìàíòèêå âûïîëíåíèÿ òåêóùåãî îïðåäåëåíèÿ. |
?SET |
SetOP |
0E8 C, \ ìàøèííàÿ êîìàíäà CALL |
DP @ CELL+ - , |
DP @ TO LAST-HERE |
; |
: COMPILE, \ 94 CORE EXT |
\ Èíòåðïðåòàöèÿ: ñåìàíòèêà íå îïðåäåëåíà. |
\ Âûïîëíåíèå: ( xt -- ) |
\ Äîáàâèòü ñåìàíòèêó âûïîëíåíèÿ îïðåäåëåíèÿ, ïðåäñòàâëåíîãî xt, ê |
\ ñåìàíòèêå âûïîëíåíèÿ òåêóùåãî îïðåäåëåíèÿ. |
CON>LIT |
IF INLINE? |
IF INLINE, |
ELSE _COMPILE, |
THEN |
THEN |
; |
: BRANCH, ( ADDR -> ) \ ñêîìïèëèðîâàòü èíñòðóêöèþ ADDR JMP |
?SET SetOP SetJP E9 C, |
DUP IF DP @ CELL+ - THEN , DP @ TO LAST-HERE |
; |
: RET, ( -> ) \ ñêîìïèëèðîâàòü èíñòðóêöèþ RET |
?SET SetOP 0xC3 C, OPT OPT_CLOSE |
; |
: LIT, ( W -> ) |
['] DUP INLINE, |
OPT_INIT |
SetOP 0B8 C, , OPT \ MOV EAX, # |
OPT_CLOSE |
; |
: DLIT, ( D -> ) |
SWAP LIT, LIT, |
; |
: RLIT, ( u -- ) |
\ Ñêîìïèëèðîâàòü ñëåäóþùóþ ñåìàíòèêó: |
\ Ïîëîæèòü íà ñòåê âîçâðàòîâ ëèòåðàë u |
68 C, , \ push dword # |
; |
: ?BRANCH, ( ADDR -> ) \ ñêîìïèëèðîâàòü èíñòðóêöèþ ADDR ?BRANCH |
?SET |
084 TO J_COD |
???BR-OPT |
SetJP SetOP |
J_COD \ JX áåç 0x0F |
0x0F \ êóñîê îò JX |
C, C, |
DUP IF DP @ CELL+ - THEN , DP @ TO LAST-HERE |
; |
DECIMAL |
: S, ( addr u -- ) |
\ Çàðåçåðâèðîâàòü u áàéò ïðîñòðàíñòâà äàííûõ |
\ è ïîìåñòèòü òóäà ñîäåðæèìîå u áàéò èç addr. |
DP @ SWAP DUP ALLOT CMOVE |
; |
: S", ( addr u -- ) |
\ Ðàçìåñòèòü â ïðîñòðàíñòâå äàííûõ ñòðîêó, çàäàííóþ addr u, |
\ â âèäå ñòðîêè ñî ñ÷åò÷èêîì. |
DUP C, S, |
; |
: SLIT, ( a u -- ) |
\ Ñêîìïèëèðîâàòü ñòðîêó, çàäàííóþ addr u. |
SLITERAL-CODE COMPILE, S", 0 C, |
; |
: CLIT, ( a -- ) |
COUNT PAD $! |
CLITERAL-CODE _COMPILE, PAD COUNT S", 0 C, ; |
: ", ( A -> ) |
\ ðàçìåñòèòü â ïðîñòðàíñòâå äàííûõ ñòðîêó, çàäàííóþ àäðåñîì A, |
\ â âèäå ñòðîêè ñî ñ÷åò÷èêîì |
COUNT S", |
; |
\ orig - a, 1 (short) èëè a, 2 (near) |
\ dest - a, 3 |
: >MARK ( -> A ) |
DP @ DUP TO :-SET 4 - |
; |
: <MARK ( -> A ) |
HERE |
; |
: >ORESOLVE1 ( A -> ) |
?SET |
DUP |
DP @ DUP TO :-SET |
OVER - 4 - |
SWAP ! |
RESOLVE_OPT |
; |
: >ORESOLVE ( A, N -- ) |
DUP 1 = IF DROP >ORESOLVE1 |
ELSE 2 <> IF -2007 THROW THEN \ ABORT" Conditionals not paired" |
>ORESOLVE1 |
THEN |
; |
: >RESOLVE1 ( A -> ) |
HERE OVER - 4 - |
SWAP ! |
; |
: >RESOLVE ( A, N -- ) |
DUP 1 = IF DROP >RESOLVE1 |
ELSE 2 <> IF -2007 THROW THEN \ ABORT" Conditionals not paired" |
>RESOLVE1 |
THEN |
; |
: r> ['] C-R> INLINE, ; IMMEDIATE |
: >r ['] C->R INLINE, ; IMMEDIATE |
/programs/develop/SPForth/src/compiler/spf_compile0.f |
---|
0,0 → 1,60 |
( ëÏÍÐÉÌÑÃÉÑ ÞÉÓÅÌ ÓÌÏ×ÁÒØ. |
ïó-ÎÅÚÁ×ÉÓÉÍÙÅ ÏÐÒÅÄÅÌÅÎÉÑ. |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
ðÒÅÏÂÒÁÚÏ×ÁÎÉÅ ÉÚ 16-ÒÁÚÒÑÄÎÏÇÏ × 32-ÒÁÚÒÑÄÎÙÊ ËÏÄ - 1995-96ÇÇ |
òÅ×ÉÚÉÑ - ÓÅÎÔÑÂÒØ 1999, ÍÁÒÔ 2000 |
) |
: RDROP ['] C-RDROP INLINE, ; IMMEDIATE |
: 2RDROP ['] C-2RDROP INLINE, ; IMMEDIATE |
: 3RDROP ['] C-3RDROP INLINE, ; IMMEDIATE |
5 CONSTANT CFL \ ÄÌÉÎÁ ËÏÄÁ, ËÏÍÐÉÌÉÒÕÅÍÏÇÏ CREATE × ÓÅÇÍÅÎÔ CS. |
\ USER DOES>A \ ×ÒÅÍÅÎÎÁÑ ÐÅÒÅÍÅÎÎÁÑ - ÁÄÒÅÓ ÄÌÑ DOES> |
: SET-CURRENT ( wid -- ) \ 94 SEARCH |
\ õÓÔÁÎÏ×ÉÔØ ÓÐÉÓÏË ËÏÍÐÉÌÑÃÉÉ ÎÁ ÓÐÉÓÏË, ÉÄÅÎÔÉÆÉÃÉÒÕÅÍÙÊ wid. |
CURRENT ! |
; |
: GET-CURRENT ( -- wid ) \ 94 SEARCH |
\ ÷ÏÚ×ÒÁÝÁÅÔ wid - ÉÄÅÎÔÉÆÉËÁÔÏÒ ÓÐÉÓËÁ ËÏÍÐÉÌÑÃÉÉ. |
CURRENT @ |
; |
: IS-TEMP-WL ( -- flag ) |
\ ÐÒÏ×ÅÒÑÅÔ, Ñ×ÌÑÅÔÓÑ ÌÉ ÔÅËÕÝÉÊ ÓÌÏ×ÁÒØ ËÏÍÐÉÌÑÃÉÉ ×ÒÅÍÅÎÎÙÍ (×ÎÅÛÎÉÍ) |
GET-CURRENT CELL- @ -1 = |
; |
0 [IF] |
: DP ( -- addr ) \ ÐÅÒÅÍÅÎÎÁÑ, ÓÏÄÅÒÖÁÝÁÑ HERE ÓÅÇÍÅÎÔÁ ÄÁÎÎÙÈ |
IS-TEMP-WL |
IF GET-CURRENT 6 CELLS + ELSE (DP) THEN |
; |
[THEN] |
: ALLOT ( n -- ) \ 94 |
\ åÓÌÉ n ÂÏÌØÛÅ ÎÕÌÑ, ÚÁÒÅÚÅÒ×ÉÒÏ×ÁÔØ n ÂÁÊÔ ÐÒÏÓÔÒÁÎÓÔ×Á ÄÁÎÎÙÈ. åÓÌÉ n ÍÅÎØÛÅ |
\ ÎÕÌÑ - ÏÓ×ÏÂÏÄÉÔØ |n| ÂÁÊÔ ÐÒÏÓÔÒÁÎÓÔ×Á ÄÁÎÎÙÈ. åÓÌÉ n ÎÏÌØ, ÏÓÔÁ×ÉÔØ |
\ ÕËÁÚÁÔÅÌØ ÐÒÏÓÔÒÁÎÓÔ×Á ÄÁÎÎÙÈ ÎÅÉÚÍÅÎÎÙÍ. |
\ åÓÌÉ ÐÅÒÅÄ ×ÙÐÏÌÎÅÎÉÅÍ ALLOT ÕËÁÚÁÔÅÌØ ÐÒÏÓÔÒÁÎÓÔ×Á ÄÁÎÎÙÈ ×ÙÒÏ×ÎÅÎ É n |
\ ËÒÁÔÎÏ ÒÁÚÍÅÒÕ ÑÞÅÊËÉ, ÏÎ ÏÓÔÁÅÔÓÑ ×ÙÒÏ×ÎÅÎÎÙÍ É ÐÏÓÌÅ ALLOT. |
\ åÓÌÉ ÐÅÒÅÄ ×ÙÐÏÌÎÅÎÉÅÍ ALLOT ÕËÁÚÁÔÅÌØ ÐÒÏÓÔÒÁÎÓÔ×Á ÄÁÎÎÙÈ ×ÙÒÏ×ÎÅÎ ÎÁ |
\ ÇÒÁÎÉÃÕ ÓÉÍ×ÏÌÁ É n ËÒÁÔÎÏ ÒÁÚÍÅÒÕ ÓÉÍ×ÏÌÁ, ÏÎ ÏÓÔÁÅÔÓÑ ×ÙÒÏ×ÎÅÎÎÙÍ ÎÁ |
\ ÇÒÁÎÉÃÕ ÓÉÍ×ÏÌÁ É ÐÏÓÌÅ ALLOT. |
DP +! |
; |
: , ( x -- ) \ 94 |
\ úÁÒÅÚÅÒ×ÉÒÏ×ÁÔØ ÏÄÎÕ ÑÞÅÊËÕ × ÏÂÌÁÓÔÉ ÄÁÎÎÙÈ É ÐÏÍÅÓÔÉÔØ x × ÜÔÕ ÑÞÅÊËÕ. |
DP @ 4 ALLOT ! |
; |
: C, ( char -- ) \ 94 |
\ úÁÒÅÚÅÒ×ÉÒÏ×ÁÔØ ÍÅÓÔÏ ÄÌÑ ÓÉÍ×ÏÌÁ × ÏÂÌÁÓÔÉ ÄÁÎÎÙÈ É ÐÏÍÅÓÔÉÔØ ÔÕÄÁ char. |
DP @ 1 ALLOT C! |
; |
: W, ( word -- ) |
\ úÁÒÅÚÅÒ×ÉÒÏ×ÁÔØ ÍÅÓÔÏ ÄÌÑ word × ÏÂÌÁÓÔÉ ÄÁÎÎÙÈ É ÐÏÍÅÓÔÉÔØ ÔÕÄÁ char. |
DP @ 2 ALLOT W! |
; |
/programs/develop/SPForth/src/compiler/spf_defwords.f |
---|
0,0 → 1,206 |
( ¯à¥¤¥«ïî騥 á«®¢ , ᮧ¤ î騥 á«®¢ àë¥ áâ âì¨ ¢ á«®¢ à¥. |
-¥§ ¢¨á¨¬ë¥ ®¯à¥¤¥«¥¨ï. |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
८¡à §®¢ ¨¥ ¨§ 16-à §à冷£® ¢ 32-à §àï¤ë© ª®¤ - 1995-96££ |
¥¢¨§¨ï - á¥âï¡àì 1999 |
) |
USER LAST-CFA |
USER-VALUE LAST-NON |
: REVEAL ( --- ) |
\ Add the last created definition to the CURRENT wordlist. |
LAST @ CURRENT @ ! ; |
: SHEADER ( addr u -- ) |
_SHEADER REVEAL |
; |
: _SHEADER ( addr u -- ) |
0 C, ( flags ) |
HERE 0 , ( cfa ) |
DUP LAST-CFA ! |
-ROT WARNING @ |
IF 2DUP GET-CURRENT SEARCH-WORDLIST |
IF DROP 2DUP TYPE ." isn't unique" CR THEN |
THEN |
CURRENT @ SWORD, |
ALIGN |
HERE SWAP ! ( § ¯®«¨«¨ cfa ) |
; |
: HEADER ( "name" -- ) PARSE-WORD SHEADER ; |
: CREATED ( addr u -- ) |
\ ®§¤ âì ®¯à¥¤¥«¥¨¥ ¤«ï c-addr u á ᥬ ⨪®© ¢ë¯®«¥¨ï, ®¯¨á ®© ¨¦¥. |
\ ᫨ 㪠§ â¥«ì ¯à®áâà á⢠¤ ëå ¥ ¢ë஢¥, § १¥à¢¨à®¢ âì ¬¥áâ® |
\ ¤«ï ¢ëà ¢¨¢ ¨ï. ®¢ë© 㪠§ â¥«ì ¯à®áâà á⢠¤ ëå ®¯à¥¤¥«ï¥â |
\ ¯®«¥ ¤ ëå name. CREATE ¥ १¥à¢¨àã¥â ¬¥áâ® ¢ ¯®«¥ ¤ ëå name. |
\ name 믮«¥¨¥: ( -- a-addr ) |
\ a-addr - ¤à¥á ¯®«ï ¤ ëå name. ¥¬ ⨪ ¢ë¯®«¥¨ï name ¬®¦¥â |
\ ¡ëâì à áè¨à¥ á ¯®¬®éìî DOES>. |
SHEADER |
HERE DOES>A ! ( ¤«ï DOES ) |
CREATE-CODE COMPILE, |
; |
: CREATE ( "<spaces>name" -- ) \ 94 |
PARSE-WORD CREATED |
; |
: (DOES1) \ â ç áâì, ª®â®à ï à ¡®â ¥â ®¤®¢à¥¬¥® á CREATE (®¡ëç®) |
R> DOES>A @ CFL + - |
DOES>A @ 1+ ! ; |
Code (DOES2) |
SUB EBP, 4 |
MOV [EBP], EAX |
POP EBX |
POP EAX |
PUSH EBX |
RET |
EndCODE |
: DOES> \ 94 |
\ â¥à¯à¥â æ¨ï: ᥬ ⨪ ¥®¯à¥¤¥«¥ . |
\ ®¬¯¨«ïæ¨ï: ( C: clon-sys1 -- colon-sys2 ) |
\ ®¡ ¢¨âì ᥬ ⨪㠢६¥¨ ¢ë¯®«¥¨ï, ¤ ãî ¨¦¥, ª ⥪ã饬ã |
\ ®¯à¥¤¥«¥¨î. 㤥⠨«¨ ¥â ⥪ã饥 ®¯à¥¤¥«¥¨¥ ᤥ« ® ¢¨¤¨¬® |
\ ¤«ï ¯®¨áª ¢ á«®¢ ॠ¯à¨ ª®¬¯¨«ï樨 DOES>, § ¢¨á¨â ®â ॠ«¨§ 樨. |
\ ®£«®é ¥â colon-sys1 ¨ ¯à®¨§¢®¤¨â colon-sys2. ®¡ ¢«ï¥â ᥬ ⨪ã |
\ ¨¨æ¨ «¨§ 樨, ¤ ãî ¨¦¥, ª ⥪ã饬㠮¯à¥¤¥«¥¨î. |
\ à¥¬ï ¢ë¯®«¥¨ï: ( -- ) ( R: nest-sys1 -- ) |
\ ¬¥¨âì ᥬ ⨪㠢믮«¥¨ï ¯®á«¥¤¥£® ®¯à¥¤¥«¥¨ï name, ᥬ ⨪ã |
\ ¢ë¯®«¥¨ï name, ¤ ãî ¨¦¥. ®§¢à â¨âì ã¯à ¢«¥¨¥ ¢ ¢ë§ë¢ î饥 ®¯à¥¤¥- |
\ «¥¨¥, § ¤ ®¥ nest-sys1. ¥®¯à¥¤¥«¥ ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ name |
\ ¥ ¡ë«® ®¯à¥¤¥«¥® ç¥à¥§ CREATE ¨«¨ ®¯à¥¤¥«¥®¥ ¯®«ì§®¢ ⥫¥¬ á«®¢®, |
\ ¢ë§ë¢ î饥 CREATE. |
\ ¨æ¨ «¨§ æ¨ï: ( i*x -- i*x a-addr ) ( R: -- nest-sys2 ) |
\ ®åà ¨âì § ¢¨áïéãî ®â ॠ«¨§ 樨 ¨ä®à¬ æ¨î nest-sys2 ® ¢ë§ë¢ î饬 |
\ ®¯à¥¤¥«¥¨¨. ®«®¦¨âì ¤à¥á ¯®«ï ¤ ëå name á⥪. «¥¬¥âë á⥪ |
\ i*x ¯à¥¤áâ ¢«ïîâ à£ã¬¥âë name. |
\ name 믮«¥¨¥: ( i*x -- j*x ) |
\ 믮«¨âì ç áâì ®¯à¥¤¥«¥¨ï, ª®â®à ï ç¨ ¥âáï á ᥬ ⨪¨ ¨¨æ¨ «¨§ 樨, |
\ ¤®¡ ¢«¥®© DOES>, ª®â®à®¥ ¬®¤¨ä¨æ¨à®¢ «® name. «¥¬¥âë á⥪ i*x ¨ j*x |
\ ¯à¥¤áâ ¢«ïîâ à£ã¬¥âë ¨ १ã«ìâ âë á«®¢ name, ᮮ⢥âá⢥®. |
['] (DOES1) COMPILE, |
['] (DOES2) COMPILE, \ ['] C-R> MACRO, |
; IMMEDIATE |
: VOCABULARY ( "<spaces>name" -- ) |
\ ®§¤ âì ᯨ᮪ á«®¢ á ¨¬¥¥¬ name. 믮«¥¨¥ name § ¬¥¨â ¯¥à¢ë© ᯨ᮪ |
\ ¢ ¯®à浪¥ ¯®¨áª ᯨ᮪ á ¨¬¥¥¬ name. |
WORDLIST DUP |
CREATE |
, |
LATEST OVER CELL+ ! ( áá뫪 ¨¬ï á«®¢ àï ) |
GET-CURRENT SWAP PAR! ( á«®¢ àì-¯à¥¤®ª ) |
\ FORTH-WORDLIST SWAP CLASS! ( ª« áá ) |
VOC |
( DOES> ¥ à ¡®â ¥â ¢ í⮬ ) |
(DOES1) (DOES2) \ â ª ᤥ« « ¡ë DOES>, ®¯à¥¤¥«¥ë© ¢ëè¥ |
@ CONTEXT ! |
; |
: VARIABLE ( "<spaces>name" -- ) \ 94 |
\ யãáâ¨âì ¢¥¤ã騥 ¯à®¡¥«ë. 뤥«¨âì name, ®£à ¨ç¥®¥ ¯à®¡¥«®¬. |
\ ®§¤ âì ®¯à¥¤¥«¥¨¥ ¤«ï name á ᥬ ⨪®© ¢ë¯®«¥¨ï, ¤ ®© ¨¦¥. |
\ १¥à¢¨à®¢ âì ®¤ã ï祩ªã ¯à®áâà á⢠¤ ëå á ¢ë஢¥ë¬ ¤à¥á®¬. |
\ name ¨á¯®«ì§ã¥âáï ª ª "¯¥à¥¬¥ ï". |
\ name 믮«¥¨¥: ( -- a-addr ) |
\ a-addr - ¤à¥á § १¥à¢¨à®¢ ®© ï祩ª¨. ¨¨æ¨ «¨§ æ¨î ï祩ª¨ ®â¢¥ç ¥â |
\ ¯à®£à ¬¬ |
CREATE |
0 , |
; |
: CONSTANT ( x "<spaces>name" -- ) \ 94 |
\ யãáâ¨âì ¢¥¤ã騥 ¯à®¡¥«ë. 뤥«¨âì name, ®£à ¨ç¥®¥ ¯à®¡¥«®¬. |
\ ®§¤ âì ®¯à¥¤¥«¥¨¥ ¤«ï name á ᥬ ⨪®© ¢ë¯®«¥¨ï, ¤ ®© ¨¦¥. |
\ name ¨á¯®«ì§ã¥âáï ª ª "ª®áâ â ". |
\ name 믮«¥¨¥: ( -- x ) |
\ ®«®¦¨âì x á⥪. |
HEADER |
CONSTANT-CODE COMPILE, , |
; |
: VALUE ( x "<spaces>name" -- ) \ 94 CORE EXT |
\ யãáâ¨âì ¢¥¤ã騥 ¯à®¡¥«ë. 뤥«¨âì name, ®£à ¨ç¥®¥ ¯à®¡¥«®¬. ®§¤ âì |
\ ®¯à¥¤¥«¥¨¥ ¤«ï name á ᥬ ⨪®© ¢ë¯®«¥¨ï, ®¯à¥¤¥«¥®© ¨¦¥, á ç «ìë¬ |
\ § 票¥¬ à ¢ë¬ x. |
\ name ¨á¯®«ì§ã¥âáï ª ª "§ 票¥". |
\ 믮«¥¨¥: ( -- x ) |
\ ®«®¦¨âì x á⥪. 票¥ x - â®, ª®â®à®¥ ¡ë«® ¤ ®, ª®£¤ ¨¬ï ᮧ¤ ¢ «®áì, |
\ ¯®ª ¥ ¨á¯®«¨âáï äà § x TO name, § ¤ ¢ ®¢®¥ § 票¥ x, |
\ áá®æ¨¨à®¢ ®¥ á name. |
HEADER |
CONSTANT-CODE COMPILE, , |
TOVALUE-CODE COMPILE, |
; |
: VECT ( -> ) |
( ᮧ¤ âì á«®¢®, ᥬ ⨪㠢믮«¥¨ï ª®â®à®£® ¬®¦® ¬¥ïâì, |
§ ¯¨áë¢ ï ¢ ¥£® ®¢ë© xt ¯® TO) |
HEADER |
VECT-CODE COMPILE, ['] NOOP , |
TOVALUE-CODE COMPILE, |
; |
: ->VARIABLE ( x "<spaces>name" -- ) \ 94 |
HEADER |
CREATE-CODE COMPILE, |
, |
; |
: USER-ALIGNED ( -- a-addr n ) |
USER-HERE 3 + 2 RSHIFT ( 4 / ) 4 * DUP |
USER-HERE - |
; |
: USER-CREATE ( "<spaces>name" -- ) |
HEADER |
HERE DOES>A ! ( ¤«ï DOES ) |
USER-CODE COMPILE, |
USER-ALIGNED |
USER-ALLOT , |
; |
: USER ( "<spaces>name" -- ) \ «®ª «ìë¥ ¯¥à¥¬¥ë¥ ¯®â®ª |
USER-CREATE |
4 USER-ALLOT |
; |
' _TOUSER-VALUE-CODE TO TOUSER-VALUE-CODE |
: USER-VALUE ( "<spaces>name" -- ) \ 94 CORE EXT |
HEADER |
USER-VALUE-CODE COMPILE, |
USER-ALIGNED SWAP , |
CELL+ USER-ALLOT |
TOUSER-VALUE-CODE COMPILE, |
; |
: ->VECT ( x -> ) |
HEADER |
VECT-CODE COMPILE, , |
TOVALUE-CODE COMPILE, |
; |
: : _: ; |
: _: ( C: "<spaces>name" -- colon-sys ) \ 94 |
\ யãáâ¨âì ¢¥¤ã騥 à §¤¥«¨â¥«¨. 뤥«¨âì ¨¬ï, ®£à ¨ç¥®¥ ¯à®¡¥«®¬. |
\ ®§¤ âì ®¯à¥¤¥«¥¨¥ ¤«ï ¨¬¥¨, §ë¢ ¥¬®¥ "®¯à¥¤¥«¥¨¥ ç¥à¥§ ¤¢®¥â®ç¨¥". |
\ áâ ®¢¨âì á®áâ®ï¨¥ ª®¬¯¨«ï樨 ¨ ç âì ⥪ã饥 ®¯à¥¤¥«¥¨¥, ¯®«ã稢 |
\ colon-sys. ®¡ ¢¨âì ᥬ ⨪㠨¨æ¨ «¨§ 樨, ®¯¨á ãî ¨¦¥, ¢ ⥪ã饥 |
\ ®¯à¥¤¥«¥¨¥. ¥¬ ⨪ ¢ë¯®«¥¨ï ¡ã¤¥â ®¯à¥¤¥«¥ á«®¢ ¬¨, ᪮¬¯¨«¨à®- |
\ ¢ 묨 ¢ ⥫® ®¯à¥¤¥«¥¨ï. ¥ªã饥 ®¯à¥¤¥«¥¨¥ ¤®«¦® ¡ëâì ¥¢¨¤¨¬® |
\ ¯à¨ ¯®¨áª¥ ¢ á«®¢ ॠ¤® â¥å ¯®à, ¯®ª ¥ ¡ã¤¥â § ¢¥à襮. |
\ ¨æ¨ «¨§ æ¨ï: ( i*x -- i*x ) ( R: -- nest-sys ) |
\ ®åà ¨âì ¨ä®à¬ æ¨î nest-sys ® ¢ë§®¢¥ ®¯à¥¤¥«¥¨ï. ®áâ®ï¨¥ á⥪ |
\ i*x ¯à¥¤áâ ¢«ï¥â à£ã¬¥âë ¨¬¥¨. |
\ ¬ï 믮«¥¨¥: ( i*x -- j*x ) |
\ 믮«¨âì ®¯à¥¤¥«¥¨¥ ¨¬¥¨. ®áâ®ï¨ï á⥪ i*x ¨ j*x ¯à¥¤áâ ¢«ïîâ |
\ à£ã¬¥âë ¨ १ã«ìâ âë ¨¬¥¨ ᮮ⢥âá⢥®. |
PARSE-WORD _SHEADER ] |
HERE TO :-SET |
; |
\ S" ~mak\CompIF.f" INCLUDED |
/programs/develop/SPForth/src/compiler/spf_error.f |
---|
0,0 → 1,34 |
( Îáðàáîòêà îøèáîê. |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
Ðåâèçèÿ: Cåíòÿáðü 1999 |
) |
VECT ERROR \ îáðàáîò÷èê îøèáîê (ABORT) |
VECT (ABORT") |
: (ABORT1") ( flag c-addr -- ) |
SWAP IF COUNT ER-U ! ER-A ! -2 THROW ELSE DROP THEN |
; |
CREATE ERRTIB C/L 1+ ALLOT |
CREATE ERRFILE C/L 1+ ALLOT |
VARIABLE ER>IN |
VARIABLE SAVEERR? |
VARIABLE >IN_WORD |
: SAVEERR |
DUP SAVEERR? @ AND |
IF SOURCE ERRTIB $! >IN_WORD @ ER>IN ! SAVEERR? OFF |
SOURCE-ID 999 HERE WITHIN |
IF SOURCE-ID .NAME ZCOUNT C/L UMIN ERRFILE $! |
THEN |
THEN ; |
: ERROR_DO |
SAVEERR |
CR ERRFILE COUNT TYPE |
CR ERRTIB COUNT TYPE |
CR ER>IN @ BEGIN SPACE 1- DUP 0 MAX 0= UNTIL ." ^" DROP |
CR ." ERR=" . |
CR S0 @ SP! STATE 0! |
; |
/programs/develop/SPForth/src/compiler/spf_find.f |
---|
0,0 → 1,149 |
( ®¨áª á«®¢ ¢ á«®¢ àïå ¨ ã¯à ¢«¥¨¥ ¯®à浪®¬ ¯®¨áª . |
-¥§ ¢¨á¨¬ë¥ ®¯à¥¤¥«¥¨ï. |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
८¡à §®¢ ¨¥ ¨§ 16-à §à冷£® ¢ 32-à §àï¤ë© ª®¤ - 1995-96££ |
¥¢¨§¨ï - á¥âï¡àì 1999 |
®¤¨ä¨æ¨à®¢ ® ªá¨¬®¢ë¬ .. |
email:mak@mail.rtc.neva.ru |
http://informer.rtc.neva.ru/ |
â ¤ {812}105-92-03 |
â à {812}552-47-64 |
) |
VECT FIND |
0x10 CELLS CONSTANT CONTEXT_SIZE |
CREATE SEARCH-BUFF 0x81 ALLOT |
Code ZSEARCH-WORDLIST ;( z-addr wid -- 0 | xt 1 | xt -1 ) \ 94 SEARCH |
; ©â¨ ®¯à¥¤¥«¥¨¥, § ¤ ®¥ áâப®© c-addr u ¢ ᯨ᪥ á«®¢, ¨¤¥â¨ä¨æ¨à㥬®¬ |
; wid. ᫨ ®¯à¥¤¥«¥¨¥ ¥ ©¤¥®, ¢¥àãâì ®«ì. |
; ᫨ ®¯à¥¤¥«¥¨¥ ©¤¥®, ¢¥àãâì ¢ë¯®«¨¬ë© ⮪¥ xt ¨ ¥¤¨¨æã (1), ¥á«¨ |
; ®¯à¥¤¥«¥¨¥ ¥¬¥¤«¥®£® ¨á¯®«¥¨ï, ¨ ç¥ ¬¨ãá ¥¤¨¨æã (-1). |
; PUSH WORD PTR [EBP] |
MOV EDX, [EBP] |
PUSH EDX |
MOV EAX, [EAX] |
PUSH EAX |
LEA EBP, [EBP+4] |
CALL {' GETPR} |
test eax, eax |
JZ END |
LEA EBP, [EBP-4] |
mov [ebp],eax |
MOVZX EAX, BYTE PTR [EDX-9] |
DEC EAX |
OR EAX,1 |
END: RET |
EndCode |
: SEARCH-WORDLIST ( c-addr u wid -- 0 | xt 1 | xt -1 ) |
>R 0x7F AND SEARCH-BUFF ASCII-Z |
R> ZSEARCH-WORDLIST |
; |
: SFIND ( addr len --- addr len 0| xt 1|xt -1 ) |
\ Search all word lists in the search order for the name in the |
\ counted string at c-addr. If not found return the name address and 0. |
\ If found return the execution token xt and -1 if the word is non-immediate |
\ and 1 if the word is immediate. |
CONTEXT |
BEGIN DUP @ |
WHILE >R |
2DUP R@ @ SEARCH-WORDLIST ?DUP |
IF RDROP 2NIP EXIT \ Exit if found. |
THEN |
R> CELL+ |
REPEAT @ |
; |
: FIND1 ( c-addr -- c-addr 0 | xt 1 | xt -1 ) \ 94 SEARCH |
\ áè¨à¨âì ᥬ ⨪ã CORE FIND á«¥¤ãî騬: |
\ ᪠âì ®¯à¥¤¥«¥¨¥ á ¨¬¥¥¬, § ¤ ë¬ áâப®© á® áç¥â稪®¬ c-addr. |
\ ᫨ ®¯à¥¤¥«¥¨¥ ¥ ©¤¥® ¯®á«¥ ¯à®á¬®âà ¢á¥å ᯨ᪮¢ ¢ ¯®à浪¥ ¯®¨áª , |
\ ¢®§¢à â¨âì c-addr ¨ ®«ì. ᫨ ®¯à¥¤¥«¥¨¥ ©¤¥®, ¢®§¢à â¨âì xt. |
\ ᫨ ®¯à¥¤¥«¥¨¥ ¥¬¥¤«¥®£® ¨á¯®«¥¨ï, ¢¥àãâì â ª¦¥ ¥¤¨¨æã (1); |
\ ¨ ç¥ â ª¦¥ ¢¥àãâì ¬¨ãá ¥¤¨¨æã (-1). «ï ¤ ®© áâப¨, § 票ï, |
\ ¢®§¢à é ¥¬ë¥ FIND ¢® ¢à¥¬ï ª®¬¯¨«ï樨, ¬®£ã⠮⫨ç âìáï ®â § 票©, |
\ ¢®§¢à é ¥¬ëå ¥ ¢ ०¨¬¥ ª®¬¯¨«ï樨. |
COUNT SFIND |
DUP 0= IF 2DROP 1- 0 THEN ; |
: DEFINITIONS ( -- ) \ 94 SEARCH |
\ ¤¥« âì ᯨ᪮¬ ª®¬¯¨«ï樨 â®â ¦¥ ᯨ᮪ á«®¢, çâ® ¨ ¯¥à¢ë© ᯨ᮪ ¢ ¯®à浪¥ |
\ ¯®¨áª . ¬¥ ¯®á«¥¤ãîé¨å ®¯à¥¤¥«¥¨© ¡ã¤ãâ ¯®¬¥é âìáï ¢ ᯨ᮪ ª®¬¯¨«ï樨. |
\ ®á«¥¤ãî騥 ¨§¬¥¥¨ï ¯®à浪 ¯®¨áª ¥ ¢«¨ïîâ ᯨ᮪ ª®¬¯¨«ï樨. |
CONTEXT @ SET-CURRENT |
; |
: GET-ORDER_DROP ( CONTEXT -- widn .. wid1 ) |
DUP @ DUP IF >R CELL+ RECURSE R> EXIT THEN 2DROP ; |
: GET-ORDER ( -- widn .. wid1 n ) |
DEPTH >R |
CONTEXT GET-ORDER_DROP |
DEPTH R> - ; |
: SET-ORDER ( widn .. wid1 n -- ) |
DUP 0< |
IF DROP ONLY |
ELSE CONTEXT CONTEXT_SIZE ERASE |
0 |
?DO CONTEXT I CELLS+ ! |
LOOP |
THEN ; |
: FORTH ( -- ) \ 94 SEARCH EXT |
\ ८¡à §®¢ âì ¯®à冷ª ¯®¨áª , á®áâ®ï騩 ¨§ widn, ...wid2, wid1 (£¤¥ wid1 |
\ ¯à®á¬ âਢ ¥âáï ¯¥à¢ë¬) ¢ widn,... wid2, widFORTH-WORDLIST. |
FORTH-WORDLIST CONTEXT ! |
; |
: ONLY ( -- ) \ 94 SEARCH EXT |
\ áâ ®¢¨âì ᯨ᮪ ¯®¨áª § ¢¨áï騩 ®â ॠ«¨§ 樨 ¬¨¨¬ «ìë© á¯¨á®ª ¯®¨áª . |
\ ¨¨¬ «ìë© á¯¨á®ª ¯®¨áª ¤®«¦¥ ¢ª«îç âì á«®¢ FORTH-WORDLIST ¨ SET-ORDER. |
CONTEXT CELL+ 0! |
FORTH |
; |
: ALSO ( -- ) \ 94 SEARCH EXT |
\ ८¡à §®¢ âì ¯®à冷ª ¯®¨áª , á®áâ®ï騩 ¨§ widn, ...wid2, wid1 (£¤¥ wid1 |
\ ¯à®á¬ âਢ ¥âáï ¯¥à¢ë¬) ¢ widn,... wid2, wid1, wid1. ¥®¯à¥¤¥«¥ ï á¨âã æ¨ï |
\ ¢®§¨ª ¥â, ¥á«¨ ¢ ¯®à浪¥ ¯®¨áª ᫨誮¬ ¬®£® ᯨ᪮¢. |
CONTEXT CONTEXT CELL+ CONTEXT_SIZE CMOVE> ; |
: PREVIOUS ( -- ) \ 94 SEARCH EXT |
\ ८¡à §®¢ âì ¯®à冷ª ¯®¨áª , á®áâ®ï騩 ¨§ widn, ...wid2, wid1 (£¤¥ wid1 |
\ ¯à®á¬ âਢ ¥âáï ¯¥à¢ë¬) ¢ widn,... wid2. ¥®¯à¥¤¥«¥ ï á¨âã æ¨ï ¢®§¨ª ¥â, |
\ ¥á«¨ ¯®à冷ª ¯®¨áª ¡ë« ¯ãáâ ¯¥à¥¤ ¢ë¯®«¥¨¥¬ PREVIOUS. |
_PREVIOUS ; |
: _PREVIOUS ( -- ) \ 94 SEARCH EXT |
CONTEXT CELL+ CONTEXT CONTEXT_SIZE CMOVE ; |
: VOC-NAME. ( wid -- ) \ ¯¥ç â âì ¨¬ï ᯨ᪠᫮¢, ¥á«¨ ® ¨¬¥®¢ |
DUP FORTH-WORDLIST = IF DROP ." FORTH" EXIT THEN |
\ DUP KERNEL-WORDLIST = IF DROP ." KERNEL" EXIT THEN |
DUP CELL+ @ DUP IF ID. DROP ELSE DROP ." <NONAME>:" U. THEN |
; |
: ORDER ( -- ) \ 94 SEARCH EXT |
\ ®ª § âì ᯨ᪨ ¢ ¯®à浪¥ ¯®¨áª , ®â ¯¥à¢®£® ¯à®á¬ âਢ ¥¬®£® ᯨ᪠¤® |
\ ¯®á«¥¤¥£®. ª¦¥ ¯®ª § âì ᯨ᮪ á«®¢, ªã¤ ¯®¬¥é îâáï ®¢ë¥ ®¯à¥¤¥«¥¨ï. |
\ ®à¬ â ¨§®¡à ¦¥¨ï § ¢¨á¨â ®â ॠ«¨§ 樨. |
\ ORDER ¬®¦¥â ¡ëâì ॠ«¨§®¢ á ¨á¯®«ì§®¢ ¨¥¬ á«®¢ ä®à¬ ⮣® ¯à¥®¡à §®¢ ¨ï |
\ ç¨á¥«. «¥¤®¢ â¥«ì® ® ¬®¦¥â à §àãè¨âì ¯¥à¥¬¥é ¥¬ãî ®¡« áâì, |
\ ¨¤¥â¨ä¨æ¨à㥬ãî #>. |
GET-ORDER ." Context: " |
0 ?DO ( DUP .) VOC-NAME. SPACE LOOP CR |
." Current: " GET-CURRENT VOC-NAME. CR |
; |
: LATEST ( -> NFA ) |
CURRENT @ @ |
; |
/programs/develop/SPForth/src/compiler/spf_find.f_L |
---|
0,0 → 1,428 |
ZZ=D0 ( ®¨áª á«®¢ ¢ á«®¢ àïå ¨ ã¯à ¢«¥¨¥ ¯®à浪®¬ ¯®¨áª . |
-¥§ ¢¨á¨¬ë¥ ®¯à¥¤¥«¥¨ï. |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
८¡à §®¢ ¨¥ ¨§ 16-à §à冷£® ¢ 32-à §àï¤ë© ª®¤ - 1995-96££ |
¥¢¨§¨ï - á¥âï¡àì 1999 |
®¤¨ä¨æ¨à®¢ ® ªá¨¬®¢ë¬ .. |
email:mak@mail.rtc.neva.ru |
http://informer.rtc.neva.ru/ |
â ¤ {812}105-92-03 |
â à {812}552-47-64 |
) |
VECT FIND |
5A1F35 50 1F 5A 00 00 04 46 49 4E 44 A3 1E 5A 00 00 00 P.Z...FIND£.Z... |
5A1F45 00 00 00 00 00 00 00 00 00 00 00 E8 93 01 FA FF ...........è.úÿ |
5A1F55 40 D2 59 00 E8 A6 01 FA FF @ÒY.è¦.úÿ |
0x10 CELLS CONSTANT CONTEXT_SIZE |
5A1F5E 80 1F 5A 00 00 0C 43 4F 4E 54 45 58 54 5F 53 49 .Z...CONTEXT_SI |
5A1F6E 5A 45 3A 1F 5A 00 00 00 00 00 00 00 00 00 00 00 ZE:.Z........... |
5A1F7E 00 00 E8 B7 00 FA FF 40 00 00 00 ..è·.úÿ@... |
CREATE SEARCH-BUFF 0x81 ALLOT |
5A1F89 A0 1F 5A 00 00 0B 53 45 41 52 43 48 2D 42 55 46 .Z...SEARCH-BUF |
5A1F99 46 63 1F 5A 00 00 00 E8 77 00 FA FF 00 00 00 00 Fc.Z...èw.úÿ.... |
5A1FA9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ |
5A1FB9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ |
5A1FC9 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ |
5A2026 4D bytes |
Code ZSEARCH-WORDLIST ;( z-addr wid -- 0 | xt 1 | xt -1 ) \ 94 SEARCH |
5A2026 40 20 5A 00 00 10 5A 53 45 41 52 43 48 2D 57 4F @ Z...ZSEARCH-WO |
5A2036 52 44 4C 49 53 54 8E 1F 5A 00 RDLIST.Z. |
; ©â¨ ®¯à¥¤¥«¥¨¥, § ¤ ®¥ áâப®© c-addr u ¢ ᯨ᪥ á«®¢, ¨¤¥â¨ä¨æ¨à㥬®¬ |
; wid. ᫨ ®¯à¥¤¥«¥¨¥ ¥ ©¤¥®, ¢¥àãâì ®«ì. |
; ᫨ ®¯à¥¤¥«¥¨¥ ©¤¥®, ¢¥àãâì ¢ë¯®«¨¬ë© ⮪¥ xt ¨ ¥¤¨¨æã (1), ¥á«¨ |
; ®¯à¥¤¥«¥¨¥ ¥¬¥¤«¥®£® ¨á¯®«¥¨ï, ¨ ç¥ ¬¨ãá ¥¤¨¨æã (-1). |
; PUSH WORD PTR [EBP] |
MOV EDX, [EBP] |
5A2040 8B 55 00 U. |
PUSH EDX |
5A2043 52 R |
MOV EAX, [EAX] |
5A2044 8B 00 . |
PUSH EAX |
5A2046 50 P |
LEA EBP, [EBP+4] |
5A2047 8D 6D 04 m. |
CALL {' GETPR} |
5A204A E8 31 9E FC FF è1üÿ |
TEST EAX, EAX |
5A204F 85 C0 À |
JZ m1 |
5A2051 0F 84 0E 00 00 00 ..... |
LEA EBP, [EBP-4] |
5A2057 8D 6D FC mü |
MOV [EBP], EAX |
5A205A 89 45 00 E. |
MOVZX EAX, BYTE PTR [EDX-9] |
5A205D 0F B6 42 F7 .¶B÷ |
DEC EAX |
5A2061 48 H |
OR EAX, 1 |
5A2062 83 C8 01 È. |
m1: RET |
5A2065 C3 Ã |
EndCode |
: SEARCH-WORDLIST ( c-addr u wid -- 0 | xt 1 | xt -1 ) |
5A2066 80 20 5A 00 00 0F 53 45 41 52 43 48 2D 57 4F 52 Z...SEARCH-WOR |
5A2076 44 4C 49 53 54 2B 20 5A 00 00 DLIST+ Z.. |
>R 0x7F AND SEARCH-BUFF ASCII-Z |
5A2080 50 B8 7F 00 00 00 23 45 00 8D 6D 04 E8 0F FF FF P¸...#E.m.è.ÿÿ |
5A2090 FF E8 2A C0 FF FF ÿè*Àÿÿ |
R> ZSEARCH-WORDLIST |
5A2096 89 45 FC 58 8D 6D FC E8 9E FF FF FF EüXmüèÿÿÿ |
; |
5A20A2 C3 Ã |
: SFIND ( addr len --- addr len 0| xt 1|xt -1 ) |
5A20A3 C0 20 5A 00 00 05 53 46 49 4E 44 6B 20 5A 00 00 À Z...SFINDk Z.. |
5A20B3 00 00 00 00 00 00 00 00 00 00 00 00 00 ............. |
\ Search all word lists in the search order for the name in the |
\ counted string at c-addr. If not found return the name address and 0. |
\ If found return the execution token xt and -1 if the word is non-immediate |
\ and 1 if the word is immediate. |
CONTEXT |
5A20C0 E8 23 07 FB FF è#.ûÿ |
BEGIN DUP @ |
5A20C5 90 90 90 89 45 FC 8B 00 0B C0 8B Eü..À |
WHILE >R |
5A20D0 45 FC 0F 84 41 00 00 00 50 8B 45 00 8B 55 04 Eü.A...PE.U. |
2DUP R@ @ SEARCH-WORDLIST ?DUP |
5A20DF 89 45 00 89 55 FC 89 45 F8 8B 04 24 8B 00 8D 6D E.UüEø.$.m |
5A20EF F8 E8 8B FF FF FF E8 96 AA FF FF øèÿÿÿèªÿÿ |
IF RDROP 2NIP EXIT \ Exit if found. |
5A20FA 0B C0 8B 45 00 8D 6D 04 74 09 83 C4 04 E8 04 C1 .ÀE.m.t.Ä.è.Á |
5A210A FF FF C3 ÿÿÃ |
THEN |
R> CELL+ |
5A210D 89 45 FC 58 8D 40 04 8D 6D FC EüX@.mü |
REPEAT @ |
5A2117 EB AF 8B 00 믋. |
; |
5A211B C3 Ã |
: FIND1 ( c-addr -- c-addr 0 | xt 1 | xt -1 ) \ 94 SEARCH |
5A211C 30 21 5A 00 00 05 46 49 4E 44 31 A8 20 5A 00 00 0!Z...FIND1¨ Z.. |
5A212C 00 00 00 00 .... |
\ áè¨à¨âì ᥬ ⨪ã CORE FIND á«¥¤ãî騬: |
\ ᪠âì ®¯à¥¤¥«¥¨¥ á ¨¬¥¥¬, § ¤ ë¬ áâப®© á® áç¥â稪®¬ c-addr. |
\ ᫨ ®¯à¥¤¥«¥¨¥ ¥ ©¤¥® ¯®á«¥ ¯à®á¬®âà ¢á¥å ᯨ᪮¢ ¢ ¯®à浪¥ ¯®¨áª , |
\ ¢®§¢à â¨âì c-addr ¨ ®«ì. ᫨ ®¯à¥¤¥«¥¨¥ ©¤¥®, ¢®§¢à â¨âì xt. |
\ ᫨ ®¯à¥¤¥«¥¨¥ ¥¬¥¤«¥®£® ¨á¯®«¥¨ï, ¢¥àãâì â ª¦¥ ¥¤¨¨æã (1); |
\ ¨ ç¥ â ª¦¥ ¢¥àãâì ¬¨ãá ¥¤¨¨æã (-1). «ï ¤ ®© áâப¨, § 票ï, |
\ ¢®§¢à é ¥¬ë¥ FIND ¢® ¢à¥¬ï ª®¬¯¨«ï樨, ¬®£ã⠮⫨ç âìáï ®â § 票©, |
\ ¢®§¢à é ¥¬ëå ¥ ¢ ०¨¬¥ ª®¬¯¨«ï樨. |
COUNT SFIND |
5A2130 8D 50 01 89 55 FC 0F B6 00 8D 6D FC E8 7F FF FF P.Uü.¶.müèÿÿ |
5A2140 FF ÿ |
DUP 0= IF 2DROP 1- 0 THEN ; |
5A2141 0B C0 75 0E 8B 45 04 8D 40 FF 89 45 04 33 C0 8D .Àu.E.@ÿE.3À |
5A2151 6D 04 C3 m.Ã |
: DEFINITIONS ( -- ) \ 94 SEARCH |
5A2154 70 21 5A 00 00 0B 44 45 46 49 4E 49 54 49 4F 4E p!Z...DEFINITION |
5A2164 53 21 21 5A 00 00 00 00 00 00 00 00 S!!Z........ |
\ ¤¥« âì ᯨ᪮¬ ª®¬¯¨«ï樨 â®â ¦¥ ᯨ᮪ á«®¢, çâ® ¨ ¯¥à¢ë© ᯨ᮪ ¢ ¯®à浪¥ |
\ ¯®¨áª . ¬¥ ¯®á«¥¤ãîé¨å ®¯à¥¤¥«¥¨© ¡ã¤ãâ ¯®¬¥é âìáï ¢ ᯨ᮪ ª®¬¯¨«ï樨. |
\ ®á«¥¤ãî騥 ¨§¬¥¥¨ï ¯®à浪 ¯®¨áª ¥ ¢«¨ïîâ ᯨ᮪ ª®¬¯¨«ï樨. |
CONTEXT @ SET-CURRENT |
5A2170 E8 73 06 FB FF 8B 00 E8 C0 4E FA FF ès.ûÿ.èÀNúÿ |
; |
5A217C C3 Ã |
: GET-ORDER_DROP ( CONTEXT -- widn .. wid1 ) |
5A217D A0 21 5A 00 00 0E 47 45 54 2D 4F 52 44 45 52 5F !Z...GET-ORDER_ |
5A218D 44 52 4F 50 59 21 5A 00 00 00 00 00 00 00 00 00 DROPY!Z......... |
5A219D 00 00 00 ... |
DUP @ DUP IF >R CELL+ RECURSE R> EXIT THEN 2DROP ; |
5A21A0 89 45 FC 8B 00 8D 6D FC 0B C0 74 17 50 8B 45 00 Eü.mü.Àt.PE. |
5A21B0 8D 40 04 8D 6D 04 E8 E5 FF FF FF 89 45 FC 58 8D @.m.èåÿÿÿEüX |
5A21C0 6D FC C3 8B 45 04 8D 6D 08 C3 müÃE.m.à |
: GET-ORDER ( -- widn .. wid1 n ) |
5A21CA E0 21 5A 00 00 09 47 45 54 2D 4F 52 44 45 52 82 à!Z...GET-ORDER |
5A21DA 21 5A 00 00 00 00 !Z.... |
DEPTH >R |
5A21E0 E8 EB E4 FF FF 50 8B 45 00 8D 6D 04 èëäÿÿPE.m. |
CONTEXT GET-ORDER_DROP |
5A21EC E8 F7 05 FB FF E8 AA FF FF FF è÷.ûÿèªÿÿÿ |
DEPTH R> - ; |
5A21F6 E8 D5 E4 FF FF 89 45 FC 58 F7 D8 03 45 FC C3 èÕäÿÿEüX÷Ø.Eüà |
: SET-ORDER ( widn .. wid1 n -- ) |
5A2205 20 22 5A 00 00 09 53 45 54 2D 4F 52 44 45 52 CF "Z...SET-ORDERÏ |
5A2215 21 5A 00 00 00 00 00 00 00 00 00 !Z......... |
DUP 0< |
5A2220 0B C0 7D 10 8B 45 00 8D 6D .À}.E.m |
IF DROP ONLY |
5A2229 04 E8 A9 07 FB FF E9 63 00 00 .è©.ûÿéc.. |
ELSE CONTEXT CONTEXT_SIZE ERASE |
5A2233 00 E8 AF 05 FB FF E8 42 FD FF FF E8 5D BC FF FF .è¯.ûÿèBýÿÿè]¼ÿÿ |
0 |
5A2243 89 45 FC 33 C0 8D 6D 04 Eü3Àm. |
?DO CONTEXT I CELLS+ ! |
5A224B BB 97 22 5A 00 3B 45 F8 75 05 8B 45 FC FF E3 53 »"Z.;Eøu.EüÿãS |
5A225B BB 00 00 00 80 2B 5D F8 53 03 D8 53 8B 45 FC E8 »...+]øS.ØSEüè |
5A226B 79 05 FB FF 89 45 FC 8B 04 24 2B 44 24 04 8D 04 y.ûÿEü.$+D$.. |
5A227B 85 00 00 00 00 03 45 FC 8B 55 00 89 10 8B 45 04 .....EüU..E. |
5A228B 8D 6D 08 m. |
LOOP |
5A228E FF 04 24 71 D7 8D 64 24 0C ÿ.$q×d$. |
THEN ; |
5A2297 C3 Ã |
: FORTH ( -- ) \ 94 SEARCH EXT |
5A2298 B0 22 5A 00 00 05 46 4F 52 54 48 0A 22 5A 00 00 °"Z...FORTH."Z.. |
5A22A8 00 00 00 00 00 00 00 00 ........ |
\ ८¡à §®¢ âì ¯®à冷ª ¯®¨áª , á®áâ®ï騩 ¨§ widn, ...wid2, wid1 (£¤¥ wid1 |
\ ¯à®á¬ âਢ ¥âáï ¯¥à¢ë¬) ¢ widn,... wid2, widFORTH-WORDLIST. |
FORTH-WORDLIST CONTEXT ! |
5A22B0 E8 3F FF FA FF E8 2E 05 FB FF 8B 55 00 89 10 8B è?ÿúÿè..ûÿU.. |
5A22C0 45 04 8D 6D 08 E.m. |
; |
5A22C5 C3 Ã |
: ONLY ( -- ) \ 94 SEARCH EXT |
5A22C6 E0 22 5A 00 00 04 4F 4E 4C 59 9D 22 5A 00 00 00 à"Z...ONLY"Z... |
5A22D6 00 00 00 00 00 00 00 00 00 00 .......... |
\ áâ ®¢¨âì ᯨ᮪ ¯®¨áª § ¢¨áï騩 ®â ॠ«¨§ 樨 ¬¨¨¬ «ìë© á¯¨á®ª ¯®¨áª . |
\ ¨¨¬ «ìë© á¯¨á®ª ¯®¨áª ¤®«¦¥ ¢ª«îç âì á«®¢ FORTH-WORDLIST ¨ SET-ORDER. |
CONTEXT CELL+ 0! |
5A22E0 E8 03 05 FB FF 8D 40 04 C7 00 00 00 00 00 8B 45 è..ûÿ@.Ç.....E |
5A22F0 00 8D 6D 04 .m. |
FORTH |
5A22F4 E8 B7 FF FF FF è·ÿÿÿ |
; |
5A22F9 C3 Ã |
: ALSO ( -- ) \ 94 SEARCH EXT |
5A22FA 10 23 5A 00 00 04 41 4C 53 4F CB 22 5A 00 00 00 .#Z...ALSOË"Z... |
5A230A 00 00 00 00 00 00 ...... |
\ ८¡à §®¢ âì ¯®à冷ª ¯®¨áª , á®áâ®ï騩 ¨§ widn, ...wid2, wid1 (£¤¥ wid1 |
\ ¯à®á¬ âਢ ¥âáï ¯¥à¢ë¬) ¢ widn,... wid2, wid1, wid1. ¥®¯à¥¤¥«¥ ï á¨âã æ¨ï |
\ ¢®§¨ª ¥â, ¥á«¨ ¢ ¯®à浪¥ ¯®¨áª ᫨誮¬ ¬®£® ᯨ᪮¢. |
CONTEXT CONTEXT CELL+ CONTEXT_SIZE CMOVE> ; |
5A2310 E8 D3 04 FB FF E8 CE 04 FB FF 8D 40 04 E8 5E FC èÓ.ûÿèÎ.ûÿ@.è^ü |
5A2320 FF FF E8 E9 B4 FF FF C3 ÿÿèé´ÿÿÃ |
: PREVIOUS ( -- ) \ 94 SEARCH EXT |
5A2328 40 23 5A 00 00 08 50 52 45 56 49 4F 55 53 FF 22 @#Z...PREVIOUSÿ" |
5A2338 5A 00 00 00 00 00 00 00 Z....... |
\ ८¡à §®¢ âì ¯®à冷ª ¯®¨áª , á®áâ®ï騩 ¨§ widn, ...wid2, wid1 (£¤¥ wid1 |
\ ¯à®á¬ âਢ ¥âáï ¯¥à¢ë¬) ¢ widn,... wid2. ¥®¯à¥¤¥«¥ ï á¨âã æ¨ï ¢®§¨ª ¥â, |
\ ¥á«¨ ¯®à冷ª ¯®¨áª ¡ë« ¯ãáâ ¯¥à¥¤ ¢ë¯®«¥¨¥¬ PREVIOUS. |
_PREVIOUS ; |
5A2340 E8 9B 9D FC FF C3 èüÿÃ |
: _PREVIOUS ( -- ) \ 94 SEARCH EXT |
5A2346 60 23 5A 00 00 09 5F 50 52 45 56 49 4F 55 53 2D `#Z..._PREVIOUS- |
5A2356 23 5A 00 00 00 00 00 00 00 00 #Z........ |
CONTEXT CELL+ CONTEXT CONTEXT_SIZE CMOVE ; |
5A2360 E8 83 04 FB FF 8D 40 04 E8 7B 04 FB FF E8 0E FC è.ûÿ@.è{.ûÿè.ü |
5A2370 FF FF E8 49 B4 FF FF C3 ÿÿèI´ÿÿÃ |
: VOC-NAME. ( wid -- ) \ ¯¥ç â âì ¨¬ï ᯨ᪠᫮¢, ¥á«¨ ® ¨¬¥®¢ |
5A2378 90 23 5A 00 00 09 56 4F 43 2D 4E 41 4D 45 2E 4B #Z...VOC-NAME.K |
5A2388 23 5A 00 00 00 00 00 00 #Z...... |
DUP FORTH-WORDLIST = IF DROP ." FORTH" EXIT THEN |
5A2390 89 45 FC 8D 6D FC E8 59 FE FA FF 33 45 00 8B 45 EümüèYþúÿ3E.E |
5A23A0 04 8D 6D 08 0F 85 18 00 00 00 8B 45 00 8D 6D 04 .m.. ....E.m. |
5A23B0 E8 A7 FD F9 FF 05 46 4F 52 54 48 00 E8 2F 9A FC è§ýùÿ.FORTH.è/ü |
5A23C0 FF C3 ÿÃ |
\ DUP KERNEL-WORDLIST = IF DROP ." KERNEL" EXIT THEN |
DUP CELL+ @ DUP IF ID. DROP ELSE DROP ." <NONAME>:" U. THEN |
5A23C2 89 45 FC 8B 40 04 8D 6D FC 0B C0 74 10 E8 CC F7 Eü@.mü.Àt.èÌ÷ |
5A23D2 FF FF 8B 45 00 8D 6D 04 E9 20 00 00 00 8B 45 00 ÿÿE.m.é ...E. |
5A23E2 8D 6D 04 E8 72 FD F9 FF 09 3C 4E 4F 4E 41 4D 45 m.èrýùÿ.<NONAME |
5A23F2 3E 3A 00 E8 F6 99 FC FF E8 09 3D FA FF >:.èöüÿè.=úÿ |
; |
5A23FF C3 Ã |
: ORDER ( -- ) \ 94 SEARCH EXT |
5A2400 10 24 5A 00 00 05 4F 52 44 45 52 7D 23 5A 00 00 .$Z...ORDER}#Z.. |
\ ®ª § âì ᯨ᪨ ¢ ¯®à浪¥ ¯®¨áª , ®â ¯¥à¢®£® ¯à®á¬ âਢ ¥¬®£® ᯨ᪠¤® |
\ ¯®á«¥¤¥£®. ª¦¥ ¯®ª § âì ᯨ᮪ á«®¢, ªã¤ ¯®¬¥é îâáï ®¢ë¥ ®¯à¥¤¥«¥¨ï. |
\ ®à¬ â ¨§®¡à ¦¥¨ï § ¢¨á¨â ®â ॠ«¨§ 樨. |
\ ORDER ¬®¦¥â ¡ëâì ॠ«¨§®¢ á ¨á¯®«ì§®¢ ¨¥¬ á«®¢ ä®à¬ ⮣® ¯à¥®¡à §®¢ ¨ï |
\ ç¨á¥«. «¥¤®¢ â¥«ì® ® ¬®¦¥â à §àãè¨âì ¯¥à¥¬¥é ¥¬ãî ®¡« áâì, |
\ ¨¤¥â¨ä¨æ¨à㥬ãî #>. |
GET-ORDER ." Context: " |
5A2410 E8 CB FD FF FF E8 42 FD F9 FF 09 43 6F 6E 74 65 èËýÿÿèBýùÿ.Conte |
5A2420 78 74 3A 20 00 E8 C6 99 FC FF xt: .èÆüÿ |
0 ?DO ( DUP .) VOC-NAME. SPACE LOOP CR |
5A242A 89 45 FC 33 C0 8D 6D 04 BB 64 24 5A 00 3B 45 F8 Eü3Àm.»d$Z.;Eø |
5A243A 75 05 8B 45 FC FF E3 53 BB 00 00 00 80 2B 5D F8 u.EüÿãS»...+]ø |
5A244A 53 03 D8 53 8B 45 FC E8 3A FF FF FF E8 9D 38 FA S.ØSEüè:ÿÿÿè8ú |
5A245A FF FF 04 24 71 F1 8D 64 24 0C E8 7F 36 FA FF ÿÿ.$qñd$.è6úÿ |
." Current: " GET-CURRENT VOC-NAME. CR |
5A2469 E8 EE FC F9 FF 09 43 75 72 72 65 6E 74 3A 20 00 èîüùÿ.Current: . |
5A2479 E8 72 99 FC FF 89 45 FC 8B 87 58 18 00 00 8D 6D èrüÿEüX...m |
5A2489 FC E8 01 FF FF FF E8 54 36 FA FF üè.ÿÿÿèT6úÿ |
; |
5A2494 C3 Ã |
: LATEST ( -> NFA ) |
5A2495 B0 24 5A 00 00 06 4C 41 54 45 53 54 05 24 5A 00 °$Z...LATEST.$Z. |
5A24A5 00 00 00 00 00 00 00 00 00 00 00 ........... |
CURRENT @ @ |
5A24B0 E8 1B 4B FA FF 8B 00 8B 00 è.Kúÿ.. |
; |
5A24B9 C3 Ã |
ZZ=D0 |
/programs/develop/SPForth/src/compiler/spf_immed_control.f |
---|
0,0 → 1,132 |
( óÌÏ×Á ÎÅÍÅÄÌÅÎÎÏÇÏ ×ÙÐÏÌÎÅÎÉÑ, ÉÓÐÏÌØÚÕÅÍÙÅ ÐÒÉ ËÏÍÐÉÌÑÃÉÉ |
ÓÔÒÕËÔÕÒ ÕÐÒÁ×ÌÅÎÉÑ × ÔÅÌÅ ×ÙÓÏËÏÕÒÏ×ÎÅ×ÏÇÏ ÏÐÒÅÄÅÌÅÎÉÑ. |
ïó-ÎÅÚÁ×ÉÓÉÍÙÅ ÏÐÒÅÄÅÌÅÎÉÑ. |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
ðÒÅÏÂÒÁÚÏ×ÁÎÉÅ ÉÚ 16-ÒÁÚÒÑÄÎÏÇÏ × 32-ÒÁÚÒÑÄÎÙÊ ËÏÄ - 1995-96ÇÇ |
òÅ×ÉÚÉÑ - ÓÅÎÔÑÂÒØ 1999 |
) |
: IF \ 94 |
\ éÎÔÅÒÐÒÅÔÁÃÉÑ: ÓÅÍÁÎÔÉËÁ ÎÅÏÐÒÅÄÅÌÅÎÁ. |
\ ëÏÍÐÉÌÑÃÉÑ: ( C: -- orig ) |
\ ðÏÌÏÖÉÔØ ÎÁ ÕÐÒÁ×ÌÑÀÝÉÊ ÓÔÅË ÐÏÚÉÃÉÀ ÎÏ×ÏÊ ÎÅÒÁÚÒÅÛÅÎÎÏÊ ÓÓÙÌËÉ ×ÐÅÒÅÄ orig. |
\ äÏÂÁ×ÉÔØ ÓÅÍÁÎÔÉËÕ ×ÒÅÍÅÎÉ ×ÙÐÏÌÎÅÎÉÑ, ÄÁÎÎÕÀ ÎÉÖÅ, Ë ÔÅËÕÝÅÍÕ ÏÐÒÅÄÅÌÅÎÉÀ. |
\ óÅÍÁÎÔÉËÁ ÎÅÚÁ×ÅÒÛÅÎÁ, ÐÏËÁ orig ÎÅ ÒÁÚÒÅÛÉÔÓÑ, ÎÁÐÒÉÍÅÒ, ÐÏ THEN ÉÌÉ ELSE. |
\ ÷ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ: ( x -- ) |
\ åÓÌÉ ×ÓÅ ÂÉÔÙ x ÎÕÌÅ×ÙÅ, ÐÒÏÄÏÌÖÁÔØ ×ÙÐÏÌÎÅÎÉÅ Ó ÐÏÚÉÃÉÉ, ÚÁÄÁÎÎÏÊ |
\ ÒÁÚÒÅÛÅÎÉÅÍ orig. |
?COMP DP @ ?BRANCH, >MARK 1 |
; IMMEDIATE |
: ELSE \ 94 |
\ éÎÔÅÒÐÒÅÔÁÃÉÑ: ÓÅÍÁÎÔÉËÁ ÎÅÏÐÒÅÄÅÌÅÎÁ. |
\ ëÏÍÐÉÌÑÃÉÑ: ( C: orig1 -- orig2 ) |
\ ðÏÌÏÖÉÔØ ÎÁ ÕÐÒÁ×ÌÑÀÝÉÊ ÓÔÅË ÐÏÚÉÃÉÀ ÎÏ×ÏÊ ÎÅÒÁÚÒÅÛÅÎÎÏÊ ÓÓÙÌËÉ ×ÐÅÒÅÄ orig2. |
\ äÏÂÁ×ÉÔØ ÓÅÍÁÎÔÉËÕ ×ÒÅÍÅÎÉ ×ÙÐÏÌÎÅÎÉÑ, ÄÁÎÎÕÀ ÎÉÖÅ, Ë ÔÅËÕÝÅÍÕ ÏÐÒÅÄÅÌÅÎÉÀ. |
\ óÅÍÁÎÔÉËÁ ÎÅÚÁ×ÅÒÛÅÎÁ, ÐÏËÁ orig2 ÎÅ ÒÁÚÒÅÛÉÔÓÑ (ÎÁÐÒÉÍÅÒ, ÐÏ THEN). |
\ òÁÚÒÅÛÉÔØ ÓÓÙÌËÕ ×ÐÅÒÅÄ orig1, ÉÓÐÏÌØÚÕÑ ÐÏÚÉÃÉÀ ÓÌÅÄÕÀÝÅÊ ÄÏÂÁ×ÌÅÎÎÏÊ |
\ ÓÅÍÁÎÔÉËÉ ×ÙÐÏÌÎÅÎÉÑ. |
\ ÷ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ: ( -- ) |
\ ðÒÏÄÏÌÖÉÔØ ×ÙÐÏÌÎÅÎÉÅ Ó ÐÏÚÉÃÉÉ, ÚÁÄÁÎÎÏÊ ÒÁÚÒÅÛÅÎÉÅÍ orig2. |
?COMP DP @ BRANCH, |
>ORESOLVE |
>MARK 2 |
; IMMEDIATE |
: THEN \ 94 |
\ éÎÔÅÒÐÒÅÔÁÃÉÑ: ÓÅÍÁÎÔÉËÁ ÎÅÏÐÒÅÄÅÌÅÎÁ. |
\ ëÏÍÐÉÌÑÃÉÑ: ( C: orig -- ) |
\ òÁÚÒÅÛÉÔØ ÓÓÙÌËÕ ×ÐÅÒÅÄ orig, ÉÓÐÏÌØÚÕÑ ÐÏÚÉÃÉÀ ÓÅÍÁÎÔÉËÉ ×ÙÐÏÌÎÅÎÉÑ. |
\ äÏÂÁ×ÉÔØ ÓÅÍÁÎÔÉËÕ ×ÒÅÍÅÎÉ ×ÙÐÏÌÎÅÎÉÑ, ÄÁÎÎÕÀ ÎÉÖÅ, Ë ÔÅËÕÝÅÍÕ ÏÐÒÅÄÅÌÅÎÉÀ. |
\ ÷ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ: ( -- ) |
\ ðÒÏÄÏÌÖÉÔØ ×ÙÐÏÌÎÅÎÉÅ. |
?COMP \ HERE TO :-SET |
>ORESOLVE |
; IMMEDIATE |
: BREAK |
POSTPONE EXIT POSTPONE THEN ; IMMEDIATE |
: BEGIN \ 94 |
\ éÎÔÅÒÐÒÅÔÁÃÉÑ: ÓÅÍÁÎÔÉËÁ ÎÅÏÐÒÅÄÅÌÅÎÁ. |
\ ëÏÍÐÉÌÑÃÉÑ: ( C: -- dest ) |
\ ðÏÌÏÖÉÔØ ÓÌÅÄÕÀÝÕÀ ÐÏÚÉÃÉÀ ÐÅÒÅÄÁÞÉ ÕÐÒÁ×ÌÅÎÉÑ, dest, ÎÁ ÕÐÒÁ×ÌÑÀÝÉÊ ÓÔÅË. |
\ äÏÂÁ×ÉÔØ ÓÅÍÁÎÔÉËÕ ×ÒÅÍÅÎÉ ×ÙÐÏÌÎÅÎÉÑ, ÄÁÎÎÕÀ ÎÉÖÅ, Ë ÔÅËÕÝÅÍÕ ÏÐÒÅÄÅÌÅÎÉÀ. |
\ ÷ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ: ( -- ) |
\ ðÒÏÄÏÌÖÉÔØ ×ÙÐÏÌÎÅÎÉÅ. |
?COMP |
4 ALIGN-NOP |
\ HERE TO :-SET |
<MARK 3 |
; IMMEDIATE |
: UNTIL \ 94 |
\ éÎÔÅÒÐÒÅÔÁÃÉÑ: ÓÅÍÁÎÔÉËÁ ÎÅÏÐÒÅÄÅÌÅÎÁ. |
\ ëÏÍÐÉÌÑÃÉÑ: ( C: dest -- ) |
\ äÏÂÁ×ÉÔØ ÓÅÍÁÎÔÉËÕ ×ÒÅÍÅÎÉ ×ÙÐÏÌÎÅÎÉÑ, ÄÁÎÎÕÀ ÎÉÖÅ, Ë ÔÅËÕÝÅÍÕ ÏÐÒÅÄÅÌÅÎÉÀ. |
\ òÁÚÒÅÛÉÔØ ÓÓÙÌËÕ ÎÁÚÁÄ dest. |
\ ÷ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ: ( x -- ) |
\ åÓÌÉ ×ÓÅ ÂÉÔÙ x ÎÕÌÅ×ÙÅ, ÐÒÏÄÏÌÖÁÔØ ×ÙÐÏÌÎÅÎÉÅ Ó ÐÏÚÉÃÉÉ, ÚÁÄÁÎÎÏÊ dest. |
?COMP 3 <> IF -2004 THROW THEN \ ABORT" UNTIL ÂÅÚ BEGIN !" |
?BRANCH, |
0xFFFFFF80 DP @ 4 - @ U< |
IF DP @ 5 - W@ 0x3F0 + DP @ 6 - W! -4 ALLOT |
THEN |
; IMMEDIATE |
: WHILE \ 94 |
\ éÎÔÅÒÐÒÅÔÁÃÉÑ: ÓÅÍÁÎÔÉËÁ ÎÅÏÐÒÅÄÅÌÅÎÁ. |
\ ëÏÍÐÉÌÑÃÉÑ: ( C: dest -- orig dest ) |
\ ðÏÌÏÖÉÔØ ÐÏÚÉÃÉÀ ÎÏ×ÏÊ ÎÅÒÁÚÒÅÛÅÎÎÏÊ ÓÓÙÌËÉ ×ÐÅÒÅÄ orig ÎÁ ÕÐÒÁ×ÌÑÀÝÉÊ ÓÔÅË |
\ ÐÏÄ ÉÍÅÀÝÉÍÓÑ dest. äÏÂÁ×ÉÔØ ÓÅÍÁÎÔÉËÕ ×ÒÅÍÅÎÉ ×ÙÐÏÌÎÅÎÉÑ, ÄÁÎÎÕÀ ÎÉÖÅ, Ë |
\ ÔÅËÕÝÅÍÕ ÏÐÒÅÄÅÌÅÎÉÀ. óÅÍÁÎÔÉËÁ ÎÅÚÁ×ÅÒÛÅÎÁ, ÐÏËÁ orig É dest ÎÅ ÒÁÚÒÅÛÁÔÓÑ |
\ (ÎÁÐÒÉÍÅÒ, ÐÏ REPEAT). |
\ ÷ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ: ( x -- ) |
\ åÓÌÉ ×ÓÅ ÂÉÔÙ x ÎÕÌÅ×ÙÅ, ÐÒÏÄÏÌÖÁÔØ ×ÙÐÏÌÎÅÎÉÅ Ó ÐÏÚÉÃÉÉ, ÚÁÄÁÎÎÏÊ |
\ ÒÁÚÒÅÛÅÎÉÅÍ orig. |
?COMP [COMPILE] IF |
2SWAP |
; IMMEDIATE |
: REPEAT \ 94 |
\ éÎÔÅÒÐÒÅÔÁÃÉÑ: ÓÅÍÁÎÔÉËÁ ÎÅÏÐÒÅÄÅÌÅÎÁ. |
\ ëÏÍÐÉÌÑÃÉÑ: ( C: orig dest -- ) |
\ äÏÂÁ×ÉÔØ ÓÅÍÁÎÔÉËÕ ×ÒÅÍÅÎÉ ×ÙÐÏÌÎÅÎÉÑ, ÄÁÎÎÕÀ ÎÉÖÅ, Ë ÔÅËÕÝÅÍÕ ÏÐÒÅÄÅÌÅÎÉÀ, |
\ ÒÁÚÒÅÛÉ× ÓÓÙÌËÕ ÎÁÚÁÄ dest. òÁÚÒÅÛÉÔØ ÓÓÙÌËÕ ×ÐÅÒÅÄ orig, ÉÓÐÏÌØÚÕÑ |
\ ÐÏÚÉÃÉÀ ÄÏÂÁ×ÌÅÎÎÏÊ ÓÅÍÁÎÔÉËÉ ×ÙÐÏÌÎÅÎÉÑ. |
\ ÷ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ: ( -- ) |
\ ðÒÏÄÏÌÖÉÔØ ×ÙÐÏÌÎÅÎÉÅ Ó ÐÏÚÉÃÉÉ, ÚÁÄÁÎÎÏÊ dest. |
?COMP |
3 <> IF -2005 THROW THEN \ ABORT" REPEAT ÂÅÚ BEGIN !" |
DUP DP @ 2+ - DUP |
SHORT? |
IF SetJP 0xEB C, C, DROP |
ELSE DROP BRANCH, THEN |
>ORESOLVE |
; IMMEDIATE |
: AGAIN \ 94 CORE EXT |
\ éÎÔÅÒÐÒÅÔÁÃÉÑ: ÓÅÍÁÎÔÉËÁ ÎÅÏÐÒÅÄÅÌÅÎÁ. |
\ ëÏÍÐÉÌÑÃÉÑ: ( C: dest -- ) |
\ äÏÂÁ×ÉÔØ ÓÅÍÁÎÔÉËÕ ×ÒÅÍÅÎÉ ×ÙÐÏÌÎÅÎÉÑ, ÄÁÎÎÕÀ ÎÉÖÅ, Ë ÔÅËÕÝÅÍÕ ÏÐÒÅÄÅÌÅÎÉÀ, |
\ ÒÁÚÒÅÛÉ× ÓÓÙÌËÕ ÎÁÚÁÄ dest. |
\ ÷ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ: ( -- ) |
\ ðÒÏÄÏÌÖÉÔØ ×ÙÐÏÌÎÅÎÉÅ Ó ÐÏÚÉÃÉÉ, ÚÁÄÁÎÎÏÊ dest. åÓÌÉ ÄÒÕÇÉÅ ÕÐÒÁ×ÌÑÀÝÉÅ ÓÌÏ×Á |
\ ÎÅ ÉÓÐÏÌØÚÕÀÔÓÑ, ÔÏ ÌÀÂÏÊ ÐÒÏÇÒÁÍÍÎÙÊ ËÏÄ ÐÏÓÌÅ AGAIN ÎÅ ÂÕÄÅÔ ×ÙÐÏÌÎÑÔØÓÑ. |
?COMP 3 <> IF -2006 THROW THEN \ ABORT" AGAIN ÂÅÚ BEGIN !" |
DUP DP @ 2+ - DUP |
SHORT? |
IF SetJP 0xEB C, C, DROP |
ELSE DROP BRANCH, THEN DP @ TO :-SET |
; IMMEDIATE |
: RECURSE \ 94 |
\ éÔÅÒÐÒÅÔÁÃÉÑ: ÓÅÍÁÎÔÉËÁ ÎÅ ÏÐÒÅÄÅÌÅÎÁ. |
\ ëÏÍÐÉÌÑÃÉÑ: ( -- ) |
\ äÏÂÁ×ÉÔØ ÓÅÍÁÎÔÉËÕ ×ÙÐÏÌÎÅÎÉÑ ÔÅËÕÝÅÇÏ ÏÐÒÅÄÅÌÅÎÉÑ × ÔÅËÕÝÅÅ ÏÐÒÅÄÅÌÅÎÉÅ. |
\ îÅÏÄÎÏÚÎÁÞÎÁÑ ÓÉÔÕÁÃÉÑ ×ÏÚÎÉËÁÅÔ, ÅÓÌÉ RECURSE ÉÓÐÏÌØÚÕÅÔÓÑ ÐÏÓÌÅ DOES>. |
?COMP |
LAST-NON DUP 0= |
IF DROP LATEST NAME> THEN _COMPILE, |
; IMMEDIATE |
/programs/develop/SPForth/src/compiler/spf_immed_lit.f |
---|
0,0 → 1,147 |
( Ñëîâà íåìåäëåííîãî âûïîëíåíèÿ, èñïîëüçóåìûå ïðè êîìïèëÿöèè |
÷èñëîâûõ è ñòðî÷íûõ ëèòåðàëîâ â òåëî âûñîêîóðîâíåâîãî îïðåäåëåíèÿ. |
ÎÑ-íåçàâèñèìûå îïðåäåëåíèÿ. |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
Ïðåîáðàçîâàíèå èç 16-ðàçðÿäíîãî â 32-ðàçðÿäíûé êîä - 1995-96ãã |
Ðåâèçèÿ - ñåíòÿáðü 1999 |
Ìîäèôèöèðîâàííî Ìàêñèìîâûì Ì.Î. |
email:mak@mail.rtc.neva.ru |
http://informer.rtc.neva.ru/ |
ò ä {812}105-92-03 |
ò ð {812}552-47-64 |
) |
: [LIT], DUP |
[ 0x058D W, ' DUP , ] INLINE, |
0x058D W, , ; |
\ 0 [IF] |
: ['] \ 94 |
\ Èíòåðïðåòàöèÿ: ñåìàíòèêà íåîïðåäåëåíà. |
\ Êîìïèëÿöèÿ: ( "<spaces>name" -- ) |
\ Ïðîïóñòèòü âåäóùèå ïðîáåëû. Âûäåëèòü name, îãðàíè÷åííîå ïðîáåëîì. Íàéòè name. |
\ Äîáàâèòü ñåìàíòèêó âðåìåíè âûïîëíåíèÿ, äàííóþ íèæå, ê òåêóùåìó îïðåäåëåíèþ. |
\ Íåîïðåäåëåííàÿ ñèòóàöèÿ âîçíèêàåò, åñëè name íå íàéäåíî. |
\ Äîáàâèòü ñåìàíòèêó âðåìåíè âûïîëíåíèÿ, äàííóþ íèæå, ê òåêóùåìó îïðåäåëåíèþ, |
\ Âðåìÿ âûïîëíåíèÿ: ( -- xt ) |
\ Ïîëîæèòü âûïîëíèìûé òîêåí èìåíè xt íà ñòåê. Âûïîëíèìûé òîêåí, âîçâðàùàåìûé |
\ ñêîìïèëèðîâàííîé ôðàçîé "['] X" ÿâëÿåòñÿ òåì æå çíà÷åíèåì, ÷òî è âîçâðàùàåìîå |
\ "' X" âíå ñîñòîÿíèÿ êîìïèëÿöèè. |
?COMP ' [LIT], |
; IMMEDIATE |
\ [THEN] |
: LITERAL \ 94 CORE |
\ Èíòåðïðåòàöèÿ: ñåìàíòèêà íåîïðåäåëåíà. |
\ Êîìïèëÿöèÿ: ( x -- ) |
\ Äîáàâèòü ñåìàíòèêó âðåìåíè âûïîëíåíèÿ, äàííóþ íèæå, ê òåêóùåìó îïðåäåëåíèþ. |
\ Âðåìÿ âûïîëíåíèÿ: ( -- x ) |
\ Ïîëîæèòü x íà ñòåê. |
STATE @ IF LIT, THEN |
; IMMEDIATE |
: 2LITERAL \ 94 DOUBLE |
\ Èíòåðïðåòàöèÿ: ñåìàíòèêà íåîïðåäåëåíà. |
\ Êîìïèëÿöèÿ: ( x1 x2 -- ) |
\ Äîáàâèòü ñåìàíòèêó âðåìåíè âûïîëíåíèÿ, äàííóþ íèæå, ê òåêóùåìó îïðåäåëåíèþ. |
\ Âðåìÿ âûïîëíåíèÿ: ( -- x1 x2 ) |
\ Ïîëîæèòü ïàðó ÿ÷ååê x1 x2 íà ñòåê. |
STATE @ IF DLIT, THEN |
; IMMEDIATE |
: SLITERAL \ 94 STRING |
PSLITERAL ; IMMEDIATE |
: PSLITERAL |
\ Èíòåðïðåòàöèÿ: ñåìàíòèêà íå îïðåäåëåíà. |
\ Êîìïèëÿöèÿ: ( c-addr1 u -- ) |
\ Äîáàâèòü ñåìàíòèêó âðåìåíè âûïîëíåíèÿ, äàííóþ íèæå, ê òåêóùåìó îïðåäåëåíèþ. |
\ Âðåìÿ âûïîëíåíèÿ: ( -- c-addr2 u ) |
\ Âîçâðàòèòü c-addr2 u, îïèñûâàþùèå ñòðîêó, ñîñòîÿùóþ èç ñèìâîëîâ, çàäàííûõ |
\ c-addr1 u âî âðåìÿ êîìïèëÿöèè. Ïðîãðàììà íå ìîæåò ìåíÿòü âîçâðàùåííóþ |
\ ñòðîêó. |
STATE @ IF SLIT, \ ELSE 2DUP + 0 SWAP C! |
THEN |
; |
: S" \ 94+FILE |
\ Èíòåðïðåòàöèÿ: ( "ccc<quote>" -- c-addr u ) |
\ Âûäåëèòü ccc, îãðàíè÷åííûå " (äâîéíûìè êàâû÷êàìè). Çàïèñàòü ïîëó÷åííóþ |
\ ñòðîêó c-addr u âî âðåìåííûé áóôåð. Ìàêñèìàëüíàÿ äëèíà âðåìåííîãî |
\ áóôåðà çàâèñèò îò ðåàëèçàöèè, íî íå ìîæåò áûòü ìåíüøå 80 ñèìâîëîâ. |
\ Ñëåäóþùåå èñïîëüçîâàíèå S" ìîæåò ïåðåïèñàòü âðåìåííûé áóôåð. |
\ Îáåñïå÷èâàåòñÿ êàê ìèíèìóì îäèí òàêîé áóôåð. |
\ Êîìïèëÿöèÿ: ( "ccc<quote>" -- ) |
\ Âûäåëèòü ccc, îãðàíè÷åííûå " (äâîéíûìè êàâû÷êàìè). Äîáàâèòü ñåìàíòèêó |
\ âðåìåíè âûïîëíåíèÿ, îïèñàííóþ íèæå, ê òåêóùåìó îïðåäåëåíèþ. |
\ Âðåìÿ âûïîëíåíèÿ: ( -- c-addr u ) |
\ Âåðíóòü c-addr è u, êîòîðûå îïèñûâàþò ñòðîêó, ñîñòîÿùóþ èç ñèìâîëîâ ccc. |
[CHAR] " PARSE [COMPILE] SLITERAL |
; IMMEDIATE |
: C" \ 94 CORE EXT |
\ Èíòåðïðåòàöèÿ: ñåìàíòèêà íå îïðåäåëåíà. |
\ Êîìïèëÿöèÿ: ( "ccc<quote>" -- ) |
\ Âûäåëèòü ccc, îãðàíè÷åííûå " (äâîéíûìè êàâû÷êàìè) è äîáàâèòü |
\ ñåìàíòèêó âðåìåíè âûïîëíåíèÿ, äàííóþ íèæå, ê òåêóùåìó îïðåäåëåíèþ. |
\ Âðåìÿ âûïîëíåíèÿ: ( -- c-addr ) |
\ Âîçâðàòèòü c-addr, ñòðîêó ñî ñ÷åò÷èêîì, ñîñòîÿùóþ èç ñèìâîëîâ ccc. |
\ Ïðîãðàììà íå äîëæíà ìåíÿòü âîçâðàùåííóþ ñòðîêó. |
[CHAR] " WORD [COMPILE] CLITERAL |
; IMMEDIATE |
: CLITERAL ( addr -- ) |
STATE @ IF CLIT, THEN |
; IMMEDIATE |
: ." \ 94 |
\ Èíòåðïðåòàöèÿ: ñåìàíòèêà íåîïðåäåëåíà. |
\ Êîìïèëÿöèÿ: ( "ccc<quote>" -- ) |
\ Âûäåëèòü ccc, îãðàíè÷åííîå " (äâîéíûìè êàâû÷êàìè). Äîáàâèòü ñåìàíòèêó âðåìåíè |
\ âûïîëíåíèÿ, äàííóþ íèæå, ê òåêóùåìó îïðåäåëåíèþ. |
\ Âðåìÿ âûïîëíåíèÿ: ( -- ) |
\ Âûâåñòè ccc íà ýêðàí. |
?COMP |
[COMPILE] S" |
['] TYPE COMPILE, |
; IMMEDIATE |
: [CHAR] \ 94 |
\ Èíòåðïðåòàöèÿ: ñåìàíòèêà íåîïðåäåëåíà. |
\ Êîìïèëÿöèÿ: ( "<spaces>name" -- ) |
\ Ïðîïóñòèòü âåäóùèå ïðîáåëû. Âûäåëèòü name, îãðàíè÷åííîå ïðîáåëàìè. Äîáàâèòü |
\ ñåìàíòèêó âðåìåíè âûïîëíåíèÿ, äàííóþ íèæå, ê òåêóùåìó îïðåäåëåíèþ. |
\ Âðåìÿ âûïîëíåíèÿ: ( -- char ) |
\ Ïîëîæèòü char, çíà÷åíèå ïåðâîãî ñèìâîëà name, íà ñòåê. |
?COMP |
PARSE-WORD DROP C@ [COMPILE] LITERAL |
; IMMEDIATE |
: ABORT" \ 94 |
\ Èíòåðïðåòàöèÿ: ñåìàíòèêà íå îïðåäåëåíà. |
\ Êîìïèëÿöèÿ: ( "ccc<quote>" -- ) |
\ Âûäåëèòü ccc, îãðàíè÷åííûå " (äâîéíûìè êàâû÷êàìè). Äîáàâèòü îïèñàííóþ |
\ íèæå ñåìàíòèêó âðåìåíè âûïîëíåíèÿ â òåêóùåå îïðåäåëåíèå. |
\ Âûïîëíåíèå: ( i*x x1 -- | i*x ) |
\ Óáðàòü x1 ñî ñòåêà. Åñëè ëþáîé áèò x1 íåíóëåâîé, âûâåñòè íà ýêðàí ccc è |
\ âûïîëíèòü çàâèñÿùèå îò ðåàëèçàöèè äåéñòâèÿ, âêëþ÷àþùèå ABORT. |
\ : ABORT" \ 94 EXCEPTION EXT |
\ Ðàñøèðèòü ñåìàíòèêó CORE ABORT" ÷òîáû áûëî: |
\ Èíòåðïðåòàöèÿ: ñåìàíòèêà íå îïðåäåëåíà. |
\ Êîìïèëÿöèÿ: ( "ccc<quote>" -- ) |
\ Âûäåëèòü ccc, îãðàíè÷åííûå " (äâîéíûìè êàâû÷êàìè). Äîáàâèòü ñåìàíòèêó |
\ âðåìåíè âûïîëíåíèÿ, äàííóþ íèæå, ê òåêóùåìó îïðåäåëåíèþ. |
\ Âðåìÿ âûïîëíåíèÿ: ( i*x x1 -- | i*x ) ( R: j*x -- | j*x ) |
\ Óáðàòü x1 ñî ñòåêà. Åñëè ëþáîé áèò x1 íåíóëåâîé, âûïîëíèòü ôóíêöèþ |
\ -2 THROW, âûâîäÿ ccc, åñëè íà ñòåêå èñêëþ÷åíèé íåò êàäðà èñêëþ÷åíèé. |
?COMP |
?COMP [COMPILE] C" |
['] (ABORT") COMPILE, |
; IMMEDIATE |
/programs/develop/SPForth/src/compiler/spf_immed_loop.f |
---|
0,0 → 1,133 |
( «®¢ ¥¬¥¤«¥®£® ¢ë¯®«¥¨ï, ¨á¯®«ì§ã¥¬ë¥ ¯à¨ ª®¬¯¨«ï樨 |
横«®¢ ¢ ⥫¥ ¢ë᮪®ã஢¥¢®£® ®¯à¥¤¥«¥¨ï. |
-¥§ ¢¨á¨¬ë¥ ®¯à¥¤¥«¥¨ï. |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
८¡à §®¢ ¨¥ ¨§ 16-à §à冷£® ¢ 32-à §àï¤ë© ª®¤ - 1995-96££ |
¥¢¨§¨ï - á¥âï¡àì 1999 |
) |
HEX |
: DO \ 94 |
\ â¥à¯à¥â æ¨ï: ᥬ ⨪ ¥®¯à¥¤¥«¥ . |
\ ®¬¯¨«ïæ¨ï: ( C: -- do-sys ) |
\ ®«®¦¨âì do-sys á⥪ ã¯à ¢«¥¨ï. ®¡ ¢¨âì ᥬ ⨪㠢६¥¨ ¢ë¯®«¥¨ï, |
\ ¤ ãî ¨¦¥, ª ⥪ã饬㠮¯à¥¤¥«¥¨î. ¥¬ ⨪ ¥§ ¢¥àè¥ ¤® à §à¥è¥¨ï |
\ ¯®âॡ¨â¥«¥¬ do-sys, â ª¨¬ ª ª LOOP. |
\ à¥¬ï ¢ë¯®«¥¨ï: ( n1|u1 n2|u2 -- ) ( R: -- loop-sys ) |
\ áâ ®¢¨âì ¯ à ¬¥âàë 横« ¨¤¥ªá n2|u2 ¨ ¯à¥¤¥« n1|u1. ¥®¯à¥¤¥«¥ ï |
\ á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ n1|u1 ¨ n2|u2 ¥ ®¤®£® ⨯ . á¥, ç⮠㦥 |
\ 室¨«®áì á⥪¥ ¢®§¢à ⮢, áâ ®¢¨âáï ¥¤®áâã¯ë¬ ¤® â¥å ¯®à, ¯®ª ¥ |
\ ¡ã¤ãâ ã¡à ë ¯ à ¬¥âàë 横« . |
?COMP |
['] C-DO INLINE, |
SetOP 0x68 C, DP @ 4 ALLOT |
SetOP 0x52 C, \ PUSH EDX |
SetOP 0x53 C, \ PUSH EBX |
4 ALIGN-NOP |
DP @ DUP TO :-SET |
; IMMEDIATE |
: ?DO \ 94 CORE EXT |
\ â¥à¯à¥â æ¨ï: ᥬ ⨪ ¥®¯à¥¤¥«¥ . |
\ ®¬¯¨«ïæ¨ï: ( C: -- do-sys ) |
\ ®«®¦¨âì do-sys á⥪ ã¯à ¢«¥¨ï. ®¡ ¢¨âì ᥬ ⨪㠢६¥¨ ¢ë¯®«¥¨ï, |
\ ¤ ãî ¨¦¥, ª ⥪ã饬㠮¯à¥¤¥«¥¨î. ¥¬ ⨪ ¥§ ¢¥àè¥ ¤® à §à¥è¥¨ï |
\ ¯®âॡ¨â¥«¥¬ do-sys, â ª¨¬ ª ª LOOP. |
\ à¥¬ï ¢ë¯®«¥¨ï: ( n1|u1 n2|u2 -- ) ( R: -- | loop-sys ) |
\ ᫨ n1|u1 à ¢® n2|u2, ¯à®¤®«¦¨âì ¢ë¯®«¥¨¥ á ¬¥áâ , ¤ ®£® ¯®âॡ¨â¥«¥¬ |
\ do-sys. ç¥ ãáâ ®¢¨âì ¯ à ¬¥âàë 横« ¨¤¥ªá n2|u2 ¨ ¯à¥¤¥« n1|u1 |
\ ¨ ¯à®¤®«¦¨âì ¢ë¯®«¥¨¥ áà §ã § ?DO. ¥®¯à¥¤¥«¥ ï |
\ á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ n1|u1 ¨ n2|u2 ¥ ®¤®£® ⨯ . á¥, ç⮠㦥 |
\ 室¨«®áì á⥪¥ ¢®§¢à ⮢, áâ ®¢¨âáï ¥¤®áâã¯ë¬ ¤® â¥å ¯®à, ¯®ª ¥ |
\ ¡ã¤ãâ ã¡à ë ¯ à ¬¥âàë 横« . |
?COMP |
OP0 @ :-SET UMAX TO :-SET |
['] NIP DUP INLINE, INLINE, |
0xBB C, HERE 4 ALLOT |
['] C-?DO INLINE, |
DP @ DUP TO :-SET |
; IMMEDIATE |
: LOOP \ 94 |
\ â¥à¯à¥â æ¨ï: ( C: do-sys -- ) |
\ ®¡ ¢¨âì ᥬ ⨪㠢६¥¨ ¢ë¯®«¥¨ï, ¤ ãî ¨¦¥, ª ⥪ã饬㠮¯à¥¤¥«¥¨î. |
\ §à¥è¨âì ¢á¥ ¯®ï¢«¥¨ï LEAVE ¬¥¦¤ã ¯®§¨æ¨¥©, ¤ ®© do-sys ¨ á«¥¤ãî饩 |
\ ¯®§¨æ¨¥© ¯¥à¥¤ ç¨ ã¯à ¢«¥¨ï ¤«ï ¢ë¯®«¥¨ï á«®¢ § LOOP. |
\ à¥¬ï ¢ë¯®«¥¨ï: ( -- ) ( R: loop-sys1 -- | loop-sys2 ) |
\ ¥®¯à¥¤¥«¥ ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ ¯ à ¬¥âàë 横« ¥¤®áâã¯ë. |
\ ਡ ¢¨âì ¥¤¨¨æã ª ¨¤¥ªáã 横« . ᫨ ¨¤¥ªá 横« áâ « à ¢ë¬ ¯à¥¤¥«ã, |
\ ã¡à âì ¯ à ¬¥âàë 横« ¨ ¯à®¤®«¦¨âì ¢ë¯®«¥¨¥ áà §ã § 横«®¬. ç¥ |
\ ¯à®¤®«¦¨âì ¢ë¯®«¥¨¥ á ç « 横« . |
?COMP |
24 04FF W, C, \ inc dword [esp] |
HERE 2+ - DUP SHORT? SetOP SetJP |
IF |
71 C, C, \ jno short |
ELSE |
4 - 0F C, 81 C, , \ jno near |
THEN SetOP |
0C24648D , \ lea esp, 0c [esp] |
DP @ SWAP ! |
; IMMEDIATE |
: +LOOP \ 94 |
\ â¥à¯à¥â æ¨ï: ( C: do-sys -- ) |
\ ®¡ ¢¨âì ᥬ ⨪㠢६¥¨ ¢ë¯®«¥¨ï, ¤ ãî ¨¦¥, ª ⥪ã饬㠮¯à¥¤¥«¥¨î. |
\ §à¥è¨âì ¢á¥ ¯®ï¢«¥¨ï LEAVE ¬¥¦¤ã ¯®§¨æ¨¥©, ¤ ®© do-sys ¨ á«¥¤ãî饩 |
\ ¯®§¨æ¨¥© ¯¥à¥¤ ç¨ ã¯à ¢«¥¨ï ¤«ï ¢ë¯®«¥¨ï á«®¢ § LOOP. |
\ à¥¬ï ¢ë¯®«¥¨ï: ( n -- ) ( R: loop-sys1 -- | loop-sys2 ) |
\ ¥®¯à¥¤¥«¥ ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ ¯ à ¬¥âàë 横« ¥¤®áâã¯ë. |
\ ਡ ¢¨âì n ª ¨¤¥ªáã 横« . ᫨ ¨¤¥ªá 横« ¥ ¯¥à¥á¥ª £à ¨æã ¬¥¦¤ã |
\ ¯à¥¤¥«®¬ 横« ¬¨ãá ¥¤¨¨æ ¨ ¯à¥¤¥«®¬ 横« , ¯à®¤®«¦¨âì ¢ë¯®«¥¨¥ á |
\ ç « 横« . ç¥ ã¡à âì ¯ à ¬¥âàë 横« ¨ ¯à®¤®«¦¨âì ¢ë¯®«¥¨¥ áà §ã |
\ § 横«®¬. |
?COMP |
['] ADD[ESP],EAX INLINE, |
['] DROP INLINE, |
HERE 2+ - DUP SHORT? SetOP SetJP |
IF |
71 C, C, \ jno short |
ELSE |
4 - 0F C, 81 C, , \ jno near |
THEN SetOP |
0C24648D , \ lea esp, 0c [esp] |
DP @ SWAP ! |
; IMMEDIATE |
: I \ 94 |
\ â¥à¯à¥â æ¨ï: ᥬ ⨪ ¥®¯à¥¤¥«¥ . |
\ 믮«¥¨¥: ( -- n|u ) ( R: loop-sys -- loop-sys ) |
\ n|u - ª®¯¨ï ⥪ã饣® (¢ãâ॥£®) ¨¤¥ªá 横« . ¥®¯à¥¤¥«¥ ï á¨âã æ¨ï |
\ ¢®§¨ª ¥â, ¥á«¨ ¯ ଥâàë 横« ¥¤®áâã¯ë. |
?COMP ['] C-I INLINE, |
; IMMEDIATE |
: J \ 94 |
?COMP ['] C-J INLINE, |
; IMMEDIATE |
: LEAVE \ 94 |
\ â¥à¯à¥â æ¨ï: ᥬ ⨪ ¥®¯à¥¤¥«¥ . |
\ 믮«¥¨¥: ( -- ) ( R: loop-sys -- ) |
\ ¡à âì ⥪ã騥 ¯ à ¬¥âàë 横« . ¥®¯à¥¤¥«¥ ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ |
\ ®¨ ¥¤®áâã¯ë. த®«¦¨âì ¢ë¯®«¥¨¥ áà §ã § á ¬ë¬¨ ¢ãâ२¬¨ DO ... LOOP |
\ ¨«¨ DO ... +LOOP. |
?COMP |
SetOP 0824648D , \ lea esp, 08 [esp] |
SetOP C3 C, \ ret |
; IMMEDIATE |
: UNLOOP \ 94 |
\ â¥à¯à¥â æ¨ï: ᥬ ⨪ ¥®¯à¥¤¥«¥ . |
\ 믮«¥¨¥: ( -- ) ( R: loop-sys -- ) |
\ ¡à âì ¯ à ¬¥âàë 横« ⥪ã饣® ã஢ï. UNLOOP âॡã¥âáï ¤«ï ª ¦¤®£® |
\ ãà®¢ï ¢«®¦¥¨ï 横«®¢ ¯¥à¥¤ ¢ë室®¬ ¨§ ®¯à¥¤¥«¥¨ï ¯® EXIT. |
\ ¥®¤®§ ç ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ ¯ à ¬¥âàë 横« ¥¤®áâã¯ë. |
?COMP |
SetOP 0C24648D , \ lea esp, 0c [esp] |
; IMMEDIATE |
DECIMAL |
/programs/develop/SPForth/src/compiler/spf_immed_transl.f |
---|
0,0 → 1,120 |
( «®¢ ¥¬¥¤«¥®£® ¢ë¯®«¥¨ï, ¨á¯®«ì§ã¥¬ë¥ ¢ ०¨¬¥ ª®¬¯¨«ï樨. |
-¥§ ¢¨á¨¬ë¥ ®¯à¥¤¥«¥¨ï. |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
८¡à §®¢ ¨¥ ¨§ 16-à §à冷£® ¢ 32-à §àï¤ë© ª®¤ - 1995-96££ |
¥¢¨§¨ï - á¥âï¡àì 1999 |
®¤¨ä¨æ¨à®¢ ® ªá¨¬®¢ë¬ .. |
email:mak@mail.rtc.neva.ru |
http://informer.rtc.neva.ru/ |
â ¤ {812}105-92-03 |
â à {812}552-47-64 |
) |
: TO \ 94 CORE EXT |
\ â¥à¯à¥â æ¨ï: ( x "<spaces>name" -- ) |
\ யãáâ¨âì ¢¥¤ã騥 ¯à®¡¥«ë ¨ ¢ë¤¥«¨âì name, ®£à ¨ç¥®¥ ¯à®¡¥«®¬. |
\ ¯¨á âì x ¢ name. ¥®¯à¥¤¥«¥ ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ name ¥ |
\ ®¯à¥¤¥«¥® ç¥à¥§ VALUE. |
\ ®¬¯¨«ïæ¨ï: ( "<spaces>name" -- ) |
\ யãáâ¨âì ¢¥¤ã騥 ¯à®¡¥«ë ¨ ¢ë¤¥«¨âì name, ®£à ¨ç¥®¥ ¯à®¡¥«®¬. |
\ ®¡ ¢¨âì ᥬ ⨪㠢६¥¨ ¢ë¯®«¥¨ï, ¤ ãî ¨¦¥, ª ⥪ã饬㠮¯à¥¤¥«¥¨î. |
\ ¥®¯à¥¤¥«¥ ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ name ¥ ®¯à¥¤¥«¥® ç¥à¥§ VALUE. |
\ à¥¬ï ¢ë¯®«¥¨ï: ( x -- ) |
\ ¯¨á âì x ¢ name. |
\ ਬ¥ç ¨¥: ¥®¯à¥¤¥«¥ ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ POSTPONE ¨«¨ [COMPILE] |
\ ¯à¨¬¥ïîâáï ª TO. |
' |
>BODY CELL+ STATE @ |
IF COMPILE, ELSE EXECUTE THEN |
; IMMEDIATE |
: COMPILE,_M COMPILE, ; |
: POSTPONE \ 94 |
\ â¥à¯à¥â æ¨ï: ᥬ ⨪ ¥ ®¯à¥¤¥«¥ . |
\ ®¬¯¨«ïæ¨ï: ( "<spaces>name" -- ) |
\ யãáâ¨âì ¢¥¤ã騥 à §¤¥«¨â¥«¨. 뤥«¨âì ¨¬ï, ®£à ¨ç¥®¥ ¯à®¡¥« ¬¨. |
\ ©â¨ ¨¬ï. ®¡ ¢¨âì ᥬ ⨪㠪®¬¯¨«ï樨 ¨¬¥¨ ¢ ⥪ã饥 ®¯à¥¤¥«¥¨¥. |
?COMP |
PARSE-WORD SFIND DUP |
0= IF -321 THROW THEN |
1 = IF COMPILE, |
ELSE LIT, ['] COMPILE,_M COMPILE, THEN |
; IMMEDIATE |
: \ \ 94 CORE EXT |
\ ®¬¯¨«ïæ¨ï: 믮«¨âì ᥬ ⨪㠢믮«¥¨ï, ¤ ãî ¨¦¥. |
\ 믮«¥¨¥: ( "ccc<eol>" -- ) |
\ 뤥«¨âì ¨ ®â¡à®á¨âì ®áâ ⮪ à §¡¨à ¥¬®© ®¡« áâ¨. |
\ \ - á«®¢® ¥¬¥¤«¥®£® ¨á¯®«¥¨ï. |
1 PARSE 2DROP |
; IMMEDIATE |
: .( \ 94 CORE EXT |
\ ®¬¯¨«ïæ¨ï: 믮«¨âì ᥬ ⨪㠢믮«¥¨ï, ¤ ãî ¨¦¥. |
\ 믮«¥¨¥: ( "ccc<paren>" -- ) |
\ 뤥«¨âì ¨ ¢ë¢¥á⨠¤¨á¯«¥© ccc, ®£à ¨ç¥ë¥ ¯à ¢®© ᪮¡ª®© ")". |
\ .( - á«®¢® ¥¬¥¤«¥®£® ¨á¯®«¥¨ï. |
[CHAR] ) PARSE TYPE |
; IMMEDIATE |
: ( ( "ccc<paren>" -- ) \ 94 FILE |
\ áè¨à¨âì ᥬ ⨪ã CORE (, ¢ª«î稢: |
\ ®£¤ à §¡¨à ¥âáï ⥪áâ®¢ë© ä ©«, ¥á«¨ ª®¥æ à §¡¨à ¥¬®© ®¡« á⨠¤®á⨣ãâ |
\ à ìè¥, 祬 ©¤¥ ¯à ¢ ï ᪮¡ª , ᮢ § ¯®«¨âì ¢å®¤®© ¡ãä¥à á«¥¤ãî饩 |
\ áâப®© ¨§ ä ©« , ãáâ ®¢¨âì >IN ¢ ®«ì ¨ ¯à®¤®«¦ âì à §¡®à, ¯®¢â®àïï |
\ íâ®â ¯à®æ¥áá ¤® â¥å ¯®à, ¯®ª ¥ ¡ã¤¥â ©¤¥ ¯à ¢ ï ᪮¡ª ¨«¨ ¥ |
\ ¡ã¤¥â ¤®á⨣ãâ ª®¥æ ä ©« . |
BEGIN |
[CHAR] ) DUP PARSE + C@ = 0= |
WHILE |
REFILL 0= IF EXIT THEN |
REPEAT |
; IMMEDIATE |
: [COMPILE] \ 94 CORE EXT |
\ â¥à¯à¥â æ¨ï: ᥬ ⨪ ¥®¯à¥¤¥«¥ . |
\ ®¬¯¨«ïæ¨ï: ( "<spaces>name" -- ) |
\ யãáâ¨âì ¢¥¤ã騥 ¯à®¡¥«ë. 뤥«¨âì name, ®£à ¨ç¥®¥ ¯à®¡¥« ¬¨. |
\ ©â¨ name. ᫨ ¨¬ï ¨¬¥¥â ¨ãî ᥬ ⨪㠪®¬¯¨«ï樨, 祬 "¯®-㬮«ç ¨î", |
\ ¤®¡ ¢¨âì ¥¥ ¢ ⥪ã饥 ®¯à¥¤¥«¥¨¥; ¨ ç¥ ¤®¡ ¢¨âì ᥬ ⨪㠢믮«¥¨ï name. |
\ ¥®¯à¥¤¥«¥ ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ name ¥ ©¤¥®. |
?COMP |
' |
COMPILE, |
; IMMEDIATE |
: ; [;] ; IMMEDIATE |
: [;] ( -- ) |
RET, [COMPILE] [ REVEAL |
ClearJpBuff |
0 TO LAST-NON |
; |
: EXIT |
RET, |
; IMMEDIATE |
: \EOF ( -- ) |
\ ª 稢 ¥â âà á«ïæ¨î ⥪ã饣® ¯®â®ª |
BEGIN REFILL 0= UNTIL |
POSTPONE \ |
; |
: FIELD ( offset size "new-name< >" -- offset+size ) |
: OVER |
DUP IF DUP LIT, ['] + COMPILE, |
THEN DROP |
POSTPONE ; |
+ ; |
0 [IF] |
: -- |
CREATE OVER , + |
(DOES1) (DOES2) @ + |
; |
[ELSE] |
: -- FIELD ; |
[THEN] |
/programs/develop/SPForth/src/compiler/spf_literal |
---|
0,0 → 1,80 |
( ८¡à §®¢ ¨¥ ç¨á«®¢ëå «¨â¥à «®¢ ¯à¨ ¨â¥à¯à¥â 樨. |
-¥§ ¢¨á¨¬ë¥ ®¯à¥¤¥«¥¨ï. |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
८¡à §®¢ ¨¥ ¨§ 16-à §à冷£® ¢ 32-à §àï¤ë© ª®¤ - 1995-96££ |
¥¢¨§¨ï - á¥âï¡àì 1999 |
) |
: ?LITERAL1 ( T -> ... ) |
\ ¯à¥®¡à §®¢ âì áâப㠢 ç¨á«® |
0 0 ROT COUNT |
OVER C@ [CHAR] - = IF 1- SWAP 1+ SWAP TRUE ELSE FALSE THEN >R |
>NUMBER ." N{" 2DUP TYPE ." }" |
DUP 1 > IF -2001 THROW THEN \ ABORT" -?" |
IF C@ [CHAR] . <> IF -2002 THROW THEN \ ABORT" -??" |
R> IF DNEGATE THEN |
[COMPILE] 2LITERAL |
ELSE DROP D>S |
R> IF NEGATE THEN |
[COMPILE] LITERAL |
THEN |
; |
: ?SLITERAL1 ( c-addr u -> ... ) |
\ ¯à¥®¡à §®¢ âì áâப㠢 ç¨á«® |
0 0 2SWAP |
OVER C@ [CHAR] - = IF 1- SWAP 1+ SWAP TRUE ELSE FALSE THEN >R |
>NUMBER |
DUP 1 > IF -2001 THROW THEN \ ABORT" -?" |
IF C@ [CHAR] . <> IF -2002 THROW THEN \ ABORT" -??" |
R> IF DNEGATE THEN |
[COMPILE] 2LITERAL |
ELSE DROP D>S |
R> IF NEGATE THEN |
[COMPILE] LITERAL |
THEN |
; |
: HEX-LITERAL ( T -> ... ) |
BASE @ >R HEX |
0 0 ROT COUNT 2- SWAP 2+ SWAP >NUMBER 2DROP D>S [COMPILE] LITERAL |
R> BASE ! |
; |
: HEX-SLITERAL ( T -> ... ) |
BASE @ >R HEX |
0 0 2SWAP 2- SWAP 2+ SWAP >NUMBER 2DROP D>S [COMPILE] LITERAL |
R> BASE ! |
; |
: ?LITERAL2 ( c-addr -- ... ) |
( à áè¨à¥ë© ¢ ਠâ ?LITERAL1: |
¥á«¨ áâப - ¥ ç¨á«®, â® ¯ëâ ¥¬áï âà ªâ®¢ âì ¥ñ |
ª ª ¨¬ï ä ©« ¤«ï ¢â®-INCLUDED) |
DUP COUNT 2 MIN S" 0x" COMPARE 0= |
IF HEX-LITERAL EXIT THEN |
DUP >R ['] ?LITERAL1 CATCH |
IF DROP R> COUNT |
OVER C@ [CHAR] " = IF 2 - SWAP 1+ SWAP THEN ( ã¡à « ª ¢ë窨, ¥á«¨ ¥áâì) |
2DUP + 0 SWAP C! |
['] INCLUDED CATCH |
DUP 2 = OVER 3 = OR ( ä ©« ¥ ©¤¥ ¨«¨ ¯ãâì ¥ ©¤¥ ) |
IF -2003 THROW \ ABORT" -???" |
ELSE THROW THEN |
ELSE RDROP |
THEN |
; |
: ?SLITERAL2 ( c-addr u -- ... ) |
( à áè¨à¥ë© ¢ ਠâ ?SLITERAL1: |
¥á«¨ áâப - ¥ ç¨á«®, â® ¯ëâ ¥¬áï âà ªâ®¢ âì ¥ñ |
ª ª ¨¬ï ä ©« ¤«ï ¢â®-INCLUDED) |
2DUP 2 MIN S" 0x" COMPARE 0= |
IF HEX-SLITERAL EXIT THEN |
2DUP 2>R ['] ?SLITERAL1 CATCH |
IF 2DROP 2R> |
OVER C@ [CHAR] " = IF 2 - SWAP 1+ SWAP THEN ( ã¡à « ª ¢ë窨, ¥á«¨ ¥áâì) |
2DUP + 0 SWAP C! |
['] INCLUDED CATCH |
DUP 2 = OVER 3 = OR ( ä ©« ¥ ©¤¥ ¨«¨ ¯ãâì ¥ ©¤¥ ) |
IF -2003 THROW \ ABORT" -???" |
ELSE THROW THEN |
ELSE 2R> 2DROP |
THEN |
; |
/programs/develop/SPForth/src/compiler/spf_literal.f |
---|
0,0 → 1,64 |
( ८¡à §®¢ ¨¥ ç¨á«®¢ëå «¨â¥à «®¢ ¯à¨ ¨â¥à¯à¥â 樨. |
-¥§ ¢¨á¨¬ë¥ ®¯à¥¤¥«¥¨ï. |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
८¡à §®¢ ¨¥ ¨§ 16-à §à冷£® ¢ 32-à §àï¤ë© ª®¤ - 1995-96££ |
¥¢¨§¨ï - á¥âï¡àì 1999 |
) |
: ?SLITERAL1 ( c-addr u -> ... ) |
\ ¯à¥®¡à §®¢ âì áâப㠢 ç¨á«® |
0 0 2SWAP |
OVER C@ [CHAR] - = IF 1- SWAP 1+ SWAP TRUE ELSE FALSE THEN >R |
>NUMBER |
DUP 1 > IF ." -?" -2001 THROW THEN \ ABORT" -?" |
IF C@ [CHAR] . <> IF -2002 THROW THEN \ ABORT" -??" |
R> IF DNEGATE THEN |
[COMPILE] 2LITERAL |
ELSE DROP D>S |
R> IF NEGATE THEN |
[COMPILE] LITERAL |
THEN |
; |
: ?LITERAL1 ( T -> ... ) |
\ ¯à¥®¡à §®¢ âì áâப㠢 ç¨á«® |
COUNT ?SLITERAL1 |
; |
: HEX-SLITERAL ( addr u -> flag ) |
BASE @ >R HEX |
0 0 2SWAP 2- SWAP 2+ SWAP >NUMBER |
?DUP IF |
1 = SWAP C@ [CHAR] L = AND 0= IF 2DROP FALSE R> BASE ! EXIT THEN |
ELSE DROP THEN |
D>S POSTPONE LITERAL TRUE |
R> BASE ! |
; |
: INCLUDED_S -2003 THROW |
INCLUDED ; |
: ?SLITERAL2 ( c-addr u -- ... ) |
( à áè¨à¥ë© ¢ ਠâ ?SLITERAL1: |
¥á«¨ áâப - ¥ ç¨á«®, â® ¯ëâ ¥¬áï âà ªâ®¢ âì ¥ñ |
ª ª ¨¬ï ä ©« ¤«ï ¢â®-INCLUDED) |
DUP 1 > IF OVER W@ 0x7830 ( 0x) = |
IF 2DUP 2>R HEX-SLITERAL IF RDROP RDROP EXIT ELSE 2R> THEN THEN |
THEN |
2DUP 2>R ['] ?SLITERAL1 CATCH |
IF 2DROP 2R> |
OVER C@ [CHAR] " = OVER 2 > AND |
IF 2 - SWAP 1+ SWAP THEN ( ã¡à « ª ¢ë窨, ¥á«¨ ¥áâì) |
2DUP + 0 SWAP C! |
['] INCLUDED_S CATCH |
DUP 2 = OVER 3 = OR OVER 161 = OR ( ä ©« ¥ ©¤¥ ¨«¨ ¯ãâì ¥ ©¤¥, |
¨«¨ ¥à §à¥è¥®¥ ¨¬ï ä ©« ) |
IF -2003 THROW \ ABORT" -???" |
ELSE THROW THEN |
ELSE RDROP RDROP |
THEN |
; |
: ?LITERAL2 ( c-addr -- ... ) |
( à áè¨à¥ë© ¢ ਠâ ?LITERAL1: |
¥á«¨ áâப - ¥ ç¨á«®, â® ¯ëâ ¥¬áï âà ªâ®¢ âì ¥ñ |
ª ª ¨¬ï ä ©« ¤«ï ¢â®-INCLUDED) |
COUNT ?SLITERAL2 |
; |
/programs/develop/SPForth/src/compiler/spf_modules.f |
---|
0,0 → 1,37 |
( Working with forth modules |
Copyright [C] 2000 D.Yakimov day@forth.org.ru |
) |
: MODULE: ( "name" -- old-current ) |
\ start a forth module |
\ åÓÌÉ ÔÁËÏÊ ÍÏÄÕÌØ ÕÖÅ ÓÕÝÅÓÔ×ÕÅÔ, ÐÒÏÄÏÌÖÉÔØ ËÏÍÐÉÌÑÃÉÀ × ÎÅÇÏ |
>IN @ ['] ' CATCH |
IF >IN ! VOCABULARY GET-CURRENT |
ALSO LATEST NAME> EXECUTE DEFINITIONS |
ELSE |
NIP GET-CURRENT SWAP ALSO EXECUTE DEFINITIONS |
THEN |
; |
: EXPORT ( old-current -- old-current ) |
\ export some module definitions |
DUP SET-CURRENT |
; |
: ;MODULE ( old-current -- ) |
\ finish the module |
SET-CURRENT PREVIOUS |
; |
: {{ ( "name" -- ) |
\ ëÌÁÄÅÔ × ORDER wordlist, Ë-ÙÊ ÄÁÓÔ "name" |
\ ÉÌÉ vocabulary ÅÓÌÉ "name" - vocabulary |
DEPTH >R |
ALSO ' EXECUTE |
DEPTH R> <> IF \ wid on the stack? |
CONTEXT ! THEN |
; IMMEDIATE |
: }} |
PREVIOUS |
; IMMEDIATE |
/programs/develop/SPForth/src/compiler/spf_parser.f |
---|
0,0 → 1,128 |
( àá¥à áâப¨ á ¨áå®¤ë¬ â¥ªá⮬ ¯à®£à ¬¬ë ®àâ¥. |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
¥âï¡àì 1999: PARSE ¨ SKIP ¯à¥®¡à §®¢ ë ¨§ CODE |
¢ ¢ë᮪®ã஢¥¢ë¥ ®¯à¥¤¥«¥¨ï. ¥à¥¬¥ë¥ ¯à¥®¡à §®¢ ë ¢ USER. |
) |
512 VALUE C/L \ ¬ ªá¨¬ «ìë© à §¬¥à áâப¨, ª®â®àãî ¬®¦® ¢¢¥á⨠¢ TIB |
: SOURCE ( -- c-addr u ) \ 94 |
\ c-addr - ¤à¥á ¢å®¤®£® ¡ãä¥à . u - ª®«¨ç¥á⢮ ᨬ¢®«®¢ ¢ ¥¬. |
TIB #TIB @ |
; |
: SOURCE! ( c-addr u -- ) |
\ ãáâ ®¢¨âì c-addr u ¢å®¤ë¬ ¡ãä¥à®¬ (â®ç¥¥, ®¡« áâìî à §¡®à - PARSE-AREA) |
#TIB ! TO TIB >IN 0! ; |
: EndOfChunk ( -- flag ) |
>IN @ SOURCE NIP < 0= \ >IN ¥ ¬¥ìè¥, 祬 ¤«¨ ç ª |
; |
: CharAddr ( -- c-addr ) |
SOURCE DROP >IN @ |
\ CR ." CA=" DEPTH .SN |
+ |
; |
: PeekChar ( -- char ) |
CharAddr C@ \ ᨬ¢®« ¨§ ⥪ã饣® § 票ï >IN |
; |
: IsDelimiter ( char -- flag ) |
BL 1+ < |
; |
: GetChar ( -- char flag ) |
EndOfChunk |
IF 0 FALSE |
ELSE PeekChar TRUE THEN |
; |
: OnDelimiter ( -- flag ) |
GetChar SWAP IsDelimiter AND |
; |
: SkipDelimiters ( -- ) \ ¯à®¯ãáâ¨âì ¯à®¡¥«ìë¥ á¨¬¢®«ë |
BEGIN |
OnDelimiter |
WHILE |
>IN 1+! |
REPEAT >IN @ >IN_WORD ! ; |
: OnNotDelimiter ( -- flag ) |
GetChar SWAP IsDelimiter 0= AND |
; |
: SkipWord ( -- ) \ ¯à®¯ãáâ¨âì ¥¯à®¡¥«ìë¥ á¨¬¢®«ë |
BEGIN |
OnNotDelimiter |
WHILE |
>IN 1+! |
REPEAT |
; |
: SkipUpTo ( char -- ) \ ¯à®¯ãáâ¨âì ¤® ᨬ¢®« char |
BEGIN |
DUP GetChar \ ." SC=" DUP M. |
>R <> R> AND |
WHILE |
>IN 1+! |
REPEAT DROP |
; |
: ParseWord ( -- c-addr u ) |
CharAddr \ CR ." P=" DUP 9 TYPE |
>IN @ |
\ CR ." XZ=" DEPTH .SN |
SkipWord >IN @ |
\ CR ." X1=" DEPTH .SN |
- NEGATE |
\ CR ." X2=" DEPTH .SN |
\ CR ." PZ=" 2DUP TYPE |
; |
CREATE UPPER_SCR 31 ALLOT |
: UPC ( c -- c' ) |
DUP [CHAR] Z U> |
IF 0xDF AND |
THEN ; |
: UPPER ( ADDR LEN -- ) |
0 ?DO COUNT UPC OVER 1- C! LOOP DROP ; |
: UPPER_NW ( ADDR LEN -- ADDR' LEN ) |
UPPER_SCR PLACE |
UPPER_SCR COUNT 2DUP UPPER ; |
: PARSE-WORD ( "name" -- c-addr u ) |
\ http://www.complang.tuwien.ac.at/forth/ansforth/parse-word.html |
\ íâ® á«®¢® ⥯¥àì ¡ã¤¥¬ ¨á¯®«ì§®¢ âì ¢ INTERPRET |
\ - 㤮¡¥¥: ¥ ¨á¯®«ì§ã¥â WORD ¨, ᮮ⢥âá⢥®, ¥ ¬ãá®à¨â ¢ HERE; |
\ ¨ à §¤¥«¨â¥«ï¬¨ áç¨â ¥â ¢á¥ çâ® <=BL, ¢ ⮬ ç¨á«¥ TAB ¨ CRLF |
SkipDelimiters ParseWord |
>IN 1+! \ ¯à®¯ãá⨫¨ à §¤¥«¨â¥«ì § á«®¢®¬ |
\ UPPER_V @ EXECUTE |
; |
: NextWord PARSE-WORD ; |
: PARSE-NAME PARSE-WORD ; |
: PARSE ( char "ccc<char>" -- c-addr u ) \ 94 CORE EXT |
\ 뤥«¨âì ccc, ®£à ¨ç¥®¥ ᨬ¢®«®¬ char. |
\ c-addr - ¤à¥á (¢ãâਠ¢å®¤®£® ¡ãä¥à ), ¨ u - ¤«¨ ¢ë¤¥«¥®© áâப¨. |
\ ᫨ à §¡¨à ¥¬ ï ®¡« áâì ¡ë« ¯ãáâ , १ã«ìâ¨àãîé ï áâப ¨¬¥¥â ã«¥¢ãî |
\ ¤«¨ã. |
CharAddr >IN @ |
ROT SkipUpTo |
>IN @ - NEGATE |
>IN 1+! |
; |
: PSKIP ( char "ccc<char>" -- ) |
\ யãáâ¨âì à §¤¥«¨â¥«¨ char. |
BEGIN |
DUP GetChar >R = R> AND |
WHILE |
>IN 1+! |
REPEAT DROP |
; |
/programs/develop/SPForth/src/compiler/spf_read_source.f |
---|
0,0 → 1,33 |
( ⥨¥ áâப¨ ¨á室®£® ⥪áâ ¨§ ¢å®¤®£® ¯®â®ª : ª®á®«¨ ¨«¨ ä ©« . |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
¥¢¨§¨ï: ¥âï¡àì 1999 |
) |
VECT <PRE> |
: CONSOLE-HANDLES \ $$$$ |
; |
: QUERY ( --- ) |
\ Read a line from the terminal into the terminal input buffer. |
TIB 80 ACCEPT #TIB ! 0 >IN ! ; |
: FREFILL ( h -- flag ) |
TIB C/L ROT READ-LINE THROW \ TAKEN-TIB |
SWAP #TIB ! 0 >IN ! CURSTR 1+! |
0 SOURCE + C! |
; |
: REFILL ( --- f) |
\ Refill the current input source when it is exhausted. f is |
\ true if it was successfully refilled. |
SOURCE-ID -1 = IF |
0 \ Not refillable for EVALUATE |
ELSE SOURCE-ID |
IF SOURCE-ID FREFILL |
ELSE QUERY -1 \ Always successful from terminal. |
THEN |
THEN |
; |
/programs/develop/SPForth/src/compiler/spf_translate.f |
---|
0,0 → 1,222 |
( à á«ïæ¨ï ¨á室ëå ⥪á⮢ ¯à®£à ¬¬. |
-¥§ ¢¨á¨¬ë¥ ®¯à¥¤¥«¥¨ï. |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
८¡à §®¢ ¨¥ ¨§ 16-à §à冷£® ¢ 32-à §àï¤ë© ª®¤ - 1995-96££ |
¥¢¨§¨ï - á¥âï¡àì 1999 |
) |
VECT OK. |
VECT <MAIN> |
VECT ?LITERAL |
VECT ?SLITERAL |
USER-VALUE SOURCE-ID-XT \ ¥á«¨ ¥ à ¢¥ ã«î, ⮠ᮤ¥à¦¨â § ¯®«ïî饥 |
: DEPTH ( -- +n ) \ 94 |
\ +n - ç¨á«® ®¤¨ àëå ï祥ª, 室ïé¨åáï á⥪¥ ¤ ëå ¯¥à¥¤ |
\ ⥬ ª ª â㤠¡ë«® ¯®¬¥é¥® +n. |
SP@ S0 @ - NEGATE 4 U/ |
; |
: ?STACK ( -> ) \ ¢ë¤ âì ®è¨¡ªã "¨áç¥à¯ ¨¥ á⥪ ", ¥á«¨ ® ¡®«¥¥ 祬 ¯ãáâ |
SP@ S0 @ SWAP U< IF S0 @ SP! -4 THROW THEN |
; |
: ?COMP ( -> ) |
STATE @ 0= IF -312 THROW THEN ( ®«ìª® ¤«ï ०¨¬ ª®¬¯¨«ï樨 ) |
; |
: WORD ( char "<chars>ccc<char>" -- c-addr ) \ 94 |
\ யãáâ¨âì ¢¥¤ã騥 à §¤¥«¨â¥«¨. ë¡à âì ᨬ¢®«ë, ®£à ¨ç¥ë¥ |
\ à §¤¥«¨â¥«¥¬ char. |
\ ᪫îç¨â¥«ì ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ ¤«¨ ¨§¢«¥ç¥®© áâப¨ |
\ ¡®«ìè¥ ¬ ªá¨¬ «ì®© ¤«¨ë áâப¨ á® áç¥â稪®¬. |
\ c-addr - ¤à¥á ¯¥à¥¬¥®© ®¡« áâ¨, ᮤ¥à¦ 饩 ¨§¢«¥ç¥®¥ á«®¢® |
\ ¢ ¢¨¤¥ áâப¨ á® áç¥â稪®¬. |
\ ᫨ à §¡¨à ¥¬ ï ®¡« áâì ¯ãáâ ¨«¨ ᮤ¥à¦¨â ⮫쪮 à §¤¥«¨â¥«¨, |
\ १ã«ìâ¨àãîé ï áâப ¨¬¥¥â ã«¥¢ãî ¤«¨ã. |
\ ª®¥æ áâப¨ ¯®¬¥é ¥âáï ¯à®¡¥«, ¥ ¢ª«îç ¥¬ë© ¢ ¤«¨ã áâப¨. |
\ à®£à ¬¬ ¬®¦¥â ¨§¬¥ïâì ᨬ¢®«ë ¢ áâப¥. |
DUP PSKIP PARSE |
DUP HERE C! HERE 1+ SWAP CMOVE |
BL HERE COUNT + ! |
HERE |
; |
1 [IF] |
: ' ( "<spaces>name" -- xt ) \ 94 |
\ யãáâ¨âì ¢¥¤ã騥 ¯à®¡¥«ë. 뤥«¨âì name, ®£à ¨ç¥®¥ ¯à®¡¥«®¬. ©â¨ name |
\ ¨ ¢¥àãâì xt, ¢ë¯®«¨¬ë© ⮪¥ ¤«ï name. ¥®¯à¥¤¥«¥ ï á¨âã æ¨ï ¢®§¨ª ¥â, |
\ ¥á«¨ name ¥ ©¤¥®. |
\ ® ¢à¥¬ï ¨â¥à¯à¥â 樨 ' name EXECUTE à ¢®á¨«ì® name. |
PARSE-WORD SFIND 0= |
IF -321 THROW THEN ( -? ) |
; |
[THEN] |
: CHAR ( "<spaces>name" -- char ) \ 94 |
\ யãáâ¨âì ¢¥¤ã騥 à §¤¥«¨â¥«¨. 뤥«¨âì ¨¬ï, ®à£ ¨ç¥®¥ ¯à®¡¥« ¬¨. |
\ ®«®¦¨âì ª®¤ ¥£® ¯¥à¢®£® ᨬ¢®« á⥪. |
PARSE-WORD DROP C@ ; |
CREATE ILAST-WORD 0 , 0 , |
: INTERPRET_ ( -> ) \ ¨â¥à¯à¥â¨à®¢ âì ¢å®¤®© ¯®â®ª |
SAVEERR? ON |
BEGIN |
PARSE-WORD DUP |
WHILE 2DUP ILAST-WORD 2! |
\ ." <" TYPE ." >" |
SFIND ?DUP |
IF |
STATE @ = |
IF COMPILE, ELSE EXECUTE THEN |
ELSE |
S" NOTFOUND" SFIND |
IF EXECUTE |
ELSE 2DROP ?SLITERAL THEN |
\ ?SLITERAL |
THEN |
?STACK |
REPEAT 2DROP |
; |
VARIABLE &INTERPRET |
' INTERPRET_ &INTERPRET ! |
: INTERPRET &INTERPRET @ EXECUTE ; |
\ : HALT ( ERRNUM -> ) \ ¢ë室 á ª®¤®¬ ®è¨¡ª¨ |
\ >R exit ; |
: .SN ( n --) |
\ ᯥç â âì n ¢¥àå¨å í«¥¬¥â®¢ á⥪ |
>R BEGIN |
R@ |
WHILE |
SP@ R@ 1- CELLS + @ DUP 0< |
IF DUP U>D <# #S #> TYPE |
." (" ABS 0 <# #S [CHAR] - HOLD #> TYPE ." ) " ELSE . THEN |
R> 1- >R |
REPEAT RDROP |
; |
: OK1 |
STATE @ 0= |
IF ." Ok" DEPTH 70 UMIN |
0 ?DO [CHAR] . EMIT LOOP CR |
THEN |
; |
: EVAL-WORD ( a u -- ) |
\ ¨â¥à¯à¥â¨à®¢ âì ( âà ᫨஢ âì) á«®¢® á ¨¬¥¥¬ a u |
SFIND ?DUP IF |
STATE @ = IF |
COMPILE, ELSE |
EXECUTE THEN |
ELSE |
-2003 THROW THEN |
; |
: [ \ 94 CORE |
\ â¥à¯à¥â æ¨ï: ᥬ ⨪ ¥®¯à¥¤¥«¥ . |
\ ®¬¯¨«ïæ¨ï: 믮«¨âì ᥬ ⨪㠢믮«¥¨ï, ¤ ãî ¨¦¥. |
\ 믮«¥¨¥: ( -- ) |
\ áâ ®¢¨âì á®áâ®ï¨¥ ¨â¥à¯à¥â 樨. [ á«®¢® ¥¬¥¤«¥®£® ¢ë¯®«¥¨ï. |
STATE 0! |
; IMMEDIATE |
: ] ( -- ) \ 94 CORE |
\ áâ ®¢¨âì á®áâ®ï¨¥ ª®¬¯¨«ï樨. |
TRUE STATE ! |
; |
: QUIT ( -- ) ( R: i*x ) \ CORE 94 |
\ ¡à®á¨âì á⥪ ¢®§¢à ⮢, § ¯¨á âì ®«ì ¢ SOURCE-ID. |
\ áâ ®¢¨âì áâ ¤ àâë© ¢å®¤®© ¯®â®ª ¨ á®áâ®ï¨¥ ¨â¥à¯à¥â 樨. |
\ ¥ ¢ë¢®¤¨âì á®®¡é¥¨©. ®¢â®àïâì á«¥¤ãî饥: |
\ - à¨ïâì áâப㠨§ ¢å®¤®£® ¯®â®ª ¢® ¢å®¤®© ¡ãä¥à, ®¡ã«¨âì >IN |
\ ¨ ¨â¥¯à¥â¨à®¢ âì. |
\ - 뢥á⨠§ ¢¨áï饥 ®â ॠ«¨§ 樨 á¨á⥬®¥ ¯à¨£« 襨¥, ¥á«¨ |
\ á¨á⥬ 室¨âáï ¢ á®áâ®ï¨¨ ¨â¥à¯à¥â 樨, ¢á¥ ¯à®æ¥ááë § ¢¥àè¥ë, |
\ ¨ ¥â ¥®¤®§ çëå á¨âã 権. |
\ R0 @ RP! ( ¥ ¤¥« ¥¬ í⮣®, çâ®¡ë ¯®§¢®«¨âì "['] QUIT CATCH" ) |
CONSOLE-HANDLES |
0 TO SOURCE-ID |
[COMPILE] [ |
<MAIN> |
; |
: MAIN1 ( -- ) |
BEGIN REFILL |
WHILE INTERPRET OK. |
REPEAT _BYE |
; |
' MAIN1 TO <MAIN> |
: SAVE-SOURCE ( -- i*x i ) |
SOURCE-ID-XT SOURCE-ID >IN @ SOURCE CURSTR @ 6 |
; |
: RESTORE-SOURCE ( i*x i -- ) |
6 <> IF ABORT THEN |
CURSTR ! SOURCE! >IN ! TO SOURCE-ID TO SOURCE-ID-XT |
; |
: EVALUATE-WITH ( ( i*x c-addr u xt -- j*x ) |
\ ç¨â ï c-addr u ¢å®¤ë¬ ¯®â®ª®¬, ¢ëç¨á«¨âì ¥ñ ¨â¥à¯à¥â â®à®¬ xt. |
SAVE-SOURCE N>R |
>R SOURCE! -1 TO SOURCE-ID |
R> ( ['] INTERPRET) CATCH |
NR> RESTORE-SOURCE |
THROW |
; |
: EVALUATE ( i*x c-addr u -- j*x ) \ 94 |
\ ®åà ï¥â ⥪ã騥 ᯥæ¨ä¨ª 樨 ¢å®¤®£® ¯®â®ª . |
\ ¯¨áë¢ ¥â -1 ¢ SOURCE-ID. ¥« ¥â áâபã, § ¤ ãî c-addr u, |
\ ¢å®¤ë¬ ¯®â®ª®¬ ¨ ¢å®¤ë¬ ¡ãä¥à®¬, ãáâ ¢«¨¢ ¥â >IN ¢ 0 |
\ ¨ ¨â¥à¯à¥â¨àã¥â. ®£¤ áâப à §®¡à ¤® ª®æ - ¢®ááâ ¢«¨¢ ¥â |
\ ᯥæ¨ä¨ª 樨 ¯à¥¤ë¤ã饣® ¢å®¤®£® ¯®â®ª . |
\ à㣨¥ ¨§¬¥¥¨ï á⥪ ®¯à¥¤¥«ïîâáï ¢ë¯®«ï¥¬ë¬¨ ¯® EVALUATE á«®¢ ¬¨. |
['] INTERPRET EVALUATE-WITH |
; |
: FQUIT |
BEGIN REFILL |
WHILE INTERPRET |
REPEAT ; |
: INCLUDE-FILE ( i*x fileid -- j*x ) \ 94 FILE |
>IN @ >R |
SOURCE-ID >R TO SOURCE-ID |
RP@ #TIB @ ALIGNED - RP! |
TIB RP@ #TIB @ CMOVE |
SOURCE 2>R |
\ TCR ." IF" |
['] FQUIT CATCH SAVEERR |
\ ['] NOOP CATCH SAVEERR |
2R> SOURCE! |
RP@ TIB #TIB @ CMOVE |
RP@ #TIB @ ALIGNED + RP! |
R> TO SOURCE-ID |
R> >IN ! THROW ; |
: INCLUDED_ ( c-addr u ---- ) |
\ Open the file with name c-addr u and interpret all lines contained in it. |
R/O OPEN-FILE THROW \ ABORT" Can't open include file" |
DUP >R |
['] INCLUDE-FILE CATCH |
R> CLOSE-FILE DROP THROW |
; |
: REQUIRED ( waddr wu laddr lu -- ) |
2SWAP SFIND |
IF DROP 2DROP |
ELSE 2DROP INCLUDED_ THEN |
; |
: REQUIRE ( "word" "libpath" -- ) |
PARSE-NAME PARSE-NAME 2DUP + 0 SWAP C! |
REQUIRED |
; |
: AUTOEXEC S" /sys/INIT.F" INCLUDED_ ; |
/programs/develop/SPForth/src/compiler/spf_wordlist.f |
---|
0,0 → 1,188 |
( ®§¤ ¨¥ á«®¢ àëå áâ ⥩ ¨ á«®¢ ३ WORDLIST. |
-¥§ ¢¨á¨¬ë¥ ®¯à¥¤¥«¥¨ï. |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
८¡à §®¢ ¨¥ ¨§ 16-à §à冷£® ¢ 32-à §àï¤ë© ª®¤ - 1995-96££ |
¥¢¨§¨ï - á¥âï¡àì 1999 |
®¤¨ä¨æ¨à®¢ ® ªá¨¬®¢ë¬ .. |
email:mak@mail.rtc.neva.ru |
http://informer.rtc.neva.ru/ |
â ¤ {812}105-92-03 |
â à {812}552-47-64 |
) |
HEX |
1 CONSTANT &IMMEDIATE \ ª®áâ â ¤«ï ¢ëá¥ç¥¨ï ä« ¦ª IMMEDIATE |
2 CONSTANT &VOC |
\ ®§¢à â¨âì wid - ¨¤¥â¨ä¨ª â®à ᯨ᪠᫮¢, ¢ª«îç î饣® ¢á¥ áâ ¤ àâë¥ |
\ á«®¢ , ®¡¥á¯¥ç¨¢ ¥¬ë¥ ॠ«¨§ 樥©. â®â ᯨ᮪ á«®¢ ¨§ ç «ì® á¯¨á®ª |
\ ª®¬¯¨«ï樨 ¨ ç áâì ç «ì®£® ¯®à浪 ¯®¨áª . |
: >BODY ( xt -- a-addr ) \ 94 |
\ a-addr - ¤à¥á ¯®«ï ¤ ëå, ᮮ⢥âáâ¢ãî騩 xt. |
\ ᪫îç¨â¥«ì ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ xt ¥ ®â á«®¢ , |
\ ®¯à¥¤¥«¥®£® ç¥à¥§ CREATE. |
( 1+ @ ¡ë«® ¢ ¢¥àᨨ 2.5 ) |
5 + |
; |
: SWORD, ( addr u wid -> ) \ ¤®¡ ¢«¥¨¥ § £®«®¢ª áâ âì¨ á ¨¬¥¥¬, |
\ § ¤ ë¬ áâப®© addr u, ª ᯨáªã, § ¤ ®¬ã wid. |
\ ®à¬¨àã¥â ⮫쪮 ¯®«ï ¨¬¥¨ ¨ á¢ï§¨ á |
\ ®â¢¥¤¥¨¥¬ ¯ ¬ï⨠¯® ALLOT. |
HERE CELL+ |
DUP LAST ! |
SWAP DUP @ , ! |
S, 0 C, |
; |
: WORDLIST ( -- wid ) \ 94 SEARCH |
\ ®§¤ ¥â ®¢ë© ¯ãá⮩ ᯨ᮪ á«®¢, ¢®§¢à é ï ¥£® ¨¤¥â¨ä¨ª â®à wid. |
\ ®¢ë© ᯨ᮪ á«®¢ ¬®¦¥â ¡ëâì ¢®§¢à é¥ ¨§ ¯à¥¤¢ à¨â¥«ì® à á¯à¥¤¥«¥ëå |
\ ᯨ᪮¢ á«®¢ ¨«¨ ¬®¦¥â ¤¨ ¬¨ç¥áª¨ à á¯à¥¤¥«ïâìáï ¢ ¯à®áâà á⢥ ¤ ëå. |
\ ¨á⥬ ¤®«¦ ¤®¯ã᪠âì ᮧ¤ ¨¥ ª ª ¬¨¨¬ã¬ 8 ®¢ëå ᯨ᪮¢ á«®¢ ¢ |
\ ¤®¯®«¥¨¥ ª ¨¬¥î騬áï ¢ á¨á⥬¥. |
HERE VOC-LIST @ , VOC-LIST ! |
HERE 0 , \ §¤¥áì ¡ã¤¥â 㪠§ â¥«ì ¨¬ï ¯®á«¥¤¥£® á«®¢ ᯨ᪠|
0 , \ §¤¥áì ¡ã¤¥â 㪠§ â¥«ì ¨¬ï ᯨ᪠¤«ï ¨¬¥®¢ ëå |
0 , \ wid á«®¢ àï-¯à¥¤ª |
0 , \ ª« áá á«®¢ àï = wid á«®¢ àï, ®¯à¥¤¥«ïî饣® ᢮©á⢠¤ ®£® |
; |
: CLASS! ( cls wid -- ) CELL+ CELL+ CELL+ ! ; |
: CLASS@ ( wid -- cls ) CELL+ CELL+ CELL+ @ ; |
: PAR! ( Pwid wid -- ) CELL+ CELL+ ! ; |
: PAR@ ( wid -- Pwid ) CELL+ CELL+ @ ; |
: ID. ( NFA[E] -> ) |
ZCOUNT TYPE |
; |
\ -9 -- flags |
\ -8 -- cfa |
\ -4 -- LFA |
\ 0 -- NFA |
Code NAME>L ;( NFA -> LFA ) |
LEA EAX, [EAX-4] |
RET |
EndCode |
Code NAME>C ;( NFA -> 'CFA ) |
LEA EAX, [EAX-8] |
RET |
EndCode |
Code NAME> ;( NFA -> CFA ) |
MOV EAX, [EAX-8] |
RET |
EndCode |
Code NAME>F ;( NFA -> FFA ) |
LEA EAX, [EAX-9] |
RET |
EndCode |
Code CDR ;( NFA1 -> NFA2 ) |
OR EAX, EAX |
SIF 0<> |
MOV EAX, [EAX-4] |
STHEN |
RET |
EndCode |
: ?IMMEDIATE ( NFA -> F ) |
NAME>F C@ &IMMEDIATE AND |
; |
: ?VOC ( NFA -> F ) |
NAME>F C@ &VOC AND |
; |
0 [IF] |
: IMM ( -- ) \ 94 |
\ ¤¥« âì ¯®á«¥¤¥¥ ®¯à¥¤¥«¥¨¥ á«®¢®¬ ¥¬¥¤«¥®£® ¨á¯®«¥¨ï. |
\ ᪫îç¨â¥«ì ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ ¯®á«¥¤¥¥ ®¯à¥¤¥«¥¨¥ |
\ ¥ ¨¬¥¥â ¨¬¥¨. |
LAST @ NAME>F DUP C@ &IMMEDIATE OR SWAP ." I=" 2DUP H. H. |
; |
: IMMEDIATE ( -- ) \ 94 |
\ ¤¥« âì ¯®á«¥¤¥¥ ®¯à¥¤¥«¥¨¥ á«®¢®¬ ¥¬¥¤«¥®£® ¨á¯®«¥¨ï. |
\ ᪫îç¨â¥«ì ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ ¯®á«¥¤¥¥ ®¯à¥¤¥«¥¨¥ |
\ ¥ ¨¬¥¥â ¨¬¥¨. |
LAST @ NAME>F DUP C@ &IMMEDIATE OR SWAP C! |
; |
[THEN] |
: VOC ( -- ) |
\ ®¬¥â¨âì ¯®á«¥¤¥¥ ®¯à¥¤¥«¥®¥ á«®¢® ¯à¨§ ª®¬ "á«®¢ àì". |
LAST @ NAME>F DUP C@ &VOC OR SWAP C! |
; |
\ ============================================== |
\ ®â« ¤ª - ¯®¨áª á«®¢ ¯® ¤à¥áã ¢ ¥£® ⥫¥ |
\ ============================================== |
\ ®â« ¤ª - ¯®¨áª á«®¢ ¯® ¤à¥áã ¢ ¥£® ⥫¥ |
: N_UMAX ( nfa nfa1 -- nfa|nfa1 ) |
OVER DUP IF NAME> THEN |
OVER DUP IF NAME> THEN U< IF NIP EXIT THEN DROP ; |
: WL_NEAR_NFA ( addr wid - addr nfa | addr 0 ) |
@ |
BEGIN 2DUP DUP IF NAME> THEN U< |
WHILE CDR |
REPEAT |
; |
[IF] |
: NEAR_NFA ( addr - nfa addr | 0 addr ) |
0 SWAP |
VOC-LIST |
BEGIN @ DUP |
WHILE DUP >R CELL+ WL_NEAR_NFA SWAP >R N_UMAX R> R> |
REPEAT DROP |
; |
[ELSE] |
: WL_NEAR_NFA_N ( addr nfa - addr nfa | addr 0 ) |
BEGIN 2DUP DUP IF NAME> THEN U< |
WHILE CDR |
REPEAT |
; |
: WL_NEAR_NFA_M ( addr wid - nfa2 addr | 0 addr ) |
0 -ROT |
CELL+ @ |
BEGIN DUP |
WHILE WL_NEAR_NFA_N \ nfa addr nfa1 |
SWAP >R |
DUP >R N_UMAX |
R> DUP IF CDR THEN |
R> SWAP |
REPEAT DROP |
; |
: NEAR_NFA ( addr - nfa addr | 0 addr ) |
0 SWAP |
VOC-LIST |
BEGIN @ DUP |
WHILE DUP >R WL_NEAR_NFA_M |
>R N_UMAX R> R> |
REPEAT DROP |
; |
[THEN] |
: WordByAddr ( addr -- c-addr u ) |
\ ©â¨ á«®¢®, ⥫㠪®â®à®£® ¯à¨ ¤«¥¦¨â ¤ ë© ¤à¥á |
DUP DP @ U> IF DROP S" <not in the image>" EXIT THEN |
NEAR_NFA DROP DUP 0= IF DROP S" <not found>" EXIT THEN |
COUNT |
; |
DECIMAL |
/programs/develop/SPForth/src/compiler/spf_words.f |
---|
0,0 → 1,45 |
( ¥ç âì ᯨ᪠᫮¢ á«®¢ àï - WORDS. |
-¥§ ¢¨á¨¬ë¥ ®¯à¥¤¥«¥¨ï. |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
८¡à §®¢ ¨¥ ¨§ 16-à §à冷£® ¢ 32-à §àï¤ë© ª®¤ - 1995-96££ |
¥¢¨§¨ï - á¥âï¡àì 1999 |
) |
VARIABLE NNN |
: ?CR-BREAK ( NFA -- NFA TRUE | FALSE ) |
DUP |
IF DUP ZCOUNT NIP AT-XY? DROP + SCR_WIDTH-S > |
IF CR |
NNN @ |
IF -1 NNN +! TRUE |
ELSE ." more?" CR 16 NNN ! |
KEY [CHAR] Q <> AND ?DUP 0<> |
THEN |
ELSE TRUE |
THEN |
THEN |
; |
: NLIST ( A -> ) |
@ |
CR W-CNT 0! 16 NNN ! |
BEGIN ?CR-BREAK |
WHILE |
W-CNT 1+! |
DUP ID. \ 9 EMIT |
SPACE AT-XY? >R 8 / 1+ 8 * R> AT-XY |
CDR |
REPEAT KEY? IF KEY DROP THEN |
CR CR ." Words: " W-CNT @ U. CR |
; |
: WORDS ( -- ) \ 94 TOOLS |
\ ¯¨á®ª ¨¬¥ ®¯à¥¤¥«¥¨© ¢ ¯¥à¢®¬ ᯨ᪥ á«®¢ ¯®à浪 ¯®¨áª . ®à¬ â § ¢¨á¨â |
\ ®â ॠ«¨§ 樨. |
\ WORDS ¬®¦¥â ¡ëâì ॠ«¨§®¢ á ¨á¯®«ì§®¢ ¨¥¬ á«®¢ ä®à¬ ⮣® ¯à¥®¡à §®¢ ¨ï |
\ ç¨á¥«. ®®â¢¥âá⢥®, ® ¬®¦¥â ¨á¯®àâ¨âì ¯¥à¥¬¥é ¥¬ãî ®¡« áâì, |
\ ¨¤¥â¨ä¨æ¨à㥬ãî #>. |
CONTEXT @ NLIST |
; |
/programs/develop/SPForth/src/compiler |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/SPForth/src/global.f |
---|
0,0 → 1,46 |
: TYPE TYPE ; |
: (ABORT") (ABORT") ; |
\ : COMPILE, COMPILE, ; |
: CUR_POS ABORT ; |
: B_CR ( -- ) \ 94 |
\ ¥à¥¢®¤ áâப¨. |
10 EMIT |
13 EMIT |
; |
: GETPR ABORT ; |
: SPP_M ABORT ; |
: TIBB_M ABORT ; |
: NTIB_M ABORT ; |
: NTIB ABORT ; |
: draw_window ABORT ; |
: CC_LINES ABORT ; |
: ?KEY ABORT ; |
: EMIT_N ABORT ; |
: DR_CUR ABORT ; |
: CL_CUR ABORT ; |
: KEY_M ABORT ; |
: _BYE ABORT ; |
: ROWH ABORT ; |
: ROWW ABORT ; |
: draw_window ABORT ; |
: MEMS ABORT ; |
\ FORWORD |
: READ ABORT ; |
: CLIT, ABORT ; |
: _PREVIOUS PREVIOUS ; |
: _SHEADER SHEADER ; |
: _: : ; |
: [;] POSTPONE ; ; |
: S, ABORT ; |
: SWORD, ABORT ; |
: PARSE-NAME PARSE-WORD ; |
: PSLITERAL POSTPONE SLITERAL ; |
/programs/develop/SPForth/src/gspf.f |
---|
0,0 → 1,231 |
CR .( SFF.F) |
\ ' ANSI>OEM TO ANSI><OEM |
\ ' OEM>ANSI TO ANSI><OEM |
REQUIRE DUPENDCASE ~mak/case.f |
CR .( DC=) ' DUPENDCASE . |
VARIABLE START-LAB |
VARIABLE FINISH-LAB |
VARIABLE START-LIST |
VARIABLE FINISH-LIST |
VARIABLE START-LIST2 |
VARIABLE FINISH-LIST2 |
VARIABLE FINISH-LIST3 |
VARIABLE START-VAR |
VARIABLE FINISH-VAR |
VARIABLE START-ARRAY |
VARIABLE FINISH-ARRAY |
0 VALUE IMAGE-END |
S" lib/ext/disasm2.f" INCLUDED |
1000 CELLS ALLOCATE DROP DUP START-VAR ! FINISH-VAR ! |
1000 CELLS ALLOCATE DROP DUP START-LIST ! FINISH-LIST ! |
1000 CELLS ALLOCATE DROP DUP START-LIST2 ! FINISH-LIST2 ! |
1000 CELLS ALLOCATE DROP DUP START-LAB ! FINISH-LAB ! |
100 CELLS ALLOCATE DROP DUP START-ARRAY ! FINISH-ARRAY ! |
\ REQUIRE [IF] ~mak/CompIF.f |
REQUIRE [IFNDEF] ~nn/lib/ifdef.f |
\ REQUIRE (* ~af/lib/comments.f |
: CC HERE DROP ; IMMEDIATE |
: KDD KEY DROP ; |
VARIABLE HSSSS |
VARIABLE ZSSSS |
0 VALUE ALITERAL-CODE |
\ !!! REQUIRE Z" ~mak/~af/lib/c/zstr.f |
[IFNDEF] PARSE-WORD : PARSE-WORD NextWord ; |
[THEN] |
[IFNDEF] PSKIP : PSKIP SKIP ; |
[THEN] |
\ : KEY MKEY ;: KEY? MKEY? ; |
\ REQUIRE SEE lib/ext/disasm.f |
\ REQUIRE SEE lib/ext/disasm1.f |
: B, C, ; : B@ C@ ; : B! C! ; : /CHAR 1 ; |
: PARSE-NAME NextWord ; |
\ : UMIN 2DUP U< IF DROP EXIT THEN NIP ; |
REQUIRE { ~ac\lib\locals.f |
\ REQUIRE { lib\ext\locals.f |
[IFDEF] z z : z d |
[THEN] |
[IFDEF] d z ; POSTPONE d d IMMEDIATE |
[THEN] |
WARNING 0! \ ÷òîáû íå áûëî ñîîáùåíèé isn't unique |
S" lib/include/tools.f" INCLUDED |
C" CELL-" FIND NIP 0= |
[IF] : CELL- 1 CELLS - ; |
[THEN] |
C" U>" FIND NIP 0= |
[IF] : U> SWAP U< ; |
[THEN] |
C" D-" FIND NIP 0= |
[IF] |
: D- ( D1 D2 -- FLAG ) |
DNEGATE D+ ; |
[THEN] |
C" D=" FIND NIP 0= |
[IF] |
: D= ( D1 D2 -- FLAG ) |
D- D0= ; |
[THEN] |
C" \S" FIND NIP 0= |
[IF] |
: \S \ comment to end of file |
SOURCE-ID FILE-SIZE DROP |
SOURCE-ID REPOSITION-FILE DROP |
[COMPILE] \ ; IMMEDIATE |
[THEN] |
S" ~mak/utils_.f" INCLUDED |
\ S" lib/ext/spf-asm.f" INCLUDED |
\ ALSO ASSEMBLER ALSO ASM-HIDDEN |
\ ' NOOP IS CODE-ALIGN |
\ PREVIOUS PREVIOUS |
S" ~mak/asm/ASM.FRT" INCLUDED |
\ S" lib/include/tools.f" INCLUDED |
C" LAST-HERE" FIND NIP 0= VALUE INLINEVAR |
' DUP VALUE 'DUP |
0 VALUE RESERVE |
USER-HERE CONSTANT USER-HERE-SET |
USER-HERE-SET TO RESERVE |
MODULE: GSPF0 |
S" src/global.f" INCLUDED |
;MODULE |
S" src/global.f" INCLUDED |
S" src/tc_spfopt.f" INCLUDED |
' _CONSTANT-CODE TO CONSTANT-CODE |
' _CREATE-CODE TO CREATE-CODE |
' _CLITERAL-CODE TO CLITERAL-CODE |
' _SLITERAL-CODE TO SLITERAL-CODE |
\ : TOMM_SIZE TO MM_SIZE ; |
DIS-OPT |
\ VOCABULARY GSPF0 |
: ?HS |
HERE CELL- @ |
HERE HSSSS @ + CELL- @ <> |
IF CR |
HERE CELL- @ H. |
HERE HSSSS @ + CELL- @ H. |
-1 ABORT" HSSSS " |
THEN |
; |
: TT 0 IF THEN ; |
\ : CODE ?HS CODE ; |
\ ALSO GGSPF0 |
ALSO GSPF0 DEFINITIONS |
: >R POSTPONE >R ; IMMEDIATE |
: R> POSTPONE R> ; IMMEDIATE |
CR |
0x10 TOMM_SIZE |
HERE DUP H. |
HERE 0xF OR 1+ DP ! |
HERE DUP H. MM_SIZE H. |
HERE ZSSSS ! 0 HSSSS ! |
0x11223344 , 0x55667788 , ?HS |
S" src/gspf0.f" INCLUDED |
CR MM_SIZE H. |
PREVIOUS ( PREVIOUS ) DEFINITIONS |
\ ALSO GSPF0 |
MM_SIZE H. |
[IFDEF] S"_L" S" _LL" S"_L" PLACE [THEN] |
\ S" src/global.f" INCLUDED |
CR |
0x10 TOMM_SIZE |
HERE DUP H. |
HERE 0xF OR 1+ DP ! |
HERE DUP H. MM_SIZE H. |
ZSSSS @ HERE - HSSSS ! |
0x11223344 , 0x55667788 , ?HS |
S" src/gspf0.f" INCLUDED |
\ Òóò ìîæíî îïðåäåëèòü êàêèå òî ñâîè ñëîâà äëÿ ïðîáû. |
\ ×òîáû íå áûëî îøèáîê, êàêîé òî ôàéë ñêðèïòà äîëæåí áûòü ïîäãðóæåí. Ïðèìåð íèæå. |
\ HERE TO IMAGE-END |
\ VARIABLE lm |
\ VECT m |
\ 0 CONSTANT m |
\ : doTest 2000000 0 DO m @ 2 + I @ 4 + * I ! LOOP ; |
\ ðàññêîìåíòèðîâàâ íèæå ýòó ñòðîêó è îòìå÷åííûå íèæå * ìîæíî ïîëó÷èòü âåñü êîä ó÷àñòâóþùèé |
\ ïðè âûïîëíåíèè äàííîé íèæå ñòðîêè |
\ : doTest 10 0 DO I . LOOP ; |
\ Òóò çàãðóæàåì èíòåðåñóþøèé íàñ ñêðèïò. |
\ ×èñëî çàãðóæàåìûõ ñêðèïòîâ íå îãðàíè÷åííî. |
\ H-STDOUT VALUE File |
\ HERE TO IMAGE-END |
\ : File: |
\ NextWord DUP >R |
\ HEAP-COPY DUP R> R/W CREATE-FILE-SHARED THROW TO File FREE THROW |
\ ; |
\ File: Test.log \ Ýòî èìÿ ôàéëà êóäà âûâîäèì. |
\ H-STDOUT >R File TO H-STDOUT DROP \ âêëþ÷åíèå âûâîäà |
\ ïðîãðàììû ïîëüçîâàòåëÿ |
\ S" example.f" INCLUDED |
\ Ñëîâà êîòîðûå ìû õîòèì äèçàñåìáëèðîâàòü. |
\ Åñëè â âàøåé ïðîãðàììå íóæíî èïîëüçîâàòü íåñêîëüêî ñëîâ-ïðîöåäóð, òî |
\ ëó÷ùå äèçàñåìáëèðîâàòü âìåñòå. Òîãäà îíè áóäóò ññûëàòüñÿ íà îáùèé ðåâóðñ îïðåäåëåíèé. |
\ Åñëè íóæíà âñÿ ïðîãðàììà, òî äèçàññåìáëèðóåì ãëàâíîå îïðåäåëåíèå. |
\ * íèæå ýòó |
\ ' doTest DISASM-LIST \ Ñëîââî " ' " Ïîëó÷àåò àäðåñ ñëåäóþøåãî çà íèì ñëîâà, ñëîâî DISASM-LIST ïîíÿòíî èç íàçâàíèÿ. |
\ ' WildCMP-U1 DISASM-LIST |
\ êîíåö |
\ * à òàêæå ýòó |
\ TYPE-ALL |
\ File FLUSH-FILE THROW R> TO H-STDOUT \ âûêëþ÷åíèå âûâîäà |
\ CR |
\ : B I I I */ ; |
\ ' B SEE2 |
\ SEE B |
\ ' doTest DISASM-LIST |
\ ' doTest SEE2 |
\ ' m SEE2 |
\ ' B DISASM-LIST \ Ñëîââî " ' " Ïîëó÷àåò àäðåñ ñëåäóþøåãî çà íèì ñëîâà, ñëîâî DISASM-LIST ïîíÿòíî èç íàçâàíèÿ. |
\ êîíåö |
\ CR TYPE-ALL |
\ START-LIST @ FREE DROP |
\ START-LIST2 @ FREE DROP |
\ START-LAB @ FREE DROP |
\ START-VAR @ FREE DROP |
\ START-ARRAY @ FREE DROP |
/programs/develop/SPForth/src/gspf0.f |
---|
0,0 → 1,112 |
\ TSET-OPT |
0x10 TOMM_SIZE |
HERE TO TSAVE_LIMIT |
USER-HERE-SET TO RESERVE |
USER-HERE-SET USER-OFFS ! |
\ DECIMAL |
\ TRUE WARNING ! \ çâ®¡ë ¡ë«® |
\ ============================================================== |
\ ç «® ®¡à § ®àâ-á¨á⥬ë |
\ S" src/USER.F" INCLUDED |
\ S" src/spf_defkern.f" INCLUDED |
CR .( S" src/spf_forthproc.f" INCLUDED) |
S" src/spf_forthproc.f" INCLUDED |
\ S" src/spf_floatkern.f" INCLUDED |
S" src/spf_forthproc_hl.f" INCLUDED |
S" src/kol/spf_kol_const.f" INCLUDED |
\ ============================================================== |
S" src/kol\spf_kol_sys.f" INCLUDED |
\ à á«ïæ¨ï ¨á室ëå ⥪á⮢. |
\ ¡à ¡®âª ®è¨¡®ª. |
\ ¯à¥¤¥«ïî騥 á«®¢ . |
\ ¨á«®¢ë¥ «¨â¥à «ë. |
\ ¯à ¢«¥¨¥ ª®¬¯¨«ï樥©. |
\ ®¬¯¨«ïæ¨ï ã¯à ¢«ïîé¨å áâàãªâãà. |
S" src/compiler/spf_immed_lit.f" INCLUDED |
S" src/compiler/spf_defwords.f" INCLUDED |
S" src/compiler/spf_immed_loop.f" INCLUDED |
S" src/compiler/spf_error.f" INCLUDED |
TDIS-OPT |
S" src/compiler/spf_translate.f" INCLUDED |
S" src/compiler/spf_immed_transl.f" INCLUDED |
S" src/compiler/spf_literal.f" INCLUDED |
S" src/compiler/spf_immed_control.f" INCLUDED |
\ ============================================================== |
\ ®¬¯¨«ïæ¨ï ç¨á¥« ¨ áâப ¢ á«®¢ àì. |
\ ®§¤ ¨¥ á«®¢ àëå áâ ⥩. |
\ ®¨áª á«®¢ ¢ á«®¢ àïå. |
\ ¥ç âì á«®¢ ३. |
\ S" src/temps4_.f" INCLUDED |
\ EOF |
S" src/compiler/spf_wordlist.f" INCLUDED |
S" src/compiler/spf_find.f" INCLUDED |
S" src/compiler/spf_words.f" INCLUDED |
S" src/compiler/spf_compile0.f" INCLUDED |
S" ~mak/~af/lib/c/zstr.f" INCLUDED |
' ALITERAL TO ALITERAL-CODE |
\ âàãªâãà¨à®¢ ï ®¡à ¡®âª ¨áª«î票© (á¬.â ª¦¥ init) |
S" src/spf_except.f" INCLUDED |
\ ============================================================== |
\ ¥ç âì ç¨á¥« |
S" src/spf_print.f" INCLUDED |
S" src/kol\spf_kol_module.f" INCLUDED |
\ ============================================================== |
\ ©«®¢ë© ¨ ª®á®«ìë© ¢¢®¤-¢ë¢®¤ (kol-§ ¢¨á¨¬ë¥) |
S" src/kol/spf_kol_con_io.f" INCLUDED |
S" src/spf_con_io.f" INCLUDED |
S" src/kol/spf_kol_io.f" INCLUDED |
\ ============================================================== |
\ ¯à ¢«¥¨¥ ¯ ¬ïâìî |
S" src/kol/spf_kol_memory.f" INCLUDED |
\ ============================================================== |
\ ªà®¯®¤áâ ®¢é¨ª-®¯â¨¬¨§ â®à |
TRUE TO INLINEVAR |
CR .( S" src/macroopt.f" INCLUDED) |
MM_SIZE DUP H. |
0x10 TOMM_SIZE |
S" src/macroopt.f" INCLUDED |
DUP H. TOMM_SIZE |
S" src/compiler/spf_compile.f" INCLUDED |
\ ============================================================== |
\ àá¥à ¨á室®£® ⥪áâ ä®àâ-¯à®£à ¬¬ |
S" src/compiler/spf_parser.f" INCLUDED |
S" src/compiler/spf_read_source.f" INCLUDED |
\ ============================================================== |
\ ¨æ¨ «¨§ æ¨ï ¯¥à¥¬¥ëå, startup |
CR .( S" src/spf_init.f" INCLUDED) |
S" src/spf_init.f" INCLUDED |
\ ============================================================== |
S" src/compiler/spf_modules.f" INCLUDED |
S" src/MEFORTH.F" INCLUDED |
S" src/spf_last.f" INCLUDED |
\ S" src/tst.f" INCLUDED \EOF |
\ EOF |
CR .( =============================================================) |
CR .( Done. |
CR .( =============================================================) |
MM_SIZE H. |
/programs/develop/SPForth/src/macroopt.f |
---|
0,0 → 1,5061 |
\ Îïòèìèçèðóþùèé ìàêðîïîäñòàíîâøèê Ìàêñèìîâ Ì.Î. |
\ http://wiki.forth.org.ru/optimizer |
[UNDEFINED] C>S |
[IF] |
: C>S ( c -- n ) 0xFF AND [ 0x7F INVERT ] LITERAL XOR 0x80 + ; |
[THEN] |
BASE @ HEX |
\ : REL! ( ADDR' ADDR -- ) |
\ TUCK - SWAP ! ; |
: REL@ ( ADDR -- ADDR' ) |
DUP @ + ; |
\ FALSE VALUE OPT? |
TRUE VALUE OPT? |
084 VALUE J_COD |
: SET-OPT TRUE TO OPT? ; |
: DIS-OPT FALSE TO OPT? ; |
INLINEVAR |
[IF] |
0x20 VALUE MM_SIZE |
0 VALUE OFF-EBP |
0 VALUE OFF-EAX |
0 VALUE :-SET |
0 VALUE J-SET |
0 VALUE LAST-HERE |
0x44 CELLS DUP CONSTANT OpBuffSize |
CREATE OP0 HERE >T DUP , 0 , SWAP ALLOT |
DUP OpBuffSize + CELL- CONSTANT OPLast |
CELL+ DUP CONSTANT OP1 |
CELL+ DUP CONSTANT OP2 |
CELL+ DUP CONSTANT OP3 |
CELL+ DUP CONSTANT OP4 |
CELL+ DUP CONSTANT OP5 |
CELL+ DUP CONSTANT OP6 |
CELL+ DUP CONSTANT OP7 |
CELL+ DUP CONSTANT OP8 |
DROP |
: SetOP ( -- ) |
OP0 OP1 OpBuffSize CELL- CMOVE> |
DP @ OP0 ! |
; |
: ToOP0 ( OPn -- ) |
OP0 OpBuffSize CELL- CMOVE ; |
0x11 CELLS DUP CONSTANT JpBuffSize |
CREATE JP0 HERE DUP , OVER ALLOT |
DUP ROT ERASE |
CELL+ DUP CONSTANT JP1 |
CELL+ DUP CONSTANT JP2 |
CELL+ DUP CONSTANT JP3 |
CELL+ DUP CONSTANT JP4 |
DROP |
[THEN] |
: ClearJpBuff JP0 JpBuffSize ERASE ; |
: J@ 1+ REL@ CELL+ ; |
: SJ@ 1+ DUP C@ C>S + 1+ ; |
: J_@ |
DUP C@ F0 |
AND 70 = IF SJ@ ELSE |
DUP C@ EB = IF SJ@ ELSE |
DUP C@ E9 = IF J@ ELSE |
DUP W@ F0FF |
AND 800F = IF 1+ J@ ELSE |
HEX U. 1 ." J_@ ERR" ABORT |
THEN THEN THEN THEN |
; |
: SetJP ( -- ) |
JP0 JpBuffSize + CELL- @ DUP |
IF J_@ |
THEN |
\ DP @ UMIN |
J-SET UMAX TO J-SET |
JP0 JP1 JpBuffSize CELL- CMOVE> |
DP @ JP0 ! ; |
\ : ToJP0 ( OPn -- ) |
\ JP0 JpBuffSize CELL- CMOVE |
\ JP0 JpBuffSize + CELL- 0! ; |
: ?SET DP @ |
DUP LAST-HERE <> IF DUP TO :-SET DUP TO J-SET THEN |
DUP OP0 @ U< IF OP0 0! THEN |
DUP OP1 @ U< IF OP1 0! THEN |
DUP JP0 @ U< IF JP0 0! THEN |
JP1 @ U< IF JP1 0! THEN |
; |
: SHORT? ( n -- -129 < n < 128 ) |
0x80 + 0x100 U< |
; |
M\ VECT DTST |
\ \\\\\\\\\\ |
[DEFINED] [TTO] \ CR .( TTO=) DUP . |
[IF] |
GET-CURRENT |
WORDLIST CONSTANT MACROOPT-WL |
\ çàïèøåì àäðåñ èìåíè ñëîâàðÿ |
' MACROOPT-WL EXECUTE CELL+ ( name_addr ) |
LAST @ SWAP ! |
ALSO ' MACROOPT-WL EXECUTE CONTEXT ! DEFINITIONS |
TC-WL ALSO TC-IMM |
[THEN] |
\ \\\\\\\\\\\\ |
: EVEN-EAX OFF-EAX |
IF M\ 1000 DTST |
SetOP OFF-EAX DUP SHORT? |
IF 0408D W, C, |
ELSE 0808D W, , |
THEN \ LEA EAX, OFF-EBP [EAX] |
0 TO OFF-EAX |
M\ 1001 DTST |
THEN |
; |
: EVEN-EBP OFF-EBP |
IF SetOP OFF-EBP 06D8D W, C, \ LEA ebp, OFF-EBP [EBP] |
0 TO OFF-EBP |
THEN |
; |
: +>OFF-EBP ( C -- ) |
C>S OFF-EBP + TO OFF-EBP ; |
: ADD|XOR|OR|AND= ( W -- FLAG ) |
CASE |
DUP 4503 <> IF \ ADD EAX, X2 [EBP] |
DUP 450B <> IF \ OR |
DUP 4523 <> IF \ AND |
DUP 4533 <> IF \ XOR |
DROP FALSE EXIT |
DUPENDCASE DROP TRUE ; |
: DUP3B?[EBP] ( W -- W FLAG ) |
CASE |
DUP 0E7C4 AND 04500 <> IF \ 010X.X101 00XX.X0XX |
\ ADD|OR|ADC|SBB|AND|SUB|XOR|CMP _L | E_X | X [EBP] , _L | E_X | X [EBP] |
DUP E7FD AND 4589 <> IF \ 010X.X101 1000.10X1 |
\ MOV X [EBP], E(ABCD)X | E(ABCD)X , X [EBP] |
\ DUP 5503 <> IF \ ADD EDX , 0 [EBP] |
DUP 758B <> IF \ MOV ESI , X [EBP] |
DUP EFFF AND 6DDB <> IF \ FLD | FSTP EXTENDED 0 [EBP] |
DUP 45DB <> IF \ FILD DWORD FC [EBP] |
DUP 65F7 <> IF \ MUL X [EBP] |
DUP 6DF7 <> IF \ IMUL X [EBP] |
DUP 04587 <> IF \ XCHG EAX , X [EBP] |
FALSE EXIT |
DUPENDCASE TRUE ; |
: DUP3B? ( W -- W FLAG ) |
CASE |
\ 11XX.X000 1000.0011 |
DUP C7FF AND C083 <> IF \ ADD|OR|ADC|SBB|AND|SUB|XOR|CMP EAX, # X |
DUP 0478B <> IF \ MOV EAX, X [EDI] |
DUP 0488B <> IF \ MOV ECX, X [EAX] |
DUP 0588B <> IF \ MOV EBX, X [EAX] |
DUP 0508B <> IF \ MOV EDX, X [EAX] |
DUP 0788B <> IF \ MOV EDI, X [EAX] |
DUP 0708B <> IF \ MOV ESI, X [EAX] |
DUP 0588D <> IF \ LEA EBX, X [EAX] |
DUP 0508D <> IF \ LEA EDX, X [EAX] |
DUP 05089 <> IF \ MOV X [EAX], EDX |
DUP 05189 <> IF \ MOV X [ECX] , EDX |
DUP 07589 <> IF \ MOV X [EAX], ESI |
DUP 0F8C1 <> IF \ SAR EAX, # X |
DUP 0E0C1 <> IF \ SHL EAX, # X |
DUP 0E1C1 <> IF \ SHL ECX, # X |
DUP 0E8C1 <> IF \ SHR EAX, # X |
DUP 0408D <> IF \ LEA EAX , X [EAX] |
DUP 0408B <> IF \ MOV EAX , X [EAX] |
FALSE EXIT |
DUPENDCASE TRUE ; |
: DUP2B? ( W -- W FLAG ) |
CASE |
DUP 0E4C5 AND 0C001 <> IF |
\ ADD|OR|ADC|SBB|AND|SUB|XOR|CMP E_X , E_X |
\ DUP 01801 <> IF \ ADD [EAX], EBX |
DUP 01001 <> IF \ ADD [EAX], EDX |
DUP 0003 <> IF \ ADD EAX, [EAX] |
DUP F633 <> IF \ XOR ESI, ESI |
DUP 108B <> IF \ MOV EDX , [EAX] |
DUP 0C0FF AND C085 <> IF \ TEST E__ , E__ |
\ 110X.X0XX 1000.10X1 |
DUP 0E4FC AND 0C088 <> IF \ MOV E(ABCD)X , E(ABCD)X | (ABCD)L , (ABCD)L |
\ 00XX.X0XX 1000.100X |
DUP 0C4FE AND 00088 <> IF \ MOV [E(ABCD)X] , E(ABCD)X | (ABCD)(HL) |
DUP 0008B <> IF \ MOV EAX, [EAX] |
DUP 028B <> IF \ MOV EAX, [EDX] |
DUP 0C78B <> IF \ MOV EAX, EDI |
DUP 0F88B <> IF \ MOV EDI, EAX |
DUP 0F08B <> IF \ MOV ESI, EAX |
DUP 0C88B <> IF \ MOV ECX , EAX |
DUP 0D18B <> IF \ MOV EDX , ECX |
DUP 0C68B <> IF \ MOV EAX, ESI |
\ 111X.X0XX 1101.00XX |
DUP 0E4FC AND 0E0D0 <> IF \ S(AH)(LR) (ABCD)L | E(ABCD)X, CL | 1 |
DUP 0C0DD <> IF \ FFREE ST |
DUP F0FF AND C0D9 <> IF \ FLD ST(X) | FXCH ST(X) |
\ 1100.XXXX.1101.1001 |
DUP FAFF AND E0D9 <> IF \ FCHS|FABS|FTST|FXAM |
\ 1110.0X0X.1101.1001 |
DUP E8FF AND E8D9 <> IF \ FLD1 FLDL2T FLDL2E FLDPI FLDLG2 FLDLN2 FLDZ ??? |
\ 1110.1XXX.1101.1001 |
DUP F0FF AND F0D9 <> IF \ F2XM1 FYL2X FPTAN FPATAN |
\ 1111.XXXX.1101.1001 \ FXTRACT FPREM1 FDECSTP FINCSTP |
\ FPREM FYL2XP1 FSQRT FSINCOS |
\ FRNDINT FSCALE FSIN FCOS |
DUP E8FF AND 20DB <> IF \ FLD EXTENDED [E_X] | FST EXTENDED [E_X] |
\ 001X.0XXX.1101.1011 |
DUP E8FF AND 00DD <> IF \ FLD DOUBLE [E_X] | FST DOUBLE [E_X] |
\ 000X.0XXX.1101.1101 |
DUP F0FF AND C0DE <> IF \ FADDP ST(X) | FMULP ST(X) |
DUP E0FF AND E0DE <> IF \ FSUBRP ST(X) | FSUBP ST(X) |
\ 111X.XXXX.1101.1110 \ FDIVRP ST(X) | FDIVP ST(X) |
DUP 00FF <> IF \ INC [EAX] |
\ DUP 0C0FF <> IF \ INC EAX |
\ DUP 0C3FF <> IF \ INC EBX |
\ DUP 0C8FF <> IF \ DEC EAX |
DUP 0D0F7 <> IF \ NOT EAX |
DUP 0D1F7 <> IF \ NOT ECX |
DUP 0D8F7 <> IF \ NEG EAX |
DUP 0D9F7 <> IF \ NEG ECX |
DUP 0DAF7 <> IF \ NEG EDX |
DUP 0E9F7 <> IF \ IMUL ECX |
DUP 0F1F7 <> IF \ DIV ECX |
DUP 0F9F7 <> IF \ IDIV ECX |
FALSE EXIT |
DUPENDCASE TRUE ; |
: DUP6B? ( W -- W FLAG ) |
CASE |
\ X00X.X101 1000.10X1 |
DUP 67FD AND 0589 <> IF \ MOV X {[EBP]}, E(ACDB)X | E(ACDB)X , X {[EBP]} |
DUP C3FF AND C081 <> IF \ ADD|OR|ADC|SBB|AND|SUB|XOR|CMP EAX, # X |
DUP 00501 <> IF \ ADD X , EAX |
DUP 0503 <> IF \ ADD EAX, X |
DUP 053B <> IF \ CMP EAX, X |
DUP 873B <> IF \ CMP EAX, X [EDI] |
DUP F281 <> IF \ XOR EDX , # 80000000 |
DUP 928D <> IF \ LEA EDX , [EDX+80000000H] |
\ DUP 0589 <> IF \ MOV X , EAX |
\ DUP 058B <> IF \ MOV EAX, X |
DUP 808B <> IF \ MOV EAX, X [EAX] |
DUP 808D <> IF \ LEA EAX, X [EAX] |
DUP 8703 <> IF \ MOV EAX, X [EDI] |
DUP 878B <> IF \ MOV EAX, X [EDI] |
DUP 878D <> IF \ LEA EAX, X [EDI] |
DUP 0C7 <> IF \ MOV [EAX], # X |
DUP 0081 <> IF \ ADD [EAX], # X |
DUP 05FF <> IF \ INC X |
\ DUP FCFF AND C0C7 <> IF \ MOV EAX|EBX|ECX|EDX, # X |
FALSE EXIT |
DUPENDCASE TRUE ; |
: DUP5B? ( C -- C FLAG ) |
DUP 0C7 AND 5 = \ ADD|OR|ADC|SBB|AND|SUB|XOR|CMP EAX, # X |
OVER 0FC AND 0B8 = OR \ MOV EAX|EBX|ECX|EDX, # X |
OVER 0FD AND 0A1 = OR \ MOV EAX, X | X , EAX |
; |
: DUP7B? ( N -- N FLAG ) |
\ XX00.0101 0000.0100 1000.10X1 |
DUP 3FFFFD AND 050489 = \ MOV X [EAX*_] , EAX | MOV EAX , X [EAX*_] |
\ XX00.0101 0000.0100 1000.1X01 |
OVER 3FFFFB AND 050489 = OR \ MOV X [EAX*_] , EAX | LEA EAX , X [EAX*_] |
OVER 80B60F = OR \ MOVZX EAX, BYTE PTR [EAX] |
OVER 45048D = OR \ LEA EAX, X [EAX*2] |
; |
0 VALUE TTTT |
\ 0 VALUE ZZZZ \ VECT VVV |
: ?ChEAX ( ADDR -- FALSE | TRUE ) |
CASE |
DUP C@ |
DUP B8 <> IF \ MOV EAX, # X |
DUP A1 <> IF \ MOV EAX, X |
DROP |
DUP W@ |
\ DUP ADD|XOR|OR|AND= 0= IF |
DUP C033 <> IF \ XOR EAX, EAX |
DUP C031 <> IF \ XOR EAX, EAX |
DUP D889 <> IF \ MOV EAX, EBX |
38FF AND |
DUP 008B <> IF \ MOV EAX, ___ |
DUP 008D <> IF \ LEA EAX, ___ |
DROP |
DUP @ FFFFFF AND |
DUP 02048D <> IF \ LEA EAX, [EDX] [EAX] |
2DROP TRUE EXIT |
DUPENDCASE 2DROP FALSE ; |
: ^?EAX= ( ADDR -- FALSE | TRUE ) |
\ FALSE |
DUP ?ChEAX IF DROP TRUE EXIT THEN |
DUP W@ |
DUP 00F9 |
AND 0089 <> IF 2DROP FALSE EXIT THEN |
\ LEA MOV |
CASE |
FF00 AND |
DUP 0100 AND |
0100 <> IF \ MOV EAX, |
DUP C200 <> IF \ MOV EAX, EDX |
DUP D800 <> IF \ MOV EAX, EBX |
DROP |
DUP @ FFFF00 AND |
DUP 240400 <> IF \ MOV EAX, [ESP] |
DUP 244400 <> IF \ MOV EAX, X [ESP] |
DUP 95048B <> IF \ 8B0495F0065A00 MOV EAX , 5A06F0 [EDX*4] |
2DROP TRUE EXIT |
DUPENDCASE 2DROP FALSE ; |
\ DUP 8B00 = \ MOV EAX, [EAX] |
: OP_SIZE ( OP - n ) |
DUP IF THEN DUP CELL- @ SWAP @ - |
; |
: OPexcise ( OPX -- ) |
DUP OP0 = IF @ DP ! OP1 ToOP0 EXIT THEN |
>R |
R@ CELL- @ R@ @ DP @ R@ CELL- @ - CMOVE |
R@ OP_SIZE NEGATE |
R@ OP0 DO DUP I +! CELL +LOOP |
ALLOT |
R@ CELL+ R@ OpBuffSize CELL- R> - OP0 + CMOVE |
; |
: ?OPlast ( OPX -- OPX flag ) |
DUP OP0 OpBuffSize + CELL- CELL- U> ; |
: XX_STEP ( OPX -- OPX+CELL FALSE | { OPX | FALSE } TRUE ) |
\ Ïðîâåðêà íà íå èçìåíåíèå EAX |
?OPlast |
IF DROP FALSE TRUE EXIT THEN |
DUP @ |
DUP :-SET U< IF 2DROP FALSE TRUE EXIT THEN |
C@ |
CASE |
DUP 3D <> IF \ CMP EAX, # X |
DUP 3B <> IF \ CMP E_X , X |
DUP A3 <> IF \ MOV X , EAX |
DUP B9 <> IF \ MOV ECX , # X |
DUP BA <> IF \ MOV EDX , # X |
DUP BB <> IF \ MOV EBX , # X |
DUP 50 <> IF \ PUSH EAX |
DROP |
DUP @ W@ |
DUP 04FF AND 04C7 <> IF \ MOV 4444 , # 5555 |
DUP 40FE AND 0088 <> IF \ MOV [EAX] , DL |
DUP 4D89 <> IF \ MOV 4 [EBP] , ECX |
DUP 558B <> IF \ MOV EDX , FC [EBP] |
DUP 4C8B <> IF \ MOV ECX , FC [E__] [E__] |
DUP 648D <> IF \ LEA ESP , 8 [ESP] |
DUP 34FF AND 04FF <> IF \ INC 0 [ESP] |
DUP C00B <> IF \ OR EAX, EAX |
DUP D00B <> IF \ OR EDX, EAX |
DUP D02B <> IF \ SUB EDX, EAX |
DUP 0401 <> IF \ ADD [E_X] |
DUP 06FD \ CMP X [EBP], # Z \ CMP 44444, # 55555 |
AND 0481 <> IF |
DUP FFFD |
AND 4589 = |
IF OVER @ 2+ C@ OP0 @ 2+ C@ = |
IF DROP TRUE |
EXIT |
THEN |
458B = IF DROP FALSE TRUE EXIT THEN |
CELL+ FALSE EXIT |
THEN |
2DROP |
FALSE TRUE EXIT |
DUPENDCASE DROP CELL+ FALSE ; |
: ?EDX_[EBP] ( OPX - FLAG ) |
DUP @ @ FFFFFF AND |
DUP 24048B = \ 8B0424 MOV EAX , [ESP] |
IF 2DROP FALSE EXIT THEN |
FFFF AND |
DUP 458B XOR \ 8B4500 MOV EAX , 0 [EBP] |
OVER 4589 XOR OR \ OPX N F MOV FC [EBP] , EAX |
0= IF DROP |
@ 2+ C@ OP0 @ 2+ C@ = |
EXIT |
THEN |
NIP |
DUP ADD|XOR|OR|AND= |
IF DROP FALSE EXIT THEN |
DUP E8C1 = \ C1E819 SHR EAX , 19 |
IF DROP FALSE EXIT THEN |
DUP 418D = \ 8D41FF LEA EAX , FF [ECX] |
IF DROP FALSE EXIT THEN |
DUP 408D = \ 8D40FF LEA EAX , FF [EAX] |
IF DROP FALSE EXIT THEN |
DUP 878D = \ 8D873C100000 LEA EAX , 103C [EDI] |
IF DROP FALSE EXIT THEN |
DUP D0F7 = \ F7D0 NOT EAX |
IF DROP FALSE EXIT THEN |
DUP D8F7 = \ F7D8 NEG EAX |
IF DROP FALSE EXIT THEN |
DUP C123 = \ 23C1 AND EAX , ECX |
IF DROP FALSE EXIT THEN |
DUP C033 = \ XOR EAX , EAX |
IF DROP FALSE EXIT THEN |
DUP 808D = \ 8D8024475A00 LEA EAX , 5A4724 [EAX] |
IF DROP FALSE EXIT THEN |
DUP 088B = \ MOV ECX , [EAX] |
IF DROP FALSE EXIT THEN |
DUP C00B = \ 0BC0 OR EAX , EAX |
IF DROP FALSE EXIT THEN |
DUP 488D = \ 8D4820 LEA ECX , 20 [EAX] |
IF DROP FALSE EXIT THEN |
DUP E0D3 = \ D3E0 SHL EAX , CL |
IF DROP FALSE EXIT THEN |
FF AND |
DUP A1 = \ A1047A5800 MOV EAX , 587A04 |
IF DROP FALSE EXIT THEN |
DUP 58 = \ 58 POP EAX |
IF DROP FALSE EXIT THEN |
DUP B9 = \ B907000000 MOV ECX , # 7 |
IF DROP FALSE EXIT THEN |
DROP TRUE |
; |
: MOV_EDX_[EBP] ( OPX - OPX' FALSE | FLAG TRUE ) |
?OPlast IF DROP FALSE TRUE EXIT THEN |
DUP @ :-SET U< IF DROP FALSE TRUE EXIT THEN |
DUP @ ?ChEAX 0= IF CELL+ FALSE EXIT THEN |
DUP ?EDX_[EBP] 0= IF CELL+ FALSE EXIT THEN |
DUP @ W@ |
DUP 448B = \ MOV EAX , 4 [EDX] [EAX*4] |
IF DROP CELL+ FALSE EXIT THEN |
DUP 1489 = \ MOV 59C2E4 [EAX*4] , EDX |
IF DROP CELL+ FALSE EXIT THEN |
DUP 8BCA = \ MOV ECX , EDX |
IF DROP CELL+ FALSE EXIT THEN |
DUP FFFD AND 5589 = \ OPX N F |
IF DROP @ 2+ C@ OP0 @ 2+ C@ = TRUE EXIT |
THEN |
2DROP FALSE TRUE |
; |
: OPresize ( OPX n -- ) |
DUP >R |
OVER OP0 ?DO DUP I +! CELL +LOOP |
ALLOT |
@ DUP R> + DUP DP @ - NEGATE MOVE |
; |
: OPinsert ( OPX n -- ) |
DUP >R |
2DUP OPresize DROP |
DUP |
DUP CELL + OVER OP0 CC - OpBuffSize CELL- - NEGATE MOVE |
R> SWAP +! |
; |
VARIABLE ?~EAX |
VARIABLE SAVE-?~EAX |
: ?~EAX{ ( FLAG -- ) |
?~EAX @ SAVE-?~EAX ! ?~EAX ! ; |
: }?~EAX ( -- ) |
SAVE-?~EAX @ ?~EAX ! ; |
: ?EAX>EBX ( OPX - OPX' FALSE | FALSE TRUE | OPX' TRUE TRUE ) |
\ TTTT 0= IF DROP FALSE TRUE EXIT THEN |
\ ." $=" DUP @ @ U. |
\ TTTT IF HEX DUP @ U. THEN |
\ DROP FALSE TRUE EXIT |
?OPlast IF DROP FALSE TRUE EXIT THEN |
DUP @ :-SET U< IF DROP FALSE TRUE EXIT THEN |
DUP @ W@ |
DUP 4589 = \ OPX N F MOV FC [EBP] , EAX |
OVER 458B = OR \ OPX N F MOV EAX , FC [EBP] |
IF DROP DUP @ 2+ C@ OP0 @ 2+ C@ = |
IF CELL- TRUE TRUE |
ELSE DUP @ W@ 458B = IF ?~EAX 0! THEN |
CELL+ FALSE |
THEN EXIT |
THEN |
CASE |
\ ." $=" DUP @ U. |
DUP 083B <> \ CMP ECX , [EAX] |
IF |
DUP C83B <> \ CMP ECX , EAX |
IF |
DUP C13B <> \ CMP EAX , ECX |
IF |
DUP 508B <> \ MOV EDX , 4 [EAX] |
IF |
DUP 088B <> \ MOV ECX , [EAX] |
IF |
DUP 098B <> \ MOV ECX , [ECX] |
IF |
DUP C88B <> \ MOV ECX , EAX |
IF |
DUP 0889 <> \ MOV [EAX] , ECX |
IF |
DUP 1089 <> \ MOV [EAX] , EDX |
IF |
DUP 4889 <> \ MOV 4 [EAX] , ECX |
IF |
0 ?~EAX{ |
DUP 408D <> \ LEA EAX , 1 [EAX] |
IF |
DUP 808D <> \ LEA EAX , 1 [EAX] |
IF |
DUP 008B <> \ MOV EAX , [EAX] |
IF |
\ TTTT IF HEX ." M=" DUP U. THEN |
DUP C18B <> \ MOV EAX , ECX |
IF |
TRUE ?~EAX ! |
DUP D8F7 <> \ NEG EAX |
IF |
}?~EAX |
DROP |
DUP @ @ FFFFFF AND |
DUP 240C8B <> \ MOV ECX , [ESP] |
IF |
DUP 8D0489 <> \ MOV X [ECX*4] , EAX |
IF |
0 ?~EAX{ |
DUP 24048B <> \ MOV EAX , [ESP] |
IF |
TRUE ?~EAX ! |
DUP 24442B <> \ SUB EAX , 4 [ESP] |
IF |
}?~EAX |
0xFFFF AND |
OVER @ 2+ C@ OP0 @ 2+ C@ |
\ TTTT IF HEX ." N=" 2DUP U. U. THEN |
= |
IF 2DROP FALSE TRUE EXIT |
THEN |
DUP 4D8B <> \ MOV ECX , [EBP] |
IF |
DUP 5589 <> \ MOV [EBP] , EDX |
IF |
2DROP FALSE TRUE EXIT |
DUPENDCASE DROP CELL+ FALSE ; |
: EAX>EBX0 ( OPX - OPX' FLAG ) |
DUP OP0 = IF TRUE EXIT THEN |
\ TTTT IF 1 EMIT DUP U. DUP @ U. THEN |
DUP @ W@ |
DUP 508B = \ MOV EDX , [EAX+4] |
IF DROP CELL- FALSE EXIT THEN |
DUP 088B = \ MOV ECX , [EAX] |
IF DROP CELL- FALSE EXIT THEN |
DUP 098B = \ MOV ECX , [ECX] |
IF DROP CELL- FALSE EXIT THEN |
DUP 4D8B = \ MOV ECX , [EBP] |
IF DROP CELL- FALSE EXIT THEN |
DUP 5589 = \ MOV 0 [EBP] , EDX |
IF DROP CELL- FALSE EXIT THEN |
DUP C88B = \ MOV ECX , EAX |
IF DROP CELL- FALSE EXIT THEN |
DUP 0889 = \ MOV [EAX] , ECX |
IF DROP CELL- FALSE EXIT THEN |
DUP 1089 = \ MOV [EAX] , EDX |
IF DROP CELL- FALSE EXIT THEN |
DUP 4889 = \ MOV 4 [EAX] , ECX |
IF DROP CELL- FALSE EXIT THEN |
DUP 408D = \ LEA EAX , 1 [EAX] |
IF DROP |
58 OVER @ 1+ C! CELL- TRUE EXIT |
THEN |
DUP 808D = \ LEA EAX , 1 [EAX] |
IF DROP |
98 OVER @ 1+ C! CELL- TRUE EXIT |
THEN |
DUP 008B = \ MOV EAX , [EAX] |
IF DROP |
18 OVER @ 1+ C! CELL- TRUE EXIT |
THEN |
DUP C18B = \ MOV EAX , ECX |
IF DROP |
D9 OVER @ 1+ C! CELL- TRUE EXIT |
THEN |
DUP 458B = \ MOV EAX , [EBP+X] |
IF DROP |
5D OVER @ 1+ C! CELL- TRUE EXIT |
THEN |
DUP D8F7 = \ NEG EAX |
IF DROP |
DB OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DROP |
DUP @ @ FFFFFF AND |
DUP 8D0489 = \ MOV X [ECX*4] , EAX |
IF DROP CELL- FALSE EXIT THEN |
DUP 24048B = \ MOV EAX , [ESP] |
IF DROP |
1C OVER @ 1+ C! CELL- TRUE EXIT |
THEN |
DUP 240C8B = \ MOV ECX , [ESP] |
IF DROP CELL- FALSE EXIT THEN |
\ BASE @ >R HEX DUP U. R> BASE ! |
FF AND |
DUP 3B = \ CMP |
IF DROP CELL- FALSE EXIT THEN |
HEX U. U. ." EAX>EBX0" ABORT |
; |
: EAX>EBX ( OPX - OPX' FLAG ) |
DUP OP0 = IF TRUE EXIT THEN |
DUP @ W@ \ ." #=" DUP U. |
DUP 508B = \ MOV EDX , [EAX+4] |
IF DROP |
53 OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 083B = \ CMP ECX , [EAX] |
IF DROP |
0B OVER @ 1+ W! CELL- FALSE EXIT |
THEN |
DUP C83B = \ CMP ECX , EAX |
IF DROP |
CB OVER @ 1+ W! CELL- FALSE EXIT |
THEN |
DUP C13B = \ CMP EAX , ECX |
IF DROP |
D9 OVER @ 1+ W! CELL- FALSE EXIT |
THEN |
DUP 088B = \ MOV ECX , [EAX] |
IF DROP |
0B OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 458B = \ MOV EAX , [EBP+X] |
IF DROP |
5D OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 098B = \ MOV ECX , [ECX] |
IF DROP CELL- FALSE EXIT THEN |
DUP 4D8B = \ MOV ECX , [EBP] |
IF DROP CELL- FALSE EXIT THEN |
DUP 5589 = \ MOV 0 [EBP] , EDX |
IF DROP CELL- FALSE EXIT THEN |
DUP C88B = \ MOV ECX , EAX |
IF DROP |
CB OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 0889 = \ MOV [EAX] , ECX |
IF DROP |
0B OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 1089 = \ MOV [EAX] , EDX |
IF DROP |
13 OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 4889 = \ MOV 4 [EAX] , ECX |
IF DROP |
4B OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 4589 = \ OPX N F MOV FC [EBP] , EAX |
IF DROP |
5D OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 408D = \ LEA EAX , 1 [EAX] |
IF DROP |
5B OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 808D = \ LEA EAX , X [EAX] |
IF DROP |
9B OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 008B = \ MOV EAX , [EAX] |
IF DROP |
1B OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP C18B = \ MOV EAX , ECX |
IF DROP |
D9 OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP D8F7 = \ NEG EAX |
IF DROP |
DB OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DROP |
DUP @ @ FFFFFF AND |
DUP 8D0489 = \ MOV X [ECX*4] , EAX |
IF DROP |
1C OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 24048B = \ MOV EAX , [ESP] |
IF DROP |
1C OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 240C8B = \ MOV ECX , [ESP] |
IF DROP CELL- FALSE EXIT THEN |
DUP 24442B = \ SUB EAX , [ESP+4] |
IF DROP |
5C OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
HEX U. U. ." EAX>EBX" ABORT |
; |
: ?EAX>ECX ( OPX - OPX' FALSE | FALSE TRUE | OPX' TRUE TRUE ) |
\ ZZZZ 0= IF DROP FALSE TRUE EXIT THEN |
\ DROP FALSE TRUE EXIT |
?OPlast IF DROP FALSE TRUE EXIT THEN |
DUP @ :-SET U< IF DROP FALSE TRUE EXIT THEN |
\ TTTT IF HEX DUP @ U. THEN |
DUP @ W@ |
DUP 4589 = \ OPX N F MOV FC [EBP] , EAX |
OVER 458B = OR \ OPX N F MOV EAX , FC [EBP] |
IF DROP DUP @ 2+ C@ OP0 @ 2+ C@ = |
IF CELL- TRUE TRUE |
ELSE DUP @ W@ 458B = IF ?~EAX 0! THEN |
CELL+ FALSE |
THEN EXIT |
THEN |
DUP 5589 = \ OPX N F MOV FC [EBP] , EDX |
IF DROP DUP @ 2+ C@ OP0 @ 2+ C@ = |
IF DROP FALSE TRUE |
ELSE CELL+ FALSE |
THEN EXIT |
THEN |
CASE |
0 ?~EAX{ |
\ 8B00 MOV EAX , [EAX] |
\ 3B05E3745400 CMP EAX , 5474E3 ( :-SET+5 ) |
DUP 3AFF AND 028B <> \ MOV EAX , [EDX] |
IF |
DUP 008B <> \ MOV EAX , [EAX] |
IF |
DUP 408D <> \ LEA EAX , 1 [EAX] |
IF |
DUP 408B <> \ MOV EAX , 1 [EAX] |
IF |
DUP 428D <> \ LEA EAX , 1 [EDX] |
IF |
\ DUP 808D <> \ LEA EAX , X [EAX] |
\ IF |
DUP C28B <> \ MOV EAX , EDX |
IF |
TRUE ?~EAX ! |
DUP C00B <> \ OR EAX , EAX |
IF |
DUP C01B <> \ SBB EAX , EAX |
IF |
DUP F8D1 <> \ SAR EAX , 1 |
IF |
DUP E8C1 <> \ SHR EAX , 1 |
IF |
DUP D8F7 <> \ NEG EAX |
IF |
DUP D0F7 <> \ NOT EAX |
IF |
DUP D0F7 <> \ NOT EAX |
IF |
DUP 4503 <> \ ADD EAX , 0 [EBP] |
IF |
DUP 0523 <> \ AND EAX , 587744 ( D+5 ) |
IF |
DUP E0C1 <> \ SHL EAX , 7 |
IF |
DUP C223 <> \ AND EAX , EDX |
IF |
}?~EAX |
DUP 508B <> \ MOV EDX , [EAX+4] |
IF |
DUP 053B <> \ CMP EAX , 5474E3 ( :-SET+5 ) |
IF |
DUP 103B <> \ CMP EDX , [EAX] |
IF |
DUP 558B <> \ OPX N F MOV F8 [EBP] , EDX |
IF |
DUP 158B <> \ MOV EDX , 587A88 |
IF |
DUP D08B <> \ MOV EDX , EAX |
IF |
DUP 0501 <> \ MOV ADD 555555 , EAX |
IF |
DUP 5089 <> \ MOV C [EAX] , EDX |
IF |
DUP 1089 <> \ MOV [EAX] , EDX |
IF |
DUP 80C6 <> \ MOV BYTE [EAX] , # X |
IF |
DUP 45C7 <> \ MOV FC [EBP] , # 1 |
IF |
FF AND |
DUP 50 <> \ PUSH EAX |
IF |
DUP A3 <> \ MOV 1000 , EAX |
IF |
0 ?~EAX{ |
DUP B8 <> \ MOV EAX , # 1000 |
IF |
DUP A1 <> \ MOV EAX , 1000 |
IF |
TRUE ?~EAX ! |
DUP 25 <> \ AND EAX , # X |
IF |
}?~EAX |
DUP BA <> \ MOV EDX , # 1000 |
IF |
DUP 3D <> \ CMP EAX , # 1000 |
IF |
DROP |
DUP @ @ |
0 ?~EAX{ |
DUP 0244B60F <> \ MOVZX EAX , BYTE PTR 2 [EDX] [EAX] |
IF |
FFFFFF AND |
DUP 85048D <> \ LEA EAX , 0 [EAX*4] |
IF |
DUP 85048B <> \ MOV EAX , X [EAX*4] |
IF |
DUP 80B60F <> \ MOVZX EAX , BYTE PTR X [EAX] |
IF |
DUP 40B70F <> \ MOVZX EAX , WORD PTR X [EAX] |
IF |
DUP 00B70F <> \ MOVZX EAX , WORD [EAX] |
IF |
DUP 82448B <> \ MOV EAX , 4 [EDX] [EAX*4] |
IF |
DUP 24048B <> \ MOV EAX , [ESP] |
IF |
DUP 24448B <> \ MOV EAX , [ESP+4] |
IF |
TRUE ?~EAX ! |
DUP 24442B <> \ SUB EAX , [ESP+4] |
IF |
}?~EAX |
DUP 24043B <> \ CMP EAX , [ESP] |
IF |
DUP 24443B <> \ CMP EAX , 20 [ESP] |
IF |
DUP 24548B <> \ MOV EDX , C [ESP] |
IF |
2DROP FALSE TRUE EXIT |
DUPENDCASE DROP CELL+ FALSE ; |
: EAX>ECX0 ( OPX - OPX' FLAG ) |
DUP OP0 = IF TRUE EXIT THEN |
DUP @ W@ |
DUP EFFF AND 4589 = \ OPX N F |
IF DROP CELL- FALSE EXIT THEN |
DUP 0501 = \ ADD [444444H] , EAX |
IF DROP CELL- FALSE EXIT THEN |
DUP 5589 = \ MOV X [EBP] , EDX |
IF DROP CELL- FALSE EXIT THEN |
DUP 38FF AND 008B = \ MOV EAX , ___ |
IF DROP |
0800 OVER @ +! CELL- TRUE EXIT |
THEN |
DUP C28B = \ MOV EAX , EDX |
IF DROP |
CA OVER @ 1+ C! CELL- TRUE EXIT |
THEN |
DUP 808D = \ LEA EAX , 1 [EAX] |
IF DROP |
88 OVER @ 1+ C! CELL- TRUE EXIT |
THEN |
DUP 408D = \ LEA EAX , 1 [EAX] |
IF DROP |
48 OVER @ 1+ C! CELL- TRUE EXIT |
THEN |
DUP 408B = \ MOV EAX , 1 [EAX] |
IF DROP |
48 OVER @ 1+ C! CELL- TRUE EXIT |
THEN |
DUP FF AND 8B = \ MOV ~EAX , ___ |
IF DROP CELL- FALSE EXIT THEN |
DUP 38FF AND 008D = \ LEA EAX , ___ |
IF DROP |
0800 OVER @ +! CELL- TRUE EXIT |
THEN |
DUP 428D = \ LEA EAX , 1 [EDX] |
IF DROP |
0800 OVER @ +! CELL- TRUE EXIT |
THEN |
DUP C00B = \ OR EAX , EAX |
IF DROP CELL- FALSE EXIT THEN |
DUP 5089 = \ MOV C [EAX] , EDX |
IF DROP CELL- FALSE EXIT THEN |
DUP 1089 = \ MOV [EAX] , EDX |
IF DROP CELL- FALSE EXIT THEN |
DUP 80C6 = \ MOV BYTE [EAX] , # X |
IF DROP CELL- FALSE EXIT THEN |
DUP 45C7 = \ MOV FC [EBP] , # 1 |
IF DROP CELL- FALSE EXIT THEN |
DROP |
DUP @ @ |
DUP 0244B60F = \ MOVZX EAX , BYTE PTR 2 [EDX] [EAX] |
IF DROP |
4C OVER @ 2+ C! CELL- TRUE EXIT |
THEN |
FFFFFF AND |
DUP 80B60F = \ MOVZX EAX , BYTE PTR X [EAX] |
IF DROP |
88 OVER @ 2+ C! CELL- TRUE EXIT |
THEN |
DUP 40B70F = \ MOVZX EAX , WORD PTR x [EAX] |
IF DROP |
48 OVER @ 2+ C! CELL- TRUE EXIT |
THEN |
DUP 00B70F = \ MOVZX EAX , WORD PTR [EAX] |
IF DROP |
08 OVER @ 2+ C! CELL- TRUE EXIT |
THEN |
\ DUP 24442B = \ SUB EAX , [ESP+4] |
\ IF DROP |
\ 4C OVER @ 1+ C! CELL- TRUE EXIT |
\ THEN |
FF AND |
DUP 50 = \ PUSH EAX |
IF DROP CELL- FALSE EXIT THEN |
DUP B8 = \ MOV EAX , # 1000 |
IF DROP |
B9 OVER @ C! CELL- TRUE EXIT |
THEN |
DUP BA = \ MOV EDX , # 1000 |
IF DROP CELL- FALSE EXIT THEN |
DUP 3D = \ CMP EAX , # 1000 |
IF DROP CELL- FALSE EXIT THEN |
DUP 3B = \ CMP |
IF DROP CELL- FALSE EXIT THEN |
DUP A3 = \ MOV 1000 , EAX |
IF DROP CELL- FALSE EXIT THEN |
DUP A1 = \ MOV EAX , 1000 |
IF DROP DUP 1 OPresize |
0D8B OVER @ W! CELL- TRUE EXIT |
THEN |
HEX U. DUP @ @ U. U. ." EAX>ECX0" ABORT |
; |
: EAX>ECX ( OPX - OPX' F | T ) |
DUP OP0 = IF TRUE EXIT THEN |
DUP @ W@ |
\ 8B00 MOV EAX , [EAX] |
\ 3B05E3745400 CMP EAX , 5474E3 ( :-SET+5 ) |
DUP 5589 = \ MOV X [EBP] , EDX |
IF DROP CELL- FALSE EXIT THEN |
DUP 3AFF AND 028B = \ MOV EAX , [EDX] |
IF DROP |
0800 OVER @ +! CELL- FALSE EXIT |
THEN |
DUP 458B = \ MOV EAX , [EBP+X] |
IF DROP |
4D OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 008B = \ MOV EAX , [EAX] |
IF DROP |
09 OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP D08B = \ MOV EDX , EAX |
IF DROP |
D1 OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP C28B = \ MOV EAX , EDX |
IF DROP |
CA OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP E0C1 = \ SHL EAX , 7 |
IF DROP |
E1 OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP C223 = \ AND EAX , EDX |
IF DROP |
CA OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 0501 = \ ADD [444444H] , EAX |
IF DROP |
0D01 OVER @ W! CELL- FALSE EXIT |
THEN |
DUP 508B = \ MOV EDX , [EAX+4] |
IF DROP |
51 OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 053B = \ CMP EAX , 5474E3 ( :-SET+5 ) |
IF DROP |
0D OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 103B = \ CMP EDX , [EAX] |
IF DROP |
11 OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP C23B = \ CMP EAX , EDX |
IF DROP |
CA OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP C00B = \ OR EAX , EAX |
IF DROP |
C9 OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP C01B = \ SBB EAX , EAX |
IF DROP |
C9 OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP F8D1 = \ SAR EAX , 1 |
IF DROP |
F9 OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP E8C1 = \ SAR EAX , 1 |
IF DROP |
E9 OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 4589 = \ OPX N F MOV FC [EBP] , EAX |
IF DROP |
4D OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 5089 = \ MOV C [EAX] , EDX |
IF DROP |
51 OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 1089 = \ MOV [EAX] , EDX |
IF DROP |
11 OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 80C6 = \ MOV BYTE [EAX] , # X |
IF DROP |
81 OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 408D = \ LEA EAX , 1 [EAX] |
IF DROP |
49 OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 408B = \ MOV EAX , 1 [EAX] |
IF DROP |
49 OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 428D = \ LEA EAX , 1 [EDX] |
IF DROP |
0800 OVER @ +! CELL- FALSE EXIT |
THEN |
DUP 808D = \ LEA EAX , 1 [EAX] |
IF DROP |
89 OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP C28B = \ MOV EAX , EDX |
IF DROP |
CA OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP D8F7 = \ NEG EAX |
IF DROP |
D9 OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP D0F7 = \ NOT EAX |
IF DROP |
D1 OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP D0F7 = \ NOT EAX |
IF DROP |
D1 OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 4503 = \ ADD EAX , 0 [EBP] |
IF DROP |
4D OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 0523 = \ AND EAX , 587744 ( D+5 ) |
IF DROP |
0D OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 558B = \ OPX N F MOV F8 [EBP] , EDX |
IF DROP CELL- FALSE EXIT THEN |
DUP 158B = \ MOV EDX , 587A88 |
IF DROP CELL- FALSE EXIT THEN |
DUP 45C7 = \ MOV FC [EBP] , # 1 |
IF DROP CELL- FALSE EXIT THEN |
DROP |
DUP @ @ |
DUP 0244B60F = \ MOVZX EAX , BYTE PTR 2 [EDX] [EAX] |
IF DROP |
0A4C OVER @ 2+ W! CELL- TRUE EXIT |
THEN |
FFFFFF AND |
DUP 85048D = \ LEA EAX , 0 [EAX*4] |
IF DROP |
8D0C OVER @ 1+ W! CELL- FALSE EXIT |
THEN |
DUP 85048B = \ MOV EAX , X [EAX*4] |
IF DROP |
8D0C OVER @ 1+ W! CELL- FALSE EXIT |
THEN |
DUP 80B60F = \ MOVZX EAX , BYTE PTR X [EAX] |
IF DROP |
89 OVER @ 2+ C! CELL- FALSE EXIT |
THEN |
DUP 40B70F = \ MOVZX EAX , WORD PTR x [EAX] |
IF DROP |
49 OVER @ 2+ C! CELL- FALSE EXIT |
THEN |
DUP 00B70F = \ MOVZX EAX , WORD PTR [EAX] |
IF DROP |
09 OVER @ 2+ C! CELL- FALSE EXIT |
THEN |
DUP 82448B = \ MOV EAX , 4 [EDX] [EAX*4] |
IF DROP |
8A4C OVER @ 1+ W! CELL- FALSE EXIT |
THEN |
DUP 24048B = \ MOV EAX , [ESP] |
IF DROP |
0C OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 24448B = \ MOV EAX , [ESP+4] |
IF DROP |
4C OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 24043B = \ CMP EAX , [ESP] |
IF DROP |
0C OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 24443B = \ CMP EAX , 20 [ESP] |
IF DROP |
4C OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
DUP 24548B = \ MOV EDX , C [ESP] |
IF DROP CELL- FALSE EXIT THEN |
DUP 24442B = \ SUB EAX , [ESP+4] |
IF DROP |
4C OVER @ 1+ C! CELL- FALSE EXIT |
THEN |
FF AND |
DUP 50 = \ PUSH EAX |
IF DROP |
51 OVER @ C! CELL- FALSE EXIT |
THEN |
DUP B8 = \ MOV EAX , # 1000 |
IF DROP |
B9 OVER @ C! CELL- FALSE EXIT |
THEN |
DUP A3 = \ MOV 1000 , EAX |
IF DROP DUP 1 OPresize |
0D89 OVER @ W! CELL- FALSE EXIT |
THEN |
DUP A1 = \ MOV EAX , # 1000 |
IF DROP DUP 1 OPresize |
0D8B OVER @ W! CELL- FALSE EXIT |
THEN |
DUP 25 = \ AND EAX , # X |
IF DROP DUP 1 OPresize |
E181 OVER @ W! CELL- FALSE EXIT |
THEN |
DUP BA = \ MOV EDX , # 1000 |
IF DROP CELL- FALSE EXIT THEN |
DUP 3D = \ CMP EAX , # 1000 |
IF DROP DUP 1 OPresize |
F981 OVER @ W! CELL- FALSE EXIT |
THEN |
U. DUP @ @ U. U. ." EAX>ECX" ABORT |
; |
: -EBPLIT ( n OPX -- n OPX' ) |
DUP @ :-SET U> 0= IF EXIT THEN |
BEGIN |
?OPlast IF EXIT THEN |
DUP @ W@ 6D8D = IF EXIT THEN \ LEA EBP , X [EBP] |
DUP @ C@ E8 = IF EXIT THEN \ CALL |
DUP @ C@ E9 = IF EXIT THEN \ JMP |
DUP @ C@ F0 |
AND 70 = IF EXIT THEN \ Jx |
DUP @ C@ EB = IF EXIT THEN |
DUP @ W@ F0FF |
AND 800F = IF EXIT THEN |
2DUP @ 2+ C@ = IF EXIT THEN |
CELL+ DUP @ :-SET U> 0= |
UNTIL ; |
1 [IF] |
: -EBPCLR ( FLAG OPX -- FLAG' ) |
DUP @ :-SET U< IF DROP EXIT THEN |
OFF-EBP CELL- TO OFF-EBP |
BEGIN |
?OPlast IF DROP EXIT THEN |
DUP @ W@ 6D8D = IF DROP EXIT THEN |
DUP @ C@ E8 = IF DROP EXIT THEN \ CALL |
DUP @ C@ E9 = IF DROP EXIT THEN \ JMP |
DUP @ C@ F0 |
AND 70 = IF DROP EXIT THEN \ Jx |
DUP @ C@ EB = IF DROP EXIT THEN |
DUP @ W@ F0FF |
AND 800F = IF DROP EXIT THEN |
DUP @ @ FFFFFF AND 85448B = \ MOV EAX , FC [EBP] [EAX*4] |
IF DROP EXIT THEN |
\ DUP @ 2+ C@ DUP U. OFF-EBP FF AND DUP U. = |
DUP @ 2+ C@ OFF-EBP FF AND = |
IF DUP @ W@ E7FF AND 4589 = \ MOV X [EBP] , EAX|EDX|EBX|ECX |
OVER @ W@ 45C7 = OR \ MOV F8 [EBP] , # 2710 |
IF M\ 20A DTST |
\ ." ^" DUP @ U. :-SET U. \ OPexcise NIP TRUE SWAP CELL- |
DUP OPexcise NIP TRUE SWAP CELL- |
ELSE DROP EXIT |
THEN |
THEN |
CELL+ DUP @ :-SET U< |
UNTIL DROP ; |
[ELSE] |
: -EBPCLR ( FLAG OPX -- FLAG' ) |
OFF-EBP CELL- TO OFF-EBP |
BEGIN |
OFF-EBP SWAP -EBPLIT NIP |
?OPlast IF DROP EXIT THEN |
:-SET OVER @ U< |
WHILE DUP @ 2+ C@ OFF-EBP FF AND = |
IF DUP @ W@ E7FF AND 4589 = \ MOV X [EBP] , EAX|EDX|EBX|ECX |
IF M\ 20A DTST |
DUP OPexcise NIP TRUE SWAP \ CELL- |
ELSE DROP EXIT |
THEN |
ELSE |
DUP @ @ FFFFFF AND 85448B = \ MOV EAX , FC [EBP] [EAX*4] |
IF DROP EXIT THEN |
CELL+ |
?OPlast IF DROP EXIT THEN |
DUP @ :-SET U< IF DROP EXIT THEN |
THEN |
REPEAT DROP |
; |
[THEN] |
: T?EAX>ECX ( FALSE | OPX' TRUE -- ... ) |
IF CELL+ CELL+ FALSE |
ELSE FALSE TRUE |
THEN ; |
: F?EAX>ECX ( FLAG -- ... ) |
IF \ TRUE TRUE |
?~EAX @ |
IF DROP FALSE |
ELSE TRUE |
THEN TRUE |
ELSE FALSE |
THEN ; |
: ECX:=EAX ( OPX -- OPX- ) |
DUP 2 OPinsert |
C88B OVER CELL+ @ W! \ MOV ECX , EAX |
\ CELL- |
; |
: EBX:=EAX ( OPX -- OPX- ) |
DUP 2 OPinsert |
D88B OVER CELL+ @ W! \ MOV EBX , EAX |
\ CELL- |
; |
TRUE VALUE ~BR-OPT |
: ?EAX:=ECX ( -- ) |
?~EAX @ |
IF SetOP 8B C, C1 C, \ MOV EAX , ECX |
THEN ; |
: DO_EAX>ECX ( -- FLAG ) |
OP1 |
BEGIN ?EAX>ECX |
DUP 0= \ TTTT AND |
IF DROP CELL- |
?OPlast IF DROP FALSE EXIT THEN |
DUP @ :-SET U< IF DROP FALSE EXIT THEN |
DUP @ W@ 4D89 = \ OPX N F MOV FC [EBP] , ECX |
IF DUP @ 2+ C@ |
OP0 @ 2+ C@ = |
IF M\ 410 DTST |
DROP ?~EAX 0! |
OP0 2 OPinsert |
C18B OP1 @ W! \ MOV EAX , ECX |
OP0 TRUE TRUE |
ELSE DROP FALSE TRUE |
THEN |
ELSE CELL+ FALSE |
THEN |
THEN |
UNTIL DUP >R |
IF M\ 40E DTST |
?~EAX @ |
IF ECX:=EAX |
ELSE BEGIN EAX>ECX0 UNTIL |
THEN BEGIN EAX>ECX UNTIL |
DROP |
OP1 ToOP0 |
-3 ALLOT |
M\ 40F DTST |
THEN R> |
; |
M\ VARIABLE VPPP : PPPP DUP VPPP @ <> IF 0 @ THEN ; |
VECT FPOP |
: ?EAX=RULES ( ADDR -- ADDR' FLAG ) |
BEGIN OP1 @ :-SET |
\ TTTT IF ." T=" 2DUP HEX U. U. THEN |
U< IF TRUE EXIT THEN |
OP1 @ ?ChEAX 0= |
~BR-OPT AND |
\ OP1 @ W@ ADD|XOR|OR|AND= OR |
WHILE M\ 0 DTST |
OP1 OPexcise |
M\ 1 DTST |
REPEAT |
OP1 @ @ FC458B58 = \ POP EAX MOV EAX , FC [EBP] |
IF M\ F0 DTST |
0424648D OP1 @ ! |
OP1 ToOP0 |
FALSE M\ F1 DTST |
EXIT |
THEN |
M\ PPPP |
OP2 @ :-SET U< 0= IF \ GOTO OP2> |
OP2 @ C@ B8 = \ MOV EAX , # 44444 |
IF |
OP1 @ @ FFFFFF AND 240401 = \ ADD [ESP] , EAX |
IF M\ B0E DTST |
OP2 @ 1+ @ |
240481 OP2 @ ! \ ADD [ESP] , # |
OP2 @ 3 + ! |
2 OP1 +! |
OP0 @ 2@ OP1 @ 2! |
OP1 ToOP0 |
FALSE -1 ALLOT M\ B0F DTST |
EXIT |
THEN |
M\ PPPP |
OP1 @ W@ 00C7 = \ MOV [EAX] , # X |
IF M\ C0E DTST |
OP1 @ 2+ @ |
OP2 @ 1+ @ |
05C7 OP2 @ W! \ MOV 44444 , # X |
OP2 @ 2+ ! OP2 @ 6 + ! |
5 OP1 +! |
OP0 @ 2@ OP1 @ 2! |
OP1 ToOP0 |
FALSE -1 ALLOT M\ C0F DTST |
EXIT |
THEN |
THEN |
M\ PPPP |
OP2 @ ?ChEAX |
OP1 @ W@ 5589 XOR \ 8955FC MOV FC [EBP] , EDX |
OP1 @ W@ 1501 <> AND \ 011544444400 ADD 444444 , EDX |
OP1 @ W@ 1589 <> AND OR \ 891544444400 MOV 444444 , EDX |
\ EAX= |
0= IF M\ C2 DTST |
OP2 OPexcise |
FALSE M\ C3 DTST |
EXIT |
THEN |
THEN \ LAB: OP2> |
OP0 @ W@ 458B = \ MOV EAX , X [EBP] |
IF |
OP1 \ ." $" |
BEGIN XX_STEP |
UNTIL |
IF M\ 90E DTST |
OP1 ToOP0 -3 ALLOT FALSE M\ 90F DTST |
EXIT |
THEN |
DO_EAX>ECX IF FALSE EXIT THEN |
TRUE ?~EAX ! |
OP1 |
BEGIN ?EAX>EBX |
UNTIL |
IF M\ 80E DTST |
?~EAX @ |
IF EBX:=EAX |
ELSE BEGIN EAX>EBX0 UNTIL |
THEN BEGIN EAX>EBX UNTIL |
DROP |
OP1 ToOP0 |
FALSE |
-3 ALLOT M\ 80F DTST |
EXIT |
THEN |
:-SET OP2 @ U< IF \ GOTO OP2 MOV EAX , X [EBP] |
OP2 @ W@ 5589 XOR \ 8955FC MOV FC [EBP] , EDX |
OP1 @ W@ 889 XOR OR \ 8908 MOV [EAX] , ECX |
\ MOV EAX , X [EBP] |
OP2 @ 2+ C@ OP0 @ 2+ C@ XOR OR \ X2=X0 |
0= IF M\ 11E DTST |
C28B OP0 @ W! \ MOV EAX , EDX |
-1 ALLOT |
FALSE M\ 11F DTST |
EXIT |
THEN |
\ $ DUP >R |
OP2 @ W@ 4589 XOR \ MOV X2 [EBP] , EAX |
OP1 @ C@ 50 XOR OR \ PUSH EAX |
\ OP0 @ W@ 458B XOR OR \ MOV EAX , X0 [EBP] |
OP2 @ 2+ C@ OP0 @ 2+ C@ XOR OR 0= \ X2=X0 |
IF M\ 1E DTST |
50 OP2 @ C! |
OP2 ToOP0 |
-6 ALLOT |
FALSE M\ 1F DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP2 @ C@ BA XOR OR \ MOV EDX , # 1000 |
OP1 @ W@ 1089 XOR OR \ MOV [EAX] , EDX |
\ MOV EAX , FC [EBP] |
0= IF M\ 52 DTST |
OP2 1 OPresize |
00C7 OP2 @ W! \ MOV [EAX] , # 1000 |
OP1 OPexcise |
FALSE M\ 53 DTST |
EXIT |
THEN |
:-SET OP4 @ U< IF \ GOTO OP4 MOV EAX , X [EBP] |
DUP C@ 0C3 XOR |
\ CR ." XX" |
OP4 @ W@ 4D89 XOR OR \ 567F5A 894DF8 MOV F8 [EBP] , ECX |
OP3 @ W@ 1089 XOR OR \ 567F5D 8910 MOV [EAX] , EDX |
OP2 @ W@ 558B XOR OR \ 567F5F 8B55F8 MOV EDX , F8 [EBP] |
OP1 @ W@ 5089 XOR OR \ 567F62 895004 MOV 4 [EAX] , EDX |
\ OP0 @ W@ 458B XOR OR \ 567F65 8B45FC MOV EAX , FC [EBP] |
OP4 @ 2+ C@ OP2 @ 2+ C@ XOR OR \ X0=X2 \ ÃÐÓÁÎ |
0= IF M\ 232 DTST |
OP2 OPexcise |
4889 OP1 @ W! \ MOV [EAX+4] , ECX |
FALSE M\ 233 DTST |
EXIT |
THEN |
THEN \ L: OP4 MOV EAX , X [EBP] |
THEN \ L: OP2 MOV EAX , X [EBP] |
THEN |
DUP C@ C3 XOR |
OP0 @ C@ A1 XOR OR \ MOV EAX , X |
0= IF OP1 |
BEGIN ?EAX>ECX |
IF T?EAX>ECX |
ELSE CELL- ?OPlast >R |
DUP @ :-SET U< R> OR |
IF DROP FALSE TRUE |
ELSE DUP >R |
R@ CELL- @ CELL- @ |
OP0 @ 1+ @ = |
IF R@ @ C@ FD AND A1 = \ MOV { EAX , X } | { X ,EAX } |
DUP |
IF F?EAX>ECX |
ELSE 2DROP FALSE TRUE |
THEN |
ELSE DROP FALSE TRUE |
THEN RDROP |
THEN |
THEN |
UNTIL |
IF M\ F0E DTST |
CELL- \ DROP TRUE EXIT |
BEGIN EAX>ECX0 UNTIL |
BEGIN EAX>ECX UNTIL |
DROP \ ." #" |
OP1 ToOP0 |
FALSE |
-5 ALLOT M\ F0F DTST |
EXIT |
THEN |
THEN |
M\ PPPP |
DUP C@ C3 XOR |
OP0 @ C@ 58 XOR OR \ POP EAX |
0= IF OP1 \ TTTT IF ." ?EAX>ECX" THEN |
BEGIN ?EAX>ECX |
IF T?EAX>ECX |
ELSE CELL- |
?OPlast |
OVER @ :-SET U< OR |
OVER @ @ FF00FF AND 24008B = OR \ 8B0424 MOV ___ , [ESP] |
IF DROP FALSE TRUE |
ELSE DUP @ C@ 50 XOR \ PUSH EAX , X |
\ 0= F?EAX>ECX |
0= IF TRUE TRUE |
ELSE CELL+ FALSE |
THEN |
THEN |
THEN |
UNTIL |
IF M\ CA DTST \ ." $" |
DUP OPexcise |
CELL- \ DROP TRUE EXIT |
?~EAX @ |
IF ECX:=EAX |
ELSE BEGIN EAX>ECX0 UNTIL |
THEN BEGIN EAX>ECX UNTIL |
DROP |
OP1 ToOP0 |
FALSE |
-1 ALLOT |
\ ?EAX:=ECX |
M\ CB DTST |
EXIT |
THEN |
THEN |
OP1 @ @ 24048B50 = \ 50 PUSH EAX |
\ 8B0424 MOV EAX , [ESP] |
IF M\ E2 DTST |
OP0 OPexcise |
FALSE M\ E3 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP1 @ W@ D08B XOR OR \ 8BD0 MOV EDX , EAX |
OP0 @ @ FFFFFF AND 95048B XOR OR \ 8B0495F0065A00 MOV EAX , 5A06F0 [EDX*4] |
0= IF M\ 13C DTST |
OP1 OPexcise |
85 OP0 @ 2+ C! \ MOV EAX , 5982D8 [EAX*4] |
FALSE M\ 13D DTST |
EXIT |
THEN |
OP1 @ 2+ @ |
OP0 @ 1+ @ XOR |
OP1 @ W@ 589 XOR OR \ 890577770700 MOV 77777 , EAX |
OP0 @ C@ A1 XOR OR \ A177770700 MOV EAX , 77777 |
0= IF M\ 150 DTST |
OP0 OPexcise |
FALSE M\ 151 DTST |
EXIT |
THEN |
OP2 @ :-SET U< IF TRUE EXIT THEN M\ PPPP |
OP1 @ C@ A3 = \ MOV ' VVVV >BODY , EAX |
IF OP2 @ C@ B8 = \ MOV EAX, # X |
IF M\ 20E DTST |
OP2 @ 1+ @ OP1 @ 1+ @ |
OP2 @ 2+ ! OP1 @ 1+ ! |
05C7 OP2 @ W! |
OP0 @ OP1 ! |
FALSE |
OP1 ToOP0 M\ 20F DTST |
EXIT |
THEN |
OP2 @ W@ C033 = \ XOR EAX , EAX |
IF M\ 30E DTST |
3 ALLOT |
OP0 @ @ OP0 @ 3 + ! |
05C7 OP2 @ W! |
OP1 @ 1+ @ OP1 @ ! |
OP1 @ CELL+ 0! |
OP1 @ 08 + OP1 ! |
FALSE |
OP1 ToOP0 M\ 30F DTST |
EXIT |
THEN |
OP3 @ :-SET U< IF TRUE EXIT THEN M\ PPPP |
OP3 @ 1+ @ |
OP1 @ 1+ @ XOR |
OP3 @ C@ 0A1 XOR OR \ MOV EAX , XX \ MOV XX , EAX \ EAX= |
0= IF |
OP2 @ C@ 025 = \ AND EAX , # ZZ |
IF |
M\ 530 DTST |
OP3 @ 1+ @ |
OP2 @ 1+ @ |
OP3 OPexcise |
OP2 OPexcise |
OP1 OPexcise |
OP0 0A OPinsert |
2581 OP1 @ ! OP1 @ 6 + ! OP1 @ 2+ ! |
FALSE M\ 531 DTST |
EXIT |
THEN |
OP2 @ W@ 408D = |
IF |
OP2 @ 2+ C@ FF = \ LEA EAX , FF [EAX] |
IF |
M\ 632 DTST |
OP3 01 OPresize |
0DFF OP3 @ W! |
OP2 OPexcise |
OP1 OPexcise |
FALSE M\ 633 DTST |
EXIT |
THEN |
THEN |
THEN TRUE EXIT |
THEN |
\ $ 4444 TO VVVV |
OP2 @ C@ A1 XOR \ MOV EAX , 44444 |
OP1 @ C@ 3D XOR OR \ CMP EAX , # 55555 |
0= IF M\ 218 DTST |
OP2 @ 1+ @ OP2 @ 2+ ! |
3D81 OP2 @ W! \ CMP 44444 , # 55555 |
OP0 @ OP1 ! |
OP1 ToOP0 |
FALSE |
EXIT M\ 219 DTST |
THEN |
\ OP0 @ C@ 58 = \ POP EAX |
\ IF |
OP1 @ C@ 50 = \ PUSH EAX |
IF |
\ 444 >R |
OP2 @ C@ B8 = \ MOV EAX , # 5 |
IF M\ 1A DTST |
68 OP2 @ C! |
OP0 @ 2@ OP1 @ 2! |
OP1 ToOP0 |
FALSE -1 ALLOT M\ 1B DTST |
EXIT |
THEN |
THEN |
OP1 @ W@ 4589 = \ MOV X [EBP], EAX EAX= |
IF |
\ 444 555 |
OP2 @ C@ B8 = \ MOV EAX , 5 |
IF M\ 1C DTST |
OP2 @ 1+ @ |
45C7 OP2 @ W! |
OP1 @ 2+ C@ OP2 @ 2+ C! |
OP2 @ 3 + ! |
2 OP1 +! |
OP0 @ 2@ OP1 @ 2! |
OP1 ToOP0 |
FALSE -1 ALLOT M\ 1D DTST |
EXIT |
THEN |
THEN |
\ THEN |
M\ PPPP |
OP2 @ C@ B8 XOR \ MOV EAX , # 789 |
OP1 @ W@ C88B XOR OR \ MOV ECX , EAX |
\ EAX= |
0= IF M\ 830 DTST |
B9 OP2 @ C! |
OP1 OPexcise |
FALSE M\ 831 DTST |
EXIT |
THEN |
OP2 @ W@ 878D XOR \ LEA EAX , 1448 [EDI] |
OP1 @ W@ 00FF XOR OR \ INC [EAX] |
\ EAX= |
0= IF M\ 930 DTST |
FF OP2 @ C! |
OP1 OPexcise |
FALSE M\ 931 DTST |
EXIT |
THEN |
OP2 @ @ FFFFFF AND 8D048D XOR \ LEA EAX , X [ECX*4] |
OP1 @ W@ 1089 XOR OR \ MOV [EAX] , EDX |
\ EAX= |
0= IF M\ 5E DTST |
1489 OP2 @ W! \ MOV [44444H+ECX*4], EDX |
OP1 OPexcise |
FALSE M\ 5F DTST |
EXIT |
THEN |
M\ PPPP |
DUP C@ 0C3 XOR |
OP2 @ W@ D08B XOR OR \ MOV EDX , EAX |
OP1 @ @ FFFFFF AND 8D1489 XOR OR \ MOV X [ECX*4] , EDX |
\ EAX= |
0= IF M\ 60 DTST |
OP2 OPexcise |
0489 OP1 @ W! \ MOV [44444H+ECX*4], EAX |
FALSE M\ 61 DTST |
EXIT |
THEN |
OP2 @ 2+ C@ |
OP0 @ 2+ C@ XOR |
OP2 @ W@ 5589 XOR OR \ MOV F8 [EBP] , EDX |
OP1 @ W@ 4589 XOR OR \ MOV F4 [EBP] , EAX |
OP0 @ W@ 458B XOR OR \ MOV EAX , F8 [EBP] |
0= IF M\ 64 DTST |
C28B OP0 @ W! \ MOV EAX , EDX |
-1 ALLOT |
FALSE M\ 65 DTST |
EXIT |
THEN |
OP2 @ W@ C033 XOR \ 57DD80 33C0 XOR EAX , EAX |
OP1 @ W@ 4589 XOR OR \ 57DD82 8945F8 MOV F8 [EBP] , EAX |
\ EAX= |
0= IF M\ 6C DTST |
OP2 OPexcise |
OP0 4 OPresize 4 OP0 +! |
45C7 OP1 @ W! OP1 @ 3 + 0! \ MOV F8 [EBP] , # 0 |
FALSE M\ 6D DTST |
EXIT |
THEN |
OP2 @ @ 45C7D08B XOR \ MOV EDX , EAX MOV F8 [EBP] , # X |
OP0 @ W@ C28B XOR OR \ MOV EAX , EDX |
0= IF M\ 6E DTST |
OP0 OPexcise |
FALSE M\ 6F DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP2 @ C@ BA XOR OR \ MOV EDX , # 0 |
OP1 @ W@ 1088 XOR OR \ MOV [EAX] , DL |
\ EAX= |
0= IF M\ 70 DTST |
OP2 @ 1+ C@ |
OP2 OPexcise |
OP1 1 OPresize |
00C6 OP1 @ W! \ MOV BYTE PTR [EAX] , 44H |
OP1 @ 2+ C! |
FALSE M\ 71 DTST |
EXIT |
THEN |
OP2 @ W@ 808D XOR \ LEA EAX , X [EAX] |
OP1 @ W@ 00C6 XOR OR \ MOV [EAX] , # 0 |
\ EAX= |
0= IF M\ 72 DTST |
80C6 OP2 @ W! |
OP1 @ 2+ C@ OP1 @ C! |
1 OP1 +! |
OP1 OPexcise |
FALSE M\ 73 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP2 @ W@ D18B XOR OR \ 596C15 8BD1 MOV EDX , ECX |
OP1 @ W@ 1089 XOR OR \ 596C17 8910 MOV [EAX] , EDX |
\ EAX= |
0= IF M\ 72 DTST |
OP2 OPexcise |
0889 OP1 @ W! |
FALSE M\ 73 DTST |
EXIT |
THEN |
OP2 @ @ FFFFFF AND 24448B XOR \ MOV EAX , 30 [ESP] |
OP1 @ W@ F7FF AND 44FF XOR OR \ FF4424 INC DEC 30 [ESP] |
\ EAX= |
0= IF M\ 8A DTST |
OP2 OPexcise |
FALSE M\ 8B DTST |
EXIT |
THEN |
OP2 @ C@ B8 XOR \ MOV EAX , # 1 |
OP1 @ @ FFFFFF AND 21C8D XOR OR \ LEA EBX , [EDX] [EAX] |
\ EAX= |
0= IF M\ AA DTST |
OP2 1 OPresize |
9A8D OP2 @ W! |
OP1 OPexcise |
FALSE M\ AB DTST |
EXIT |
THEN |
OP2 @ C@ BA XOR \ MOV EDX , # 7FFFFFEE |
OP1 @ W@ 9A8D XOR OR \ LEA EBX , 1 [EDX] |
\ EAX= |
0= IF M\ AC DTST |
OP1 @ 2+ @ |
OP1 OPexcise |
OP0 5 OPinsert |
BB OP1 @ C! \ MOV EBX , # |
OP2 @ 1+ @ + OP1 @ 1+ ! |
FALSE M\ AD DTST |
EXIT |
THEN |
OP2 @ W@ C28B XOR \ 8BC2 MOV EAX , EDX |
OP1 @ @ C28BC00B XOR OR \ 0BC0 OR EAX , EAX |
\ 8BC2 MOV EAX , EDX |
0= IF M\ C4 DTST |
OP2 OPexcise |
C28BD20B OP1 @ ! \ OR EDX , EDX MOV EAX , EDX |
FALSE M\ C5 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP2 @ W@ D18B XOR OR \ 58270A 8BD1 MOV EDX , ECX |
OP1 @ W@ 4589 XOR OR \ 58270C 8945F8 MOV F8 [EBP] , EAX |
OP0 @ W@ C28B XOR OR \ 58270F 8BC2 MOV EAX , EDX |
0= IF M\ D4 DTST |
OP2 OPexcise |
C18B OP0 @ W! \ MOV EAX , ECX |
FALSE M\ D5 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
\ 8BD0 MOV EDX , EAX |
OP2 @ @ 501D08B XOR \ 010544440400 ADD 44444 , EAX |
OP2 @ @ 589D08B <> AND OR \ 890544440400 MOV 44444 , EAX |
OP0 @ W@ 458B XOR OR \ 8B4500 MOV EAX , 0 [EBP] |
0= IF M\ D4 DTST |
OP2 OPexcise |
FALSE M\ D5 DTST |
EXIT |
THEN |
OP2 @ @ 1589D08B = \ 8BD0 MOV EDX , EAX |
\ 891555550500 MOV 55555 , EDX |
IF M\ E8 DTST |
0589 OP1 @ W! \ MOV 5800E0 , EAX |
FALSE M\ E9 DTST |
EXIT |
THEN |
OP2 @ W@ 408D XOR \ 8D4020 LEA EAX , 20 [EAX] |
OP1 @ @ 458BC88B XOR OR \ 8BC8 MOV ECX , EAX |
\ 8B45F8 MOV EAX , F8 [EBP] |
0= IF M\ F2 DTST |
488D OP2 @ W! \ LEA ECX , 20 [EAX] |
OP1 OPexcise |
FALSE M\ F3 DTST |
EXIT |
THEN |
OP2 @ ?ChEAX |
OP2 @ ^?EAX= AND |
OP1 @ C@ B9 XOR OR \ 587AC6 B919000000 MOV ECX , # 19 |
\ EAX= |
0= IF M\ FE DTST |
OP2 OPexcise |
FALSE M\ FF DTST |
EXIT |
THEN |
OP2 @ 2+ C@ |
OP0 @ 2+ C@ XOR |
OP2 @ W@ 5589 XOR OR \ 8955E8 MOV E8 [EBP] , EDX |
OP1 ?EDX_[EBP] OR |
OP0 @ W@ 458B XOR OR \ 8B45E8 MOV EAX , E8 [EBP] |
0= IF M\ BC DTST |
C28B OP0 @ W! \ MOV EAX , EDX |
-1 ALLOT |
FALSE M\ BD DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP2 @ @ 9788D08B XOR OR \ 8BD0 MOV EDX , EAX |
\ 88973C100000 MOV 103C [EDI] , DL |
\ EAX= |
0= IF M\ 112 DTST |
OP2 OPexcise |
8788 OP1 @ W! \ MOV 103C [EDI] , AL |
FALSE M\ 113 DTST |
EXIT |
THEN |
OP2 @ C@ 50 XOR \ 50 PUSH EAX |
OP1 @ W@ 4589 XOR OR \ 8945FC MOV FC [EBP] , EAX |
OP0 @ W@ 48B XOR OR \ 8B0424 MOV EAX , [ESP] |
0= IF M\ 164 DTST |
OP0 OPexcise |
FALSE M\ 165 DTST |
EXIT |
THEN |
M\ PPPP |
OP3 @ :-SET U< IF TRUE EXIT THEN |
\ $ SWAP 4444 |
OP2 @ W@ C28B = \ MOV EAX , EDX |
IF OP1 @ W@ 4589 = \ MOV X [EBP] , EAX |
IF M\ 60E DTST |
1000 OP1 @ +! \ MOV X [EBP] , EDX |
FALSE OP2 OPexcise M\ 60F DTST |
EXIT |
THEN |
THEN |
OP3 @ @ 408DC48B XOR \ MOV EAX , ESP LEA EAX , 8 [EAX] |
OP1 @ W@ E08B XOR OR \ MOV ESP , EAX |
0= IF M\ 8A DTST |
-1 OP2 +! |
24648D00 OP2 @ 1- ! \ LEA ESP , 8 [ESP] |
OP3 OPexcise |
OP1 OPexcise |
FALSE M\ 8B DTST |
EXIT |
THEN |
OP3 @ W@ C88B = \ 581B54 8BC8 MOV ECX , EAX |
IF |
DUP C@ C3 XOR |
\ OP3 @ W@ C88B XOR OR \ 587733 8BC8 MOV ECX , EAX |
OP2 @ W@ 428D XOR OR \ 587735 8D4201 LEA EAX , 1 [EDX] |
OP1 @ W@ 4589 XOR OR \ 587738 894500 MOV 0 [EBP] , EAX |
OP0 @ W@ C18B XOR OR \ 58773B 8BC1 MOV EAX , ECX |
0= IF M\ 142 DTST |
OP3 OPexcise |
OP0 OPexcise |
528D OP1 @ W! \ LEA EDX , 1 [EDX] |
5589 OP0 @ W! \ MOV 0 [EBP] , EDX |
FALSE M\ 143 DTST |
EXIT |
THEN |
OP5 @ J-SET U< 0= IF \ GOTO 5SET |
OP5 @ W@ C18B XOR \ 581B4C 8BC1 MOV EAX , ECX |
OP4 @ W@ 840F XOR OR \ 581B4E 0F8400000000 JE 581B54 ( zz+14 ) |
0= IF M\ B0 DTST |
OP3 OPexcise |
FALSE M\ B1 DTST |
EXIT |
THEN THEN \ 5SET: |
THEN |
DUP C@ 0C3 XOR |
OP3 @ @ C103D8F7 XOR OR \ F7D8 NEG EAX |
\ 03C1 ADD EAX , ECX |
OP1 @ W@ 4589 XOR OR \ 894500 MOV 0 [EBP] , EAX |
OP0 @ W@ C28B XOR OR \ 8BC2 MOV EAX , EDX |
0= IF M\ CE DTST |
OP3 OPexcise |
C82B OP2 @ W! \ SUB ECX , EAX |
4D89 OP1 @ W! \ MOV 0 [EBP] , ECX |
FALSE M\ CF DTST |
EXIT |
THEN |
OP3 @ @ C82BD08B XOR \ 8BD0 MOV EDX , EAX |
\ 2BC8 SUB ECX , EAX |
OP1 @ W@ 4D89 XOR OR \ 894D00 MOV 0 [EBP] , ECX |
OP0 @ W@ C28B XOR OR \ 8BC2 MOV EAX , EDX |
0= IF M\ D0 DTST |
DUP C@ 0C3 = |
IF OP3 OPexcise THEN |
OP0 OPexcise |
FALSE M\ D1 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP3 @ @ 418DD08B XOR OR \ 8BD0 MOV EDX , EAX |
\ 8D41FF LEA EAX , FF [ECX] |
OP1 @ W@ 4589 XOR OR \ 8945F8 MOV F8 [EBP] , EAX |
OP0 @ W@ C28B XOR OR \ 8BC2 MOV EAX , EDX |
0= IF M\ EA DTST |
OP3 OPexcise |
OP0 OPexcise |
498D OP1 @ W! \ LEA ECX , FF [ECX] |
4D89 OP0 @ W! \ MOV F8 [EBP] , ECX |
FALSE M\ EB DTST |
EXIT |
THEN |
OP3 @ 2+ C@ |
OP0 @ 2+ C@ XOR |
OP3 @ W@ 5589 XOR OR \ 8955E8 MOV E8 [EBP] , EDX |
OP2 ?EDX_[EBP] OR |
OP1 ?EDX_[EBP] OR |
OP0 @ W@ 458B XOR OR \ 8B45E8 MOV EAX , E8 [EBP] |
0= IF M\ BC DTST |
C28B OP0 @ W! \ MOV EAX , EDX |
-1 ALLOT |
FALSE M\ BD DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP2 @ C@ BA XOR OR \ BA2C000000 MOV EDX , # 2C |
OP1 @ @ 458B1001 XOR OR \ 0110 ADD [EAX] , EDX |
\ 8B45FC MOV EAX , FC [EBP] |
0= IF M\ 14C DTST |
OP1 OPexcise |
OP1 1 OPresize |
0081 OP1 @ W! \ ADD [EAX] , # 2C |
FALSE M\ 14D DTST |
EXIT |
THEN |
OP2 @ C@ B8 XOR \ 57DDE3 B844440400 MOV EAX , # 44444 |
OP1 @ W@ 81 XOR OR \ 57DDE8 81002C000000 ADD [EAX] , # 2C |
OP0 @ W@ 458B XOR OR \ 57DDEE 8B45FC MOV EAX , FC [EBP] |
0= IF M\ 14E DTST |
OP2 @ 1+ @ OP2 @ 2+ ! |
OP1 @ 2+ @ OP1 @ 1+ ! |
0581 OP2 @ W! \ ADD 44444 , # 2C |
5 OP1 +! |
OP1 OPexcise |
FALSE M\ 14F DTST |
EXIT |
THEN |
OP2 @ 2+ C@ |
OP0 @ 2+ C@ XOR |
OP2 @ W@ 45C7 XOR OR \ MOV F8 [EBP] , # 3 |
OP1 @ C@ B9 XOR OR \ MOV ECX , # 4 |
OP0 @ W@ 458B XOR OR \ MOV EAX , F8 [EBP] |
0= IF M\ 3E DTST |
OP2 @ 3 + @ OP2 @ 1+ ! |
B8 OP2 @ C! |
OP1 0 OPinsert -2 OP2 +! |
OP2 OPexcise \ MOV EAX , # 3 |
4589 OP0 @ W! \ MOV F8 [EBP] , EAX |
FALSE M\ 3F DTST |
EXIT |
THEN |
OP3 @ :-SET U< IF TRUE EXIT THEN |
OP3 @ C@ A1 XOR \ 57E2D7 A108E15700 MOV EAX , 57E108 |
OP2 @ W@ 4589 XOR OR \ 57E2DC 8945EC MOV EC [EBP] , EAX |
OP1 @ W@ D08B XOR OR \ 57E2DF 8BD0 MOV EDX , EAX |
\ EAX= |
0= IF M\ 152 DTST |
OP3 1 OPresize |
158B OP3 @ W! \ MOV EDX , 57E108 |
5589 OP2 @ W! \ MOV EC [EBP] , EDX |
OP1 OPexcise |
FALSE M\ 153 DTST |
EXIT |
THEN |
OP3 @ C@ 58 XOR \ POP EAX |
OP2 @ @ FFFFFF AND FF408D XOR OR \ LEA EAX , FF [EAX] |
OP1 @ C@ 50 XOR OR \ PUSH EAX |
\ EAX= |
0= IF M\ D30 DTST |
\ OP2 1 OPresize |
240CFF OP2 @ ! \ DEC DWORD PTR [ESP] |
OP3 OPexcise |
OP1 OPexcise |
FALSE M\ D31 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP3 @ @ 458BD08B XOR OR \ 8BD0 MOV EDX , EAX MOV EAX , 0 [EBP] |
OP1 @ W@ 4589 XOR OR \ 8945FC MOV FC [EBP] , EAX |
OP0 @ W@ C28B XOR OR \ 8BC2 MOV EAX , EDX |
0= IF M\ 166 DTST |
OP3 OPexcise |
OP0 OPexcise |
558B OP1 @ W! \ MOV EDX , 0 [EBP] |
5589 OP0 @ W! \ MOV FC [EBP] , EAX |
FALSE M\ 167 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP3 @ W@ D08B XOR OR \ 5822F8 8BD0 MOV EDX , EAX |
OP2 @ W@ 458B XOR OR \ 5822FA 8B4508 MOV EAX , 8 [EBP] |
OP1 @ W@ 1089 XOR OR \ 5822FD 8910 MOV [EAX] , EDX |
OP0 @ W@ 458B XOR OR \ 5822FF 8B450C MOV EAX , C [EBP] |
0= IF M\ 156 DTST |
OP3 OPexcise |
558B OP2 @ W! \ MOV EDX , 8 [EBP] |
0289 OP1 @ W! \ MOV [EDX] , EAX |
FALSE M\ 157 DTST |
EXIT |
THEN |
OP4 @ :-SET U< IF TRUE EXIT THEN |
OP5 @ :-SET U< IF TRUE EXIT THEN |
OP5 @ C@ B8 XOR \ 596994 B812000000 MOV EAX , # 12 |
OP4 @ W@ 4589 XOR OR \ 596999 8945F4 MOV F4 [EBP] , EAX |
OP3 @ W@ 4589 XOR OR \ 59699C 8945F0 MOV F0 [EBP] , EAX |
OP2 @ C@ BA XOR OR \ 59699F BA00000080 MOV EDX , # 80000000 |
OP1 @ W@ D02B XOR OR \ 5969A4 2BD0 SUB EDX , EAX |
\ EAX= |
0= IF M\ A6 DTST |
OP5 @ 1+ @ NEGATE OP2 @ 1+ +! |
OP1 OPexcise |
FALSE M\ A7 DTST |
EXIT |
THEN |
TRUE |
; |
\ : SSSSSS ; |
\ TRUE VALUE ?C-JMP |
FALSE VALUE ?C-JMP |
\ $ - óêàçûâàåò íà ôðàãìåíò èñõîäíîãî òåêñòà, îïòèìèçèðóåìûé |
\ äàííûì ìåòîäîì |
: OPT-RULES ( ADDR -- ADDR' FLAG ) |
BEGIN M\ -1 DTST |
OP0 @ :-SET U< IF TRUE EXIT THEN |
OP0 @ W@ 408D = \ LEA EAX, X [EAX] |
WHILE M\ 2 DTST |
OP0 @ 2+ C@ C>S OFF-EAX + TO OFF-EAX |
OP1 ToOP0 |
-3 ALLOT M\ 3 DTST |
REPEAT M\ DUP VPPP ! |
OP0 @ C@ 05 = ~BR-OPT AND \ ADD EAX, # X |
IF M\ 4 DTST |
OP0 @ 1+ @ OFF-EAX + TO OFF-EAX |
OP1 ToOP0 |
FALSE -5 ALLOT M\ 5 DTST |
EXIT |
THEN |
M\ PPPP |
OP0 @ W@ 808D = \ LEA EAX, X [EAX] |
IF M\ 6 DTST |
OP0 @ 2+ @ OFF-EAX + TO OFF-EAX |
OP1 ToOP0 |
-6 ALLOT FALSE M\ 7 DTST |
EXIT |
THEN |
OFF-EAX |
OP0 @ W@ C033 = AND \ XOR EAX , EAX |
IF M\ 4A DTST |
B8 OP0 @ C! |
OFF-EAX OP0 @ 1+ ! |
0 TO OFF-EAX |
3 ALLOT FALSE M\ 4B DTST |
EXIT |
THEN |
M\ PPPP |
OP0 @ @ 3FFFFF AND |
05048D = \ LEA EAX, X [EAX*_] |
IF |
\ $ 4444 CELLS |
OP1 @ :-SET U< 0= |
IF |
OP1 @ C@ B8 XOR \ MOV EAX, # X1 |
OP0 @ 3 + @ \ X=0 |
OR 0= |
IF M\ 8 DTST |
OP1 @ 1+ @ OP0 @ @ C00000 AND 16 RSHIFT |
LSHIFT |
OP1 @ 1+ ! |
OP1 ToOP0 \ FIX |
FALSE -7 ALLOT M\ 9 DTST |
EXIT |
THEN |
THEN |
\ $ CELLS 4444 + |
OFF-EAX OP0 @ 3 + +! |
0 TO OFF-EAX |
THEN |
M\ PPPP |
OP0 @ C@ B8 = \ MOV EAX, # X |
IF OFF-EAX OP0 @ 1+ +! |
0 TO OFF-EAX |
OP0 @ 1+ @ 0= \ MOV EAX, # 0 |
IF M\ A DTST |
C033 OP0 @ W! \ XOR EAX, EAX |
-3 ALLOT |
\ FALSE EXIT |
M\ B DTST |
THEN |
OP1 @ :-SET U< IF TRUE EXIT THEN |
DUP C@ 0C3 XOR |
OP1 @ W@ 45C7 XOR OR 0= \ MOV F8 [EBP] , # 5 |
IF OP1 @ 2+ C@ C>S OFF-EBP U< |
IF |
M\ 10A DTST |
OP1 OPexcise |
\ FALSE EXIT |
M\ 10B DTST |
THEN |
THEN |
THEN |
M\ PPPP |
DUP C@ C3 = |
IF OFF-EBP >R |
5555 DP @ ! |
FALSE OP0 -EBPCLR OP0 -EBPCLR OP0 -EBPCLR OP0 -EBPCLR |
IF M\ 20B DTST |
R> TO OFF-EBP FALSE EXIT |
THEN R> TO OFF-EBP |
THEN |
OFF-EAX |
OP0 @ W@ C28B = \ MOV EAX , EDX |
OP0 @ W@ C18B = OR AND \ MOV EAX , ECX |
IF M\ D6 DTST |
OFF-EAX DUP SHORT? |
IF 0418D C18B - OP0 @ +! C, |
ELSE 0828D C28B - OP0 @ +! , |
THEN \ LEA EAX, OFF-EBP [EDX] |
0 TO OFF-EAX |
FALSE M\ D7 DTST |
EXIT |
THEN |
OP0 @ 2+ @ 5 XOR |
OP0 @ W@ C069 XOR OR \ 59A095 69C005000000 IMUL EAX , EAX , # 5 |
0= IF M\ 8E DTST |
80048D OP0 @ ! \ MOV EAX , [EAX*4+EAX] |
-3 ALLOT |
FALSE M\ 8F DTST |
EXIT |
THEN |
OP0 @ W@ D28B = \ MOV EDX, EDX \ C-DO |
IF OP0 OPexcise TRUE EXIT |
THEN |
OP0 @ @ 1004583 = \ 587890 83450001 ADD 0 [EBP] , # 1 |
IF M\ 146 DTST |
45FF OP0 @ W! \ INC 0 [EBP] |
-1 ALLOT |
FALSE M\ 147 DTST |
EXIT |
THEN |
M\ PPPP |
OP1 @ :-SET U< IF TRUE EXIT THEN |
?~EAX 0! |
OP1 @ @ 00FFFFFD AND 244489 XOR \ MOV 8 [ESP] , EAX |
OP0 @ @ FFFFFFFD AND |
OP1 @ @ FFFFFFFD AND XOR OR \ MOV EAX , 8 [ESP] |
0= IF M\ 1F0 DTST |
OP1 ToOP0 |
-4 ALLOT |
FALSE M\ 1F1 DTST |
EXIT |
THEN |
OP1 @ 2+ C@ |
OP0 @ 2+ C@ XOR |
OP1 @ W@ 5089 XOR OR \ MOV C [EAX] , EDX |
OP0 @ W@ 408B XOR OR \ MOV EAX , C [EAX] |
0= IF M\ 2F0 DTST |
C28B OP0 @ W! \ MOV EAX , EDX |
-1 ALLOT |
FALSE M\ 2F1 DTST |
EXIT |
THEN |
M\ PPPP |
OP1 @ @ 008B0889 = \ MOV [EAX] , ECX MOV EAX , [EAX] |
IF M\ F0 DTST |
C18B OP0 @ W! |
FALSE M\ F1 DTST |
EXIT |
THEN |
OP0 @ C@ 58 XOR \ POP EAX |
OP0 @ ^?EAX= AND 0= |
\ OP0 @ ^?EAX= 0= |
IF ?EAX=RULES EXIT |
THEN |
OP1 @ @ 4503C033 = \ XOR EAX , EAX ADD EAX , F8 [EBP] |
IF M\ 10C DTST |
OP1 OPexcise |
8B OP0 @ C! \ MOV EAX , F8 [EBP] |
FALSE M\ 10D DTST |
EXIT |
THEN |
M\ PPPP |
OP1 @ @ 048DC033 = \ XOR EAX , EAX LEA EAX , 57B680 [EAX*4] |
IF OP0 @ 2+ C@ 85 = |
IF M\ 62 DTST |
OP1 OPexcise |
B8 OP0 @ C! \ MOV EAX , # 57B680 |
OP0 @ 3 + @ OP0 @ 1+ ! |
-2 ALLOT |
FALSE M\ 63 DTST |
EXIT |
THEN |
THEN |
?C-JMP |
IF OP0 @ C@ C3 XOR |
OP1 @ C@ E8 XOR OR 0= \ CALL X RET |
IF M\ 0C DTST |
OP1 @ 1+! |
OP1 ToOP0 |
FALSE -6 ALLOT |
SetJP 5 ALLOT M\ 0D DTST |
EXIT |
THEN |
THEN |
\ TRUE EXIT |
\ $ CELLS 444 + @ |
OP1 @ W@ 38FF AND 008D = \ LEA EAX , ____ |
IF OP0 @ W@ 008B = \ MOV EAX , [EAX] |
IF |
M\ 0E DTST |
8B OP1 @ C! |
OP1 ToOP0 |
FALSE -2 ALLOT M\ 0F DTST |
EXIT |
THEN |
OP0 @ @ FFFEFF AND 00B60F = \ MOVZX EAX , BYTE|WORD PTR [EAX] |
\ LEA EAX , ____ |
IF |
M\ 10E DTST |
OP0 @ W@ OP1 @ 2@ ( 2DUP U. U. ) OP1 @ 1+ ( 0 IF THEN ) 2! |
OP1 @ W! |
OP1 ToOP0 |
FALSE -2 ALLOT M\ 10F DTST |
EXIT |
THEN |
THEN |
OP0 @ W@ 4589 XOR \ MOV X [EBP], EAX |
OP0 @ 2+ C@ |
OP1 @ 2+ C@ XOR OR 0= \ (FALG &( X1=X )) |
IF |
OP1 @ W@ 458B = \ MOV EAX, 1X [EBP] \ $ DROP DUP |
IF M\ 10 DTST |
OP1 ToOP0 |
FALSE -3 ALLOT M\ 11 DTST |
EXIT |
THEN |
THEN |
OP1 @ C@ B8 = \ MOV EAX, # X \ eax= |
IF OP0 @ W@ |
DUP D8F7 = \ NEG EAX |
IF DROP M\ 14 DTST |
OP1 @ 1+ @ NEGATE OP1 @ 1+ ! \ MOV EAX, # -X |
OP1 ToOP0 |
FALSE -2 ALLOT M\ 15 DTST |
EXIT |
THEN |
DUP D0F7 = \ MOV EAX, # X NOT EAX |
IF DROP M\ 16 DTST |
OP1 @ 1+ @ INVERT OP1 @ 1+ ! \ MOV EAX, # ~X |
OP1 ToOP0 |
FALSE -2 ALLOT M\ 17 DTST |
EXIT |
THEN |
DUP 008B = \ MOV EAX, # X MOV EAX, [EAX] |
IF DROP M\ 18 DTST |
A1 OP1 @ C! \ MOV EAX, X |
OP1 ToOP0 |
FALSE -2 ALLOT M\ 19 DTST |
EXIT |
THEN |
DROP |
OP0 @ @ FFFFFF AND 85448B = \ MOV EAX, # X MOV EAX , X1 [EBP] [EAX*4] |
IF M\ 518 DTST |
OP0 @ 3 + C@ |
OP1 @ 1+ @ CELLS + |
458B OP1 @ W! \ MOV EAX , X [EBP] |
OP1 @ 2+ C! |
OP1 ToOP0 |
FALSE -6 ALLOT M\ 519 DTST |
EXIT |
THEN |
THEN |
OP1 @ W@ 5589 XOR \ MOV X1 [EBP] , EDX |
OP0 @ W@ 4503 XOR OR \ ADD EAX , X0 [EBP] |
OP1 @ 2+ C@ OP0 @ 2+ C@ XOR OR \ X1=X0 |
0= IF M\ 418 DTST |
02048D OP0 @ ! \ lea EAX, [EAX+EDX] |
FALSE M\ 419 DTST |
EXIT |
THEN |
OP1 @ W@ 4D89 XOR \ MOV 4 [EBP] , ECX |
OP0 @ W@ 558B XOR OR \ MOV EDX , 4 [EBP] |
OP1 @ 2+ C@ OP0 @ 2+ C@ XOR OR \ X1=X0 |
0= IF M\ 418 DTST |
D18B OP0 @ W! \ MOV EDX , ECX |
-1 ALLOT |
FALSE M\ 419 DTST |
EXIT |
THEN |
M\ PPPP |
OP1 @ W@ 408D XOR \ LEA EAX , Y [EAX] |
OP0 @ @ 85048D FFFFFF AND XOR OR 0= \ LEA EAX , X [EAX*4] |
IF M\ 30E DTST |
OP1 @ 2+ C@ C>S CELLS OP0 @ 3 + +! |
FALSE |
OP1 OPexcise M\ 30F DTST |
EXIT |
THEN |
OP1 @ @ FFFFFF AND 85048D XOR \ LEA EAX , X [EAX*4] |
OP0 @ @ FFFFFF AND 02048D XOR OR \ MOV EAX , [EDX] [EAX] |
OP1 @ 3 + @ 80 + FFFFFF00 AND OR 0= |
IF M\ 50E DTST |
8244 OP1 @ 1+ W! |
OP1 ToOP0 |
FALSE |
-6 ALLOT M\ 50F DTST |
EXIT |
THEN |
OP0 @ W@ FFFD AND 5589 = \ MOV EDX , X [EBP] |
IF OP1 |
BEGIN MOV_EDX_[EBP] |
UNTIL |
IF M\ A0E DTST |
OP1 ToOP0 |
FALSE |
-3 ALLOT M\ A0F DTST |
EXIT |
THEN |
THEN |
DUP C@ 0C3 XOR |
OP1 @ W@ 4589 XOR OR \ 5695B0 8945FC MOV FC [EBP] , EAX |
OP0 @ W@ 6DF7 XOR OR \ 5695B3 F76DFC IMUL FC [EBP] |
OP1 @ 2+ C@ |
OP0 @ 2+ C@ XOR OR |
OP0 @ 2+ C@ C>S OFF-EBP > OR |
0= IF M\ 32A DTST |
E8F7 OP1 @ W! |
OP1 ToOP0 |
FALSE -4 ALLOT M\ 32B DTST |
EXIT |
THEN |
M\ PPPP |
OP0 @ W@ E7FF AND 4589 = \ TTTT AND \ MOV X [EBP] , EAX|EDX|EBX|ECX |
IF OFF-EBP >R OP0 @ 2+ C@ C>S CELL+ TO OFF-EBP |
FALSE OP1 -EBPCLR |
IF R> TO OFF-EBP FALSE EXIT THEN |
R> TO OFF-EBP |
THEN |
OP1 @ W@ CA8B XOR \ 8BCA MOV ECX , EDX |
OP0 @ @ FFFFFF AND 88048D XOR OR \ 8D0488 LEA EAX , [EAX] [ECX*4] |
0= IF M\ 42A DTST |
90048D OP0 @ ! |
FALSE M\ 42B DTST |
EXIT |
THEN |
DUP C@ 0C3 XOR |
OP1 @ W@ CA8B XOR OR \ 8BCA MOV ECX , EDX |
OP0 @ @ FFFFFF AND 90048D XOR OR \ 8D0488 LEA EAX , [EAX] [EDX*4] |
0= IF M\ 62A DTST |
OP1 OPexcise |
FALSE M\ 62B DTST |
EXIT |
THEN |
OP1 @ @ FFFFFF AND 8D0C8D XOR \ 8D0C8D00000000 LEA ECX , 0 [ECX*4] |
OP1 @ 3 + @ XOR |
OP0 @ @ FFFFFF AND 1048D XOR OR \ 8D0401 LEA EAX , [ECX] [EAX] |
0= IF M\ 52A DTST |
88048D OP1 @ ! |
OP1 ToOP0 |
FALSE -7 ALLOT M\ 52B DTST |
EXIT |
THEN |
OP1 @ C@ B8 XOR \ MOV EAX , # 58DDE8 |
OP0 @ @ FFFFFF AND 90048D XOR OR \ LEA EAX , [EAX] [EDX*4] |
0= IF M\ 4C DTST |
OP1 @ 1+ @ |
OP1 OPexcise |
95 OP0 @ 2+ C! , |
FALSE M\ 4D DTST |
EXIT |
THEN |
DUP C@ 0C3 XOR |
OP1 @ @ 048DD9F7 XOR OR \ NEG ECX LEA EAX , [ECX] [EAX] |
0= IF M\ 90 DTST |
C12B OP1 @ W! |
OP1 ToOP0 |
FALSE -3 ALLOT M\ 91 DTST |
EXIT |
THEN |
DUP C@ 0C3 XOR |
OP1 @ @ FFFFFF AND 244C8B XOR OR \ MOV ECX , 20 [ESP] |
OP0 @ W@ C12B XOR OR \ 59A13C 2BC1 SUB EAX , ECX |
0= IF M\ 92 DTST |
442B OP1 @ W! \ SUB EAX , 20 [ESP] |
OP1 ToOP0 |
FALSE -2 ALLOT M\ 93 DTST |
EXIT |
THEN |
DUP C@ 0C3 XOR |
OP1 @ W@ D8B XOR OR \ MOV ECX , 599825 |
OP0 @ W@ C12B XOR OR \ SUB EAX , ECX |
0= IF M\ 92 DTST |
052B OP1 @ W! \ SUB EAX , 599825 |
OP1 ToOP0 |
FALSE -2 ALLOT M\ 93 DTST |
EXIT |
THEN |
DUP C@ 0C3 XOR |
OP1 @ C@ B8 XOR OR \ 59A227 B841000000 MOV EAX , # 1000 |
OP0 @ C@ A3 XOR OR \ 59A22C A375995900 MOV 599975 ( Char1Glob+5 ) , EAX |
0= IF M\ 98 DTST |
OP1 @ 1+ @ OP0 @ 1+ @ |
OP1 @ 2+ ! OP0 @ 1+ ! |
05C7 OP1 @ W! \ MOV 599975 , # 1000 |
OP1 ToOP0 |
FALSE M\ 99 DTST |
EXIT |
THEN |
DUP C@ 0C3 XOR |
OP1 @ C@ B8 XOR OR \ MOV EAX , # 2000 |
OP0 @ @ FFFFFF AND 244489 XOR OR \ MOV 1C [ESP] , EAX |
0= IF M\ A8 DTST |
OP1 @ 1+ @ , |
OP1 OPexcise |
C7 OP0 @ C! \ MOV 1C [ESP] , # 2000 |
FALSE M\ A9 DTST |
EXIT |
THEN |
OP1 @ C@ B8 XOR \ B8E0005800 MOV EAX , # 5800E0 |
OP0 @ W@ 1001 XOR OR \ 0110 ADD [EAX] , EDX |
0= IF M\ E4 DTST |
OP1 @ 1+ @ |
1501 OP0 @ W! , \ ADD 5800E0 , EDX |
FALSE M\ E5 DTST |
EXIT |
THEN |
OP1 @ C@ B8 XOR \ 580185 B855550500 MOV EAX , # 55555 |
OP0 @ W@ 1089 XOR OR \ 58018A 8910 MOV [EAX] , EDX |
0= IF M\ EE DTST |
OP1 @ 1+ @ |
1589 OP0 @ W! , \ MOV 5800E0 , EDX |
FALSE M\ EF DTST |
EXIT |
THEN |
OP1 @ @ 1501D08B = \ 8BD0 MOV EDX , EAX |
\ 011560015800 ADD 580160 , EDX |
IF M\ E6 DTST |
0501 OP0 @ W! \ ADD 5800E0 , EAX |
FALSE M\ E7 DTST |
EXIT |
THEN |
DUP C@ 0C3 XOR |
OP1 @ @ 0A4CB60F XOR OR \ MOVZX ECX , BYTE PTR 2 [EDX] [ECX] |
OP0 @ W@ C133 XOR OR \ XOR EAX , ECX |
0= IF M\ A0 DTST |
OP0 OPexcise |
0A443200 OP0 @ ! |
OP0 @ 1+ @ OP0 @ ! \ XOR AL , BYTE PTR [EAX+EDX+44H] |
-1 ALLOT |
FALSE M\ A1 DTST |
EXIT |
THEN |
DUP C@ 0C3 XOR |
OP1 @ @ FFFFFF AND 850C8D XOR OR \ LEA ECX , 58E188 ( rson+5 ) [EAX*4] |
OP0 @ W@ 1189 XOR OR \ 596738 8911 MOV [ECX] , EDX |
0= IF M\ A2 DTST |
OP0 OPexcise |
1489 OP0 @ W! |
FALSE M\ A3 DTST |
EXIT |
THEN |
OP1 @ 2+ C@ |
OP0 @ 2+ C@ XOR |
OP1 @ W@ 5589 XOR OR \ 8955F8 MOV F8 [EBP] , EDX |
0= IF |
OP0 @ W@ 450B = \ 0B45F8 OR EAX , F8 [EBP] |
IF M\ B2 DTST |
C20B OP0 @ W! \ OR EAX , EDX |
-1 ALLOT |
FALSE M\ B3 DTST |
EXIT |
THEN |
OP0 @ W@ 453B = \ 3B45F8 CMP EAX , F8 [EBP] !!! |
IF M\ BE DTST |
C23B OP0 @ W! \ CMP EAX , EDX |
-1 ALLOT |
FALSE M\ BF DTST |
EXIT |
THEN |
THEN |
OP1 @ W@ C28B XOR \ 8BC2 MOV EAX , EDX |
OP0 @ W@ 4589 XOR OR \ 8945FC MOV FC [EBP] , EAX |
0= IF M\ C0 DTST |
5589 OP0 @ W! \ 8955FC MOV FC [EBP] , EDX |
FALSE M\ C1 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP1 @ W@ D08B XOR OR \ 8BD0 MOV EDX , EAX |
OP0 @ W@ 45C7 XOR OR \ C7450001000000 MOV 0 [EBP] , # 1 |
0= IF M\ C6 DTST |
OP1 OPexcise |
FALSE M\ C7 DTST |
EXIT |
THEN |
OP1 @ 2+ C@ |
OP0 @ 2+ C@ XOR |
OP1 @ W@ 4589 XOR OR \ 58251C 894500 MOV 0 [EBP] , EAX |
OP0 @ W@ 45C7 XOR OR \ 58251F C7450001000000 MOV 0 [EBP] , # 1 |
0= IF M\ C6 DTST |
OP1 OPexcise |
FALSE M\ C7 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP1 @ @ 0501D08B XOR OR \ 8BD0 MOV EDX , EAX |
\ 011510025800 ADD 580210 , EAX |
0= IF M\ E8 DTST |
OP1 OPexcise |
FALSE M\ E9 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP1 @ C@ B9 XOR OR \ B94C025800 MOV ECX , # 58024C |
OP0 @ W@ 1C7 XOR OR \ C70189ABCDEF MOV [ECX] , # EFCDAB89 |
0= IF M\ EC DTST |
OP0 @ 2+ @ OP1 @ 1+ @ |
OP1 @ 2+ ! OP0 @ 1+ ! |
05C7 OP1 @ W! \ MOV 58024C , # EFCDAB89 |
OP1 ToOP0 |
-1 ALLOT |
FALSE M\ ED DTST |
EXIT |
THEN |
OP1 @ C@ B8 XOR \ 587294 B801000000 MOV EAX , # 1 |
OP0 @ W@ C88B XOR OR \ 587299 8BC8 MOV ECX , EAX |
0= IF M\ F6 DTST |
OP1 @ 1+ @ |
OP0 @ 1+ ! |
B9 OP0 @ C! \ MOV ECX , # 1 |
3 ALLOT |
FALSE M\ F7 DTST |
EXIT |
THEN |
OP1 @ C@ B9 XOR \ B901000000 MOV ECX , # 1 |
OP0 @ W@ D9F7 XOR OR \ F7D9 NEG ECX |
0= IF M\ F8 DTST |
OP1 @ 1+ @ NEGATE |
OP1 @ 1+ ! |
OP1 ToOP0 |
-2 ALLOT |
FALSE M\ F9 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP1 @ C@ B9 XOR OR \ B919000000 MOV ECX , # 19 |
OP0 @ W@ F7FF AND E0D3 XOR OR \ D3E8 SHR|SHL EAX , CL |
0= IF M\ 100 DTST |
OP1 @ 1+ @ |
OP1 OPexcise |
C1 OP0 @ C! C, |
FALSE M\ 101 DTST |
EXIT |
THEN |
OP1 @ C@ B8 XOR \ B801000000 MOV EAX , # 1 |
OP0 @ @ FFFFFF AND 85048B XOR OR \ 8B04851CDE5700 MOV EAX , 57DE1C [EAX*4] |
0= IF M\ 148 DTST |
A1 OP1 @ C! \ MOV EAX , 1 |
OP0 @ 3 + @ |
OP1 @ 1+ @ CELLS + OP1 @ 1+ ! |
OP0 OPexcise |
FALSE M\ 149 DTST |
EXIT |
THEN |
OP1 @ W@ C033 XOR \ 33C0 XOR EAX , EAX |
OP0 @ @ FFFFFF AND 85048B XOR OR \ 8B04851CDE5700 MOV EAX , 57DE1C [EAX*4] |
0= IF M\ 348 DTST |
2 OP0 +! |
A1 OP0 @ C! \ MOV EAX , 57DE1C |
OP1 OPexcise |
FALSE M\ 349 DTST |
EXIT |
THEN |
OP1 @ C@ B8 XOR \ B803000000 MOV EAX , # 3 |
OP0 @ W@ F7FF AND E0C1 XOR OR \ C1E804 SH[R|L] EAX , 4 |
0= IF M\ 48 DTST |
OP1 @ 1+ @ |
OP0 @ 2+ C@ OP0 @ W@ 0x800 AND IF RSHIFT ELSE LSHIFT THEN |
OP1 @ 1+ ! |
OP0 OPexcise |
FALSE M\ 49 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP1 @ W@ CA8B XOR OR \ 582148 8BCA MOV ECX , EDX |
OP0 @ W@ C12B XOR OR \ 58214A 2BC1 SUB EAX , ECX |
0= IF M\ 180 DTST |
C22B OP1 @ W! \ SUB EAX , ECX |
OP0 OPexcise |
FALSE M\ 181 DTST |
EXIT |
THEN |
M\ PPPP |
OP2 @ :-SET |
\ TTTT IF ." T=" 2DUP HEX U. U. THEN |
U< IF TRUE EXIT THEN |
\ $ - DUP |
OP2 @ W@ D8F7 XOR |
OP1 @ W@ 4501 XOR OR 0= |
IF M\ 118 DTST |
OP2 OPexcise |
29 OP1 @ C! |
FALSE |
EXIT M\ 119 DTST |
THEN |
\ $ - - |
OP2 @ @ 4503D8F7 XOR \ NEG EAX ADD EAX, X [EBP] |
OP0 @ W@ D8F7 XOR OR 0= \ NEG EAX |
IF M\ 20 DTST |
OP1 @ @ 452B OR OP2 @ ! \ SUB EAX, X [EBP] |
OP2 ToOP0 |
-4 ALLOT |
FALSE M\ 21 DTST |
EXIT |
THEN |
M\ PPPP |
OP0 @ W@ ADD|XOR|OR|AND= \ $ 4444 OR |
IF |
OP2 @ W@ 4589 XOR \ MOV X1 [EBP], EAX |
OP2 @ 2+ C@ |
OP0 @ 2+ C@ XOR OR 0= |
IF |
OP1 @ W@ |
DUP 0878B = \ MOV EAX, X [EDI] |
IF DROP M\ 22 DTST |
OP0 @ C@ 8700 + OP2 @ W! |
OP1 @ 2+ @ OP2 @ 2+ ! |
OP2 ToOP0 |
FALSE -6 ALLOT M\ 23 DTST |
EXIT |
THEN |
\ MOV X1 [EBP], EAX |
DUP 0458B = \ MOV EAX , X [EBP] |
\ ADD|XOR|OR|AND= |
IF DROP M\ 122 DTST |
OP0 @ C@ 4500 + OP1 @ W! |
OP1 ToOP0 |
FALSE -3 ALLOT M\ 123 DTST |
EXIT |
THEN |
FF AND |
\ MOV X1 [EBP], EAX |
DUP 0B8 = \ MOV EAX, # X |
\ ADD|XOR|OR|AND= |
IF DROP M\ 24 DTST |
OP0 @ C@ 2+ OP1 @ C! |
OP1 ToOP0 |
FALSE -3 ALLOT M\ 25 DTST |
EXIT |
THEN |
\ MOV X1 [EBP], EAX |
DUP 0A1 = \ MOV EAX, X |
\ ADD|XOR|OR|AND= |
IF DROP M\ 26 DTST |
OP0 @ C@ 500 + |
OP1 @ 1+ @ OP1 @ 2+ ! |
OP1 @ W! |
OP1 ToOP0 |
FALSE -2 ALLOT M\ 27 DTST |
EXIT |
THEN |
DROP |
THEN |
OP2 @ W@ 45C7 XOR \ MOV X1 [EBP], # 4444 \ $ 4444 5555 OR |
OP1 @ C@ B8 XOR OR 0= \ MOV EAX , # 4 |
\ ADD|XOR|OR|AND= |
IF M\ 124 DTST |
OP2 @ 3 + @ OP1 @ 1+ @ |
C300 OP0 @ 2+ ! OP0 @ EXECUTE |
OP1 @ 1+ ! DROP |
OP1 ToOP0 |
FALSE -3 ALLOT M\ 125 DTST |
EXIT |
THEN |
OP1 @ W@ 4D89 XOR \ MOV F4 [EBP] , ECX |
OP1 @ 2+ C@ |
OP0 @ 2+ C@ XOR OR 0= \ ADD|XOR|OR|AND= |
IF M\ 12 DTST |
C1 OP0 @ 1+ C! \ XOR EAX , ECX |
FALSE -1 ALLOT M\ 13 DTST |
EXIT |
THEN |
\ ADD|XOR|OR|AND= |
OP0 @ 2+ C@ OP1 -EBPLIT NIP |
DUP @ W@ 45C7 = \ MOV F8 [EBP] , # 2710 |
OVER @ 2+ C@ OP0 @ 2+ C@ = AND |
IF OP0 @ W@ 4503 = \ ADD EAX , F8 [EBP] |
IF M\ 46 DTST |
@ 3 + @ OFF-EAX + TO OFF-EAX |
OP1 ToOP0 |
FALSE -3 ALLOT M\ 47 DTST |
EXIT |
THEN |
THEN |
DROP |
OP0 @ 2+ C@ |
OP1 @ 2+ C@ XOR |
OP1 @ W@ 45C7 XOR OR \ 599B95 C745F401000000 MOV F4 [EBP] , # 1 |
\ ADD|XOR|OR|AND= |
0= IF M\ 8C DTST |
OP0 @ C@ 2+ OP0 @ C! |
2 ALLOT |
OP1 @ 3 + @ OP0 @ 1+ ! |
FALSE M\ 8D DTST |
EXIT |
THEN |
THEN |
M\ PPPP |
\ OP0 @ W@ 4D8B = |
OP0 @ W@ 558B = \ MOV EDX , X [EBP] |
IF \ OP-1 MOV EAX , FC [EBP] |
OP0 @ 2+ C@ OP1 -EBPLIT NIP |
DUP @ W@ 45C7 = \ MOV F8 [EBP] , # 2710 |
OVER @ 2+ C@ OP0 @ 2+ C@ = AND |
IF M\ 50 DTST |
-2 ALLOT |
BA OP0 @ C! |
@ 3 + @ , |
FALSE M\ 51 DTST |
EXIT |
THEN |
DROP |
THEN |
OP0 @ W@ 4539 = \ CMP X [EBP] , EAX |
IF |
OP1 @ W@ 5589 XOR \ MOV X [EBP] , EDX |
OP1 @ 2+ C@ |
OP0 @ 2+ C@ XOR OR 0= \ |
IF M\ 128 DTST |
D03B OP0 @ W! |
FALSE -1 ALLOT M\ 129 DTST |
EXIT |
THEN |
OP1 @ C@ 0B8 XOR \ MOV EAX, # X |
OP2 @ W@ 4589 XOR OR \ MOV X1 [EBP], EAX |
OP2 @ 2+ C@ |
OP0 @ 2+ C@ XOR OR 0= |
IF M\ 28 DTST |
3D OP2 @ C! |
OP1 @ 1+ @ OP2 @ 1+ ! |
OP2 ToOP0 |
FALSE -6 ALLOT M\ 29 DTST |
EXIT |
THEN |
\ $ 4444 @ U< |
OP1 @ C@ 0A1 XOR \ MOV EAX, # X |
OP2 @ W@ 4589 XOR OR \ MOV X1 [EBP], EAX |
OP2 @ 2+ C@ |
OP0 @ 2+ C@ XOR OR 0= |
IF M\ 2A DTST |
053B OP2 @ W! |
OP1 @ 1+ @ OP2 @ 2+ ! |
OP2 ToOP0 |
FALSE -5 ALLOT M\ 2B DTST |
EXIT |
THEN |
THEN |
DUP W@ 458B XOR \ MOV EAX , FC [EBP] |
OP0 @ W@ 1089 XOR OR \ MOV [EAX] , EDX |
OP1 @ W@ 558B XOR OR 0= \ MOV EDX , X [EBP] \ !? |
IF \ OP-1 MOV EAX , FC [EBP] |
OP2 @ W@ 408D = \ LEA EAX , 4 [EAX] \ $ CELL+ ! |
IF M\ 430 DTST |
OP2 @ 2+ C@ |
OP2 OPexcise |
5089 OP0 @ W! C, |
FALSE M\ 431 DTST |
EXIT |
THEN |
OP3 @ :-SET U< IF TRUE EXIT THEN |
\ $ 44444 ! |
OP3 @ 2+ C@ |
OP1 @ 2+ C@ = |
IF OP3 @ W@ 4589 = \ MOV X [EBP] , EAX |
IF OP2 @ C@ B8 = \ MOV EAX, X |
IF M\ 30 DTST |
A3 OP3 @ C! |
OP2 @ 1+ @ OP3 @ 1+ ! |
OP3 ToOP0 |
FALSE -8 ALLOT M\ 31 DTST |
EXIT |
THEN |
OP2 @ W@ 878D = \ LEA EAX, X [EDI] |
IF M\ 230 DTST \ ??? |
OP3 OPexcise |
8789 OP2 @ W! \ MOV X [EDI] , EAX |
OP2 ToOP0 |
FALSE -5 ALLOT M\ 231 DTST |
EXIT |
THEN |
THEN |
OP3 @ W@ 45C7 = \ MOV X [EBP] , # 44444 |
IF OP2 @ C@ B8 = \ TTTT AND \ MOV EAX, X |
IF M\ 130 DTST |
-4000 OP3 @ +! |
OP3 @ 3 + @ OP2 @ 1+ @ OP3 @ 2+ ! |
OP3 @ 6 + ! |
OP3 ToOP0 |
FALSE -7 ALLOT M\ 131 DTST |
EXIT |
THEN |
OP2 @ W@ 878D = \ LEA EAX, X [EDI] |
IF M\ 330 DTST \ ??? |
87C7 OP3 @ W! |
OP3 @ 3 + @ OP2 @ 2+ @ OP3 @ 2+ ! |
OP3 @ 6 + ! |
OP3 ToOP0 |
FALSE -8 ALLOT M\ 331 DTST |
EXIT |
THEN |
THEN |
THEN |
THEN |
M\ PPPP |
OP2 @ W@ 5589 XOR \ MOV F8 [EBP] , EDX |
OP1 @ @ FFFFFF AND 85048D XOR OR \ LEA EAX , Y [EAX*X] ãðóáî |
OP0 @ W@ 4503 XOR OR |
OP2 @ 2+ C@ OP0 @ 2+ C@ XOR OR 0= \ X2=X0 |
IF M\ 318 DTST |
048D OP0 @ W! 2 OP0 @ 2+ C! |
FALSE |
EXIT M\ 319 DTST |
THEN |
OP2 @ W@ 04D89 XOR \ MOV X [EBP] , ECX |
OP1 @ ?ChEAX \ MOV EAX , ____ |
OP1 @ W@ 5589 <> AND OR \ MOV FC [EBP] , EDX |
OP0 @ W@ 558B XOR OR \ MOV EDX , X [EBP] |
OP2 @ 2+ C@ OP0 @ 2+ C@ XOR OR 0= |
IF M\ 630 DTST |
D1 OP0 @ 1+ C! |
FALSE -1 ALLOT M\ 631 DTST |
EXIT |
THEN |
OP1 @ @ 008BC28B = \ MOV EAX , EDX MOV EAX , [EAX] |
IF M\ 730 DTST |
028B OP1 @ W! |
OP1 ToOP0 |
FALSE -2 ALLOT M\ 731 DTST |
EXIT |
THEN |
DUP C@ C3 = |
IF |
OP1 @ W@ D18B XOR \ MOV EDX , ECX |
OP0 @ W@ 1089 XOR OR 0= \ MOV [EAX] , EDX |
IF M\ 30E DTST |
0889 OP1 @ W! |
OP1 ToOP0 |
FALSE |
-2 ALLOT M\ 40F DTST |
EXIT |
THEN |
THEN |
M\ PPPP |
DUP C@ 0C3 XOR |
OP1 @ C@ B8 XOR OR \ MOV EAX , # 400 |
OP0 @ W@ 6DF7 XOR OR \ IMUL F8 [EBP] |
OP2 @ 2+ C@ |
OP0 @ 2+ C@ XOR OR |
0= IF |
OP2 @ W@ 45C7 = \ MOV F8 [EBP] , # C8 |
IF M\ E30 DTST |
OP2 @ 3 + @ |
OP1 @ 1+ @ * OP1 @ 1+ ! |
OP1 ToOP0 |
FALSE -3 ALLOT M\ E31 DTST |
EXIT |
THEN |
OP2 @ W@ 4589 = \ MOV F8 [EBP] , EAX |
IF M\ D0E DTST |
OP1 @ 1+ @ |
OP1 OPexcise |
-3 ALLOT |
69 C, C0 C, , \ IMUL EAX,EAX,44444H |
FALSE M\ D0F DTST |
EXIT |
THEN |
THEN |
DUP C@ 0C3 XOR |
OP1 @ C@ A1 XOR OR \ MOV EAX , 569598 ( X+5 ) |
OP0 @ W@ 6DF7 XOR OR \ IMUL FC [EBP] |
OP2 @ 2+ C@ |
OP0 @ 2+ C@ XOR OR |
\ OP0 @ 2+ C@ C>S OFF-EBP > OR |
0= IF |
OP2 @ W@ 4589 = \ MOV FC [EBP] , EAX |
IF M\ 12A DTST |
2DF7 OP2 @ W! |
OP1 @ 1+ @ OP2 @ 2+ ! |
OP2 ToOP0 |
FALSE -5 ALLOT M\ 12B DTST |
EXIT |
THEN |
OP2 @ W@ 45C7 = \ MOV F8 [EBP] , # 123 |
IF M\ 22A DTST |
B8 OP2 @ C! |
OP2 @ 3 + @ OP2 @ 1+ ! |
-2 OP1 +! |
2DF7 OP1 @ W! |
OP1 @ 3 + @ OP1 @ 2+ ! |
OP1 ToOP0 |
FALSE -4 ALLOT M\ 22B DTST |
EXIT |
THEN |
THEN |
OP2 @ W@ 4589 XOR \ MOV FC [EBP] , EAX |
OP1 @ @ 4503008B XOR OR \ MOV EAX , [EAX] ADD EAX , FC [EBP] |
OP2 @ 2+ C@ |
OP0 @ 2+ C@ XOR OR |
0= IF M\ 830 DTST |
03 OP1 @ C! |
OP1 ToOP0 |
FALSE -3 ALLOT M\ 831 DTST |
EXIT |
THEN |
M\ PPPP |
DUP C@ 0C3 XOR |
OP2 @ W@ 558B XOR OR \ MOV EDX , 0 [EBP] |
OP1 @ W@ CA8B XOR OR \ MOV ECX , EDX |
OP0 @ C@ 51 XOR OR \ PUSH ECX |
0= IF M\ A30 DTST |
75FF OP2 @ W! |
OP2 ToOP0 |
FALSE -3 ALLOT M\ A31 DTST |
EXIT |
THEN |
OP2 @ W@ 4589 XOR \ MOV 0 [EBP] , EAX |
OP1 @ @ FFBFFF AND 24048B XOR OR \ MOV EAX , [ESP(+4)] |
OP0 @ W@ 4503 XOR OR \ ADD EAX , 0 [EBP] |
OP2 @ 2+ C@ |
OP0 @ 2+ C@ XOR OR |
0= IF M\ B30 DTST |
03 OP1 @ C! |
OP1 ToOP0 |
FALSE -3 ALLOT M\ C31 DTST |
EXIT |
THEN |
OP2 @ W@ 5589 XOR \ MOV F8 [EBP] , EDX |
OP1 @ ?ChEAX OR \ MOV EAX , [EAX] |
OP0 @ W@ 558B XOR OR \ MOV EDX , F8 [EBP] |
OP2 @ 2+ C@ |
OP0 @ 2+ C@ XOR OR |
0= IF M\ C30 DTST |
OP1 ToOP0 |
FALSE -3 ALLOT M\ C31 DTST |
EXIT |
THEN |
OP2 @ 2+ C@ |
OP0 @ 2+ C@ XOR |
OP2 @ W@ 4589 XOR OR \ 579DE0 8945FC MOV FC [EBP] , EAX |
OP1 @ C@ 25 XOR OR \ 579DE3 2555555555 AND EAX , # 55555555 |
OP0 @ W@ 558B XOR OR \ 579DE8 8B55FC MOV EDX , FC [EBP] |
0= IF M\ C32 DTST |
OP2 OPexcise |
OP1 02 OPinsert |
D08B OP2 @ W! \ MOV EDX , EAX |
OP1 ToOP0 |
FALSE -3 ALLOT M\ C33 DTST |
EXIT |
THEN |
M\ PPPP |
OP0 @ W@ ADD|XOR|OR|AND= |
IF |
TRUE ?~EAX ! |
OP1 |
BEGIN ?EAX>ECX |
UNTIL |
\ DUP IF ?~EAX @ IF 2DROP FALSE THEN |
\ THEN |
IF M\ AE DTST |
?~EAX @ |
IF ECX:=EAX |
ELSE BEGIN EAX>ECX0 UNTIL |
THEN BEGIN EAX>ECX UNTIL |
DROP |
OP0 @ W@ 4503 = \ TTTT AND \ ADD EAX , X [EBP] |
IF 01048D OP0 @ ! ELSE \ LEA EAX, [EAX+ECX] |
0C1 OP0 @ 1+ C! -1 ALLOT \ OR EAX,ECX |
THEN FALSE M\ AF DTST |
EXIT |
THEN M\ PPPP |
TRUE ?~EAX ! |
OP1 \ TTTT IF ." ?EAX>EBX" THEN |
BEGIN ?EAX>EBX \ TTTT IF ." F=" DUP . THEN |
UNTIL |
\ DUP IF ?~EAX @ IF 2DROP FALSE THEN |
\ THEN |
IF M\ AE DTST |
?~EAX @ \ ." {#}" |
IF EBX:=EAX |
ELSE BEGIN EAX>EBX0 UNTIL |
THEN BEGIN EAX>EBX UNTIL |
DROP |
OP0 @ W@ 4503 = \ TTTT AND \ ADD EAX , X [EBP] |
IF 03048D OP0 @ ! ELSE \ LEA EAX, [EAX+EBX] |
OP0 @ W@ 4539 = \ CMP F8 [EBP] , EAX |
IF C33B OP0 @ W! -1 ALLOT ELSE \ CMP EAX , EBX |
OP0 @ W@ 453B = \ CMP EAX , F8 [EBP] |
IF D83B OP0 @ W! -1 ALLOT ELSE \ CMP EBX , EAX |
0C3 OP0 @ 1+ C! -1 ALLOT \ OR EAX,EBX |
THEN THEN THEN FALSE M\ AF DTST |
EXIT |
THEN M\ PPPP |
OP1 @ @ 4503D8F7 = \ NEG EAX \ ADD EAX , 4 [EBP] |
IF OP2 @ W@ 458B = \ MOV EAX , X [EBP] |
IF M\ D0E DTST |
OP1 OPexcise |
OP1 @ 2+ C@ OP0 @ 2+ C@ |
OP1 @ 2+ C! OP0 @ 2+ C! |
2B OP0 @ C! |
FALSE M\ D0F DTST |
EXIT |
THEN |
OP2 @ C@ A1 = \ MOV EAX , X |
IF M\ D0E DTST |
OP2 @ 1+ @ |
OP2 OPexcise |
OP1 OPexcise |
8B OP0 @ C! |
SetOP 2B C, 5 C, , |
FALSE M\ D0F DTST |
EXIT |
THEN |
THEN |
THEN |
M\ PPPP |
OP2 @ W@ FFFD AND 4589 XOR \ MOV F8 [EBP] , EAX |
OP1 @ W@ FFFD AND 4589 XOR OR \ MOV EAX , F8 [EBP] |
OP2 @ 2+ C@ |
OP1 @ 2+ C@ XOR OR |
0= IF M\ E30 DTST |
OP1 OPexcise |
FALSE M\ E31 DTST |
EXIT |
THEN |
OP2 @ @ 458BC28B = \ MOV EAX , EDX MOV EAX , 0 [EBP] |
IF M\ 44 DTST |
OP2 OPexcise |
FALSE M\ 45 DTST |
EXIT |
THEN |
DUP C@ 0C3 XOR |
OP1 @ C@ B9 - FE AND OR \ MOV EDX , # 1000 MOV ECX , # 1000 |
OP0 @ W@ 1189 XOR OR \ MOV [ECX] , EDX |
0= IF M\ 54 DTST |
OP1 @ C@ BA = |
IF 01C7 \ MOV [ECX] , # 1000 |
ELSE 1589 \ MOV 1000 , [EDX] |
THEN |
OP1 1 OPresize |
OP1 @ W! |
OP0 OPexcise |
FALSE M\ 55 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP1 @ C@ B9 XOR OR \ MOV ECX , # 1000 |
OP0 @ W@ 4D89 XOR OR \ MOV X [EBP] , ECX |
0= IF M\ 58 DTST |
OP1 @ 1+ @ |
OP1 OPexcise |
45C7 OP0 @ W! , \ MOV FC [EBP] , # 1000 |
FALSE M\ 59 DTST |
EXIT |
THEN |
DUP C@ 0C3 XOR |
OP1 @ @ FFFFFF AND 8D0C8D XOR OR \ LEA ECX , 5898B8 ( rson+5 ) [ECX*4] |
OP0 @ W@ 01C7 XOR OR \ MOV [ECX] , # 1000 |
0= IF M\ 56 DTST |
04C7 OP1 @ W! \ MOV X [ECX*4] , # 1000 |
OP0 @ 2+ @ |
OP0 OPexcise , |
FALSE M\ 57 DTST |
EXIT |
EXIT |
THEN |
DUP C@ 0C3 XOR |
OP1 @ W@ C18B XOR OR \ MOV EAX , ECX |
OP0 @ @ FFFFFF AND 85048D XOR OR \ LEA EAX , X [EAX*4] |
0= IF M\ 5A DTST |
OP1 OPexcise |
8D OP0 @ 2+ C! \ LEA EAX , X [ECX*4] |
FALSE M\ 5B DTST |
EXIT |
EXIT |
THEN |
OP2 @ 2+ C@ |
OP0 @ 2+ C@ XOR |
OP2 @ W@ 4589 XOR OR \ MOV F8 [EBP] , EAX |
OP1 @ @ FFFFFF AND 8D048D XOR \ LEA EAX , X [ECX*4] |
OP1 @ C@ B8 <> AND OR \ B801000000 MOV EAX , # 1 |
OP0 @ W@ 558B XOR OR \ MOV EDX , F8 [EBP] |
0= IF M\ 5C DTST |
OP1 2 OPinsert |
D08B OP2 @ W! \ MOV EDX , EAX |
OP0 OPexcise |
FALSE M\ 5D DTST |
EXIT |
EXIT |
THEN |
OP0 @ 2+ C@ |
OP2 @ 2+ C@ XOR |
OP2 @ W@ 4589 XOR OR \ MOV F8 [EBP] , EAX |
OP1 @ @ FFFFFF AND 24448B XOR OR \ MOV EAX , 18 [ESP] |
OP0 @ W@ 558B XOR OR \ MOV EDX , F8 [EBP] |
0= IF M\ 9C DTST |
OP1 2 OPinsert |
D08B OP2 @ W! \ MOV EDX , EAX |
OP0 OPexcise |
FALSE M\ 9D DTST |
EXIT |
THEN |
DUP C@ 0C3 XOR |
OP2 @ @ D9F7CA8B XOR OR \ MOV ECX , EDX NEG ECX |
OP0 @ 1- @ 01048DD9 XOR OR \ LEA EAX , [ECX] [EAX] |
0= IF M\ 66 DTST |
OP2 OPexcise |
02048DDA OP1 @ 1+ ! \ NEG EDX lea EAX, [EAX+EDX] |
FALSE M\ 67 DTST |
EXIT |
THEN |
OP2 @ @ 45C7D08B XOR \ MOV EDX , EAX MOV F8 [EBP] , # X |
OP0 @ C@ BA XOR OR \ MOV EDX , # 0 |
0= IF M\ 6A DTST |
OP2 OPexcise |
FALSE M\ 6B DTST |
EXIT |
THEN |
DUP C@ 0C3 XOR |
OP2 @ C@ BA XOR OR \ MOV EDX , # 4 |
OP1 @ W@ 5501 XOR OR \ ADD 0 [EBP] , EDX |
OP0 @ W@ 4513 XOR OR \ ADC EAX , FC [EBP] |
0= IF M\ 82 DTST |
OP0 4 OPresize 4 OP0 +! |
OP2 @ 1+ @ OP2 OPexcise |
OP1 @ 3 + ! 4581 OP1 @ W! \ ADD 0 [EBP] , # 4 |
FALSE M\ 83 DTST |
EXIT |
THEN |
OP2 @ 3 + C@ |
OP0 @ 3 + C@ XOR |
OP2 @ @ FFFFFF AND 24448B XOR OR \ MOV EAX , 30 [ESP] |
OP0 @ @ FFFFFF AND 244489 XOR OR \ MOV 30 [ESP] , EAX |
0= IF OP1 @ @ 8901408D = \ 8D4001 LEA EAX , 1 [EAX] |
IF M\ 88 DTST |
OP1 OPexcise |
FF OP0 @ C! |
FALSE M\ 89 DTST |
EXIT |
THEN |
OP1 @ @ 89FF408D = \ 8D4001 LEA EAX , -1 [EAX] |
IF M\ 94 DTST |
OP1 OPexcise |
4CFF OP0 @ W! |
FALSE M\ 95 DTST |
EXIT |
THEN |
THEN |
DUP C@ C3 XOR |
OP2 @ W@ 408D XOR OR \ LEA EAX , 1 [EAX] |
OP1 @ @ FFFFFF AND 244403 XOR OR \ ADD EAX , 8 [ESP] |
OP0 @ @ FFFFFF AND B60F XOR OR \ MOVZX EAX , BYTE PTR [EAX] |
0= IF M\ 9E DTST |
OP2 @ 2+ C@ OP2 OPexcise |
548B OP1 @ W! \ MOV EDX , 8 [ESP] |
-3 ALLOT |
0244B60F , C, \ MOVZX EAX , BYTE PTR 2 [EDX] [EAX] |
FALSE M\ 9F DTST |
EXIT |
THEN |
OP2 @ 2+ C@ |
OP0 @ 2+ C@ XOR |
OP2 @ W@ 5589 XOR OR \ 8955F8 MOV F8 [EBP] , EDX |
OP1 @ W@ D8F7 XOR \ F7D8 NEG EAX |
OP1 @ W@ D0F7 <> AND \ F7D0 NOT EAX |
OP1 @ C@ 58 <> AND \ 58 POP EAX |
OP1 @ W@ C123 <> AND OR \ 23C1 AND EAX , ECX |
OP0 @ W@ ADD|XOR|OR|AND= 0= |
OP0 @ W@ 458B <> AND OR |
\ OP0 @ W@ 4503 XOR OR \ 0345F8 ADD EAX , F8 [EBP] |
0= IF M\ 1B6 DTST |
C2 OP0 @ 1+ C! \ ADD EAX , EDX |
-1 ALLOT |
FALSE M\ 1B7 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP2 @ W@ 4D8B XOR OR \ 8B4D00 MOV ECX , 0 [EBP] |
OP1 @ @ 4D89C82B XOR OR \ 2BC8 SUB ECX , EAX |
\ 894D00 MOV 0 [EBP] , ECX |
0= IF M\ B6 DTST |
4529 OP2 @ W! \ SUB 0 [EBP] , EAX |
OP2 ToOP0 |
-5 ALLOT |
FALSE M\ B7 DTST |
EXIT |
THEN |
OP2 @ 2+ C@ |
OP0 @ 2+ C@ XOR |
OP2 @ W@ 458B XOR OR \ 58266F 8B4500 MOV EAX , 0 [EBP] |
OP1 @ W@ 558B XOR OR \ 582672 8B5504 MOV EDX , 4 [EBP] |
OP0 @ W@ 4589 XOR OR \ 582675 894500 MOV 0 [EBP] , EAX |
0= IF M\ D2 DTST |
OP0 OPexcise |
FALSE M\ D3 DTST |
EXIT |
THEN |
OP2 @ W@ 458B XOR \ 8B4500 MOV EAX , 0 [EBP] |
OP1 @ W@ 5589 XOR OR \ 895500 MOV 0 [EBP] , EDX |
OP0 @ W@ C88B XOR OR \ 8BC8 MOV ECX , EAX |
0= IF M\ F4 DTST |
4D8B OP2 @ W! \ MOV ECX , 0 [EBP] |
C18B OP0 @ W! \ MOV EAX , ECX |
FALSE M\ F5 DTST |
EXIT |
THEN |
OP2 @ C@ B8 XOR \ B801000000 MOV EAX , # 1 |
OP2 @ 1+ @ SHORT? 0= OR |
OP1 @ W@ 558B XOR OR \ 8B5500 MOV EDX , 0 [EBP] |
OP0 @ W@ 48D XOR OR \ 8D0402 LEA EAX , [EDX] [EAX] |
0= IF M\ FC DTST |
OP2 @ 1+ @ |
OP2 OPexcise |
428D OP0 @ W! \ LEA EAX , 1 [EDX] |
OP0 @ 2+ C! |
FALSE M\ FD DTST |
EXIT |
THEN |
OP2 @ W@ 558B XOR \ 5876BB 8B5500 MOV EDX , 0 [EBP] |
OP1 @ W@ 428D XOR OR \ 5876BE 8D4201 LEA EAX , 1 [EDX] |
OP0 @ W@ 4589 XOR OR \ 5876C1 894500 MOV 0 [EBP] , EAX |
0= IF M\ FC DTST |
OP1 @ 2+ C@ |
OP1 OPexcise |
4583 OP0 @ W! C, \ ADD EAX , 1 [EDX] |
FALSE M\ FD DTST |
EXIT |
THEN |
OP2 @ 2+ C@ |
OP0 @ 2+ C@ XOR |
OP2 @ W@ 4589 XOR OR \ 8945EC MOV EC [EBP] , EAX |
OP1 ?EDX_[EBP] OR |
OP0 @ W@ 558B XOR OR \ 8B55EC MOV EDX , EC [EBP] |
0= IF M\ 104 DTST |
OP0 OPexcise |
OP0 02 OPinsert |
D08B OP1 @ W! \ MOV EDX , EAX |
FALSE M\ 105 DTST |
EXIT |
THEN |
OP2 @ W@ D08B XOR \ 5A5408 8BD0 MOV EDX , EAX |
OP1 @ @ FFFFFF AND 95048D XOR \ 8D0495D8825900 LEA EAX , 5982D8 [EDX*4] |
OP1 @ @ FFFFFF AND 95048B <> AND OR \ 8B0495D8825900 MOV EAX , 5982D8 [EDX*4] |
OP0 @ W@ 558B XOR OR \ 5A5411 8B55F8 MOV EDX , F8 [EBP] |
0= IF M\ 138 DTST |
OP2 OPexcise |
85 OP1 @ 2+ C! \ LEA EAX , 5982D8 [EAX*4] |
FALSE M\ 139 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP2 @ @ E1C1CA8B XOR OR \ 8BCA MOV ECX , EDX |
\ C1E107 SHL ECX , 7 |
OP0 @ W@ C10B XOR OR \ 0BC1 OR EAX , ECX |
0= IF M\ 108 DTST |
OP2 OPexcise |
E2C1 OP1 @ W! \ SHL EDX , 7 |
C20B OP0 @ W! \ OR EAX , EDX |
FALSE M\ 109 DTST |
EXIT |
THEN |
OP2 @ @ 878DD08B XOR \ 8BD0 MOV EDX , EAX |
\ 8D873C100000 LEA EAX , 103C [EDI] |
OP0 @ W@ 1088 XOR OR \ 8810 MOV [EAX] , DL |
0= IF M\ 110 DTST |
OP1 @ 2+ @ |
9788 OP1 @ W! \ MOV 103C [EDI] , DL |
878D OP0 @ W! \ LEA EAX , 103C [EDI] |
, |
FALSE M\ 111 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP2 @ @ 5589D98B XOR OR \ 58809A 8BD9 MOV EBX , ECX |
\ 58809C 8955EC MOV EC [EBP] , EDX |
OP0 @ W@ C323 XOR OR \ 58809F 23C3 AND EAX , EBX |
0= IF M\ 116 DTST |
OP2 OPexcise |
C123 OP0 @ W! \ AND EAX , ECX |
FALSE M\ 117 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP2 @ W@ 4D8B XOR OR \ 8B4DF0 MOV ECX , F0 [EBP] |
OP1 @ @ 23F05589 XOR OR \ 8955F0 MOV F0 [EBP] , EDX |
\ 23C1 AND EAX , ECX |
0= IF M\ 11E DTST |
OP0 OPexcise |
4523 OP1 @ W! \ AND EAX , F0 [EBP] |
FALSE M\ 11D DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP2 @ W@ 558B XOR OR \ 5881D2 8B55EC MOV EDX , EC [EBP] |
OP1 @ @ BF04523 XOR OR \ 5881D5 2345F0 AND EAX , F0 [EBP] |
OP0 @ W@ C20B XOR OR \ 5881D8 0BC2 OR EAX , EDX |
0= IF M\ 120 DTST |
OP2 @ 2+ C@ |
OP2 OPexcise |
450B OP0 @ W! \ OR EAX , EC [EBP] |
C, |
FALSE M\ 11D DTST |
EXIT |
THEN |
OP2 @ 2+ C@ |
OP1 @ 2+ C@ XOR |
OP2 @ W@ 5589 XOR OR \ 8955F0 MOV F0 [EBP] , EDX |
OP1 @ W@ 4523 XOR OR \ 2345F0 AND EAX , F0 [EBP] |
0= IF M\ 126 DTST |
OP1 OPexcise |
OP0 2 OPinsert |
C223 OP1 @ W! \ AND EAX , EDX |
FALSE M\ 127 DTST |
EXIT |
THEN |
OP2 @ 2+ C@ |
OP1 @ 2+ C@ XOR |
OP2 @ W@ 4D89 XOR OR \ 894DFC MOV FC [EBP] , ECX |
OP1 @ W@ 4523 XOR OR \ 2345FC AND EAX , FC [EBP] |
0= IF M\ 13E DTST |
OP1 OPexcise |
OP0 2 OPinsert |
C123 OP1 @ W! \ AND EAX , ECX |
FALSE M\ 13F DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP2 @ 2+ C@ C>S OFF-EBP U< 0= OR |
OP2 @ W@ 558B XOR OR \ 58838C 8955F8 MOV EDX , F4 [EBP] |
OP1 @ @ C20BC123 XOR OR \ 58838F 23C1 AND EAX , ECX |
\ 588391 0BC2 OR EAX , EDX |
0= IF M\ 12C DTST |
OP2 @ 2+ C@ |
OP2 OPexcise |
450B OP0 @ W! \ OR EAX , F8 [EBP] |
C, |
FALSE M\ 12D DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP2 @ @ C123CA8B XOR OR \ 8BCA MOV ECX , EDX |
\ 23C1 AND EAX , ECX |
OP0 @ W@ 450B XOR OR \ 0B45F4 OR EAX , F4 [EBP] |
0= IF M\ 1F2 DTST |
OP2 OPexcise |
C223 OP1 @ W! \ AND EAX , EDX |
FALSE M\ 1F3 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP2 @ W@ 4D8B XOR OR \ 5884C1 8B4DF8 MOV ECX , F8 [EBP] |
OP1 @ @ C10BCA23 XOR OR \ 5884C4 23CA AND ECX , EDX |
OP0 @ W@ C10B XOR OR \ 5884C6 0BC1 OR EAX , ECX |
0= IF M\ 1F4 DTST |
OP1 OPexcise |
5523 OP1 @ W! \ AND EDX , F8 [EBP] |
C20B OP0 @ W! \ OR EAX , EDX |
FALSE M\ 1F5 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP2 @ W@ 558B XOR OR \ 587860 8B5500 MOV EDX , 0 [EBP] |
OP1 @ W@ 528D XOR OR \ 587863 8D5201 LEA EDX , 1 [EDX] |
OP0 @ W@ 5589 XOR OR \ 587866 895500 MOV 0 [EBP] , EDX |
0= IF M\ 144 DTST |
OP1 @ 2+ C@ |
OP2 OPexcise |
OP1 OPexcise |
4583 OP0 @ W! \ ADD 0 [EBP] , # 1 |
C, |
FALSE M\ 145 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
\ OP2 @ W@ 5589 XOR OR \ 8B5500 EDX , MOV 0 [EBP] |
OP2 @ W@ 558B XOR OR \ 8B5500 EDX , MOV 0 [EBP] |
OP1 @ W@ E0D3 XOR OR \ D3E0 SHL EAX , CL |
\ OP1 ?EDX_[EBP] OR \ D3E0 SHL EAX , CL |
OP0 @ W@ C20B XOR OR \ 0BC2 OR EAX , EDX |
0= IF M\ 14A DTST |
OP2 @ 2+ C@ |
OP2 OPexcise |
45 OP0 @ 1+ C! \ OR EAX , 0 [EBP] |
C, |
FALSE M\ 14B DTST |
EXIT |
THEN |
OP2 @ 2+ C@ |
OP0 @ 2+ C@ XOR |
OP2 @ W@ 4589 XOR OR \ 8945FC MOV FC [EBP] , EAX |
OP1 @ W@ 458B XOR OR \ 8B4500 MOV EAX , 0 [EBP] |
OP0 @ W@ 558B XOR OR \ 8B55FC MOV EDX , FC [EBP] |
0= IF M\ 162 DTST |
OP1 ToOP0 -3 ALLOT |
OP0 2 OPinsert |
D08B OP1 @ W! |
FALSE M\ 163 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP2 @ W@ 4D8B XOR OR \ 582055 8B4D04 MOV ECX , 4 [EBP] |
OP1 @ W@ 5589 XOR OR \ 582058 895504 MOV 4 [EBP] , EDX |
OP0 @ @ FFFFFF AND 1048D XOR OR \ 58205B 8D0401 LEA EAX , [ECX] [EAX] |
0= IF M\ 168 DTST |
4503 OP2 @ W! \ ADD EAX , 4 [EBP] |
OP0 OPexcise |
FALSE M\ 169 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP2 @ W@ 558B XOR OR \ 582202 8B5500 MOV EDX , 0 [EBP] |
OP1 @ W@ 4503 XOR OR \ 582205 034504 ADD EAX , 4 [EBP] |
OP0 @ W@ C22B XOR OR \ 582208 2BC2 SUB EAX , EDX |
0= IF M\ 170 DTST |
OP2 @ 2+ C@ |
OP2 OPexcise |
452B OP0 @ W! C, \ SUB EAX , 0 [EBP] |
FALSE M\ 171 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP2 @ 2+ C@ |
OP1 @ 2+ C@ = OR |
OP2 @ W@ 558B XOR OR \ 8B5500 MOV EDX , 0 [EBP] |
OP1 @ W@ 4589 XOR OR \ 8945FC MOV FC [EBP] , EAX |
OP0 @ @ FFFFFF AND 2048D XOR OR \ 8D0402 LEA EAX , [EDX] [EAX] |
0= IF M\ 158 DTST |
OP2 @ 2+ C@ |
OP2 OPexcise |
4503 OP0 @ W! \ ADD EAX , 0 [EBP] |
OP0 @ 2+ C! |
FALSE M\ 159 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP2 @ 2+ C@ |
OP0 @ 2+ C@ XOR OR |
OP2 @ 2+ C@ |
OP1 @ 2+ C@ = OR |
OP2 @ W@ 4589 XOR OR \ 571DD0 8945FC MOV FC [EBP] , EAX |
OP1 @ W@ 4503 XOR OR \ 571DD3 034500 ADD EAX , 0 [EBP] |
OP0 @ W@ 6DF7 XOR OR \ 571DD6 F76DFC IMUL FC [EBP] |
0= IF M\ 160 DTST |
OP2 OPexcise |
OP1 2 OPinsert |
C88B OP2 @ W! \ MOV ECX , EAX |
E9F7 OP0 @ W! \ IMUL ECX |
FALSE -1 ALLOT M\ 161 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP2 @ 2+ C@ |
OP0 @ 2+ C@ XOR OR |
OP2 @ W@ 4589 XOR OR \ 894500 MOV 0 [EBP] , EAX |
OP1 @ W@ AF0F XOR OR \ 0FAFC2 IMUL EAX , EDX |
OP0 @ W@ 4503 XOR OR \ 034500 ADD EAX , 0 [EBP] |
0= IF M\ 248 DTST |
OP2 OPexcise |
OP1 2 OPinsert |
C88B OP2 @ W! \ MOV ECX , EAX |
C103 OP0 @ W! \ ADD EAX , ECX |
FALSE -1 ALLOT M\ 141 DTST |
EXIT |
THEN |
OP1 @ 2+ C@ |
OP0 @ 2+ C@ XOR |
OP2 @ W@ C28B XOR OR \ 571EED 8BC2 MOV EAX , EDX |
OP1 @ W@ 5589 XOR OR \ 571EEF 8955FC MOV FC [EBP] , EDX |
OP0 @ W@ 6DF7 XOR OR \ 571EF2 F76DFC IMUL FC [EBP] |
0= IF M\ 182 DTST |
EAF7 OP0 @ W! \ IMUL EDX |
FALSE -1 ALLOT M\ 183 DTST |
EXIT |
THEN |
( !!!!!!!!!! |
DUP C@ C3 XOR |
OP1 @ @ EAF7C28B XOR OR \ 8BC2 MOV EAX , EDX |
\ F7EA IMUL EDX |
0= IF M\ 184 DTST |
OP1 OPexcise |
C2AF0F OP0 @ ! \ IMUL EAX , EDX |
FALSE 1 ALLOT M\ 185 DTST |
EXIT |
THEN |
) |
OP3 @ :-SET U< IF TRUE EXIT THEN |
M\ PPPP |
OP3 @ @ D08BC28B = \ MOV EAX , EDX MOV EDX , EAX |
IF M\ 42 DTST |
OP2 OPexcise |
FALSE M\ 43 DTST |
EXIT |
THEN |
OP1 @ W@ 453B = \ CMP EAX , X [EBP] |
IF OP0 @ @ FFFCFF AND C09C0F = \ SETLE AL |
IF |
\ $ 4444 < |
OP2 @ C@ 0B8 XOR \ MOV EAX, # X |
OP3 @ W@ 4589 XOR OR \ MOV X1 [EBP], EAX |
OP3 @ 2+ C@ |
OP1 @ 2+ C@ XOR OR 0= |
IF M\ 2C DTST |
3D OP3 @ C! |
OP2 @ 1+ @ OP3 @ 1+ ! |
2 OP2 +! |
OP0 @ @ 300 XOR OP2 @ ! \ SETGE AL |
OP2 ToOP0 |
FALSE -6 ALLOT M\ 2D DTST |
EXIT |
THEN |
\ $ 4444 @ < |
OP2 @ C@ 0A1 XOR \ MOV EAX, # X |
OP3 @ 2+ C@ |
OP1 @ 2+ C@ XOR OR 0= |
IF |
OP3 @ W@ 4589 = \ MOV X1 [EBP], EAX |
IF M\ 2E DTST |
053B OP3 @ W! |
OP2 @ 1+ @ OP3 @ 2+ ! |
3 OP2 +! |
OP0 @ @ 300 XOR OP2 @ ! \ SETGE AL |
OP2 ToOP0 |
FALSE -5 ALLOT M\ 2F DTST |
EXIT |
THEN |
OP3 @ W@ 45C7 = \ |
IF M\ 12E DTST |
3D81 OP3 @ W! |
OP3 @ 3 + @ |
OP2 @ 1+ @ OP3 @ 2+ ! OP3 @ 6 + ! |
3 OP2 +! |
OP0 @ @ OP2 @ ! |
OP2 ToOP0 |
FALSE -5 ALLOT M\ 12F DTST |
EXIT |
THEN |
THEN |
THEN |
THEN |
DUP @ 458B1089 XOR \ MOV [EAX], EDX MOV EAX , X [EBP] |
OVER 5 + @ C3086D8D XOR OR \ LEA EBP, 8 [EBP] RET |
OP0 @ W@ D18B XOR OR 0= \ MOV EDX , ECX |
IF M\ 51E DTST |
0889 OP0 @ W! \ MOV [EAX] , ECX |
2+ FALSE M\ 51F DTST |
EXIT |
THEN |
M\ PPPP |
OP3 @ W@ 4589 XOR \ 8945FC MOV FC [EBP] , EAX |
OP2 @ C@ B8 XOR OR \ B8189D5700 MOV EAX , # 579D18 |
OP1 @ W@ 558B XOR OR \ 8B55FC MOV EDX , FC [EBP] |
OP0 @ @ FFFFFF AND 90048D XOR OR \ 8D0490 LEA EAX , [EAX] [EDX*4] |
OP3 @ 2+ C@ OP1 @ 2+ C@ XOR OR \ X0=X2 |
0= IF M\ 840 DTST |
OP2 @ 1+ @ 85048D OP2 @ ! |
OP2 @ 3 + ! |
OP2 ToOP0 |
FALSE -4 ALLOT M\ 841 DTST |
EXIT |
THEN |
OP3 @ W@ 558B XOR \ MOV EDX , FC [EBP] |
OP2 @ W@ 4589 XOR OR \ MOV FC [EBP] , EAX |
OP1 @ W@ C28B XOR OR \ MOV EAX , EDX |
OP0 @ W@ 558B XOR OR \ MOV EDX , FC [EBP] |
OP3 @ 2+ C@ OP2 @ 2+ C@ XOR OR |
OP2 @ 2+ C@ OP0 @ 2+ C@ XOR OR |
0= IF M\ F30 DTST |
OP3 OPexcise |
OP2 OPexcise |
D08B OP1 @ W! \ MOV EDX , EAX |
458B OP0 @ W! \ MOV EAX , FC [EBP] |
DO_EAX>ECX DROP |
SetOP 89 C, 55 C, OP0 @ 2+ C@ C, \ MOV FC [EBP] , EDX |
FALSE M\ F31 DTST |
EXIT |
THEN |
OP3 @ 2+ C@ |
OP0 @ 2+ C@ XOR |
OP3 @ W@ 4589 XOR OR \ 57BF16 8945FC MOV FC [EBP] , EAX |
OP2 @ W@ C033 XOR OR \ 57BF19 33C0 XOR EAX , EAX |
OP1 @ W@ 4581 XOR OR \ 57BF1B 814500BA040000 ADD 0 [EBP] , # 4BA |
OP0 @ W@ 4513 XOR OR \ 57BF22 1345FC ADC EAX , FC [EBP] |
0= IF M\ 84 DTST |
OP2 OPexcise |
D083 OP0 @ ! \ ADC EAX , # 0 |
FALSE M\ 85 DTST |
EXIT |
THEN |
OP3 @ 2+ C@ |
OP0 @ 2+ C@ XOR |
OP3 @ W@ 4589 XOR OR \ 59690C 8945F0 MOV F0 [EBP] , EAX |
OP2 @ C@ B8 XOR OR \ 59690F B801000000 MOV EAX , # 1 |
OP1 @ C@ BA XOR OR \ 596914 BA00000080 MOV EDX , # 80000000 |
OP0 @ W@ 552B XOR OR \ 596919 2B55F0 SUB EDX , F0 [EBP] |
0= IF M\ A4 DTST |
OP2 @ 1+ @ |
OP2 OPexcise |
D02B OP0 @ ! \ SUB EDX , EAX |
-1 ALLOT |
SetOP B8 C, , |
FALSE M\ A5 DTST |
EXIT |
THEN |
OP3 @ 2+ C@ |
OP0 @ 2+ C@ XOR |
OP3 @ W@ 4589 XOR OR \ 8945F8 MOV F8 [EBP] , EAX |
OP2 ?EDX_[EBP] OR |
OP1 ?EDX_[EBP] OR |
OP0 @ W@ 558B XOR OR \ 8B55F8 MOV EDX , F8 [EBP] |
0= IF M\ EC DTST |
OP2 2 OPinsert |
D08B OP3 @ W! \ MOV EDX , EAX |
OP0 OPexcise |
FALSE M\ ED DTST |
EXIT |
THEN |
OP3 @ 2+ C@ |
OP0 @ 2+ C@ XOR |
OP3 @ W@ 4589 XOR OR \ 8945FC MOV FC [EBP] , EAX |
OP2 @ C@ B8 XOR OR \ B801000000 MOV EAX , # 1 |
OP1 @ C@ B9 XOR OR \ B9FFFFFFFF MOV ECX , # FFFFFFFF |
OP0 @ W@ 4D03 XOR OR \ 034DFC ADD ECX , FC [EBP] |
0= IF M\ FA DTST |
OP2 @ 1+ @ |
OP2 OPexcise |
C803 OP0 @ W! \ ADD ECX , EAX |
-1 ALLOT |
SetOP B8 C, , |
FALSE M\ FB DTST |
EXIT |
THEN |
OP3 @ C@ A1 XOR \ 587C37 A1D8795800 MOV EAX , 5879D8 ( C+5 ) |
OP2 @ W@ D08B XOR OR \ 587C3C 8BD0 MOV EDX , EAX |
OP1 @ C@ A1 XOR OR \ 587C3E A1E4795800 MOV EAX , 5879E4 ( D+5 ) |
OP0 @ W@ 4589 XOR OR \ 587C43 8945EC MOV EC [EBP] , EAX |
0= IF M\ 114 DTST |
OP2 OPexcise |
OP2 1 OPresize |
158B OP2 @ W! |
FALSE M\ 115 DTST |
EXIT |
THEN |
OP3 @ 2+ C@ |
OP1 @ 2+ C@ XOR |
OP1 @ 2+ C@ |
OP0 @ 2+ C@ XOR OR |
OP3 @ W@ 4589 XOR OR \ 894500 MOV 0 [EBP] , EAX |
OP2 @ W@ 428D XOR OR \ 8D4201 LEA EAX , 1 [EDX] |
OP1 @ W@ 558B XOR OR \ 8B5500 MOV EDX , 0 [EBP] |
OP0 @ W@ 4589 XOR OR \ 894500 MOV 0 [EBP] , EAX |
0= IF M\ 140 DTST |
OP3 OPexcise |
OP2 2 OPinsert |
C88B OP3 @ W! \ MOV ECX , EAX |
OP1 OPexcise |
OP0 2 OPinsert |
D18B OP1 @ W! \ MOV EAX , ECX |
FALSE M\ 141 DTST |
EXIT |
THEN |
OP4 @ :-SET U< IF TRUE EXIT THEN |
\ $ 10 LSHIFT |
OP4 @ W@ 4589 XOR \ MOV X0 [EBP] , EAX |
OP3 @ C@ B8 XOR OR \ MOV EAX, # 10 |
OP2 @ @ 458BC88B XOR OR \ MOV ECX, EAX \ !? MOV EAX, X2 [EBP] |
OP0 @ W@ F7FF AND E0D3 XOR OR \ SHL|SHR EAX , CL |
OP4 @ 2+ C@ OP1 @ 2+ C@ XOR OR \ X0=X2 |
0= |
IF M\ 32 DTST |
OP0 @ W@ 0012 - OP4 @ W! |
OP3 @ 1+ @ OP4 @ 2+ C! |
OP4 ToOP0 |
FALSE -C ALLOT M\ 33 DTST |
EXIT |
THEN |
OP1 @ @ FFFFFF AND 82448D XOR \ LEA EAX , 0 [EDX] [EAX*4] |
OP0 @ W@ 0889 XOR OR \ MOV [EAX] , ECX |
0= |
IF M\ 132 DTST |
4C89 OP1 @ W! |
OP1 ToOP0 |
FALSE -2 ALLOT M\ 133 DTST |
EXIT |
THEN |
OP4 @ 2+ C@ |
OP3 @ 2+ C@ XOR |
OP3 @ 2+ C@ |
OP0 @ 2+ C@ XOR OR |
OP4 @ W@ 558B XOR OR \ 8B5500 MOV EDX , 0 [EBP] |
OP3 @ W@ 4589 XOR OR \ 894500 MOV 0 [EBP] , EAX |
OP2 @ @ C203D8F7 XOR OR \ F7D8 NEG EAX |
\ 03C2 ADD EAX , EDX |
OP0 @ W@ 558B XOR OR \ 8B5500 MOV EDX , 0 [EBP] |
0= IF M\ C8 DTST |
4D OP4 @ 1+ C! \ MOV ECX , 0 [EBP] |
\ MOV 0 [EBP] , EAX |
D08B OP2 @ W! \ MOV EDX , EAX |
C103D8F7 OP1 @ ! \ NEG EAX |
\ ADD EAX , ECX |
FALSE -1 ALLOT M\ C9 DTST |
EXIT |
THEN |
OP4 @ W@ 5589 XOR \ 895500 MOV 0 [EBP] , EDX |
OP3 @ W@ 558B XOR OR \ 8B55FC MOV EDX , FC [EBP] |
OP2 @ W@ 4D8B XOR OR \ 8B4D00 MOV ECX , 0 [EBP] |
0= IF M\ C8 DTST |
OP3 2 OPinsert |
CA8B OP4 @ W! \ MOV ECX , EDX |
OP2 OPexcise |
FALSE M\ C9 DTST |
EXIT |
THEN |
DUP C@ C3 XOR |
OP3 @ 2+ C@ |
OP0 @ 2+ C@ XOR OR |
OP3 @ W@ 4589 XOR OR \ 571FEA 894500 MOV 0 [EBP] , EAX |
OP2 @ W@ C28B XOR OR \ 571FED 8BC2 MOV EAX , EDX |
OP1 @ W@ EAF7 XOR OR \ 571FEF F7EA IMUL EDX |
OP0 @ W@ 4503 XOR OR \ 571FF1 034500 ADD EAX , 0 [EBP] |
0= IF M\ 1C8 DTST |
OP2 OPexcise |
OP1 OPexcise |
OP0 3 OPinsert |
AF0F OP1 @ W! |
D2 OP1 @ 2+ C! \ IMUL EDX , EDX |
C203 OP0 @ W! \ ADD EAX , EDX |
FALSE |
-1 ALLOT |
M\ 1C9 DTST |
EXIT |
THEN |
OP5 @ :-SET U< IF TRUE EXIT THEN |
M\ PPPP |
TRUE |
; |
: -EVEN-EBP |
OP0 @ :-SET U< IF EXIT THEN |
OP0 @ W@ 06D8D = \ LEA ebp, OFF-EBP [EBP] |
IF OP0 @ 2+ C@ +>OFF-EBP |
OP1 ToOP0 |
-3 ALLOT EXIT |
THEN ; |
: OPT_ ( -- ) |
BEGIN |
\ M\ -D DTST |
OPT-RULES UNTIL |
\ M\ -F DTST |
EVEN-EAX ; |
: DO_OPT ( ADDR -- ADDR' ) |
OPT? IF OPT_ THEN ; |
: INLINE? ( CFA -- CFA FLAG ) |
DUP BEGIN |
2DUP |
MM_SIZE - U> 0= IF DROP FALSE EXIT THEN |
DUP C@ \ CFA CFA+OFF N' |
DUP 0C3 = IF 2DROP TRUE EXIT THEN \ RET |
DUP5B? M_WL DROP 5 + REPEAT |
\ 0100.X0XX |
DUP 0F4 |
AND 40 = M_WL DROP 1+ REPEAT \ INC|DEC E(ACDB)X |
DUP 099 = M_WL DROP 1+ REPEAT \ CDQ |
\ 1110.11XX |
OS\ DUP FC |
OS\ AND EC = M_WL DROP 1+ REPEAT \ IN|OUT EAX AL, DX | DX, EAX EL |
OS\ DUP CD = M_WL DROP 2+ REPEAT \ INTX |
DROP |
DUP W@ \ CFA CFA+OFF N' |
DUP3B?[EBP] M_WL DROP 3 + REPEAT |
DUP3B? M_WL DROP 3 + REPEAT |
DUP 06D8D = M_WL DROP 3 + REPEAT \ LEA EBP, OFF-EBP [EBP] |
DUP 0C583 = M_WL DROP 3 + REPEAT \ ADD EBP, # OFF-EBP |
DUP 0ED83 = M_WL DROP 3 + REPEAT \ SUB EBP, # X |
DUP2B? M_WL DROP 2+ REPEAT |
DUP 0EC87 = M_WL DROP 2+ REPEAT \ XCHG EBP , ESP |
DUP C58B = M_WL DROP 2+ REPEAT \ MOV EAX, EBP |
\ DUP 0E3FF = M_WL DROP 2+ REPEAT \ JMP EBX |
DUP6B? M_WL DROP 6 + REPEAT |
DUP 45C7 = M_WL DROP 7 + REPEAT \ MOV X [EBP] , # X |
DUP 05C7 = M_WL DROP A + REPEAT \ MOV X , # Y |
DUP 0581 = M_WL DROP A + REPEAT \ ADD X , # Y |
DROP |
DUP @ |
DUP 0424448B = M_WL DROP 4 + REPEAT |
DUP 0424448D = M_WL DROP 4 + REPEAT |
DUP 8BE08B5B = |
IF OVER 3 + 2@ \ 1 TO TTTT |
E3FF046D 8D00458B D= \ RP! |
IF 2DROP TRUE EXIT THEN |
THEN |
FFFFFF AND |
DUP C09D0F = M_WL DROP 3 + REPEAT \ SETGE AL |
DUP C09E0F = M_WL DROP 3 + REPEAT \ SETLE AL |
DUP 90048D = M_WL DROP 3 + REPEAT \ LEA EAX , [EAX] [EDX*4] |
DUP 02048D = M_WL DROP 3 + REPEAT \ LEA EAX, [EDX] [EAX] |
DUP 40B70F = M_WL DROP 4 + REPEAT \ MOVZX EAX , WORD PTR FE [EAX] |
\ CMPXCHG [EAX] , AL| EAX |
\ LSS EAX , [EAX] |
\ BTR [EAX] , EAX |
\ LFS EAX , [EAX] |
\ LGS EAX , [EAX] |
\ MOVZX EAX , BYTE|WORD PTR [EAX] |
\ 0000.0000 1011.1XXX 0000.1111 |
DUP FFF8FF |
AND 00B00F = M_WL DROP 3 + REPEAT \ MOVZX EAX, WORD PTR [EAX] |
DUP 20488B = M_WL DROP 3 + REPEAT \ MOV ECX , [EAX+20H] |
DUP 20488D = M_WL DROP 3 + REPEAT \ LEA ECX , [EAX+20H] |
DUP 85448B = M_WL DROP 4 + REPEAT \ MOV EAX, X [EBP] [EAX*4] |
DUP 02048D = M_WL DROP 4 + REPEAT \ LEA EAX , [EDX] [EAX] |
\ XX00.0101 0000.0100 1000.1XX1 |
DUP7B? WHILE DROP 7 + REPEAT |
2DROP FALSE |
; |
: MACRO? INLINE? ; |
\ ÌÀÊÐÎÏÎÄÑÒÀÍÎÂÙÈÊ |
: +EBP DUP C@ C>S OFF-EBP + C, 1+ ; |
: 1_,_STEP SetOP DROP DUP C@ C, 1+ ; |
: 2_,_STEP SetOP DROP DUP W@ W, 2+ ; |
: 3_,_STEP 2_,_STEP DUP C@ C, 1+ ; |
: 4_,_STEP_ DUP @ , CELL+ ; |
: 4_,_STEP SetOP DROP 4_,_STEP_ ; |
: 5_,_STEP 1_,_STEP 4_,_STEP_ ; |
: 6_,_STEP 2_,_STEP 4_,_STEP_ ; |
: 7_,_STEP 3_,_STEP 4_,_STEP_ ; |
: A_,_STEP 2_,_STEP 4_,_STEP_ 4_,_STEP_ ; |
: 0A_,_STEP DUP DUP @ + DP @ - , CELL+ ; |
: 1A_,_STEP 1_,_STEP 0A_,_STEP ; |
: 2A_,_STEP 2_,_STEP 0A_,_STEP ; |
: _INLINE, ( CFA -- ) |
\ ." ^" DUP H. |
BEGIN |
DO_OPT |
DUP @ \ CFA N' |
DUP 8BE08B5B = DUP |
IF DROP OVER 3 + 2@ E3FF046D 8D00458B D= \ RP! |
THEN M_WL DROP SetOP |
8B C, E0 C, \ MOV ESP, EAX |
DROP 'DROP |
REPEAT |
FF AND \ CFA N' |
DUP 0C3 = IF 2DROP EXIT THEN \ RET |
DUP5B? M_WL 5_,_STEP REPEAT \ ADD EAX, # X |
\ 010X.XXXX |
DUP E0 AND 40 = M_WL 1_,_STEP REPEAT \ INC|DEC|PUSH|POP E_X |
\ FS: GS: D16: A16: INSB INSD OUTSB OUTSD |
\ 0110.X1XX |
DUP F4 AND 64 = M_WL 1_,_STEP REPEAT |
DUP 099 = M_WL 1_,_STEP REPEAT \ CDQ |
OS\ DUP FC |
OS\ AND EC = M_WL 1_,_STEP REPEAT \ IN|OUT EAX AL, DX | DX, EAX EL |
OS\ DUP CD = M_WL 2_,_STEP REPEAT \ INTX |
\ DUP 0BB = M_WL 5_,_STEP REPEAT \ MOV EBX, # X |
\ JO JNO JB JAE JE JNE JBE JA JS JNS JP JNP JL JGE JLE JG |
\ 0111.XXXX |
DUP F0 AND 70 = M_WL 2_,_STEP REPEAT |
DUP 0E8 = M_WL 1A_,_STEP REPEAT \ CALL |
DUP 0E9 = M_WL 1A_,_STEP REPEAT \ JMP |
DROP |
DUP W@ |
DUP3B?[EBP] M_WL 2_,_STEP +EBP REPEAT |
DUP3B? M_WL 3_,_STEP REPEAT |
DUP2B? M_WL 2_,_STEP REPEAT |
DUP 0C48B = M_WL 2_,_STEP REPEAT \ MOV EAX , ESP |
DUP C58B = M_WL EVEN-EBP 2_,_STEP REPEAT \ MOV EAX, EBP |
DUP 0EC87 = M_WL EVEN-EBP 2_,_STEP REPEAT \ XCHG EBP , ESP |
DUP 06D8D = M_WL DROP DUP 2 + C@ +>OFF-EBP |
3 + REPEAT \ LEA EBP, OFF-EBP [EBP] |
DUP 0C583 = M_WL DROP DUP 2 + C@ +>OFF-EBP |
3 + REPEAT \ ADD EBP, # OFF-EBP |
DUP 0ED83 = M_WL DROP DUP 2 + C@ C>S NEGATE +>OFF-EBP |
3 + REPEAT \ SUB EBP, # OFF-EBP |
DUP 0C483 = M_WL 3_,_STEP REPEAT \ ADD ESP, # X |
DUP6B? M_WL 6_,_STEP REPEAT \ MOV EAX, # X |
DUP 0E3FF = M_WL EVEN-EBP 2_,_STEP REPEAT \ JMP EBX |
\ DUP 0D3FF = M_WL EVEN-EBP 2_,_STEP REPEAT \ CALL EBX |
\ DUP 0E2FF = M_WL EVEN-EBP 2_,_STEP REPEAT \ JMP EDX |
DUP 0D2FF = M_WL EVEN-EBP 2_,_STEP REPEAT \ CALL EDX |
DUP 810F = M_WL 2A_,_STEP REPEAT \ JO [ESP] |
DUP 45C7 = M_WL 2_,_STEP +EBP 4_,_STEP_ REPEAT \ MOV X [EBP] , # X |
DUP 05C7 = M_WL A_,_STEP REPEAT \ MOV X , # Y |
DUP 0581 = M_WL A_,_STEP REPEAT \ ADD X , # Y |
DROP |
DUP @ |
DUP 0424448B = M_WL DROP SetOP \ MOV EAX, 4 [ESP] |
8B C, 04 C, 24 C, \ MOV EAX, [ESP] |
4 + |
REPEAT |
DUP 0424448D = M_WL DROP SetOP \ LEA EAX, 4 [ESP] |
8B C, C4 C, \ MOV EAX, ESP |
4 + |
REPEAT |
FFFFFF AND |
DUP C09D0F = M_WL 3_,_STEP REPEAT \ SETGE AL |
DUP C09E0F = M_WL 3_,_STEP REPEAT \ SETLE AL |
DUP 90048D = M_WL 3_,_STEP REPEAT \ LEA EAX , [EAX] [EDX*4] |
DUP 02048D = M_WL 3_,_STEP REPEAT \ LEA EAX, [EDX] [EAX] |
DUP 40B70F = M_WL 4_,_STEP REPEAT \ MOVZX EAX , WORD PTR FE [EAX] |
DUP 240401 = M_WL 3_,_STEP REPEAT \ ADD [ESP] , EAX |
\ CMPXCHG [EAX] , AL| EAX |
\ LSS EAX , [EAX] |
\ BTR [EAX] , EAX |
\ LFS EAX , [EAX] |
\ LGS EAX , [EAX] |
\ MOVZX EAX , BYTE|WORD PTR [EAX] |
\ 0000.0000 1011.1XXX 0000.1111 |
DUP FFF8FF |
AND 00B00F = M_WL 3_,_STEP REPEAT |
DUP 244403 = M_WL 4_,_STEP REPEAT \ ADD EAX, X [ESP] |
DUP 24442B = M_WL 4_,_STEP REPEAT \ SUB EAX, X [ESP] |
DUP 24448B = M_WL 4_,_STEP REPEAT \ MOV EAX, X [ESP] |
DUP 85448B = M_WL 3_,_STEP +EBP REPEAT \ MOV EAX, X [EBP] [EAX*4] |
DUP 24048B = M_WL 3_,_STEP REPEAT \ MOV EAX, 0 [ESP] |
DUP 20488B = M_WL 3_,_STEP REPEAT \ MOV ECX , [EAX+20H] |
DUP 20488D = M_WL 3_,_STEP REPEAT \ LEA ECX , [EAX+20H] |
DUP 021C8D = M_WL 3_,_STEP REPEAT \ LEA EBX, [EDX] [EAX] |
DUP 85048D = M_WL 7_,_STEP REPEAT \ LEA EAX, X [EAX*4] |
DUP 2404FF = M_WL 3_,_STEP REPEAT \ INC [ESP] |
DUP 18B60F = M_WL 3_,_STEP REPEAT \ MOVZX EBX, BYTE PTR [EAX] |
DUP7B? WHILE 7_,_STEP REPEAT |
HEX U. ." @COD, ERROR" ABORT |
; |
: XC_J |
J_COD FE AND 4 = IF EXIT THEN |
J_COD DUP 0x8 AND |
IF 3 |
ELSE 5 |
THEN XOR TO J_COD ; |
[DEFINED] [TTO] |
[IF] |
PREVIOUS PREVIOUS SET-CURRENT |
[THEN] |
: OPT_CLOSE |
EVEN-EBP DP @ TO LAST-HERE ; |
: OPT_INIT ?SET -EVEN-EBP ; |
: INLINE, ( CFA -- ) OPT_INIT _INLINE, OPT_CLOSE ; |
: MACRO, INLINE, ; |
: ?BR-OPT-RULES ( cfa -- cfa' flag ) |
\ ZZZZ IF ." z=" OP1 @ @ U. THEN |
OP0 @ :-SET U< IF TRUE EXIT THEN |
M\ -3 DTST |
OP0 @ C@ 05 = \ ADD EAX, # X |
IF M\ 404 DTST |
OP0 @ 1+ @ OFF-EAX + TO OFF-EAX |
OP1 ToOP0 |
FALSE -5 ALLOT M\ 405 DTST |
EXIT |
THEN |
DUP 'DROP XOR |
OFF-EAX OR |
OP0 @ W@ 4589 XOR OR 0= \ MOV X [EBP] , EAX |
IF M\ 436 DTST |
DP @ TO LAST-HERE INLINE, |
M\ 437 DTST |
['] NOOP FALSE EXIT |
THEN |
DUP 'DROP = |
OFF-EAX 0= |
OP0 @ C@ A1 = AND AND \ MOV EAX , 44444 |
IF M\ 434 DTST |
0 W, |
OP0 @ 1+ @ OP0 @ 2+ ! |
3D83 OP0 @ W! \ CMP 44444, # 0 |
FALSE M\ 435 DTST |
EXIT |
THEN |
OFF-EAX 0= |
OP0 @ @ FFFFFF AND 24048B = AND \ MOV EAX , [ESP] |
IF M\ 534 DTST |
1 ALLOT |
243C83 OP0 @ ! \ CMP DWORD PTR [ESP], 0 |
FALSE M\ 535 DTST |
EXIT |
THEN |
DUP 'DROP XOR |
OP0 @ W@ 458B XOR OR 0= \ MOV EAX , 0 [EBP] |
IF M\ 334 DTST |
7D83 OP0 @ W! \ CMP X [EBP], # Z |
FALSE 0 C, M\ 335 DTST |
EXIT |
THEN |
DUP 'DROP XOR |
OP0 @ W@ C20B XOR OR \ 0BC2 OR EAX , EDX |
0= IF M\ B4 DTST |
D00B OP0 @ W! \ OR EDX , EAX |
FALSE M\ B5 DTST |
EXIT |
THEN |
OP0 @ W@ 408D = \ LEA EAX, X [EAX] |
IF M\ 234 DTST |
C083 OP0 @ W! \ ADD EAX, # X |
FALSE M\ 235 DTST |
EXIT |
THEN |
OP0 @ W@ 808D = \ LEA EAX, X [EAX] |
IF M\ 34 DTST |
05 OP0 @ C! |
OP0 @ 2+ @ OP0 @ 1+ ! \ ADD EAX, # X |
TRUE -1 ALLOT M\ 35 DTST |
EXIT |
THEN |
DUP 'DROP XOR |
OP0 @ @ FFFFFF AND 1FF8C1 XOR OR 0= \ SAR EAX , 1F |
IF M\ 13A DTST |
OP1 ToOP0 |
8D J_COD 1 AND XOR TO J_COD |
FALSE -3 ALLOT M\ 13B DTST |
EXIT |
THEN |
DUP 'DROP XOR |
OP0 @ C@ 35 XOR OR 0= \ XOR EAX, # X |
IF M\ 134 DTST |
3D OP0 @ C! \ CMP EAX, # X |
FALSE M\ 135 DTST |
EXIT |
THEN |
DUP 'DROP XOR |
OP0 @ @ FFFFFF AND 240433 XOR OR 0= \ XOR EAX , [ESP] |
IF M\ 134 DTST |
3B OP0 @ C! \ CMP EAX , [ESP] |
FALSE M\ 135 DTST |
EXIT |
THEN |
OP0 @ W@ 4539 XOR \ CMP X [EBP] , EAX |
0= IF M\ 76 DTST |
3B OP0 @ C! \ CMP EAX, X [EBP] |
XC_J |
FALSE M\ 77 DTST |
EXIT |
THEN |
OP1 @ :-SET U< IF TRUE EXIT THEN |
\ $ 0<> IF |
DUP 'DROP XOR |
OP1 @ @ C01BD8F7 XOR OR 0= \ NEG EAX \ SBB EAX, EAX |
IF M\ 36 DTST |
OP2 ToOP0 |
\ 084 TO J_COD |
FALSE -4 ALLOT M\ 37 DTST |
EXIT |
THEN |
\ $ 0= IF |
DUP 'DROP XOR |
OP1 @ @ 1B01E883 XOR OR \ SUB EAX , # 1 |
OP0 @ W@ C01B XOR OR 0= \ SBB EAX , EAX |
IF M\ 38 DTST |
\ OP2 @ W@ U. |
OP2 ToOP0 |
J_COD 1 XOR TO J_COD |
FALSE -5 ALLOT M\ 39 DTST |
EXIT |
THEN |
\ $ U< IF |
DUP 'DROP XOR |
OP1 @ C@ 3D <> |
OP1 @ C@ 3B <> AND |
\ OP1 @ W@ 053B <> AND |
\ OP1 @ W@ D03B <> AND \ CMP EDX , EAX |
OP1 @ @ FFFD AND |
4539 <> AND \ CMP X [EBP] , EAX |
OP0 @ W@ C01B XOR OR OR 0= \ SBB EAX , EAX |
IF M\ 3A DTST |
OP1 ToOP0 |
83 J_COD 1 AND XOR TO J_COD |
FALSE -2 ALLOT M\ 3B DTST |
EXIT |
THEN |
OP1 @ @ FFFFFF AND 240C8B XOR \ MOV ECX , [ESP] |
OP0 @ W@ C13B XOR OR 0= \ CMP EAX , ECX |
IF M\ 33A DTST |
043B OP1 @ W! |
OP1 ToOP0 |
FALSE -2 ALLOT M\ 33B DTST |
EXIT |
THEN |
OP1 @ @ FFFFFF AND 240C8B XOR \ MOV ECX , [ESP] |
OP0 @ W@ C133 XOR OR 0= \ XOR EAX , ECX |
IF M\ 33A DTST |
0433 OP1 @ W! \ XOR ECX , [ESP] |
OP1 ToOP0 |
FALSE -2 ALLOT M\ 33B DTST |
EXIT |
THEN |
OP1 @ @ C13BCA8B = \ MOV ECX , EDX CMP EAX , ECX |
IF M\ 33A DTST |
C23B OP1 @ W! \ CMP EAX , EDX |
OP1 ToOP0 |
FALSE -2 ALLOT M\ 33B DTST |
EXIT |
THEN |
OP1 @ W@ 558B XOR \ MOV EDX , 0 [EBP] |
OP0 @ W@ C23B XOR OR 0= \ CMP EAX , EDX |
IF M\ 43A DTST |
453B OP1 @ W! \ CMP EAX , 0 [EBP] |
OP1 ToOP0 |
FALSE -2 ALLOT M\ 43B DTST |
EXIT |
THEN |
DUP 'DROP XOR |
OP1 @ @ C83B008B XOR OR \ MOV EAX , [EAX] CMP ECX , EAX |
0= IF M\ 43A DTST |
083B OP1 @ W! \ CMP ECX , [EAX] |
OP1 ToOP0 |
FALSE -2 ALLOT M\ 43B DTST |
EXIT |
THEN |
DUP 'DROP XOR |
OP1 @ @ D03B008B XOR OR \ MOV EAX , [EAX] CMP EDX , EAX |
0= IF M\ 43A DTST |
103B OP1 @ W! \ CMP EDX , [EAX] |
OP1 ToOP0 |
FALSE -2 ALLOT M\ 43B DTST |
EXIT |
THEN |
DUP 'DROP XOR |
OP1 @ @ C13B008B XOR OR \ MOV EAX , [EAX] CMP EAX , ECX |
0= IF M\ 80 DTST |
083B OP1 @ W! \ CMP ECX , [EAX] |
XC_J |
OP1 ToOP0 |
FALSE -2 ALLOT M\ 81 DTST |
EXIT |
THEN |
OP1 @ C@ B9 XOR \ MOV ECX , # 3 |
OP0 @ W@ C133 XOR OR \ XOR EAX , ECX |
0= IF M\ 40 DTST |
3D OP1 @ C! \ CMP EAX , # 1 |
OP1 ToOP0 |
FALSE -2 ALLOT M\ 41 DTST |
EXIT |
THEN |
\ ZZZZ IF ." Z=" OP1 @ @ U. OP1 @ W@ U. OP0 @ W@ U. THEN |
OP1 @ W@ 558B XOR \ MOV EDX , 0 [EBP] |
OP0 @ W@ C23B XOR OR \ CMP EAX , EDX |
0= IF M\ 68 DTST |
453B OP1 @ C! \ CMP EAX , 0 [EBP] |
OP1 ToOP0 |
FALSE -2 ALLOT M\ 69 DTST |
EXIT |
THEN |
OP1 @ C@ B9 XOR \ 57B523 B901000000 MOV ECX , # 1 |
OP0 @ W@ C83B XOR OR \ 57B528 3BC8 CMP ECX , EAX |
0= IF M\ 74 DTST |
3D OP1 @ C! \ CMP EAX , # 1 |
XC_J |
OP1 ToOP0 |
FALSE -2 ALLOT M\ 75 DTST |
EXIT |
THEN |
OP1 @ @ C23B008B = \ MOV EAX , [EAX] CMP EAX , EDX |
IF M\ 78 DTST |
103B OP1 @ W! \ CMP EDX , [EAX] |
XC_J |
OP1 ToOP0 -2 ALLOT |
FALSE M\ 79 DTST |
EXIT |
THEN |
DUP 'DROP XOR |
OP1 @ @ FFFFFF AND 24448B XOR OR \ MOV EAX , 10 [ESP] |
OP0 @ C@ 3D XOR OR \ 597707 3D02000000 CMP EAX , # 2 |
0= IF M\ 7A DTST |
7C81 OP1 @ W! \ CMP 10 [ESP] , # 2 |
OP0 @ 1+ @ OP0 @ ! |
OP1 ToOP0 -1 ALLOT |
FALSE M\ 7B DTST |
EXIT |
THEN |
OP1 @ @ FFFFFF AND 244C8B XOR \ MOV ECX , 20 [ESP] |
OP0 @ W@ C83B XOR OR \ CMP ECX , EAX |
0= IF M\ 7C DTST |
443B OP1 @ W! \ CMP EAX , 20 [ESP] |
OP0 @ 1+ @ OP0 @ ! |
XC_J |
OP1 ToOP0 -2 ALLOT |
FALSE M\ 7D DTST |
EXIT |
THEN |
OP1 @ W@ 0D8B XOR \ MOV ECX , 44444 |
OP0 @ W@ C83B XOR OR \ CMP ECX , EAX |
0= IF M\ 7C DTST |
053B OP1 @ W! \ CMP EAX , 44444 |
OP0 @ 1+ @ OP0 @ ! |
XC_J |
OP1 ToOP0 -2 ALLOT |
FALSE M\ 7D DTST |
EXIT |
THEN |
DUP 'DROP XOR |
OP1 @ @ FFFFFF AND 85048B XOR OR \ MOV EAX , X [EAX*4] |
OP0 @ C@ 3D XOR OR \ 5960F8 3500100000 CMP EAX , # 1000 |
0= IF M\ 86 DTST |
3C81 OP1 @ W! \ CMP X [EAX*4] , # 1000 |
OP0 @ 1+ @ OP0 @ ! |
OP1 ToOP0 -1 ALLOT |
FALSE M\ 87 DTST |
EXIT |
THEN |
DUP 'DROP XOR |
OP1 @ C@ A1 XOR OR \ 5978EF A135755900 MOV EAX , 597535 |
OP0 @ C@ 3D XOR OR \ 5978F4 3D41000000 CMP EAX , # 1000 |
0= IF M\ 96 DTST |
OP1 @ 1+ @ OP1 @ 2+ ! |
3D81 OP1 @ W! \ CMP 597535 , # 1000 |
OP1 ToOP0 |
FALSE M\ 97 DTST |
EXIT |
THEN |
DUP 'DROP XOR |
OP1 @ W@ D8F7 XOR OR \ 581E16 F7D8 NEG EAX |
OP0 @ W@ C203 XOR OR \ 581E18 03C2 ADD EAX , EDX |
0= IF M\ B8 DTST |
D02B OP1 @ W! \ SUB EDX , EAX |
OP1 ToOP0 -2 ALLOT |
FALSE M\ B9 DTST |
EXIT |
THEN |
OP1 @ @ C90BCA8B XOR \ 8BCA MOV ECX , EDX |
\ 0BC9 OR ECX , ECX |
0= IF M\ BA DTST |
D20B OP1 @ W! \ OR EDX , EDX |
OP1 ToOP0 -2 ALLOT |
FALSE M\ BB DTST |
EXIT |
THEN |
OP1 @ @ 3DFF408D XOR |
OP0 @ 1+ @ OR \ LEA EAX , FF [EAX] CMP EAX , # 0 |
0= IF M\ 1BA DTST |
48 OP1 @ C! \ DEC EAX |
OP1 ToOP0 -7 ALLOT |
FALSE M\ 1BB DTST |
EXIT |
THEN |
OP2 @ :-SET U< IF TRUE EXIT THEN |
OP2 @ W@ 4589 XOR \ MOV F8 [EBP] , EAX |
OP1 @ @ 453BC033 XOR OR \ XOR EAX , EAX CMP EAX , F8 [EBP] |
OP0 @ 2+ C@ |
OP2 @ 2+ C@ XOR OR \ (FALG &( X1=X )) |
0= IF M\ 4E DTST |
3D OP1 @ C! OP1 @ 1+ 0! \ CMP EAX , # 0 |
XC_J |
OP1 ToOP0 |
FALSE M\ 4F DTST |
EXIT |
THEN |
OP2 @ W@ 5589 XOR \ MOV F8 [EBP] , EDX |
OP1 @ @ 453B008B XOR OR \ MOV EAX , [EAX] CMP EAX , F8 [EBP] |
OP0 @ 2+ C@ |
OP2 @ 2+ C@ XOR OR \ (FALG &( X1=X )) |
\ OP0 @ 2+ C@ C>S OFF-EBP > OR !!!! |
0= IF M\ 23A DTST |
C23B OP0 @ W! \ CMP EAX , EDX |
FALSE -1 ALLOT M\ 23B DTST |
EXIT |
THEN |
OP2 @ W@ 4D89 XOR \ MOV F8 [EBP] , ECX |
OP1 @ @ 453B008B XOR OR \ MOV EAX , [EAX] CMP EAX , F8 [EBP] |
OP0 @ 2+ C@ |
OP2 @ 2+ C@ XOR OR \ (FALG &( X1=X )) |
0= IF M\ 7E DTST |
C13B OP0 @ W! \ CMP EAX , ECX |
FALSE -1 ALLOT M\ 7F DTST |
EXIT |
THEN |
OP1 @ W@ 8B XOR \ MOV EAX , [EAX] |
OP0 @ W@ 4539 XOR OR \ CMP F8 [EBP] , EAX |
OP0 @ 2+ C@ |
OP2 @ 2+ C@ XOR OR \ (FALG &( X1=X )) |
\ OP0 @ 2+ C@ C>S OFF-EBP > OR |
0= IF |
OP2 @ W@ 4D89 = \ MOV F8 [EBP] , ECX |
IF M\ 23A DTST |
C83B OP0 @ W! \ CMP ECX , EAX |
FALSE -1 ALLOT M\ 23B DTST |
EXIT |
THEN |
OP2 @ W@ 5589 = \ MOV F8 [EBP] , EDX |
\ MOV EAX , [EAX] CMP F8 [EBP] , EAX |
IF M\ 33A DTST |
D03B OP0 @ W! \ CMP EDX , EAX |
FALSE -1 ALLOT M\ 33B DTST |
EXIT |
THEN |
THEN |
OP3 @ :-SET U< IF TRUE EXIT THEN |
\ $ < IF |
DUP 'DROP XOR |
OP2 @ @ FFFFFCFF AND 83C09C0F XOR OR |
OP1 @ @ 4801E083 XOR OR 0= |
\ 0F9DC0 SETGE AL |
\ 83E001 AND EAX , # 1 |
\ 48 DEC EAX |
IF M\ 3C DTST |
OP2 @ 1+ C@ 10 - J_COD 1 AND XOR TO J_COD |
OP3 ToOP0 |
FALSE -7 ALLOT M\ 3D DTST |
EXIT |
THEN |
\ 5 OVER = IF |
OP0 @ W@ 4533 = \ XOR EAX , F8 [EBP] |
IF |
DUP 'DROP XOR |
OP3 @ W@ 4589 XOR OR \ MOV FC [EBP] , EAX |
OP2 @ W@ 45C7 XOR OR \ MOV F8 [EBP] , # 5 |
OP1 @ W@ 458B XOR OR \ MOV EAX , FC [EBP] |
OP3 @ 2+ C@ OP1 @ 2+ C@ XOR OR |
OP2 @ 2+ C@ OP0 @ 2+ C@ XOR OR 0= |
IF M\ 234 DTST |
3D OP2 @ C! |
OP2 @ 3 + @ OP2 @ 1+ ! |
OP2 ToOP0 |
TRUE -8 ALLOT M\ 235 DTST |
EXIT |
THEN |
THEN |
TRUE ; |
: BR-EVEN-EAX OFF-EAX |
IF M\ 1002 DTST |
SetOP |
5 C, OFF-EAX , |
0 TO OFF-EAX |
M\ 1003 DTST |
THEN |
; |
: ?BR-OPT |
BEGIN BEGIN M\ -9 DTST |
?BR-OPT-RULES |
UNTIL M\ -7 DTST |
['] NOOP OPT-RULES NIP |
UNTIL BR-EVEN-EAX |
M\ -5 DTST |
\ ZZZZ IF ." B=" DUP U. THEN |
OP0 @ :-SET U< |
IF SetOP 0xC00B W, \ OR EAX, EAX |
EXIT |
THEN |
OP0 @ C@ |
\ 00XX.X101 |
DUP C7 AND 05 <> \ ADD|OR|ADC|SBB|AND|SUB|XOR|CMP EAX, # X |
\ OVER 3D <> AND \ ~ CMP EAX, # X |
OVER 40 <> AND \ DEC EAX |
OVER 48 <> AND \ INC EAX |
OVER 3B <> AND \ CMP |
OVER 0B <> AND \ OR |
NIP |
OP0 @ W@ |
DUP 4000 OR ADD|XOR|OR|AND= INVERT |
OVER C01B <> AND \ SBB EAX, EAX |
OVER D02B <> AND \ SUB EDX, EAX |
OVER 4539 <> AND \ CMP X [EBP], EAX |
\ OVER 103B <> AND \ CMP EDX , [EAX] |
\ OVER 453B <> AND \ CMP EAX , X [EBP] |
\ OVER 053B <> AND \ CMP EAX , X |
OVER C083 <> AND \ ADD EAX , # X |
OVER C203 <> AND \ ADD EAX , EDX |
OVER C133 <> AND \ XOR EAX , ECX |
OVER F8C1 <> AND \ SAR EAX , X |
OVER 7D83 <> AND \ CMP X [EBP], # Z |
OVER 3D81 <> AND \ CMP 44444, # 55555 |
OVER 3C81 <> AND \ CMP X [EAX*4] , # 55555 |
OVER 7C81 <> AND \ CMP X [ESP] , # X |
OVER 3D83 <> AND \ CMP 44444, # 0 |
OVER 3C83 <> AND \ CMP [ESP], # 0 |
\ OVER C20B <> AND \ OR EAX , EDX |
NIP |
OP0 @ @ FFFFFF AND 240433 XOR \ XOR EAX , [ESP] |
AND |
AND |
IF SetOP 0xC00B W, \ OR EAX, EAX |
THEN |
\ DP @ TO :-SET |
; |
: ??BR-OPT |
OPT? IF OPT_INIT |
?BR-OPT |
M\ -B DTST |
OPT_CLOSE |
THEN ; |
: ???BR-OPT |
OPT? 0= IF C00B W, \ OR EAX, EAX |
THEN |
FALSE TO ~BR-OPT 'DROP ??BR-OPT INLINE, |
TRUE TO ~BR-OPT |
OPT? |
IF OPT_INIT |
OP0 @ W@ C00B = DUP >R IF OP0 OPexcise THEN |
['] NOOP ?BR-OPT DROP |
\ SetOP 0xC00B W, \ OR EAX, EAX |
OP0 @ W@ C00B = R> 0= AND IF OP0 OPexcise THEN |
OPT_CLOSE |
THEN |
; |
: OPT ( -- ) ['] NOOP DO_OPT DROP ; |
: FORLIT, ( N -- ) |
'DUP _INLINE, SetOP 0B8 C, , OPT ; |
: CON>LIT ( CFA -- CFA TRUE | FALSE ) |
OPT? 0= IF TRUE EXIT THEN ?SET |
MM_SIZE 0= IF TRUE EXIT THEN |
DUP C@ 0E8 <> IF TRUE EXIT THEN |
DUP 1+ REL@ CELL+ |
DUP CREATE-CODE = |
IF DROP OPT_INIT 5 + [>T] FORLIT, FALSE OPT_CLOSE EXIT |
THEN |
DUP USER-CODE = |
IF DROP OPT_INIT 'DUP _INLINE, |
SetOP 878D W, 5 + @ , OPT FALSE OPT_CLOSE EXIT |
THEN |
DUP USER-VALUE-CODE = |
IF DROP OPT_INIT 'DUP _INLINE, |
SetOP 878B W, 5 + @ , OPT FALSE OPT_CLOSE EXIT |
THEN |
DUP CONSTANT-CODE = |
IF DROP OPT_INIT 5 + DUP 5 + REL@ |
TOVALUE-CODE CELL- = |
IF 'DUP _INLINE, SetOP 0A1 C, [>T] , OPT |
ELSE @ FORLIT, |
THEN FALSE OPT_CLOSE EXIT |
THEN |
DUP 1+ REL@ CELL+ DOES-CODE = |
IF 5 + \ CFA |
SWAP 5 + OPT_INIT FORLIT, |
TRUE OPT_CLOSE EXIT |
THEN |
DUP TOUSER-VALUE-CODE = |
IF DROP OPT_INIT |
SetOP 8789 W, CELL- @ , OPT |
'DROP _INLINE, |
FALSE OPT_CLOSE EXIT |
THEN |
TOVALUE-CODE = |
IF OPT_INIT |
SetOP A3 C, CELL- [>T] , OPT |
'DROP _INLINE, |
FALSE OPT_CLOSE EXIT |
THEN |
TRUE |
; |
: J?_STEP ( ADR OPX -- ADR OPX+4 FALSE | OPX TRUE TRUE | ADR FALSE TRUE ) |
OVER J-SET U> 0= IF DROP FALSE TRUE EXIT THEN |
OVER DP @ = IF NIP TRUE TRUE EXIT THEN |
DUP @ @ FFFFF0FF AND 800F = IF DROP FALSE TRUE EXIT THEN |
DUP @ @ 000000E9 = IF DROP FALSE TRUE EXIT THEN |
DUP CELL+ OP0 OpBuffSize + U> |
IF DROP FALSE TRUE EXIT THEN |
2DUP @ = IF NIP CELL+ TRUE TRUE EXIT THEN |
CELL+ FALSE |
; |
: J_+! |
DUP C@ F0 |
AND 70 = IF 1+ ELSE |
DUP C@ EB = IF 1+ ELSE |
DUP C@ E9 = IF 1+ ELSE |
DUP W@ F0FF |
AND 800F = IF 2+ ELSE |
." J_+! ERR" ABORT |
THEN THEN THEN THEN +! |
; |
: J_MOVE ( OPX n -- ) |
OVER OP0 <> |
IF |
OVER CELL- @ |
2DUP - NEGATE |
OVER DP @ - NEGATE ( U. U. U. ABORT ) CMOVE |
OVER OP0 |
?DO DUP NEGATE I +! |
I @ C@ E8 = IF DUP I @ 1+ +! THEN |
CELL |
+LOOP |
THEN |
OVER @ |
JP0 JpBuffSize + JP0 |
?DO I @ |
IF DUP I @ U< |
IF |
OVER NEGATE I +! |
DUP I @ J_@ U> |
IF OVER I @ J_+! |
THEN |
ELSE |
DUP I @ <> |
IF |
DUP I @ J_@ U< |
IF OVER NEGATE I @ J_+! |
THEN |
THEN |
THEN |
THEN CELL |
+LOOP DROP |
\ THEN |
NIP NEGATE DUP ALLOT :-SET + TO :-SET EXIT |
; |
TRUE VALUE J_OPT? |
\ FALSE VALUE J_OPT? |
: RESOLVE_OPT ( ADR -- ) |
OPT? 0= IF DROP EXIT THEN |
J_OPT? 0= IF DROP EXIT THEN |
DUP CELL- JP0 JpBuffSize + CELL- @ U< |
IF DUP CELL- REL@ CELL+ J-SET UMAX TO J-SET THEN |
\ ." J_S" \ BASE @ HEX J-SET U. DP @ U. BASE ! |
DP @ OVER - 7E > IF ( ." S" ) DROP EXIT THEN |
DP @ LAST-HERE <> IF ( ." L" ) ?SET DROP EXIT THEN |
OPT? 0= IF DROP EXIT THEN |
CELL+ OP0 |
BEGIN J?_STEP |
UNTIL |
IF DUP @ |
DUP C@ E9 = |
IF EB SWAP C! 3 |
ELSE |
DUP 1+ W@ 10 - \ 400 + |
SWAP W! 4 |
THEN |
\ OVER CELL- @ REST |
J_MOVE DP @ TO LAST-HERE EXIT |
THEN \ OPX |
DROP |
; |
\ 0 TO J_OPT? |
BASE ! |
/programs/develop/SPForth/src/spf_con_io.f |
---|
0,0 → 1,41 |
( ®á®«ìë© ¢¢®¤-¢ë¢®¤. |
-¥§ ¢¨á¨¬ë¥ á«®¢ [®â®á¨â¥«ì®...]. |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
८¡à §®¢ ¨¥ ¨§ 16-à §à冷£® ¢ 32-à §àï¤ë© ª®¤ - 1995-96££ |
¥¢¨§¨ï - á¥âï¡àì 1999 |
) |
32 VALUE BL ( -- char ) \ 94 |
\ char - § 票¥ ᨬ¢®« "¯à®¡¥«". |
: SPACE ( -- ) \ 94 |
\ 뢥á⨠íªà ®¤¨ ¯à®¡¥«. |
BL EMIT |
; |
: SPACES ( n -- ) \ 94 |
\ ᫨ n>0 - ¢ë¢¥á⨠¤¨á¯«¥© n ¯à®¡¥«®¢. |
BEGIN |
DUP |
WHILE |
BL EMIT 1- |
REPEAT DROP |
; |
VARIABLE PENDING-CHAR \ ª« ¢¨ âãà ®¤ -> ¯¥à¥¬¥ ï £«®¡ «ì ï, ¥ USER |
VECT DO-KEY? |
' NOOP TO DO-KEY? |
: KEY? |
EVENT-CASE DO-KEY? |
&KEY @ 0<> ; |
\ : KEY? |
\ 0 ; |
VECT KEY |
' _KEY TO KEY |
/programs/develop/SPForth/src/spf_defkern.f |
---|
0,0 → 1,114 |
( à®æ¥¤ãàë ¢à¥¬¥¨ ¢ë¯®«¥¨ï ¤«ï CONSTANT, VARIABLE, etc. |
-¥§ ¢¨á¨¬ë¥ á«®¢ . |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
८¡à §®¢ ¨¥ ¨§ 16-à §à冷£® ¢ 32-à §àï¤ë© ª®¤ - 1995-96££ |
¥¢¨§¨ï - á¥âï¡àì 1999 |
®¤¨ä¨æ¨à®¢ ® ªá¨¬®¢ë¬ .. |
email:mak@mail.rtc.neva.ru |
http://informer.rtc.neva.ru/ |
â ¤ {812}105-92-03 |
â à {812}552-47-64 |
) |
Code _CREATE-CODE |
SUB EBP, 4 |
MOV [EBP] , EAX |
POP EAX |
RET |
EndCode |
Code _CONSTANT-CODE |
SUB EBP , 4 |
MOV [EBP] , EAX |
POP EAX |
MOV EAX, [EAX] |
RET |
EndCode |
Code _USER-CODE |
SUB EBP, 4 |
MOV [EBP], EAX |
POP EAX |
MOV EAX, [EAX] |
ADD EAX, EDI |
RET |
EndCode |
Code USER+ ;( offs -- addr ) |
ADD EAX, EDI |
RET |
EndCode |
Code _USER-VALUE-CODE |
SUB EBP , 4 |
MOV [EBP] , EAX |
POP EAX |
MOV EAX, [EAX] |
ADD EAX, EDI |
MOV EAX, [EAX] |
RET |
EndCode |
Code _USER-VECT-CODE |
POP EBX |
MOV EBX, [EBX] |
LEA EBX, [EDI+EBX] |
MOV EBX, [EBX] |
JMP EBX |
RET |
EndCode |
Code _VECT-CODE |
POP EBX |
JMP [EBX] |
EndCode |
Code _TOVALUE-CODE |
POP EBX |
SUB EBX, 9 |
MOV [EBX] , EAX |
MOV EAX, [EBP] |
ADD EBP, 4 |
RET |
EndCode |
Code _TOUSER-VALUE-CODE |
POP EBX |
SUB EBX, 9 |
MOV EBX, [EBX] ; ᬥ饨¥ user-¯¥à¥¬¥®© |
ADD EBX, EDI |
MOV [EBX] , EAX |
MOV EAX, [EBP] |
ADD EBP, 4 |
RET |
EndCode |
Code _SLITERAL-CODE |
SUB EBP, 8 |
MOV [EBP+4], EAX |
POP EBX |
MOVZX EAX, BYTE PTR [EBX] |
INC EBX |
MOV [EBP], EBX |
ADD EBX, EAX |
; INC EBX |
JMP EBX |
EndCode |
Code _CLITERAL-CODE |
SUB EBP, 4 |
MOV [EBP] , EAX |
POP EAX |
MOVZX EBX, BYTE PTR [EAX] |
LEA EBX, [EAX+EBX+1] |
JMP EBX |
EndCode |
\EOF |
' _CLITERAL-CODE VALUE CLITERAL-CODE |
' _CREATE-CODE VALUE CREATE-CODE |
' _USER-CODE VALUE USER-CODE |
' _CONSTANT-CODE VALUE CONSTANT-CODE |
' _TOVALUE-CODE VALUE TOVALUE-CODE |
/programs/develop/SPForth/src/spf_except.f |
---|
0,0 → 1,83 |
( óÔÒÕËÔÕÒÉÒÏ×ÁÎÎÁÑ ÏÂÒÁÂÏÔËÁ ÉÓËÌÀÞÅÎÉÊ. |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
ðÒÅÏÂÒÁÚÏ×ÁÎÉÅ ÉÚ 16-ÒÁÚÒÑÄÎÏÇÏ × 32-ÒÁÚÒÑÄÎÙÊ ËÏÄ - 1995-96ÇÇ |
òÅ×ÉÚÉÑ - ÓÅÎÔÑÂÒØ 1999 |
) |
' NOOP ->VECT FATAL-HANDLER |
\ ÅÓÌÉ × ÒÅÚÕÌØÔÁÔÅ ÓÂÏÅ× ÐÏ×ÒÅÄÉÌÏÓØ ÉÓÈÏÄÎÏÅ ÚÎÁÞÅÎÉÅ HANDLER, |
\ ÕÓÔÁÎÏ×ÌÅÎÎÏÅ ÐÒÉ ×ÈÏÄÅ × ÐÏÔÏË/ÚÁÄÁÞÕ ÉÌÉ ÐÏÚÄÎÅÅ, |
\ ÔÏ ×ÙÐÏÌÎÉÔÓÑ ÜÔÏÔ ÏÂÒÁÂÏÔÞÉË FATAL-HANDLER |
: (THROW) |
\ áÎÁÌÏÇ THROW ÎÏ × ÓÌÕÞÁÅ 0 ÐÏÓÌÅÄÎÉÊ ÎÅ ÕÂÉÒÁÅÔÓÑ ÓÏ ÓÔÅËÁ |
\ äÌÑ ÏÐÔÉÍÉÚÁÔÏÒÁ. |
DUP |
IF |
DUP 109 = IF DROP EXIT THEN \ broken pipe - ÏÂÙÞÎÏ ÎÅ ÏÛÉÂËÁ, Á ËÏÎÅà ×ÈÏÄÎÏÇÏ ÐÏÔÏËÁ × CGI |
HANDLER @ |
DUP |
IF RP! |
R> HANDLER ! |
R> SWAP >R |
SP! DROP R> |
ELSE DROP FATAL-HANDLER THEN |
THEN |
; |
: THROW |
\ åÓÌÉ ÌÀÂÙÅ ÂÉÔÙ n ÎÅÎÕÌÅ×ÙÅ, ×ÚÑÔØ ×ÅÒÈÎÉÊ ËÁÄÒ ÉÓËÌÀÞÅÎÉÊ ÓÏ ÓÔÅËÁ |
\ ÉÓËÌÀÞÅÎÉÊ, ×ËÌÀÞÁÑ ×ÓÅ ÎÁ ÓÔÅËÅ ×ÏÚ×ÒÁÔÏ× ÎÁÄ ÜÔÉÍ ËÁÄÒÏÍ. úÁÔÅÍ |
\ ×ÏÓÓÔÁÎÏ×ÉÔØ ÓÐÅÃÉÆÉËÁÃÉÉ ×ÈÏÄÎÏÇÏ ÐÏÔÏËÁ, ËÏÔÏÒÙÊ ÉÓÐÏÌØÚÏ×ÁÌÓÑ ÐÅÒÅÄ |
\ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÍ CATCH, É ÕÓÔÁÎÏ×ÉÔØ ÇÌÕÂÉÎÙ ×ÓÅÈ ÓÔÅËÏ×, ÏÐÒÅÄÅÌÅÎÎÙÈ |
\ × ÜÔÏÍ óÔÁÎÄÁÒÔÅ, × ÔÏ ÓÏÓÔÏÑÎÉÅ, ËÏÔÏÒÏÅ ÂÙÌÏ ÓÏÈÒÁÎÅÎÏ × ËÁÄÒÅ |
\ ÉÓËÌÀÞÅÎÉÊ (i - ÜÔÏ ÔÏ ÖÅ ÞÉÓÌÏ, ÞÔÏ É i ×Ï ×ÈÏÄÎÙÈ ÁÒÇÕÍÅÎÔÁÈ |
\ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÇÏ CATCH), ÐÏÌÏÖÉÔØ n ÎÁ ×ÅÒÛÉÎÕ ÓÔÅËÁ ÄÁÎÎÙÈ É ÐÅÒÅÄÁÔØ |
\ ÕÐÒÁ×ÌÅÎÉÅ × ÔÏÞËÕ ÓÒÁÚÕ ÐÏÓÌÅ CATCH, ËÏÔÏÒÏÅ ÐÏÌÏÖÉÌÏ ÜÔÏÔ ËÁÄÒ |
\ ÉÓËÌÀÞÅÎÉÊ. |
\ åÓÌÉ ×ÅÒÛÉÎÁ ÓÔÅËÁ ÎÅ ÎÏÌØ, É ÎÁ ÓÔÅËÅ ÉÓËÌÀÞÅÎÉÊ ÅÓÔØ ËÁÄÒ |
\ ÉÓËÌÀÞÅÎÉÊ, ÔÏ ÐÏ×ÅÄÅÎÉÅ ÓÌÅÄÕÀÝÅÅ: |
\ åÓÌÉ n=-1, ×ÙÐÏÌÎÉÔØ ÆÕÎËÃÉÀ ABORT (×ÅÒÓÉÀ ABORT ÉÚ ÓÌÏ× CORE), |
\ ÎÅ ×Ù×ÏÄÑ ÓÏÏÂÝÅÎÉÊ. |
\ åÓÌÉ n=-2, ×ÙÐÏÌÎÉÔØ ÆÕÎËÃÉÀ ABORT" (×ÅÒÓÉÀ ABORT" ÉÚ ÓÌÏ× CORE), |
\ ×Ù×ÏÄÑ ÓÉÍ×ÏÌÙ ccc, ÁÓÓÏÃÉÉÒÏ×ÁÎÎÙÅ Ó ABORT", ÇÅÎÅÒÉÒÕÀÝÉÍ THROW. |
\ éÎÁÞÅ ÓÉÓÔÅÍÁ ÍÏÖÅÔ ×Ù×ÅÓÔÉ ÎÁ ÄÉÓÐÌÅÊ ÚÁ×ÉÓÑÝÅÅ ÏÔ ÒÅÁÌÉÚÁÃÉÉ |
\ ÓÏÏÂÝÅÎÉÅ Ï ÕÓÌÏ×ÉÉ, ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÍ THROW Ó ËÏÄÏÍ n. úÁÔÅÍ |
\ ÓÉÓÔÅÍÁ ×ÙÐÏÌÎÉÔ ÆÕÎËÃÉÀ ABORT (×ÅÒÓÉÀ ABORT ÉÚ CORE). |
?DUP |
IF HANDLER @ |
?DUP |
IF RP! |
R> HANDLER ! |
R> SWAP >R |
SP! DROP R> |
ELSE FATAL-HANDLER THEN |
THEN |
; |
VECT <SET-EXC-HANDLER> \ ÕÓÔÁÎÏ×ÉÔØ ÏÂÒÁÂÏÔÞÉË ÁÐÐÁÒÁÔÎÙÈ ÉÓËÌÀÞÅÎÉÊ |
: CATCH ( i*x xt -- j*x 0 | i*x n ) \ 94 EXCEPTION |
\ ðÏÌÏÖÉÔØ ÎÁ ÓÔÅË ÉÓËÌÀÞÅÎÉÊ ËÁÄÒ ÐÅÒÅÈ×ÁÔÁ ÉÓËÌÀÞÉÔÅÌØÎÙÈ ÓÉÔÕÁÃÉÊ |
\ É ×ÙÐÏÌÎÉÔØ ÔÏËÅÎ xt (ËÁË ÐÏ EXECUTE) ÔÁËÉÍ ÏÂÒÁÚÏÍ, ÞÔÏÂÙ ÕÐÒÁ×ÌÅÎÉÅ |
\ ÍÏÇÌÏ ÂÙÔØ ÐÅÒÅÄÁÎÏ × ÔÏÞËÕ ÓÒÁÚÕ ÐÏÓÌÅ CATCH, ÅÓÌÉ ×Ï ×ÒÅÍÑ ×ÙÐÏÌÎÅÎÉÑ |
\ xt ×ÙÐÏÌÎÑÅÔÓÑ THROW. |
\ åÓÌÉ ×ÙÐÏÌÎÅÎÉÅ xt ÚÁËÁÎÞÉ×ÁÅÔÓÑ ÎÏÒÍÁÌØÎÏ (Ô.Å. ËÁÄÒ ÉÓËÌÀÞÅÎÉÊ, |
\ ÐÏÌÏÖÅÎÎÙÊ ÎÁ ÓÔÅË ÓÌÏ×ÏÍ CATCH ÎÅ ÂÙÌ ×ÚÑÔ ×ÙÐÏÌÎÅÎÉÅÍ THROW), |
\ ×ÚÑÔØ ËÁÄÒ ÉÓËÌÀÞÅÎÉÊ É ×ÅÒÎÕÔØ ÎÏÌØ ÎÁ ×ÅÒÛÉÎÕ ÓÔÅËÁ ÄÁÎÎÙÈ, |
\ ÏÓÔÁÌØÎÙÅ ÜÌÅÍÅÎÔÙ ÓÔÅËÁ ×ÏÚ×ÒÁÝÁÀÔÓÑ xt EXECUTE. éÎÁÞÅ ÏÓÔÁÔÏË |
\ ÓÅÍÁÎÔÉËÉ ×ÙÐÏÌÎÅÎÉÑ ÄÁÅÔÓÑ THROW. |
\ <SET-EXC-HANDLER> |
SP@ >R HANDLER @ >R |
RP@ HANDLER ! |
EXECUTE |
R> HANDLER ! |
RDROP |
0 |
; |
: ABORT \ 94 EXCEPTION EXT |
\ òÁÓÛÉÒÉÔØ ÓÅÍÁÔÉËÕ CORE ABORT ÞÔÏÂÙ ÂÙÌÏ: |
( i*x -- ) ( R: j*x -- ) |
\ ÷ÙÐÏÌÎÉÔØ ÆÕÎËÃÉÀ -1 THROW |
-1 THROW |
; |
/programs/develop/SPForth/src/spf_forthproc.f |
---|
0,0 → 1,1384 |
( á®¢ë¥ ¨§ª®ã஢¥¢ë¥ á«®¢ "ä®àâ-¯à®æ¥áá®à " |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
८¡à §®¢ ¨¥ ¨§ 16-à §à冷£® ¢ 32-à §àï¤ë© ª®¤ - 1995-96££ |
¥¢¨§¨ï - á¥âï¡àì 1999 |
) |
( ¥ «¨§ æ¨ï ¤«ï ¯®¤¯à®£à ¬¬®£® è¨â®£® ª®¤ . |
ESP - 㪠§ ⥫ì á⥪ ¢®§¢à ⮢ |
EBP - 㪠§ ⥫ì á⥪ ¤ ëå |
EDI - á®åà ï¥¬ë© à¥£¨áâà [㪠§ â¥«ì ¤ ëå ¯®â®ª ¢ SPF] |
) |
HEX |
\ ================================================================ |
\ ⥪®¢ë¥ ¬ ¨¯ã«ï樨 |
?HS |
Code DUP ;( x -- x x ) \ 94 |
; த㡫¨à®¢ âì x. |
LEA EBP, [EBP-4] |
mov [ebp],eax |
RET |
EndCode |
\ ' DUP TO 'DUP_V |
Code ?DUP ;( x -- 0 | x x ) \ 94 |
; த㡫¨à®¢ âì x, ¥á«¨ ¥ ®«ì. |
OR EAX, EAX |
JNZ { ' DUP } |
RET |
EndCode |
Code 2DUP ;( x1 x2 -- x1 x2 x1 x2 ) \ 94 |
; த㡫¨à®¢ âì ¯ àã ï祥ª x1 x2. |
MOV EDX, [EBP] |
MOV [EBP-4], EAX |
MOV [EBP-8], EDX |
LEA EBP, [EBP-8] |
RET |
EndCode |
Code DROP ;( x -- ) \ 94 |
; ¡à âì x á® á⥪ . |
mov eax,[ebp] |
LEA EBP, [EBP+4] |
RET |
EndCode |
\ ' DROP TO 'DROP_V |
Code MAX ;( n1 n2 -- n3 ) \ 94 |
; n3 - ¡®«ì襥 ¨§ n1 ¨ n2. |
CMP EAX, [EBP] |
JL { ' DROP } |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code MIN ;( n1 n2 -- n3 ) \ 94 |
; n3 - ¬¥ì襥 ¨§ n1 ¨ n2. |
CMP EAX, [EBP] |
JG { ' DROP } |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code UMAX ;( u1 u2 -- n3 ) \ RETurn the lesser of unsigned u1 and |
; unsigned u2 |
CMP EAX, [EBP] |
JB { ' DROP } |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code UMIN ;( u1 u2 -- n3 ) \ RETurn the lesser of unsigned u1 and |
; unsigned u2 |
CMP EAX, [EBP] |
JA { ' DROP } |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code 2DROP ;( x1 x2 -- ) \ 94 |
; ¡à âì á® á⥪ ¯ àã ï祥ª x1 x2. |
MOV EAX , [EBP+4] |
ADD EBP , 8 |
RET |
EndCode |
Code SWAP ;( x1 x2 -- x2 x1 ) \ 94 |
; ¯®¬¥ïâì ¬¥áâ ¬¨ ¤¢ ¢¥àå¨å í«¥¬¥â á⥪ |
; XCHG EAX { EBP } |
MOV EDX, [EBP] |
MOV [EBP], EAX |
MOV EAX, EDX |
RET |
EndCode |
Code 2SWAP ;( x1 x2 x3 x4 -- x3 x4 x1 x2 ) \ 94 |
; ®¬¥ïâì ¬¥áâ ¬¨ ¤¢¥ ¢¥à娥 ¯ àë ï祥ª. |
MOV ECX, [EBP] |
MOV EBX, [EBP+4] |
MOV EDX, [EBP+8] |
MOV [EBP+8], ECX |
MOV [EBP+4], EAX |
MOV [EBP], EDX |
MOV EAX, EBX |
RET |
EndCode |
Code OVER ;( x1 x2 -- x1 x2 x1 ) \ 94 |
; ®«®¦¨âì ª®¯¨î x1 ¢¥àè¨ã á⥪ . |
LEA EBP, [EBP-4] |
MOV [EBP], EAX |
MOV EAX, [EBP+4] |
RET |
EndCode |
Code 2OVER ;( x1 x2 x3 x4 -- x1 x2 x3 x4 x1 x2 ) \ 94 |
; ®¯¨à®¢ âì ¯ àã ï祥ª x1 x2 ¢¥àè¨ã á⥪ . |
MOV EDX, [EBP+8] |
MOV [EBP-4], EAX |
MOV [EBP-8], EDX |
MOV EAX, [EBP+4] |
LEA EBP, [EBP-8] |
RET |
EndCode |
Code NIP ;( x1 x2 -- x2 ) \ 94 CORE EXT |
; ¡à âì ¯¥à¢ë© í«¥¬¥â ¯®¤ ¢¥à訮© á⥪ . |
ADD EBP, 4 |
RET |
EndCode |
Code ROT ;( x1 x2 x3 -- x2 x3 x1 ) \ 94 |
; பàãâ¨âì âਠ¢¥àå¨å í«¥¬¥â á⥪ . |
; XCHG EAX [EBP] |
; XCHG EAX 4 [EBP] |
MOV EDX, [EBP] |
MOV [EBP], EAX |
MOV EAX, [EBP+4] |
MOV [EBP+4], EDX |
RET |
EndCode |
Code -ROT ;( x1 x2 x3 -- x3 x1 x2 ) ; !!!!! |
; ¡à ⮥ ROT |
MOV EDX, [EBP+4] |
MOV [EBP+4], EAX |
MOV EAX, [EBP] |
MOV [EBP], EDX |
RET |
EndCode |
Code PICK ;( ... +n -- ... w ) \ Copy the nth stack item to tos. |
MOV EAX, [EBP + EAX*4 ] |
RET |
EndCode |
Code ROLL ;( xu xu-1 ... x0 u -- xu-1 ... x0 xu ) \ 94 CORE EXT |
; ¡à âì u. ®¢¥àãâì u+1 í«¥¬¥â ¢¥à訥 á⥪ . |
; ¥®¯à¥¤¥«¥ ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ ¯¥à¥¤ ¢ë¯®«¥¨¥¬ ROLL |
; á⥪¥ ¬¥ìè¥ ç¥¬ u+2 í«¥¬¥â®¢. |
OR EAX, EAX |
JZ SHORT LL1 |
MOV ECX, EAX |
LEA EAX, [EAX*4] |
MOV EDX, EBP |
ADD EDX, EAX |
MOV EBX, [EDX] |
LL2: LEA EDX, [EDX-4] |
MOV EAX, [EDX] |
MOV [EDX+4], EAX |
DEC ECX |
JNZ SHORT LL2 |
MOV EAX, EBX |
JMP SHORT LL3 |
LL1: MOV EAX, [EBP] |
LL3: LEA EBP, [EBP+4] |
RET |
EndCode |
Code TUCK ;( x1 x2 -- x2 x1 x2 ) \ 94 |
LEA EBP, [EBP-4] |
MOV EDX, [EBP+4] |
MOV [EBP], EDX |
MOV [EBP+4], EAX |
RET |
EndCode |
\ ================================================================ |
\ ⥪ ¢®§¢à ⮢ |
Code 2>R ; 94 CORE EXT |
; â¥à¯à¥â æ¨ï: ᥬ ⨪ ¥®¯à¥¤¥«¥ . |
; 믮«¥¨¥: ;( x1 x2 -- ) ;( R: -- x1 x2 ) |
; ¥à¥¥á⨠¯ àã ï祥ª x1 x2 á⥪ ¢®§¢à ⮢. ¥¬ â¨ç¥áª¨ |
; íª¢¨¢ «¥â® SWAP >R >R. |
POP EBX |
PUSH DWORD PTR [EBP] |
PUSH EAX |
LEA EBP, [EBP+8] |
MOV EAX, [EBP-4] |
JMP EBX |
EndCode |
Code 2R> ; 94 CORE EXT |
; â¥à¯à¥â æ¨ï: ᥬ ⨪ ¥®¯à¥¤¥«¥ . |
; 믮«¥¨¥: ;( -- x1 x2 ) ;( R: x1 x2 -- ) |
; ¥à¥¥á⨠¯ àã ï祥ª x1 x2 á® á⥪ ¢®§¢à ⮢. ¥¬ â¨ç¥áª¨ |
; íª¢¨¢ «¥â® R> R> SWAP. \ !!!! |
LEA EBP, [EBP-8] |
POP EBX |
MOV [EBP+4], EAX |
POP EAX |
POP DWORD PTR [EBP] |
PUSH EBX |
RET |
EndCode |
Code R@ ; 94 |
; ᯮ«¥¨¥: ;( -- x ) ;( R: x -- x ) |
; â¥à¯à¥â æ¨ï: ᥬ ⨪ ¢ ०¨¬¥ ¨â¥à¯à¥â 樨 ¥®¯à¥¤¥«¥ . |
LEA EBP, [EBP-4] |
MOV [EBP], EAX |
MOV EAX, [ESP + 4 ] |
RET |
EndCode |
Code 2R@ ; 94 CORE EXT |
; â¥à¯à¥â æ¨ï: ᥬ ⨪ ¥®¯à¥¤¥«¥ . |
; 믮«¥¨¥: ;( -- x1 x2 ) ;( R: x1 x2 -- x1 x2 ) |
; ®¯¨à®¢ âì ¯ àã ï祥ª x1 x2 á® á⥪ ¢®§¢à ⮢. ¥¬ â¨ç¥áª¨ |
; íª¢¨¢ «¥â® R> R> 2DUP >R >R SWAP. |
LEA EBP, [EBP-8] |
MOV [EBP+4], EAX |
MOV EAX, [ESP + { 2 CELLS } ] |
MOV DWORD PTR [EBP], EAX |
MOV EAX, [ESP + 4 ] |
RET |
EndCode |
\ ================================================================ |
\ ¯¥à 樨 á ¯ ¬ïâìî |
Code @ ;( a-addr -- x ) \ 94 |
; x - § 票¥ ¯® ¤à¥áã a-addr. |
MOV EAX, [EAX ] |
RET |
EndCode |
Code ! ;( x a-addr -- ) \ 94 |
; ¯¨á âì x ¯® ¤à¥áã a-addr. |
MOV EDX, [EBP] |
MOV DWORD PTR [EAX ], EDX |
MOV EAX , [EBP+4] |
ADD EBP , 8 |
RET |
EndCode |
Code C@ ;( c-addr -- char ) \ 94 |
; ®«ãç¨âì ᨬ¢®« ¯® ¤à¥áã c-addr. ¥§ ç 騥 áâ à訥 ¡¨âë ï祩ª¨ ã«¥¢ë¥. |
MOVZX EAX, BYTE PTR [EAX ] |
RET |
EndCode |
Code C! ;( char c-addr -- ) \ 94 |
; ¯¨á âì char ¯® ¤à¥áã a-addr. |
MOV EDX, [EBP] |
MOV BYTE PTR [EAX ], DL |
MOV EAX , [EBP+4] |
ADD EBP , 8 |
RET |
EndCode |
Code W@ ;( c-addr -- word ) |
; ®«ãç¨âì word ¯® ¤à¥áã c-addr. ¥§ ç 騥 áâ à訥 ¡¨âë ï祩ª¨ ã«¥¢ë¥. |
MOVZX EAX, WORD PTR [EAX ] |
RET |
EndCode |
Code W! ;( word c-addr -- ) |
; ¯¨á âì word ¯® ¤à¥áã a-addr. |
MOV EDX, [EBP] |
MOV WORD PTR [EAX ], DX |
MOV EAX , [EBP+4] |
ADD EBP , 8 |
RET |
EndCode |
Code 2@ ;( a-addr -- x1 x2 ) \ 94 |
; ®«ãç¨âì ¯ àã ï祥ª x1 x2, § ¯¨á ãî ¯® ¤à¥áã a-addr. |
; x2 ¯® ¤à¥áã a-addr, x1 ¢ á«¥¤ãî饩 ï祩ª¥. |
; ¢®á¨«ì® DUP CELL+ @ SWAP @ |
MOV EDX, [EAX + 4 ] |
LEA EBP, [EBP-4] |
MOV DWORD PTR [EBP], EDX |
MOV EAX, DWORD PTR [EAX ] |
RET |
EndCode |
Code 2! ;( x1 x2 a-addr -- ) \ 94 |
; ¯¨á âì ¯ àã ï祥ª x1 x2 ¯® ¤à¥áã a-addr, |
; x2 ¯® ¤à¥áã a-addr, x1 ¢ á«¥¤ãîéãî ï祩ªã. |
; ¢®á¨«ì® SWAP OVER ! CELL+ ! |
MOV EDX, [EBP] |
MOV [EAX], EDX |
MOV EDX, [EBP+4] |
MOV [EAX+4], EDX |
LEA EBP, [EBP+0CH] |
MOV EAX, [EBP-4] |
RET |
EndCode |
Code D@ ;( a-addr -- x1 x2 ) |
; 2@ SWAP |
MOV EDX, [EAX] |
LEA EBP, [EBP-4] |
MOV DWORD PTR [EBP], EDX |
MOV EAX, DWORD PTR [EAX+4] |
RET |
EndCode |
Code D! ;( x1 x2 a-addr -- ) |
; >R SWAP R> 2! |
MOV EDX, [EBP] |
MOV [EAX+4], EDX |
MOV EDX, [EBP+4] |
MOV [EAX], EDX |
LEA EBP, [EBP+0CH] |
MOV EAX, [EBP-4] |
RET |
EndCode |
Code EBX@ ;( -- EBX ) |
LEA EBP, [EBP-4] |
mov [ebp],eax |
MOV EAX,EBX |
RET |
EndCode |
\ ================================================================ |
\ ëç¨á«¥¨ï |
Code 1+ ;( n1|u1 -- n2|u2 ) \ 94 |
; ਡ ¢¨âì 1 ª n1|u1 ¨ ¯®«ãç¨âì á㬬ã u2|n2. |
LEA EAX, [EAX+1] |
RET |
EndCode |
Code 1- ;( n1|u1 -- n2|u2 ) \ 94 |
; ëç¥áâì 1 ¨§ n1|u1 ¨ ¯®«ãç¨âì à §®áâì n2|u2. |
LEA EAX, [EAX-1] |
RET |
EndCode |
Code 2+ ;( W -> W+2 ) |
LEA EAX, [EAX+2] |
RET |
EndCode |
Code 2- ;( W -> W-2 ) |
LEA EAX, [EAX-2] |
RET |
EndCode |
Code 2* ;( x1 -- x2 ) \ 94 |
; x2 - १ã«ìâ â ᤢ¨£ x1 ®¤¨ ¡¨â ¢«¥¢®, á § ¯®«¥¨¥¬ |
; ¨¬¥¥¥ § 稬®£® ¡¨â ã«¥¬. |
; SHL EAX |
; LEA EAX, [EAX+EAX] |
LEA EAX, [EAX*2] |
RET |
EndCode |
Code CELL+ ;( a-addr1 -- a-addr2 ) \ 94 |
; ëç¥áâì à §¬¥à ï祩ª¨ ª a-addr1 ¨ ¯®«ãç¨âì a-addr2. |
LEA EAX, [EAX+4] |
RET |
EndCode |
Code CELL- ;( a-addr1 -- a-addr2 ) \ 94 |
; ëç¥áâì à §¬¥à ï祩ª¨ ª a-addr1 ¨ ¯®«ãç¨âì a-addr2. |
LEA EAX, [EAX-4] |
RET |
EndCode |
Code CELLS ;( n1 -- n2 ) \ 94 |
; n2 - à §¬¥à n1 ï祥ª. |
LEA EAX, DWORD PTR [EAX *4 ] |
RET |
EndCode |
Code + ;( n1|u1 n2|u2 -- n3|u3 ) \ 94 |
; «®¦¨âì n1|u1 ¨ n2|u2 ¨ ¯®«ãç¨âì á㬬ã n3|u3. |
ADD EAX, DWORD PTR [EBP] |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code D+ ;( d1|ud1 d2|ud2 -- d3|ud3 ) \ 94 DOUBLE |
; «®¦¨âì d1|ud1 ¨ d2|ud2 ¨ ¤ âì á㬬ã d3|ud3. |
MOV EDX, DWORD PTR [EBP] |
ADD DWORD PTR [EBP + { 2 CELLS } ], EDX |
ADC EAX, DWORD PTR [EBP +4 ] |
LEA EBP, [EBP+8] |
RET |
EndCode |
Code D- ;( d1 d2 -- d3 ) \ 94 DOUBLE |
; perform a double subtract (64bit) |
MOV EDX, DWORD PTR [EBP] |
SUB DWORD PTR [EBP + { 2 CELLS } ], EDX |
SBB [EBP+4], EAX |
MOV EAX, DWORD PTR [EBP +4 ] |
LEA EBP, [EBP+8] |
RET |
EndCode |
Code - ;( n1|u1 n2|u2 -- n3|u3 ) \ 94 |
; ëç¥áâì n2|u2 ¨§ n1|u1 ¨ ¯®«ãç¨âì à §®áâì n3|u3. |
NEG EAX |
ADD EAX, [EBP] |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code 1+! ;( A -> ) |
INC DWORD PTR [EAX ] |
MOV EAX, [EBP] |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code 0! ;( A -> ) |
MOV DWORD PTR [EAX ], 0 |
MOV EAX, [EBP] |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code COUNT ;( c-addr1 -- c-addr2 u ) \ 94 |
; ®«ãç¨âì áâபã ᨬ¢®«®¢ ¨§ áâப¨ á® áç¥â稪®¬ c-addr1. |
; c-addr2 - ¤à¥á ¯¥à¢®£® ᨬ¢®« § c-addr1. |
; u - ᮤ¥à¦¨¬®¥ ¡ ©â c-addr1, ïî饥áï ¤«¨®© áâப¨ ᨬ¢®«®¢, |
; ç¨ î饩áï á ¤à¥á c-addr2. |
LEA EBP, [EBP-4] |
LEA EDX, DWORD PTR [EAX +1 ] |
MOV DWORD PTR [EBP], EDX |
MOVZX EAX, BYTE PTR [EAX ] |
RET |
EndCode |
Code * ;( n1|u1 n2|u2 -- n3|u3 ) \ 94 |
; ¥à¥¬®¦¨âì n1|u1 ¨ n2|u2 ¨ ¯®«ãç¨âì ¯à®¨§¢¥¤¥¨¥ n3|u3. |
IMUL DWORD PTR [EBP] |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code AND ;( x1 x2 -- x3 ) \ 94 |
; x3 - ¯®¡¨â®¢®¥ "" x1 ¨ x2. |
AND EAX, [EBP] |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code OR ;( x1 x2 -- x3 ) \ 94 |
; x3 - ¯®¡¨â®¢®¥ "" x1 ¨ x2. |
OR EAX, [EBP] |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code XOR ;( x1 x2 -- x3 ) \ 94 |
; x3 - ¯®¡¨â®¢®¥ "¨áª«îç î饥 " x1 ¨ x2. |
XOR EAX, [EBP] |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code INVERT ;( x1 -- x2 ) \ 94 |
; ¢¥àâ¨à®¢ âì ¢á¥ ¡¨âë x1 ¨ ¯®«ãç¨âì «®£¨ç¥áªãî ¨¢¥àá¨î x2. |
NOT EAX |
RET |
EndCode |
Code NEGATE ;( n1 -- n2 ) \ 94 |
; n2 - à¨ä¬¥â¨ç¥áª ï ¨¢¥àá¨ï n1. |
NEG EAX |
RET |
EndCode |
Code ABS ;( n -- u ) \ 94 |
; u - ¡á®«îâ ï ¢¥«¨ç¨ n. |
TEST EAX, EAX |
JS { ' NEGATE } |
RET |
EndCode |
Code DNEGATE ;( d1 -- d2 ) \ 94 DOUBLE |
; d2 १ã«ìâ â ¢ëç¨â ¨ï d1 ¨§ ã«ï. |
MOV EDX, [EBP] |
NEG EAX |
NEG EDX |
SBB EAX, 0 |
MOV DWORD PTR [EBP], EDX |
RET |
EndCode |
Code NOOP ;( -> ) |
RET |
EndCode |
Code S>D ;( n -- d ) \ 94 |
; ८¡à §®¢ âì ç¨á«® n ¢ ¤¢®©®¥ ç¨á«® d á ⥬ ¦¥ ç¨á«®¢ë¬ § 票¥¬. |
LEA EBP, [EBP-4] |
MOV [EBP], EAX |
CDQ |
MOV EAX, EDX |
RET |
EndCode |
Code D>S ;( d -- n ) \ 94 DOUBLE |
; n - íª¢¨¢ «¥â d. |
; ᪫îç¨â¥«ì ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ d 室¨âáï ¢¥ ¤¨ ¯ §® |
; § ª®¢ëå ®¤¨ àëå ç¨á¥«. |
MOV EAX, [EBP] |
ADD EBP, 4 |
RET |
EndCode |
Code U>D ;( U -> D ) \ à áè¨à¨âì ç¨á«® ¤® ¤¢®©®© â®ç®á⨠㫥¬ |
LEA EBP, [EBP-4] |
MOV [EBP], EAX |
XOR EAX, EAX |
RET |
EndCode |
Code C>S ;( c -- n ) \ à áè¨à¨âì CHAR |
MOVSX EAX, AL |
RET |
EndCode |
Code UM* ;( u1 u2 -- ud ) \ 94 |
; ud - ¯à®¨§¢¥¤¥¨¥ u1 ¨ u2. ᥠ§ ç¥¨ï ¨ à¨ä¬¥â¨ª ¡¥§§ ª®¢ë¥. |
MUL DWORD PTR [EBP] |
MOV [EBP], EAX |
MOV EAX, EDX |
RET |
EndCode |
Code / ;( n1 n2 -- n3 ) \ 94 |
; ¥«¨âì n1 n2, ¯®«ãç¨âì ç á⮥ n3. |
; ᪫îç¨â¥«ì ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ n2 à ¢¥ ã«î. |
; ᫨ n1 ¨ n2 à §«¨ç îâáï ¯® § ªã - ¢®§¢à é ¥¬ë© १ã«ìâ â § ¢¨á¨â ®â |
; ॠ«¨§ 樨. |
MOV ECX, EAX |
MOV EAX, [EBP] |
CDQ |
IDIV ECX |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code U/ ;( W1, W2 -> W3 ) \ ¡¥§§ ª®¢®¥ ¤¥«¥¨¥ W1 W2 |
MOV ECX, EAX |
MOV EAX, [EBP] |
XOR EDX, EDX |
LEA EBP, [EBP+4] |
DIV ECX |
RET |
EndCode |
Code +! ;( n|u a-addr -- ) \ 94 \ !!!!! |
; ਡ ¢¨âì n|u ª ®¤¨ ஬ã ç¨á«ã ¯® ¤à¥áã a-addr. |
MOV EDX, [EBP] |
ADD DWORD PTR [EAX ], EDX |
MOV EAX, [EBP+4] |
LEA EBP, [EBP+8] |
RET |
EndCode |
Code MOD ;( n1 n2 -- n3 ) \ 94 |
; ¥«¨âì n1 n2, ¯®«ãç¨âì ®áâ ⮪ n3. |
; ᪫îç¨â¥«ì ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ n2 à ¢¥ ã«î. |
; ᫨ n1 ¨ n2 à §«¨ç îâáï ¯® § ªã - ¢®§¢à é ¥¬ë© १ã«ìâ â § ¢¨á¨â ®â |
; ॠ«¨§ 樨. |
MOV ECX, EAX |
MOV EAX, [EBP] |
LEA EBP, [EBP+4] |
CDQ |
IDIV ECX |
MOV EAX, EDX |
RET |
EndCode |
Code /MOD ;( n1 n2 -- n3 n4 ) \ 94 |
; ¥«¨âì n1 n2, ¤ âì ®áâ ⮪ n3 ¨ ç á⮥ n4. |
; ¥®¤®§ ç ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ n2 ã«ì. |
MOV ECX, EAX |
MOV EAX, [EBP] |
CDQ |
IDIV ECX |
MOV [EBP], EDX |
RET |
EndCode |
Code UMOD ;( W1, W2 -> W3 ) \ ®áâ ⮪ ®â ¤¥«¥¨ï W1 W2 |
MOV ECX, EAX |
XOR EDX, EDX |
MOV EAX, [EBP] |
LEA EBP, [EBP+4] |
DIV ECX |
MOV EAX, EDX |
RET |
EndCode |
Code UM/MOD ;( ud u1 -- u2 u3 ) \ 94 |
; ¥«¨âì ud u1, ¯®«ãç¨âì ç á⮥ u3 ¨ ®áâ ⮪ u2. |
; ᥠ§ ç¥¨ï ¨ à¨ä¬¥â¨ª ¡¥§§ ª®¢ë¥. |
; ᪫îç¨â¥«ì ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ u1 ®«ì ¨«¨ ç á⮥ |
; 室¨âáï ¢¥ ¤¨ ¯ §® ®¤¨ àëå ¡¥§§ ª®¢ëå ç¨á¥«. |
MOV ECX, EAX |
MOV EDX, [EBP] |
MOV EAX, [EBP+4] |
DIV ECX |
LEA EBP, [EBP+4] |
MOV [EBP], EDX |
RET |
EndCode |
Code 2/ ;( x1 -- x2 ) \ 94 |
; x2 - १ã«ìâ â ᤢ¨£ x1 ®¤¨ ¡¨â ¢¯à ¢® ¡¥§ ¨§¬¥¥¨ï áâ à襣® ¡¨â . |
SAR EAX,1 |
RET |
EndCode |
Code */MOD ;( n1 n2 n3 -- n4 n5 ) \ 94 |
; ¬®¦¨âì n1 n2, ¯®«ãç¨âì ¯à®¬¥¦ãâ®çë© ¤¢®©®© १ã«ìâ â d. |
; §¤¥«¨âì d n3, ¯®«ãç¨âì ®áâ ⮪ n4 ¨ ç á⮥ n5. |
MOV EBX, EAX |
MOV EAX, [EBP] |
MOV ECX, [EBP+4] |
IMUL ECX |
IDIV EBX |
MOV [EBP+4], EDX |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code M* ;( n1 n2 -- d ) \ 94 |
; d - § ª®¢ë© १ã«ìâ â 㬮¦¥¨ï n1 n2. |
IMUL DWORD PTR [EBP] |
MOV [EBP], EAX |
MOV EAX, EDX |
RET |
EndCode |
Code LSHIFT ;( x1 u -- x2 ) ; 94 |
; ¤¢¨ãâì x1 u ¡¨â ¢«¥¢®. ®¬¥áâ¨âì 㫨 ¢ ¨¬¥¥¥ § ç¨¬ë¥ ¡¨âë, |
; ®á¢®¡®¦¤ ¥¬ë¥ ¯à¨ ᤢ¨£¥. |
; ¥®¤®§ ç ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ u ¡®«ìè¥ ¨«¨ à ¢® |
; ç¨á«ã ¡¨â ¢ ï祩ª¥. |
MOV ECX, EAX |
MOV EAX, [EBP] |
SHL EAX, CL |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code RSHIFT ;( x1 u -- x2 ) \ 94 |
; ¤¢¨ãâì x1 u ¡¨â ¢¯à ¢®. ®¬¥áâ¨âì 㫨 ¢ ¨¡®«¥¥ § ç¨¬ë¥ ¡¨âë, |
; ®á¢®¡®¦¤ ¥¬ë¥ ¯à¨ ᤢ¨£¥. |
; ¥®¤®§ ç ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ u ¡®«ìè¥ ¨«¨ à ¢® |
; ç¨á«ã ¡¨â ¢ ï祩ª¥. |
MOV ECX, EAX |
MOV EAX, [EBP] |
SHR EAX, CL |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code SM/REM ;( d1 n1 -- n2 n3 ) \ 94 |
; §¤¥«¨âì d1 n1, ¯®«ãç¨âì ᨬ¬¥âà¨ç®¥ ç á⮥ n3 ¨ ®áâ ⮪ n2. |
; å®¤ë¥ ¨ ¢ëå®¤ë¥ à£ã¬¥âë § ª®¢ë¥. |
; ¥®¤®§ ç ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ n1 ®«ì, ¨«¨ ç á⮥ ¢¥ |
; ¤¨ ¯ §® ®¤¨ àëå § ª®¢ëå ç¨á¥«. |
MOV EBX, EAX |
MOV EDX, [EBP] |
MOV EAX, [EBP+4] |
IDIV EBX |
LEA EBP, [EBP+4] |
MOV [EBP], EDX |
RET |
EndCode |
Code FM/MOD ;( d1 n1 -- n2 n3 ) \ 94 |
; Ðàçäåëèòü d1 íà n1, ïîëó÷èòü ÷àñòíîå n3 è îñòàòîê n2. |
; Âõîäíûå è âûõîäíûå àðãóìåíòû çíàêîâûå. |
; Íåîäíîçíà÷íàÿ ñèòóàöèÿ âîçíèêàåò, åñëè n1 íîëü, èëè ÷àñòíîå âíå |
; äèàïàçîíà îäèíàðíûõ çíàêîâûõ ÷èñåë. |
MOV ECX, EAX |
MOV EDX, [EBP] |
MOV EBX, EDX |
MOV EAX, [EBP+4] |
IDIV ECX |
TEST EDX, EDX ; Îñòàòîê-òî åñòü? |
JZ SHORT @@1 |
XOR EBX, ECX ; À àðãóìåíòû ðàçíîãî çíàêà? |
JNS SHORT @@1 |
DEC EAX |
ADD EDX, ECX |
@@1: LEA EBP, [EBP+4] |
MOV [EBP], EDX |
RET |
EndCode |
\ ================================================================ |
\ à ¢¥¨ï |
Code = ;( x1 x2 -- flag ) \ 94 |
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ x1 ¯®¡¨â® à ¢¥ x2. |
XOR EAX, [EBP] |
SUB EAX, 1 |
SBB EAX, EAX |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code <> ;( x1 x2 -- flag ) \ 94 CORE EXT |
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ x1 ¥ à ¢¥ x2. |
XOR EAX, [EBP] |
NEG EAX |
SBB EAX, EAX |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code < ;( n1 n2 -- flag ) \ 94 |
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ n1 ¬¥ìè¥ n2. |
CMP [EBP], EAX |
SETGE AL |
AND EAX, 01 |
DEC EAX |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code > ;( n1 n2 -- flag ) \ 94 |
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ n1 ¡®«ìè¥ n2. |
CMP EAX, [EBP] |
SETGE AL |
AND EAX, 01 |
DEC EAX |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code WITHIN ;( n1 low high -- f1 ) \ f1=true if ((n1 >= low) & (n1 < high)) |
MOV EBX, [EBP+4] |
SUB EAX, [EBP] |
SUB EBX, [EBP] |
SUB EBX, EAX |
SBB EAX, EAX |
ADD EBP, 8 |
RET |
EndCode |
Code D< ;( d1 d2 -- flag ) \ DOUBLE |
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ d1 ¬¥ìè¥ d2. |
MOV EBX, [EBP] |
CMP DWORD PTR [EBP +8 ], EBX |
SBB DWORD PTR [EBP +4 ], EAX |
MOV EAX, 0 |
SIF < |
DEC EAX |
STHEN |
ADD EBP, 0CH |
RET |
EndCode |
Code D> ;( d1 d2 -- flag ) \ DOUBLE |
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ d1 ¡®«ìè¥ d2. |
MOV EBX, [EBP] |
CMP EBX, [EBP+8] |
SBB EAX, [EBP+4] |
SAR EAX, 1FH |
ADD EBP, 0CH |
RET |
EndCode |
Code U< ;( u1 u2 -- flag ) \ 94 |
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ u1 ¬¥ìè¥ u2. |
CMP [EBP], EAX |
SBB EAX, EAX |
ADD EBP, 04 |
RET |
EndCode |
Code U> ;( u1 u2 -- flag ) \ 94 |
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ u1 ¡®«ìè¥ u2. |
CMP EAX, [EBP] |
SBB EAX, EAX |
ADD EBP, 04 |
RET |
EndCode |
Code 0< ;( n -- flag ) \ 94 |
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ n ¬¥ìè¥ ã«ï. |
SAR EAX, 1F |
RET |
EndCode |
Code 0= ;( x -- flag ) \ 94 |
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ x à ¢® ã«î. |
SUB EAX, 1 |
SBB EAX, EAX |
RET |
EndCode |
Code 0<> ;( x -- flag ) \ 94 CORE EXT |
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ x ¥ à ¢® ã«î. |
NEG EAX |
SBB EAX, EAX |
RET |
EndCode |
Code D0= ;( xd -- flag ) \ 94 DOUBLE |
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ xd à ¢¥ ã«î. |
OR EAX, [EBP] |
SUB EAX, 1 |
SBB EAX, EAX |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code D= ;( xd1 xd2 -- flag ) \ 94 DOUBLE |
; flag is true if and only if xd1 is bit-for-bit the same as xd2 |
MOV EDX,[EBP] |
XOR EAX,[EBP+4] |
XOR EDX,[EBP+8] |
OR EAX,EDX |
SUB EAX,1 |
SBB EAX,EAX |
LEA EBP,[EBP+0CH] |
RET |
EndCode |
Code D2* ;( xd1 -- xd2 ) \ 94 DOUBLE |
; xd2 is the result of shifting xd1 one bit toward the most-significant |
; bit, filling the vacated least-significant bit with zero |
SHL DWORD PTR [EBP], 1 |
RCL EAX, 1 |
RET |
EndCode |
Code D2/ ;( xd1 -- xd2 ) \ 94 DOUBLE |
; xd2 is the result of shifting xd1 one bit toward the least-significant bit, |
; leaving the most-significant bit unchanged |
SAR EAX, 1 |
RCR DWORD PTR [EBP], 1 |
RET |
EndCode |
\ ================================================================ |
\ âப¨ |
Code -TRAILING ;( c-addr u1 -- c-addr u2 ) \ 94 STRING |
; ᫨ u1 ¡®«ìè¥ ã«ï, u2 à ¢® u1, 㬥ì襮¬ã ª®«¨ç¥á⢮ ¯à®¡¥«®¢ ¢ ª®æ¥ |
; ᨬ¢®«ì®© áâப¨, § ¤ ®© c-addr ¨ u1. ᫨ u1 ®«ì ¨«¨ ¢áï áâப á®á⮨â |
; ¨§ ¯à®¡¥«®¢, u2 ®«ì. |
PUSH EDI |
MOV ECX, EAX |
SIF C0<> |
MOV EDI, DWORD PTR [EBP] |
ADD EDI, ECX |
DEC EDI |
MOV AL, 20H |
STD |
REPZ SCASB |
SIF 0<> |
INC ECX |
STHEN |
CLD |
MOV EAX, ECX |
STHEN |
POP EDI |
RET |
EndCode |
Code COMPARE ;( c-addr1 u1 c-addr2 u2 -- n ) \ 94 STRING !!!!! |
; à ¢¨âì áâபã, § ¤ ãî c-addr1 u1, á® áâப®©, § ¤ ®© c-addr2 u2. |
; âப¨ áà ¢¨¢ îâáï, ç¨ ï á § ¤ ëå ¤à¥á®¢, ᨬ¢®« § ᨬ¢®«®¬, ¤® ¤«¨ë |
; ¨¡®«¥¥ ª®à®âª®© ¨§ áâப ¨«¨ ¤® 宦¤¥¨ï à §«¨ç¨©. ᫨ ¤¢¥ áâப¨ |
; ¨¤¥â¨çë, n ®«ì. ᫨ ¤¢¥ áâப¨ ¨¤¥â¨çë ¤® ¤«¨ë ¨¡®«¥¥ ª®à®âª®© ¨§ |
; áâப, â® n ¬¨ãá ¥¤¨¨æ (-1), ¥á«¨ u1 ¬¥ìè¥ u2, ¨ ç¥ ¥¤¨¨æ (1). |
; ᫨ ¤¢¥ áâப¨ ¥ ¨¤¥â¨çë ¤® ¤«¨ë ¨¡®«¥¥ ª®à®âª®© ¨§ áâப, â® n ¬¨ãá |
; ¥¤¨¨æ (-1), ¥á«¨ ¯¥à¢ë© ¥á®¢¯ ¤ î騩 ᨬ¢®« áâப¨, § ¤ ®© c-addr1 u1 |
; ¨¬¥¥â ¬¥ì襥 ç¨á«®¢®¥ § 票¥, 祬 ᮮ⢥âáâ¢ãî騩 ᨬ¢®« ¢ áâப¥, |
; § ¤ ®© c-addr2 u2, ¨ ¥¤¨¨æ ¢ ¯à®â¨¢®¬ á«ãç ¥. |
PUSH EDI |
MOV ECX, EAX |
SUB EAX, EAX |
CMP ECX, [EBP +4 ] |
SIF 0<> |
SIF U< |
INC EAX |
SELSE |
DEC EAX |
MOV ECX, [EBP +4 ] |
STHEN |
STHEN |
MOV ESI, [EBP + { 2 CELLS } ] |
MOV EDI, [EBP] |
REPE CMPSB |
SIF 0<> |
SIF U>= |
MOV EAX, 1 |
SELSE |
MOV EAX, -1 |
STHEN |
STHEN |
LEA EBP, [EBP + { 3 CELLS } ] |
POP EDI |
RET |
EndCode |
Code SEARCH ;( c-addr1 u1 c-addr2 u2 -- c-addr3 u3 flag ) \ 94 STRING |
; ந§¢¥á⨠¯®¨áª ¢ áâப¥, § ¤ ®© c-addr1 u1, áâப¨, § ¤ ®© c-addr2 u2. |
; ᫨ ä« £ "¨á⨠", ᮢ¯ ¤¥¨¥ ©¤¥® ¯® ¤à¥áã c-addr3 á ®á⠢訬¨áï u3 |
; ᨬ¢®« ¬¨. ᫨ ä« £ "«®¦ì", ᮢ¯ ¤¥¨ï ¥ ©¤¥®, ¨ c-addr3 ¥áâì c-addr1, |
; ¨ u3 ¥áâì u1. \ !!!!! |
LEA EBP, [EBP-4] |
MOV [EBP], EAX |
PUSH EDI |
CLD |
MOV EBX, DWORD PTR [EBP] |
OR EBX, EBX |
SIF 0<> |
MOV EDX, DWORD PTR [EBP + { 2 CELLS } ] |
MOV EDI, DWORD PTR [EBP + { 3 CELLS } ] |
ADD EDX, EDI |
SBEGIN |
MOV ESI, DWORD PTR [EBP +4 ] |
LODSB |
MOV ECX, EDX |
SUB ECX, EDI |
JECXZ LLD |
REPNZ |
SCASB |
JNE SHORT LLD ; ¢® ¢á¥© áâப¥ ¥â ¯¥à¢®£® ᨬ¢®« ¨áª®¬®© áâப¨ |
CMP EBX, 1 |
JZ SHORT LLC ; ¨áª®¬ ï áâப ¨¬¥« ¤«¨ã 1 ¨ ©¤¥ |
MOV ECX, EBX |
DEC ECX |
MOV EAX, EDX |
SUB EAX, EDI |
CMP EAX, ECX |
JC SHORT LLD ; ®áâ ⮪ áâப¨ ª®à®ç¥ ¨áª®¬®© áâப¨ |
PUSH EDI |
REPZ CMPSB |
POP EDI |
SUNTIL 0= |
LLC: DEC EDI ; 諨 ¯®«®¥ ᮢ¯ ¤¥¨¥ |
SUB EDX, EDI |
MOV DWORD PTR [EBP + { 3 CELLS } ], EDI |
MOV DWORD PTR [EBP + { 2 CELLS } ], EDX |
STHEN |
MOV EAX, -1 |
JMP SHORT LLA |
LLD: XOR EAX, EAX |
LLA: LEA EBP, [EBP+4] |
MOV [EBP], EAX |
POP EDI |
MOV EAX, [EBP] |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code CMOVE ;( c-addr1 c-addr2 u -- ) \ 94 STRING |
; ᫨ u ¡®«ìè¥ ã«ï, ª®¯¨à®¢ âì u ¯®á«¥¤®¢ ⥫ìëå ᨬ¢®«®¢ ¨§ ¯à®áâà á⢠|
; ¤ ëå ç¨ ï á ¤à¥á c-addr1 ¢ c-addr2, ᨬ¢®« § ᨬ¢®«®¬, ç¨ ï á |
; ¬« ¤è¨å ¤à¥á®¢ ª áâ à訬. |
MOV EDX, EDI |
MOV ECX, EAX |
MOV EDI, DWORD PTR [EBP] |
MOV ESI, DWORD PTR [EBP +4 ] |
CLD |
REPZ MOVSB |
LEA EBP, [EBP+0CH] |
MOV EAX, [EBP-4] |
MOV EDI, EDX |
RET |
EndCode |
: QCMOVE CMOVE ; |
Code CMOVE> ;( c-addr1 c-addr2 u -- ) \ 94 STRING |
; ᫨ u ¡®«ìè¥ ã«ï, ª®¯¨à®¢ âì u ¯®á«¥¤®¢ ⥫ìëå ᨬ¢®«®¢ ¨§ ¯à®áâà á⢠|
; ¤ ëå ç¨ ï á ¤à¥á c-addr1 ¢ c-addr2, ᨬ¢®« § ᨬ¢®«®¬, ç¨ ï á® |
; áâ àè¨å ¤à¥á®¢ ª ¬« ¤è¨¬. |
MOV EDX, EDI |
MOV ECX, EAX |
MOV EDI, [EBP] |
MOV ESI, [EBP+4] |
STD |
ADD EDI, ECX |
DEC EDI |
ADD ESI, ECX |
DEC ESI |
REP MOVSB |
MOV EDI, EDX |
LEA EBP, [EBP+0CH] |
MOV EAX, [EBP-4] |
RET |
EndCode |
Code FILL ;( c-addr u char -- ) \ 94 \ !!!!! |
; ᫨ u ¡®«ìè¥ ã«ï, § á« âì char ¢ u ¡ ©â®¢ ¯® ¤à¥áã c-addr. |
MOV EDX, EDI |
MOV ECX, [EBP] |
MOV EDI, [EBP+4] |
CLD |
REP STOSB |
MOV EDI, EDX |
LEA EBP, [EBP+0CH] |
MOV EAX, [EBP-4] |
RET |
EndCode |
Code ZCOUNT ;( c-addr -- c-addr u ) |
LEA EBP, [EBP-4] |
MOV [EBP], EAX |
XOR EBX, EBX |
SBEGIN |
MOV BL, BYTE PTR [EAX ] |
INC EAX |
OR BL, BL |
SUNTIL 0= |
DEC EAX |
SUB EAX, [EBP] |
RET |
EndCode |
\ ================================================================ |
\ ª § ⥫¨ á⥪®¢ |
Code SP! ;( A -> ) |
LEA EBP, [EAX+4] |
MOV EAX, [EBP-4] |
RET |
EndCode |
Code RP! ;( A -> ) |
POP EBX |
MOV ESP, EAX |
MOV EAX, [EBP] |
LEA EBP, [EBP+4] |
JMP EBX |
EndCode |
Code SP@ ;( -> A ) |
LEA EBP, [EBP-4] |
MOV [EBP], EAX |
MOV EAX, EBP |
RET |
EndCode |
Code RP@ ;( -- RP ) |
LEA EBP, [EBP-4] |
MOV [EBP], EAX |
LEA EAX, [ESP + 4 ] |
RET |
EndCode |
\ ================================================================ |
\ ¥£¨áâà ¯®â®ª (§ ¤ ç¨ ¢ãâਠä®àâ ) |
Code TlsIndex! ;( x -- ) \ 㪠§ â¥«ì «®ª «ì®£® ¯ã« ¯®â®ª |
MOV EDI, EAX |
MOV EAX, [EBP] |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code TlsIndex@ ;( -- x ) |
LEA EBP, [EBP-4] |
MOV [EBP], EAX |
MOV EAX, EDI |
RET |
EndCode |
\ ================================================================ |
\ ¨ª«ë |
Code C-J |
LEA EBP, [EBP-4] |
MOV [EBP], EAX |
MOV EAX, DWORD PTR [ESP + { 3 CELLS } ] |
SUB EAX, DWORD PTR [ESP + { 4 CELLS } ] |
RET |
EndCode |
( inline'ë ¤«ï ª®¬¯¨«ï樨 横«®¢ ) |
Code C-DO |
LEA EBP, [EBP+8] |
MOV EDX, 80000000H |
SUB EDX, [EBP-8] |
LEA EBX, [EAX+EDX] |
MOV EAX, [EBP-4] |
MOV EDX, EDX ; FOR OPT |
; PUSH EDX |
; PUSH EBX |
RET |
EndCode |
Code C-?DO |
CMP EAX, [EBP-8] |
SIF 0= |
MOV EAX, [EBP-4] |
JMP EBX |
STHEN |
PUSH EBX |
MOV EBX , 80000000 |
SUB EBX, [EBP-8] |
PUSH EBX ; 80000000h-to |
ADD EBX, EAX |
PUSH EBX ; 80000000H-to+from |
MOV EAX, [EBP-4] |
RET |
EndCode |
Code ADD[ESP],EAX |
ADD [ESP] , EAX |
RET |
EndCode |
Code C-I |
LEA EBP, [EBP-4] |
MOV [EBP], EAX |
MOV EAX, DWORD PTR [ESP] |
SUB EAX, [ESP+4] |
RET |
EndCode |
Code C->R |
PUSH EAX |
MOV EAX, [EBP] |
LEA EBP, [EBP+4] |
RET |
EndCode |
Code C-R> |
LEA EBP, [EBP-4] |
MOV [EBP], EAX |
POP EAX |
RET |
EndCode |
Code C-RDROP |
ADD ESP, 4 |
RET |
EndCode |
Code C-2RDROP |
ADD ESP, 8 |
RET |
EndCode |
Code C-3RDROP |
ADD ESP, 0CH |
RET |
EndCode |
TRUE [IF] |
Code C-EXECUTE ;( i*x xt -- j*x ) \ 94 |
; ¡à âì xt á® á⥪ ¨ ¢ë¯®«¨âì § ¤ ãî ¨¬ ᥬ ⨪ã. |
; à㣨¥ ¨§¬¥¥¨ï á⥪¥ ®¯à¥¤¥«ïîâáï á«®¢®¬, ª®â®à®¥ ¢ë¯®«ï¥âáï. |
MOV EDX, EAX |
MOV EAX, [EBP] |
LEA EBP, [EBP+4] |
CALL EDX |
RET |
EndCode |
[THEN] |
Code EXECUTE ;( i*x xt -- j*x ) \ 94 |
; ¡à âì xt á® á⥪ ¨ ¢ë¯®«¨âì § ¤ ãî ¨¬ ᥬ ⨪ã. |
; à㣨¥ ¨§¬¥¥¨ï á⥪¥ ®¯à¥¤¥«ïîâáï á«®¢®¬, ª®â®à®¥ ¢ë¯®«ï¥âáï. |
MOV EBX, EAX |
MOV EAX, [EBP] |
LEA EBP, [EBP+4] |
JMP EBX |
EndCode |
Code @EXECUTE ;( i*x xt -- j*x ) |
MOV EBX, EAX |
MOV EAX, [EBP] |
LEA EBP, [EBP+4] |
JMP [EBX] |
EndCode |
\ ================================================================ |
\ ®¤¤¥à¦ª LOCALS |
Code DRMOVE ;( x1 ... xn n*4 -- ) |
; ¯¥à¥¥á⨠n ç¨á¥« á® á⥪ ¤ ëå á⥪ ¢®§¢à ⮢ |
POP EDX ; ¤à¥á ¢®§¢à â |
MOV ESI, EAX |
LL1: |
PUSH DWORD PTR [EBP+ESI-4] |
SUB ESI, 4 |
JNZ SHORT LL1 |
ADD EBP, EAX |
MOV EAX, [EBP] |
LEA EBP, [EBP+4] |
JMP EDX |
EndCode |
Code NR> ;( R: x1 ... xn n -- D: x1 ... xn n ) |
; ¥à¥¥á⨠n ç¨á¥« á® á⥪ ¢®§¢à ⮢ á⥪ ¤ ëå |
; ᫨ n=0 ¢®§¢à â¨âì 0 |
POP EDX ; ¤à¥á ¢®§¢à â |
LEA EBP, [EBP-4] |
MOV [EBP], EAX |
POP EAX |
OR EAX, EAX |
JNZ @@2 |
JMP EDX |
@@2: LEA EAX, [EAX*4] |
MOV ESI, EAX |
@@1: |
MOV EBX, EBP |
SUB EBX, ESI |
POP DWORD PTR [EBX] |
SUB ESI, 4 |
JNZ SHORT @@1 |
SUB EBP, EAX |
SAR EAX, 2 |
JMP EDX |
EndCode |
Code N>R ;( D: x1 ... xn n -- R: x1 ... xn n ) |
; ¯¥à¥¥á⨠n ç¨á¥« á® á⥪ ¤ ëå á⥪ ¢®§¢à ⮢ |
LEA EBP, [EBP-4] |
MOV [EBP], EAX |
LEA EAX, [EAX*4+4] |
POP EDX ; ¤à¥á ¢®§¢à â |
MOV ESI, EAX |
@@1: |
PUSH DWORD PTR [EBP+ESI-4] |
SUB ESI, 4 |
JNZ SHORT @@1 |
ADD EBP, EAX |
MOV EAX, [EBP] |
LEA EBP, [EBP+4] |
JMP EDX |
EndCode |
Code NRCOPY ;( D: i*x i -- D: i*x i R: i*x i ) |
; ᪮¯¨à®¢ âì n ç¨á¥« á® á⥪ ¤ ëå á⥪ ¢®§¢à ⮢ |
MOV ECX, EAX |
LEA ECX, [ECX*4] |
POP EDX ; ¤à¥á ¢®§¢à â |
JECXZ @@2 |
MOV ESI, ECX |
@@1: |
PUSH DWORD PTR [ESI+EBP-4] |
SUB ESI, 4 |
JNZ SHORT @@1 |
@@2: |
PUSH EAX |
JMP EDX |
EndCode |
Code RP+@ ;( offs -- x ) |
; ¢§ïâì ç¨á«® ᮠᬥ饨¥¬ offs ¡ ©â ®â ¢¥àè¨ë á⥪ ¢®§¢à ⮢ (0 RP+@ == RP@) |
MOV EAX, [EAX+ESP+4] |
RET |
EndCode |
Code RP+ ;( offs -- addr ) |
; ¢§ïâì ¤à¥á ᮠᬥ饨¥¬ offs ¡ ©â ®â ¢¥àè¨ë á⥪ ¢®§¢à ⮢ |
LEA EAX, [EAX+ESP+4] |
RET |
EndCode |
Code RP+! ;( x offs -- ) |
; § ¯¨á âì ç¨á«® x ¯® ᬥ饨î offs ¡ ©â ®â ¢¥àè¨ë á⥪ ¢®§¢à ⮢ |
MOV EBX, [EBP] |
MOV [EAX+ESP+4], EBX |
LEA EBP, [EBP+8] |
MOV EAX, [EBP-4] |
RET |
EndCode |
Code RALLOT ;( n -- addr ) |
; § १¥à¢¨à®¢ âì n ï祥ª á⥪¥ ¢®§¢à ⮢, |
; ᤥ« ¥¬ á ¨¨æ¨ «¨§ 樥© ( â® ¥á«¨ ¡®«ìè¥ 8 ¢ë¤¥«¨¬, exception ¬®¦¥â) |
POP EDX |
MOV ECX, EAX |
XOR EAX, EAX |
@@1: PUSH EAX |
DEC ECX |
JNZ SHORT @@1 |
MOV EAX, ESP |
JMP EDX |
EndCode |
Code (RALLOT) ;( n -- ) |
; § १¥à¢¨à®¢ âì n ï祥ª á⥪¥ ¢®§¢à ⮢ |
POP EDX |
MOV ECX, EAX |
XOR EAX, EAX |
@@1: PUSH EAX |
DEC ECX |
JNZ SHORT @@1 |
MOV EAX, [EBP] |
LEA EBP, [EBP+4] |
JMP EDX |
EndCode |
Code RFREE ;( n -- ) |
; ¢¥àãâì n ï祥ª á⥪ ¢®§¢à ⮢ |
POP EDX |
LEA ESP, [ESP+EAX*4] |
MOV EAX, [EBP] |
LEA EBP, [EBP+4] |
JMP EDX |
EndCode |
Code (LocalsExit) ;( -- ) |
; ¢¥àãâì ¯ ¬ïâì ¢ á⥪ ¢®¢à ⮢, ç¨á«® ¡ ©â «¥¦¨â á⥪¥ |
POP EBX |
ADD ESP, EBX |
RET |
EndCode |
Code TIMER@ ;( -- tlo thi ) \ ®«ìª® ¤«ï Intel Pentium ¨ ¢ëè¥!!! |
; ®§¢à â¨âì § 票¥ â ©¬¥à ¯à®æ¥áá®à ª ª ud |
MOV [EBP-4], EAX |
RDTSC |
MOV [EBP-8], EDX |
LEA EBP, [EBP-8] |
XCHG EAX, [EBP] |
RET |
EndCode |
\ «ï ®áâ «ìëå ¯à®æ¥áá®à®¢ à ᪮¬¬¥â¨àã©â¥: |
\ : TIMER@ 0 GetTickCount ; |
Code TRAP-CODE ;( D: j*x u R: i*x i -- i*x u ) |
; ᯮ¬®£ ⥫쮥 á«®¢® ¤«ï ¢®ááâ ®¢«¥¨ï § 票©, á®åà ¥ëå |
; ¯¥à¥¤ CATCH á⥪¥ ¢®§¢à ⮢ |
POP EDX |
POP ESI |
OR ESI, ESI |
JZ @@2 |
LEA ESI, [ESI*4] |
MOV ECX, ESI |
@@1: MOV EBX, [ESI+ESP-4] |
MOV [ESI+EBP-4], EBX |
SUB ESI, 4 |
JNZ SHORT @@1 |
ADD ESP, ECX |
@@2: JMP EDX |
EndCode |
DECIMAL |
/programs/develop/SPForth/src/spf_forthproc.f_L |
---|
0,0 → 1,4076 |
ZZ=D0 ( á®¢ë¥ ¨§ª®ã஢¥¢ë¥ á«®¢ "ä®àâ-¯à®æ¥áá®à " |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
८¡à §®¢ ¨¥ ¨§ 16-à §à冷£® ¢ 32-à §àï¤ë© ª®¤ - 1995-96££ |
¥¢¨§¨ï - á¥âï¡àì 1999 |
) |
( ¥ «¨§ æ¨ï ¤«ï ¯®¤¯à®£à ¬¬®£® è¨â®£® ª®¤ . |
ESP - 㪠§ ⥫ì á⥪ ¢®§¢à ⮢ |
EBP - 㪠§ ⥫ì á⥪ ¤ ëå |
EDI - á®åà ï¥¬ë© à¥£¨áâà [㪠§ â¥«ì ¤ ëå ¯®â®ª ¢ SPF] |
) |
HEX |
\ ================================================================ |
\ ⥪®¢ë¥ ¬ ¨¯ã«ï樨 |
?HS |
Code DUP ;( x -- x x ) \ 94 |
59CB58 70 CB 59 00 00 03 44 55 50 E1 32 58 00 00 00 00 pËY...DUPá2X.... |
59CB68 00 00 00 00 00 00 00 00 ........ |
; த㡫¨à®¢ âì x. |
LEA EBP, [EBP-4] |
59CB70 8D 6D FC mü |
mov [ebp],eax |
59CB73 89 45 00 E. |
RET |
59CB76 C3 Ã |
EndCode |
\ ' DUP TO 'DUP_V |
Code ?DUP ;( x -- 0 | x x ) \ 94 |
59CB77 90 CB 59 00 00 04 3F 44 55 50 5D CB 59 00 00 00 ËY...?DUP]ËY... |
59CB87 00 00 00 00 00 00 00 00 00 ......... |
; த㡫¨à®¢ âì x, ¥á«¨ ¥ ®«ì. |
OR EAX, EAX |
59CB90 0B C0 .À |
JNZ { ' DUP } |
59CB92 75 DC uÜ |
RET |
59CB94 C3 Ã |
EndCode |
Code 2DUP ;( x1 x2 -- x1 x2 x1 x2 ) \ 94 |
59CB95 B0 CB 59 00 00 04 32 44 55 50 7C CB 59 00 00 00 °ËY...2DUP|ËY... |
59CBA5 00 00 00 00 00 00 00 00 00 00 00 ........... |
; த㡫¨à®¢ âì ¯ àã ï祥ª x1 x2. |
MOV EDX, [EBP] |
59CBB0 8B 55 00 U. |
MOV [EBP-4], EAX |
59CBB3 89 45 FC Eü |
MOV [EBP-8], EDX |
59CBB6 89 55 F8 Uø |
LEA EBP, [EBP-8] |
59CBB9 8D 6D F8 mø |
RET |
59CBBC C3 Ã |
EndCode |
Code DROP ;( x -- ) \ 94 |
59CBBD D0 CB 59 00 00 04 44 52 4F 50 9A CB 59 00 00 00 ÐËY...DROPËY... |
59CBCD 00 00 00 ... |
; ¡à âì x á® á⥪ . |
mov eax,[ebp] |
59CBD0 8B 45 00 E. |
LEA EBP, [EBP+4] |
59CBD3 8D 6D 04 m. |
RET |
59CBD6 C3 Ã |
EndCode |
\ ' DROP TO 'DROP_V |
Code MAX ;( n1 n2 -- n3 ) \ 94 |
59CBD7 F0 CB 59 00 00 03 4D 41 58 C2 CB 59 00 00 00 00 ðËY...MAXÂËY.... |
59CBE7 00 00 00 00 00 00 00 00 00 ......... |
; n3 - ¡®«ì襥 ¨§ n1 ¨ n2. |
CMP EAX, [EBP] |
59CBF0 3B 45 00 ;E. |
JL { ' DROP } |
59CBF3 7C DB |Û |
LEA EBP, [EBP+4] |
59CBF5 8D 6D 04 m. |
RET |
59CBF8 C3 Ã |
EndCode |
Code MIN ;( n1 n2 -- n3 ) \ 94 |
59CBF9 10 CC 59 00 00 03 4D 49 4E DC CB 59 00 00 00 00 .ÌY...MINÜËY.... |
59CC09 00 00 00 00 00 00 00 ....... |
; n3 - ¬¥ì襥 ¨§ n1 ¨ n2. |
CMP EAX, [EBP] |
59CC10 3B 45 00 ;E. |
JG { ' DROP } |
59CC13 7F BB » |
LEA EBP, [EBP+4] |
59CC15 8D 6D 04 m. |
RET |
59CC18 C3 Ã |
EndCode |
Code UMAX ;( u1 u2 -- n3 ) \ RETurn the lesser of unsigned u1 and |
59CC19 30 CC 59 00 00 04 55 4D 41 58 FE CB 59 00 00 00 0ÌY...UMAXþËY... |
59CC29 00 00 00 00 00 00 00 ....... |
; unsigned u2 |
CMP EAX, [EBP] |
59CC30 3B 45 00 ;E. |
JB { ' DROP } |
59CC33 72 9B r |
LEA EBP, [EBP+4] |
59CC35 8D 6D 04 m. |
RET |
59CC38 C3 Ã |
EndCode |
Code UMIN ;( u1 u2 -- n3 ) \ RETurn the lesser of unsigned u1 and |
59CC39 50 CC 59 00 00 04 55 4D 49 4E 1E CC 59 00 00 00 PÌY...UMIN.ÌY... |
59CC49 00 00 00 00 00 00 00 ....... |
; unsigned u2 |
CMP EAX, [EBP] |
59CC50 3B 45 00 ;E. |
JA { ' DROP } |
59CC53 0F 87 77 FF FF FF .wÿÿÿ |
LEA EBP, [EBP+4] |
59CC59 8D 6D 04 m. |
RET |
59CC5C C3 Ã |
EndCode |
Code 2DROP ;( x1 x2 -- ) \ 94 |
59CC5D 70 CC 59 00 00 05 32 44 52 4F 50 3E CC 59 00 00 pÌY...2DROP>ÌY.. |
59CC6D 00 00 00 ... |
; ¡à âì á® á⥪ ¯ àã ï祥ª x1 x2. |
MOV EAX , [EBP+4] |
59CC70 8B 45 04 E. |
ADD EBP , 8 |
59CC73 83 C5 08 Å. |
RET |
59CC76 C3 Ã |
EndCode |
Code SWAP ;( x1 x2 -- x2 x1 ) \ 94 |
59CC77 90 CC 59 00 00 04 53 57 41 50 62 CC 59 00 00 00 ÌY...SWAPbÌY... |
59CC87 00 00 00 00 00 00 00 00 00 ......... |
; ¯®¬¥ïâì ¬¥áâ ¬¨ ¤¢ ¢¥àå¨å í«¥¬¥â á⥪ |
; XCHG EAX { EBP } |
MOV EDX, [EBP] |
59CC90 8B 55 00 U. |
MOV [EBP], EAX |
59CC93 89 45 00 E. |
MOV EAX, EDX |
59CC96 8B C2 Â |
RET |
59CC98 C3 Ã |
EndCode |
Code 2SWAP ;( x1 x2 x3 x4 -- x3 x4 x1 x2 ) \ 94 |
59CC99 B0 CC 59 00 00 05 32 53 57 41 50 7C CC 59 00 00 °ÌY...2SWAP|ÌY.. |
59CCA9 00 00 00 00 00 00 00 ....... |
; ®¬¥ïâì ¬¥áâ ¬¨ ¤¢¥ ¢¥à娥 ¯ àë ï祥ª. |
MOV ECX, [EBP] |
59CCB0 8B 4D 00 M. |
MOV EBX, [EBP+4] |
59CCB3 8B 5D 04 ]. |
MOV EDX, [EBP+8] |
59CCB6 8B 55 08 U. |
MOV [EBP+8], ECX |
59CCB9 89 4D 08 M. |
MOV [EBP+4], EAX |
59CCBC 89 45 04 E. |
MOV [EBP], EDX |
59CCBF 89 55 00 U. |
MOV EAX, EBX |
59CCC2 8B C3 Ã |
RET |
59CCC4 C3 Ã |
EndCode |
Code OVER ;( x1 x2 -- x1 x2 x1 ) \ 94 |
59CCC5 E0 CC 59 00 00 04 4F 56 45 52 9E CC 59 00 00 00 àÌY...OVERÌY... |
59CCD5 00 00 00 00 00 00 00 00 00 00 00 ........... |
; ®«®¦¨âì ª®¯¨î x1 ¢¥àè¨ã á⥪ . |
LEA EBP, [EBP-4] |
59CCE0 8D 6D FC mü |
MOV [EBP], EAX |
59CCE3 89 45 00 E. |
MOV EAX, [EBP+4] |
59CCE6 8B 45 04 E. |
RET |
59CCE9 C3 Ã |
EndCode |
Code 2OVER ;( x1 x2 x3 x4 -- x1 x2 x3 x4 x1 x2 ) \ 94 |
59CCEA 00 CD 59 00 00 05 32 4F 56 45 52 CA CC 59 00 00 .ÍY...2OVERÊÌY.. |
59CCFA 00 00 00 00 00 00 ...... |
; ®¯¨à®¢ âì ¯ àã ï祥ª x1 x2 ¢¥àè¨ã á⥪ . |
MOV EDX, [EBP+8] |
59CD00 8B 55 08 U. |
MOV [EBP-4], EAX |
59CD03 89 45 FC Eü |
MOV [EBP-8], EDX |
59CD06 89 55 F8 Uø |
MOV EAX, [EBP+4] |
59CD09 8B 45 04 E. |
LEA EBP, [EBP-8] |
59CD0C 8D 6D F8 mø |
RET |
59CD0F C3 Ã |
EndCode |
Code NIP ;( x1 x2 -- x2 ) \ 94 CORE EXT |
59CD10 20 CD 59 00 00 03 4E 49 50 EF CC 59 00 00 00 00 ÍY...NIPïÌY.... |
; ¡à âì ¯¥à¢ë© í«¥¬¥â ¯®¤ ¢¥à訮© á⥪ . |
ADD EBP, 4 |
59CD20 83 C5 04 Å. |
RET |
59CD23 C3 Ã |
EndCode |
Code ROT ;( x1 x2 x3 -- x2 x3 x1 ) \ 94 |
59CD24 40 CD 59 00 00 03 52 4F 54 15 CD 59 00 00 00 00 @ÍY...ROT.ÍY.... |
59CD34 00 00 00 00 00 00 00 00 00 00 00 00 ............ |
; பàãâ¨âì âਠ¢¥àå¨å í«¥¬¥â á⥪ . |
; XCHG EAX [EBP] |
; XCHG EAX 4 [EBP] |
MOV EDX, [EBP] |
59CD40 8B 55 00 U. |
MOV [EBP], EAX |
59CD43 89 45 00 E. |
MOV EAX, [EBP+4] |
59CD46 8B 45 04 E. |
MOV [EBP+4], EDX |
59CD49 89 55 04 U. |
RET |
59CD4C C3 Ã |
EndCode |
Code -ROT ;( x1 x2 x3 -- x3 x1 x2 ) ; !!!!! |
59CD4D 60 CD 59 00 00 04 2D 52 4F 54 29 CD 59 00 00 00 `ÍY...-ROT)ÍY... |
59CD5D 00 00 00 ... |
; ¡à ⮥ ROT |
MOV EDX, [EBP+4] |
59CD60 8B 55 04 U. |
MOV [EBP+4], EAX |
59CD63 89 45 04 E. |
MOV EAX, [EBP] |
59CD66 8B 45 00 E. |
MOV [EBP], EDX |
59CD69 89 55 00 U. |
RET |
59CD6C C3 Ã |
EndCode |
Code PICK ;( ... +n -- ... w ) \ Copy the nth stack item to tos. |
59CD6D 80 CD 59 00 00 04 50 49 43 4B 52 CD 59 00 00 00 ÍY...PICKRÍY... |
59CD7D 00 00 00 ... |
MOV EAX, [EBP + EAX*4 ] |
59CD80 8B 44 85 00 D . |
RET |
59CD84 C3 Ã |
EndCode |
Code ROLL ;( xu xu-1 ... x0 u -- xu-1 ... x0 xu ) \ 94 CORE EXT |
59CD85 A0 CD 59 00 00 04 52 4F 4C 4C 72 CD 59 00 00 00 ÍY...ROLLrÍY... |
59CD95 00 00 00 00 00 00 00 00 00 00 00 ........... |
; ¡à âì u. ®¢¥àãâì u+1 í«¥¬¥â ¢¥à訥 á⥪ . |
; ¥®¯à¥¤¥«¥ ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ ¯¥à¥¤ ¢ë¯®«¥¨¥¬ ROLL |
; á⥪¥ ¬¥ìè¥ ç¥¬ u+2 í«¥¬¥â®¢. |
OR EAX, EAX |
59CDA0 0B C0 .À |
JZ SHORT LL1 |
59CDA2 74 1E t. |
MOV ECX, EAX |
59CDA4 8B C8 È |
LEA EAX, [EAX*4] |
59CDA6 8D 04 85 00 00 00 00 . .... |
MOV EDX, EBP |
59CDAD 8B D5 Õ |
ADD EDX, EAX |
59CDAF 03 D0 .Ð |
MOV EBX, [EDX] |
59CDB1 8B 1A . |
LL2: LEA EDX, [EDX-4] |
59CDB3 8D 52 FC Rü |
MOV EAX, [EDX] |
59CDB6 8B 02 . |
MOV [EDX+4], EAX |
59CDB8 89 42 04 B. |
DEC ECX |
59CDBB 49 I |
JNZ SHORT LL2 |
59CDBC 75 F5 uõ |
MOV EAX, EBX |
59CDBE 8B C3 Ã |
JMP SHORT LL3 |
59CDC0 EB 03 ë. |
LL1: MOV EAX, [EBP] |
59CDC2 8B 45 00 E. |
LL3: LEA EBP, [EBP+4] |
59CDC5 8D 6D 04 m. |
RET |
59CDC8 C3 Ã |
EndCode |
Code TUCK ;( x1 x2 -- x2 x1 x2 ) \ 94 |
59CDC9 E0 CD 59 00 00 04 54 55 43 4B 8A CD 59 00 00 00 àÍY...TUCKÍY... |
59CDD9 00 00 00 00 00 00 00 ....... |
LEA EBP, [EBP-4] |
59CDE0 8D 6D FC mü |
MOV EDX, [EBP+4] |
59CDE3 8B 55 04 U. |
MOV [EBP], EDX |
59CDE6 89 55 00 U. |
MOV [EBP+4], EAX |
59CDE9 89 45 04 E. |
RET |
59CDEC C3 Ã |
EndCode |
\ ================================================================ |
\ ⥪ ¢®§¢à ⮢ |
Code 2>R ; 94 CORE EXT |
59CDED 00 CE 59 00 00 03 32 3E 52 CE CD 59 00 00 00 00 .ÎY...2>RÎÍY.... |
59CDFD 00 00 00 ... |
; â¥à¯à¥â æ¨ï: ᥬ ⨪ ¥®¯à¥¤¥«¥ . |
; 믮«¥¨¥: ;( x1 x2 -- ) ;( R: -- x1 x2 ) |
; ¥à¥¥á⨠¯ àã ï祥ª x1 x2 á⥪ ¢®§¢à ⮢. ¥¬ â¨ç¥áª¨ |
; íª¢¨¢ «¥â® SWAP >R >R. |
POP EBX |
59CE00 5B [ |
PUSH DWORD PTR [EBP] |
59CE01 FF 75 00 ÿu. |
PUSH EAX |
59CE04 50 P |
LEA EBP, [EBP+8] |
59CE05 8D 6D 08 m. |
MOV EAX, [EBP-4] |
59CE08 8B 45 FC Eü |
JMP EBX |
59CE0B FF E3 ÿã |
EndCode |
Code 2R> ; 94 CORE EXT |
59CE0D 20 CE 59 00 00 03 32 52 3E F2 CD 59 00 00 00 00 ÎY...2R>òÍY.... |
59CE1D 00 00 00 ... |
; â¥à¯à¥â æ¨ï: ᥬ ⨪ ¥®¯à¥¤¥«¥ . |
; 믮«¥¨¥: ;( -- x1 x2 ) ;( R: x1 x2 -- ) |
; ¥à¥¥á⨠¯ àã ï祥ª x1 x2 á® á⥪ ¢®§¢à ⮢. ¥¬ â¨ç¥áª¨ |
; íª¢¨¢ «¥â® R> R> SWAP. \ !!!! |
LEA EBP, [EBP-8] |
59CE20 8D 6D F8 mø |
POP EBX |
59CE23 5B [ |
MOV [EBP+4], EAX |
59CE24 89 45 04 E. |
POP EAX |
59CE27 58 X |
POP DWORD PTR [EBP] |
59CE28 8F 45 00 E. |
PUSH EBX |
59CE2B 53 S |
RET |
59CE2C C3 Ã |
EndCode |
Code R@ ; 94 |
59CE2D 40 CE 59 00 00 02 52 40 12 CE 59 00 00 00 00 00 @ÎY...R@.ÎY..... |
59CE3D 00 00 00 ... |
; ᯮ«¥¨¥: ;( -- x ) ;( R: x -- x ) |
; â¥à¯à¥â æ¨ï: ᥬ ⨪ ¢ ०¨¬¥ ¨â¥à¯à¥â 樨 ¥®¯à¥¤¥«¥ . |
LEA EBP, [EBP-4] |
59CE40 8D 6D FC mü |
MOV [EBP], EAX |
59CE43 89 45 00 E. |
MOV EAX, [ESP + 4 ] |
59CE46 8B 44 24 04 D$. |
RET |
59CE4A C3 Ã |
EndCode |
Code 2R@ ; 94 CORE EXT |
59CE4B 60 CE 59 00 00 03 32 52 40 32 CE 59 00 00 00 00 `ÎY...2R@2ÎY.... |
59CE5B 00 00 00 00 00 ..... |
; â¥à¯à¥â æ¨ï: ᥬ ⨪ ¥®¯à¥¤¥«¥ . |
; 믮«¥¨¥: ;( -- x1 x2 ) ;( R: x1 x2 -- x1 x2 ) |
; ®¯¨à®¢ âì ¯ àã ï祥ª x1 x2 á® á⥪ ¢®§¢à ⮢. ¥¬ â¨ç¥áª¨ |
; íª¢¨¢ «¥â® R> R> 2DUP >R >R SWAP. |
LEA EBP, [EBP-8] |
59CE60 8D 6D F8 mø |
MOV [EBP+4], EAX |
59CE63 89 45 04 E. |
MOV EAX, [ESP + { 2 CELLS } ] |
59CE66 8B 44 24 08 D$. |
MOV DWORD PTR [EBP], EAX |
59CE6A 89 45 00 E. |
MOV EAX, [ESP + 4 ] |
59CE6D 8B 44 24 04 D$. |
RET |
59CE71 C3 Ã |
EndCode |
\ ================================================================ |
\ ¯¥à 樨 á ¯ ¬ïâìî |
Code @ ;( a-addr -- x ) \ 94 |
59CE72 80 CE 59 00 00 01 40 50 CE 59 00 00 00 00 ÎY...@PÎY.... |
; x - § 票¥ ¯® ¤à¥áã a-addr. |
MOV EAX, [EAX ] |
59CE80 8B 00 . |
RET |
59CE82 C3 Ã |
EndCode |
Code ! ;( x a-addr -- ) \ 94 |
59CE83 90 CE 59 00 00 01 21 77 CE 59 00 00 00 ÎY...!wÎY... |
; ¯¨á âì x ¯® ¤à¥áã a-addr. |
MOV EDX, [EBP] |
59CE90 8B 55 00 U. |
MOV DWORD PTR [EAX ], EDX |
59CE93 89 10 . |
MOV EAX , [EBP+4] |
59CE95 8B 45 04 E. |
ADD EBP , 8 |
59CE98 83 C5 08 Å. |
RET |
59CE9B C3 Ã |
EndCode |
Code C@ ;( c-addr -- char ) \ 94 |
59CE9C B0 CE 59 00 00 02 43 40 88 CE 59 00 00 00 00 00 °ÎY...C@ÎY..... |
59CEAC 00 00 00 00 .... |
; ®«ãç¨âì ᨬ¢®« ¯® ¤à¥áã c-addr. ¥§ ç 騥 áâ à訥 ¡¨âë ï祩ª¨ ã«¥¢ë¥. |
MOVZX EAX, BYTE PTR [EAX ] |
59CEB0 0F B6 00 .¶. |
RET |
59CEB3 C3 Ã |
EndCode |
Code C! ;( char c-addr -- ) \ 94 |
59CEB4 C0 CE 59 00 00 02 43 21 A1 CE 59 00 ÀÎY...C!¡ÎY. |
; ¯¨á âì char ¯® ¤à¥áã a-addr. |
MOV EDX, [EBP] |
59CEC0 8B 55 00 U. |
MOV BYTE PTR [EAX ], DL |
59CEC3 88 10 . |
MOV EAX , [EBP+4] |
59CEC5 8B 45 04 E. |
ADD EBP , 8 |
59CEC8 83 C5 08 Å. |
RET |
59CECB C3 Ã |
EndCode |
Code W@ ;( c-addr -- word ) |
59CECC E0 CE 59 00 00 02 57 40 B9 CE 59 00 00 00 00 00 àÎY...W@¹ÎY..... |
59CEDC 00 00 00 00 .... |
; ®«ãç¨âì word ¯® ¤à¥áã c-addr. ¥§ ç 騥 áâ à訥 ¡¨âë ï祩ª¨ ã«¥¢ë¥. |
MOVZX EAX, WORD PTR [EAX ] |
59CEE0 0F B7 00 .·. |
RET |
59CEE3 C3 Ã |
EndCode |
Code W! ;( word c-addr -- ) |
59CEE4 F0 CE 59 00 00 02 57 21 D1 CE 59 00 ðÎY...W!ÑÎY. |
; ¯¨á âì word ¯® ¤à¥áã a-addr. |
MOV EDX, [EBP] |
59CEF0 8B 55 00 U. |
MOV WORD PTR [EAX ], DX |
59CEF3 66 89 10 f. |
MOV EAX , [EBP+4] |
59CEF6 8B 45 04 E. |
ADD EBP , 8 |
59CEF9 83 C5 08 Å. |
RET |
59CEFC C3 Ã |
EndCode |
Code 2@ ;( a-addr -- x1 x2 ) \ 94 |
59CEFD 10 CF 59 00 00 02 32 40 E9 CE 59 00 00 00 00 00 .ÏY...2@éÎY..... |
59CF0D 00 00 00 ... |
; ®«ãç¨âì ¯ àã ï祥ª x1 x2, § ¯¨á ãî ¯® ¤à¥áã a-addr. |
; x2 ¯® ¤à¥áã a-addr, x1 ¢ á«¥¤ãî饩 ï祩ª¥. |
; ¢®á¨«ì® DUP CELL+ @ SWAP @ |
MOV EDX, [EAX + 4 ] |
59CF10 8B 50 04 P. |
LEA EBP, [EBP-4] |
59CF13 8D 6D FC mü |
MOV DWORD PTR [EBP], EDX |
59CF16 89 55 00 U. |
MOV EAX, DWORD PTR [EAX ] |
59CF19 8B 00 . |
RET |
59CF1B C3 Ã |
EndCode |
Code 2! ;( x1 x2 a-addr -- ) \ 94 |
59CF1C 30 CF 59 00 00 02 32 21 02 CF 59 00 00 00 00 00 0ÏY...2!.ÏY..... |
59CF2C 00 00 00 00 .... |
; ¯¨á âì ¯ àã ï祥ª x1 x2 ¯® ¤à¥áã a-addr, |
; x2 ¯® ¤à¥áã a-addr, x1 ¢ á«¥¤ãîéãî ï祩ªã. |
; ¢®á¨«ì® SWAP OVER ! CELL+ ! |
MOV EDX, [EBP] |
59CF30 8B 55 00 U. |
MOV [EAX], EDX |
59CF33 89 10 . |
MOV EDX, [EBP+4] |
59CF35 8B 55 04 U. |
MOV [EAX+4], EDX |
59CF38 89 50 04 P. |
LEA EBP, [EBP+0CH] |
59CF3B 8D 6D 0C m. |
MOV EAX, [EBP-4] |
59CF3E 8B 45 FC Eü |
RET |
59CF41 C3 Ã |
EndCode |
Code D@ ;( a-addr -- x1 x2 ) |
59CF42 50 CF 59 00 00 02 44 40 21 CF 59 00 00 00 PÏY...D@!ÏY... |
; 2@ SWAP |
MOV EDX, [EAX] |
59CF50 8B 10 . |
LEA EBP, [EBP-4] |
59CF52 8D 6D FC mü |
MOV DWORD PTR [EBP], EDX |
59CF55 89 55 00 U. |
MOV EAX, DWORD PTR [EAX+4] |
59CF58 8B 40 04 @. |
RET |
59CF5B C3 Ã |
EndCode |
Code D! ;( x1 x2 a-addr -- ) |
59CF5C 70 CF 59 00 00 02 44 21 47 CF 59 00 00 00 00 00 pÏY...D!GÏY..... |
59CF6C 00 00 00 00 .... |
; >R SWAP R> 2! |
MOV EDX, [EBP] |
59CF70 8B 55 00 U. |
MOV [EAX+4], EDX |
59CF73 89 50 04 P. |
MOV EDX, [EBP+4] |
59CF76 8B 55 04 U. |
MOV [EAX], EDX |
59CF79 89 10 . |
LEA EBP, [EBP+0CH] |
59CF7B 8D 6D 0C m. |
MOV EAX, [EBP-4] |
59CF7E 8B 45 FC Eü |
RET |
59CF81 C3 Ã |
EndCode |
Code EBX@ ;( -- EBX ) |
59CF82 90 CF 59 00 00 04 45 42 58 40 61 CF 59 00 ÏY...EBX@aÏY. |
LEA EBP, [EBP-4] |
59CF90 8D 6D FC mü |
mov [ebp],eax |
59CF93 89 45 00 E. |
MOV EAX,EBX |
59CF96 8B C3 Ã |
RET |
59CF98 C3 Ã |
EndCode |
\ ================================================================ |
\ ëç¨á«¥¨ï |
Code 1+ ;( n1|u1 -- n2|u2 ) \ 94 |
59CF99 B0 CF 59 00 00 02 31 2B 87 CF 59 00 00 00 00 00 °ÏY...1+ÏY..... |
59CFA9 00 00 00 00 00 00 00 ....... |
; ਡ ¢¨âì 1 ª n1|u1 ¨ ¯®«ãç¨âì á㬬ã u2|n2. |
LEA EAX, [EAX+1] |
59CFB0 8D 40 01 @. |
RET |
59CFB3 C3 Ã |
EndCode |
Code 1- ;( n1|u1 -- n2|u2 ) \ 94 |
59CFB4 C0 CF 59 00 00 02 31 2D 9E CF 59 00 ÀÏY...1-ÏY. |
; ëç¥áâì 1 ¨§ n1|u1 ¨ ¯®«ãç¨âì à §®áâì n2|u2. |
LEA EAX, [EAX-1] |
59CFC0 8D 40 FF @ÿ |
RET |
59CFC3 C3 Ã |
EndCode |
Code 2+ ;( W -> W+2 ) |
59CFC4 D0 CF 59 00 00 02 32 2B B9 CF 59 00 ÐÏY...2+¹ÏY. |
LEA EAX, [EAX+2] |
59CFD0 8D 40 02 @. |
RET |
59CFD3 C3 Ã |
EndCode |
Code 2- ;( W -> W-2 ) |
59CFD4 E0 CF 59 00 00 02 32 2D C9 CF 59 00 àÏY...2-ÉÏY. |
LEA EAX, [EAX-2] |
59CFE0 8D 40 FE @þ |
RET |
59CFE3 C3 Ã |
EndCode |
Code 2* ;( x1 -- x2 ) \ 94 |
59CFE4 F0 CF 59 00 00 02 32 2A D9 CF 59 00 ðÏY...2*ÙÏY. |
; x2 - १ã«ìâ â ᤢ¨£ x1 ®¤¨ ¡¨â ¢«¥¢®, á § ¯®«¥¨¥¬ |
; ¨¬¥¥¥ § 稬®£® ¡¨â ã«¥¬. |
; SHL EAX |
; LEA EAX, [EAX+EAX] |
LEA EAX, [EAX*2] |
59CFF0 8D 04 45 00 00 00 00 .E.... |
RET |
59CFF7 C3 Ã |
EndCode |
Code CELL+ ;( a-addr1 -- a-addr2 ) \ 94 |
59CFF8 10 D0 59 00 00 05 43 45 4C 4C 2B E9 CF 59 00 00 .ÐY...CELL+éÏY.. |
59D008 00 00 00 00 00 00 00 00 ........ |
; ëç¥áâì à §¬¥à ï祩ª¨ ª a-addr1 ¨ ¯®«ãç¨âì a-addr2. |
LEA EAX, [EAX+4] |
59D010 8D 40 04 @. |
RET |
59D013 C3 Ã |
EndCode |
Code CELL- ;( a-addr1 -- a-addr2 ) \ 94 |
59D014 30 D0 59 00 00 05 43 45 4C 4C 2D FD CF 59 00 00 0ÐY...CELL-ýÏY.. |
59D024 00 00 00 00 00 00 00 00 00 00 00 00 ............ |
; ëç¥áâì à §¬¥à ï祩ª¨ ª a-addr1 ¨ ¯®«ãç¨âì a-addr2. |
LEA EAX, [EAX-4] |
59D030 8D 40 FC @ü |
RET |
59D033 C3 Ã |
EndCode |
Code CELLS ;( n1 -- n2 ) \ 94 |
59D034 50 D0 59 00 00 05 43 45 4C 4C 53 19 D0 59 00 00 PÐY...CELLS.ÐY.. |
59D044 00 00 00 00 00 00 00 00 00 00 00 00 ............ |
; n2 - à §¬¥à n1 ï祥ª. |
LEA EAX, DWORD PTR [EAX *4 ] |
59D050 8D 04 85 00 00 00 00 . .... |
RET |
59D057 C3 Ã |
EndCode |
Code + ;( n1|u1 n2|u2 -- n3|u3 ) \ 94 |
59D058 70 D0 59 00 00 01 2B 39 D0 59 00 00 00 00 00 00 pÐY...+9ÐY...... |
59D068 00 00 00 00 00 00 00 00 ........ |
; «®¦¨âì n1|u1 ¨ n2|u2 ¨ ¯®«ãç¨âì á㬬ã n3|u3. |
ADD EAX, DWORD PTR [EBP] |
59D070 03 45 00 .E. |
LEA EBP, [EBP+4] |
59D073 8D 6D 04 m. |
RET |
59D076 C3 Ã |
EndCode |
Code D+ ;( d1|ud1 d2|ud2 -- d3|ud3 ) \ 94 DOUBLE |
59D077 90 D0 59 00 00 02 44 2B 5D D0 59 00 00 00 00 00 ÐY...D+]ÐY..... |
59D087 00 00 00 00 00 00 00 00 00 ......... |
; «®¦¨âì d1|ud1 ¨ d2|ud2 ¨ ¤ âì á㬬ã d3|ud3. |
MOV EDX, DWORD PTR [EBP] |
59D090 8B 55 00 U. |
ADD DWORD PTR [EBP + { 2 CELLS } ], EDX |
59D093 01 55 08 .U. |
ADC EAX, DWORD PTR [EBP +4 ] |
59D096 13 45 04 .E. |
LEA EBP, [EBP+8] |
59D099 8D 6D 08 m. |
RET |
59D09C C3 Ã |
EndCode |
Code D- ;( d1 d2 -- d3 ) \ 94 DOUBLE |
59D09D B0 D0 59 00 00 02 44 2D 7C D0 59 00 00 00 00 00 °ÐY...D-|ÐY..... |
59D0AD 00 00 00 ... |
; perform a double subtract (64bit) |
MOV EDX, DWORD PTR [EBP] |
59D0B0 8B 55 00 U. |
SUB DWORD PTR [EBP + { 2 CELLS } ], EDX |
59D0B3 29 55 08 )U. |
SBB [EBP+4], EAX |
59D0B6 19 45 04 .E. |
MOV EAX, DWORD PTR [EBP +4 ] |
59D0B9 8B 45 04 E. |
LEA EBP, [EBP+8] |
59D0BC 8D 6D 08 m. |
RET |
59D0BF C3 Ã |
EndCode |
Code - ;( n1|u1 n2|u2 -- n3|u3 ) \ 94 |
59D0C0 D0 D0 59 00 00 01 2D A2 D0 59 00 00 00 00 00 00 ÐÐY...-¢ÐY...... |
; ëç¥áâì n2|u2 ¨§ n1|u1 ¨ ¯®«ãç¨âì à §®áâì n3|u3. |
NEG EAX |
59D0D0 F7 D8 ֯ |
ADD EAX, [EBP] |
59D0D2 03 45 00 .E. |
LEA EBP, [EBP+4] |
59D0D5 8D 6D 04 m. |
RET |
59D0D8 C3 Ã |
EndCode |
Code 1+! ;( A -> ) |
59D0D9 F0 D0 59 00 00 03 31 2B 21 C5 D0 59 00 00 00 00 ðÐY...1+!ÅÐY.... |
59D0E9 00 00 00 00 00 00 00 ....... |
INC DWORD PTR [EAX ] |
59D0F0 FF 00 ÿ. |
MOV EAX, [EBP] |
59D0F2 8B 45 00 E. |
LEA EBP, [EBP+4] |
59D0F5 8D 6D 04 m. |
RET |
59D0F8 C3 Ã |
EndCode |
Code 0! ;( A -> ) |
59D0F9 10 D1 59 00 00 02 30 21 DE D0 59 00 00 00 00 00 .ÑY...0!ÞÐY..... |
59D109 00 00 00 00 00 00 00 ....... |
MOV DWORD PTR [EAX ], 0 |
59D110 C7 00 00 00 00 00 Ç..... |
MOV EAX, [EBP] |
59D116 8B 45 00 E. |
LEA EBP, [EBP+4] |
59D119 8D 6D 04 m. |
RET |
59D11C C3 Ã |
EndCode |
Code COUNT ;( c-addr1 -- c-addr2 u ) \ 94 |
59D11D 30 D1 59 00 00 05 43 4F 55 4E 54 FE D0 59 00 00 0ÑY...COUNTþÐY.. |
59D12D 00 00 00 ... |
; ®«ãç¨âì áâபã ᨬ¢®«®¢ ¨§ áâப¨ á® áç¥â稪®¬ c-addr1. |
; c-addr2 - ¤à¥á ¯¥à¢®£® ᨬ¢®« § c-addr1. |
; u - ᮤ¥à¦¨¬®¥ ¡ ©â c-addr1, ïî饥áï ¤«¨®© áâப¨ ᨬ¢®«®¢, |
; ç¨ î饩áï á ¤à¥á c-addr2. |
LEA EBP, [EBP-4] |
59D130 8D 6D FC mü |
LEA EDX, DWORD PTR [EAX +1 ] |
59D133 8D 50 01 P. |
MOV DWORD PTR [EBP], EDX |
59D136 89 55 00 U. |
MOVZX EAX, BYTE PTR [EAX ] |
59D139 0F B6 00 .¶. |
RET |
59D13C C3 Ã |
EndCode |
Code * ;( n1|u1 n2|u2 -- n3|u3 ) \ 94 |
59D13D 50 D1 59 00 00 01 2A 22 D1 59 00 00 00 00 00 00 PÑY...*"ÑY...... |
59D14D 00 00 00 ... |
; ¥à¥¬®¦¨âì n1|u1 ¨ n2|u2 ¨ ¯®«ãç¨âì ¯à®¨§¢¥¤¥¨¥ n3|u3. |
IMUL DWORD PTR [EBP] |
59D150 F7 6D 00 ÷m. |
LEA EBP, [EBP+4] |
59D153 8D 6D 04 m. |
RET |
59D156 C3 Ã |
EndCode |
Code AND ;( x1 x2 -- x3 ) \ 94 |
59D157 70 D1 59 00 00 03 41 4E 44 42 D1 59 00 00 00 00 pÑY...ANDBÑY.... |
59D167 00 00 00 00 00 00 00 00 00 ......... |
; x3 - ¯®¡¨â®¢®¥ "" x1 ¨ x2. |
AND EAX, [EBP] |
59D170 23 45 00 #E. |
LEA EBP, [EBP+4] |
59D173 8D 6D 04 m. |
RET |
59D176 C3 Ã |
EndCode |
Code OR ;( x1 x2 -- x3 ) \ 94 |
59D177 90 D1 59 00 00 02 4F 52 5C D1 59 00 00 00 00 00 ÑY...OR\ÑY..... |
59D187 00 00 00 00 00 00 00 00 00 ......... |
; x3 - ¯®¡¨â®¢®¥ "" x1 ¨ x2. |
OR EAX, [EBP] |
59D190 0B 45 00 .E. |
LEA EBP, [EBP+4] |
59D193 8D 6D 04 m. |
RET |
59D196 C3 Ã |
EndCode |
Code XOR ;( x1 x2 -- x3 ) \ 94 |
59D197 B0 D1 59 00 00 03 58 4F 52 7C D1 59 00 00 00 00 °ÑY...XOR|ÑY.... |
59D1A7 00 00 00 00 00 00 00 00 00 ......... |
; x3 - ¯®¡¨â®¢®¥ "¨áª«îç î饥 " x1 ¨ x2. |
XOR EAX, [EBP] |
59D1B0 33 45 00 3E. |
LEA EBP, [EBP+4] |
59D1B3 8D 6D 04 m. |
RET |
59D1B6 C3 Ã |
EndCode |
Code INVERT ;( x1 -- x2 ) \ 94 |
59D1B7 D0 D1 59 00 00 06 49 4E 56 45 52 54 9C D1 59 00 ÐÑY...INVERTÑY. |
59D1C7 00 00 00 00 00 00 00 00 00 ......... |
; ¢¥àâ¨à®¢ âì ¢á¥ ¡¨âë x1 ¨ ¯®«ãç¨âì «®£¨ç¥áªãî ¨¢¥àá¨î x2. |
NOT EAX |
59D1D0 F7 D0 ÷Ð |
RET |
59D1D2 C3 Ã |
EndCode |
Code NEGATE ;( n1 -- n2 ) \ 94 |
59D1D3 F0 D1 59 00 00 06 4E 45 47 41 54 45 BC D1 59 00 ðÑY...NEGATE¼ÑY. |
59D1E3 00 00 00 00 00 00 00 00 00 00 00 00 00 ............. |
; n2 - à¨ä¬¥â¨ç¥áª ï ¨¢¥àá¨ï n1. |
NEG EAX |
59D1F0 F7 D8 ֯ |
RET |
59D1F2 C3 Ã |
EndCode |
Code ABS ;( n -- u ) \ 94 |
59D1F3 00 D2 59 00 00 03 41 42 53 D8 D1 59 00 .ÒY...ABSØÑY. |
; u - ¡á®«îâ ï ¢¥«¨ç¨ n. |
TEST EAX, EAX |
59D200 85 C0 À |
JS { ' NEGATE } |
59D202 78 EC xì |
RET |
59D204 C3 Ã |
EndCode |
Code DNEGATE ;( d1 -- d2 ) \ 94 DOUBLE |
59D205 20 D2 59 00 00 07 44 4E 45 47 41 54 45 F8 D1 59 ÒY...DNEGATEøÑY |
59D215 00 00 00 00 00 00 00 00 00 00 00 ........... |
; d2 १ã«ìâ â ¢ëç¨â ¨ï d1 ¨§ ã«ï. |
MOV EDX, [EBP] |
59D220 8B 55 00 U. |
NEG EAX |
59D223 F7 D8 ֯ |
NEG EDX |
59D225 F7 DA ÷Ú |
SBB EAX, 0 |
59D227 83 D8 00 Ø. |
MOV DWORD PTR [EBP], EDX |
59D22A 89 55 00 U. |
RET |
59D22D C3 Ã |
EndCode |
Code NOOP ;( -> ) |
59D22E 40 D2 59 00 00 04 4E 4F 4F 50 0A D2 59 00 00 00 @ÒY...NOOP.ÒY... |
59D23E 00 00 .. |
RET |
59D240 C3 Ã |
EndCode |
Code S>D ;( n -- d ) \ 94 |
59D241 50 D2 59 00 00 03 53 3E 44 33 D2 59 00 00 00 PÒY...S>D3ÒY... |
; ८¡à §®¢ âì ç¨á«® n ¢ ¤¢®©®¥ ç¨á«® d á ⥬ ¦¥ ç¨á«®¢ë¬ § 票¥¬. |
LEA EBP, [EBP-4] |
59D250 8D 6D FC mü |
MOV [EBP], EAX |
59D253 89 45 00 E. |
CDQ |
59D256 99 |
MOV EAX, EDX |
59D257 8B C2 Â |
RET |
59D259 C3 Ã |
EndCode |
Code D>S ;( d -- n ) \ 94 DOUBLE |
59D25A 70 D2 59 00 00 03 44 3E 53 46 D2 59 00 00 00 00 pÒY...D>SFÒY.... |
59D26A 00 00 00 00 00 00 ...... |
; n - íª¢¨¢ «¥â d. |
; ᪫îç¨â¥«ì ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ d 室¨âáï ¢¥ ¤¨ ¯ §® |
; § ª®¢ëå ®¤¨ àëå ç¨á¥«. |
MOV EAX, [EBP] |
59D270 8B 45 00 E. |
ADD EBP, 4 |
59D273 83 C5 04 Å. |
RET |
59D276 C3 Ã |
EndCode |
Code U>D ;( U -> D ) \ à áè¨à¨âì ç¨á«® ¤® ¤¢®©®© â®ç®á⨠㫥¬ |
59D277 90 D2 59 00 00 03 55 3E 44 5F D2 59 00 00 00 00 ÒY...U>D_ÒY.... |
59D287 00 00 00 00 00 00 00 00 00 ......... |
LEA EBP, [EBP-4] |
59D290 8D 6D FC mü |
MOV [EBP], EAX |
59D293 89 45 00 E. |
XOR EAX, EAX |
59D296 33 C0 3À |
RET |
59D298 C3 Ã |
EndCode |
Code C>S ;( c -- n ) \ à áè¨à¨âì CHAR |
59D299 B0 D2 59 00 00 03 43 3E 53 7C D2 59 00 00 00 00 °ÒY...C>S|ÒY.... |
59D2A9 00 00 00 00 00 00 00 ....... |
MOVSX EAX, AL |
59D2B0 0F BE C0 .¾À |
RET |
59D2B3 C3 Ã |
EndCode |
Code UM* ;( u1 u2 -- ud ) \ 94 |
59D2B4 D0 D2 59 00 00 03 55 4D 2A 9E D2 59 00 00 00 00 ÐÒY...UM*ÒY.... |
59D2C4 00 00 00 00 00 00 00 00 00 00 00 00 ............ |
; ud - ¯à®¨§¢¥¤¥¨¥ u1 ¨ u2. ᥠ§ ç¥¨ï ¨ à¨ä¬¥â¨ª ¡¥§§ ª®¢ë¥. |
MUL DWORD PTR [EBP] |
59D2D0 F7 65 00 ÷e. |
MOV [EBP], EAX |
59D2D3 89 45 00 E. |
MOV EAX, EDX |
59D2D6 8B C2 Â |
RET |
59D2D8 C3 Ã |
EndCode |
Code / ;( n1 n2 -- n3 ) \ 94 |
59D2D9 F0 D2 59 00 00 01 2F B9 D2 59 00 00 00 00 00 00 ðÒY.../¹ÒY...... |
59D2E9 00 00 00 00 00 00 00 ....... |
; ¥«¨âì n1 n2, ¯®«ãç¨âì ç á⮥ n3. |
; ᪫îç¨â¥«ì ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ n2 à ¢¥ ã«î. |
; ᫨ n1 ¨ n2 à §«¨ç îâáï ¯® § ªã - ¢®§¢à é ¥¬ë© १ã«ìâ â § ¢¨á¨â ®â |
; ॠ«¨§ 樨. |
MOV ECX, EAX |
59D2F0 8B C8 È |
MOV EAX, [EBP] |
59D2F2 8B 45 00 E. |
CDQ |
59D2F5 99 |
IDIV ECX |
59D2F6 F7 F9 ÷ù |
LEA EBP, [EBP+4] |
59D2F8 8D 6D 04 m. |
RET |
59D2FB C3 Ã |
EndCode |
Code U/ ;( W1, W2 -> W3 ) \ ¡¥§§ ª®¢®¥ ¤¥«¥¨¥ W1 W2 |
59D2FC 10 D3 59 00 00 02 55 2F DE D2 59 00 00 00 00 00 .ÓY...U/ÞÒY..... |
59D30C 00 00 00 00 .... |
MOV ECX, EAX |
59D310 8B C8 È |
MOV EAX, [EBP] |
59D312 8B 45 00 E. |
XOR EDX, EDX |
59D315 33 D2 3Ò |
LEA EBP, [EBP+4] |
59D317 8D 6D 04 m. |
DIV ECX |
59D31A F7 F1 ֖ |
RET |
59D31C C3 Ã |
EndCode |
Code +! ;( n|u a-addr -- ) \ 94 \ !!!!! |
59D31D 30 D3 59 00 00 02 2B 21 01 D3 59 00 00 00 00 00 0ÓY...+!.ÓY..... |
59D32D 00 00 00 ... |
; ਡ ¢¨âì n|u ª ®¤¨ ஬ã ç¨á«ã ¯® ¤à¥áã a-addr. |
MOV EDX, [EBP] |
59D330 8B 55 00 U. |
ADD DWORD PTR [EAX ], EDX |
59D333 01 10 .. |
MOV EAX, [EBP+4] |
59D335 8B 45 04 E. |
LEA EBP, [EBP+8] |
59D338 8D 6D 08 m. |
RET |
59D33B C3 Ã |
EndCode |
Code MOD ;( n1 n2 -- n3 ) \ 94 |
59D33C 50 D3 59 00 00 03 4D 4F 44 22 D3 59 00 00 00 00 PÓY...MOD"ÓY.... |
59D34C 00 00 00 00 .... |
; ¥«¨âì n1 n2, ¯®«ãç¨âì ®áâ ⮪ n3. |
; ᪫îç¨â¥«ì ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ n2 à ¢¥ ã«î. |
; ᫨ n1 ¨ n2 à §«¨ç îâáï ¯® § ªã - ¢®§¢à é ¥¬ë© १ã«ìâ â § ¢¨á¨â ®â |
; ॠ«¨§ 樨. |
MOV ECX, EAX |
59D350 8B C8 È |
MOV EAX, [EBP] |
59D352 8B 45 00 E. |
LEA EBP, [EBP+4] |
59D355 8D 6D 04 m. |
CDQ |
59D358 99 |
IDIV ECX |
59D359 F7 F9 ÷ù |
MOV EAX, EDX |
59D35B 8B C2 Â |
RET |
59D35D C3 Ã |
EndCode |
Code /MOD ;( n1 n2 -- n3 n4 ) \ 94 |
59D35E 70 D3 59 00 00 04 2F 4D 4F 44 41 D3 59 00 00 00 pÓY.../MODAÓY... |
59D36E 00 00 .. |
; ¥«¨âì n1 n2, ¤ âì ®áâ ⮪ n3 ¨ ç á⮥ n4. |
; ¥®¤®§ ç ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ n2 ã«ì. |
MOV ECX, EAX |
59D370 8B C8 È |
MOV EAX, [EBP] |
59D372 8B 45 00 E. |
CDQ |
59D375 99 |
IDIV ECX |
59D376 F7 F9 ÷ù |
MOV [EBP], EDX |
59D378 89 55 00 U. |
RET |
59D37B C3 Ã |
EndCode |
Code UMOD ;( W1, W2 -> W3 ) \ ®áâ ⮪ ®â ¤¥«¥¨ï W1 W2 |
59D37C 90 D3 59 00 00 04 55 4D 4F 44 63 D3 59 00 00 00 ÓY...UMODcÓY... |
59D38C 00 00 00 00 .... |
MOV ECX, EAX |
59D390 8B C8 È |
XOR EDX, EDX |
59D392 33 D2 3Ò |
MOV EAX, [EBP] |
59D394 8B 45 00 E. |
LEA EBP, [EBP+4] |
59D397 8D 6D 04 m. |
DIV ECX |
59D39A F7 F1 ֖ |
MOV EAX, EDX |
59D39C 8B C2 Â |
RET |
59D39E C3 Ã |
EndCode |
Code UM/MOD ;( ud u1 -- u2 u3 ) \ 94 |
59D39F B0 D3 59 00 00 06 55 4D 2F 4D 4F 44 81 D3 59 00 °ÓY...UM/MODÓY. |
59D3AF 00 . |
; ¥«¨âì ud u1, ¯®«ãç¨âì ç á⮥ u3 ¨ ®áâ ⮪ u2. |
; ᥠ§ ç¥¨ï ¨ à¨ä¬¥â¨ª ¡¥§§ ª®¢ë¥. |
; ᪫îç¨â¥«ì ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ u1 ®«ì ¨«¨ ç á⮥ |
; 室¨âáï ¢¥ ¤¨ ¯ §® ®¤¨ àëå ¡¥§§ ª®¢ëå ç¨á¥«. |
MOV ECX, EAX |
59D3B0 8B C8 È |
MOV EDX, [EBP] |
59D3B2 8B 55 00 U. |
MOV EAX, [EBP+4] |
59D3B5 8B 45 04 E. |
DIV ECX |
59D3B8 F7 F1 ֖ |
LEA EBP, [EBP+4] |
59D3BA 8D 6D 04 m. |
MOV [EBP], EDX |
59D3BD 89 55 00 U. |
RET |
59D3C0 C3 Ã |
EndCode |
Code 2/ ;( x1 -- x2 ) \ 94 |
59D3C1 D0 D3 59 00 00 02 32 2F A4 D3 59 00 00 00 00 ÐÓY...2/¤ÓY.... |
; x2 - १ã«ìâ â ᤢ¨£ x1 ®¤¨ ¡¨â ¢¯à ¢® ¡¥§ ¨§¬¥¥¨ï áâ à襣® ¡¨â . |
SAR EAX,1 |
59D3D0 D1 F8 Ñø |
RET |
59D3D2 C3 Ã |
EndCode |
Code */MOD ;( n1 n2 n3 -- n4 n5 ) \ 94 |
59D3D3 F0 D3 59 00 00 05 2A 2F 4D 4F 44 C6 D3 59 00 00 ðÓY...*/MODÆÓY.. |
59D3E3 00 00 00 00 00 00 00 00 00 00 00 00 00 ............. |
; ¬®¦¨âì n1 n2, ¯®«ãç¨âì ¯à®¬¥¦ãâ®çë© ¤¢®©®© १ã«ìâ â d. |
; §¤¥«¨âì d n3, ¯®«ãç¨âì ®áâ ⮪ n4 ¨ ç á⮥ n5. |
MOV EBX, EAX |
59D3F0 8B D8 Ø |
MOV EAX, [EBP] |
59D3F2 8B 45 00 E. |
MOV ECX, [EBP+4] |
59D3F5 8B 4D 04 M. |
IMUL ECX |
59D3F8 F7 E9 ֎ |
IDIV EBX |
59D3FA F7 FB ÷û |
MOV [EBP+4], EDX |
59D3FC 89 55 04 U. |
LEA EBP, [EBP+4] |
59D3FF 8D 6D 04 m. |
RET |
59D402 C3 Ã |
EndCode |
Code M* ;( n1 n2 -- d ) \ 94 |
59D403 10 D4 59 00 00 02 4D 2A D8 D3 59 00 00 .ÔY...M*ØÓY.. |
; d - § ª®¢ë© १ã«ìâ â 㬮¦¥¨ï n1 n2. |
IMUL DWORD PTR [EBP] |
59D410 F7 6D 00 ÷m. |
MOV [EBP], EAX |
59D413 89 45 00 E. |
MOV EAX, EDX |
59D416 8B C2 Â |
RET |
59D418 C3 Ã |
EndCode |
Code LSHIFT ;( x1 u -- x2 ) ; 94 |
59D419 30 D4 59 00 00 06 4C 53 48 49 46 54 08 D4 59 00 0ÔY...LSHIFT.ÔY. |
59D429 00 00 00 00 00 00 00 ....... |
; ¤¢¨ãâì x1 u ¡¨â ¢«¥¢®. ®¬¥áâ¨âì 㫨 ¢ ¨¬¥¥¥ § ç¨¬ë¥ ¡¨âë, |
; ®á¢®¡®¦¤ ¥¬ë¥ ¯à¨ ᤢ¨£¥. |
; ¥®¤®§ ç ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ u ¡®«ìè¥ ¨«¨ à ¢® |
; ç¨á«ã ¡¨â ¢ ï祩ª¥. |
MOV ECX, EAX |
59D430 8B C8 È |
MOV EAX, [EBP] |
59D432 8B 45 00 E. |
SHL EAX, CL |
59D435 D3 E0 Óà |
LEA EBP, [EBP+4] |
59D437 8D 6D 04 m. |
RET |
59D43A C3 Ã |
EndCode |
Code RSHIFT ;( x1 u -- x2 ) \ 94 |
59D43B 50 D4 59 00 00 06 52 53 48 49 46 54 1E D4 59 00 PÔY...RSHIFT.ÔY. |
59D44B 00 00 00 00 00 ..... |
; ¤¢¨ãâì x1 u ¡¨â ¢¯à ¢®. ®¬¥áâ¨âì 㫨 ¢ ¨¡®«¥¥ § ç¨¬ë¥ ¡¨âë, |
; ®á¢®¡®¦¤ ¥¬ë¥ ¯à¨ ᤢ¨£¥. |
; ¥®¤®§ ç ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ u ¡®«ìè¥ ¨«¨ à ¢® |
; ç¨á«ã ¡¨â ¢ ï祩ª¥. |
MOV ECX, EAX |
59D450 8B C8 È |
MOV EAX, [EBP] |
59D452 8B 45 00 E. |
SHR EAX, CL |
59D455 D3 E8 Óè |
LEA EBP, [EBP+4] |
59D457 8D 6D 04 m. |
RET |
59D45A C3 Ã |
EndCode |
Code SM/REM ;( d1 n1 -- n2 n3 ) \ 94 |
59D45B 70 D4 59 00 00 06 53 4D 2F 52 45 4D 40 D4 59 00 pÔY...SM/REM@ÔY. |
59D46B 00 00 00 00 00 ..... |
; §¤¥«¨âì d1 n1, ¯®«ãç¨âì ᨬ¬¥âà¨ç®¥ ç á⮥ n3 ¨ ®áâ ⮪ n2. |
; å®¤ë¥ ¨ ¢ëå®¤ë¥ à£ã¬¥âë § ª®¢ë¥. |
; ¥®¤®§ ç ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ n1 ®«ì, ¨«¨ ç á⮥ ¢¥ |
; ¤¨ ¯ §® ®¤¨ àëå § ª®¢ëå ç¨á¥«. |
MOV EBX, EAX |
59D470 8B D8 Ø |
MOV EDX, [EBP] |
59D472 8B 55 00 U. |
MOV EAX, [EBP+4] |
59D475 8B 45 04 E. |
IDIV EBX |
59D478 F7 FB ÷û |
LEA EBP, [EBP+4] |
59D47A 8D 6D 04 m. |
MOV [EBP], EDX |
59D47D 89 55 00 U. |
RET |
59D480 C3 Ã |
EndCode |
Code FM/MOD ;( d1 n1 -- n2 n3 ) \ 94 |
59D481 A0 D4 59 00 00 06 46 4D 2F 4D 4F 44 60 D4 59 00 ÔY...FM/MOD`ÔY. |
59D491 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ............... |
; Ðàçäåëèòü d1 íà n1, ïîëó÷èòü ÷àñòíîå n3 è îñòàòîê n2. |
; Âõîäíûå è âûõîäíûå àðãóìåíòû çíàêîâûå. |
; Íåîäíîçíà÷íàÿ ñèòóàöèÿ âîçíèêàåò, åñëè n1 íîëü, èëè ÷àñòíîå âíå |
; äèàïàçîíà îäèíàðíûõ çíàêîâûõ ÷èñåë. |
MOV ECX, EAX |
59D4A0 8B C8 È |
MOV EDX, [EBP] |
59D4A2 8B 55 00 U. |
MOV EBX, EDX |
59D4A5 8B DA Ú |
MOV EAX, [EBP+4] |
59D4A7 8B 45 04 E. |
IDIV ECX |
59D4AA F7 F9 ÷ù |
TEST EDX, EDX ; Îñòàòîê-òî åñòü? |
59D4AC 85 D2 Ò |
JZ SHORT @@1 |
59D4AE 74 07 t. |
XOR EBX, ECX ; À àðãóìåíòû ðàçíîãî çíàêà? |
59D4B0 33 D9 3Ù |
JNS SHORT @@1 |
59D4B2 79 03 y. |
DEC EAX |
59D4B4 48 H |
ADD EDX, ECX |
59D4B5 03 D1 .Ñ |
@@1: LEA EBP, [EBP+4] |
59D4B7 8D 6D 04 m. |
MOV [EBP], EDX |
59D4BA 89 55 00 U. |
RET |
59D4BD C3 Ã |
EndCode |
\ ================================================================ |
\ à ¢¥¨ï |
Code = ;( x1 x2 -- flag ) \ 94 |
59D4BE D0 D4 59 00 00 01 3D 86 D4 59 00 00 00 00 00 00 ÐÔY...=ÔY...... |
59D4CE 00 00 .. |
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ x1 ¯®¡¨â® à ¢¥ x2. |
XOR EAX, [EBP] |
59D4D0 33 45 00 3E. |
SUB EAX, 1 |
59D4D3 83 E8 01 è. |
SBB EAX, EAX |
59D4D6 1B C0 .À |
LEA EBP, [EBP+4] |
59D4D8 8D 6D 04 m. |
RET |
59D4DB C3 Ã |
EndCode |
Code <> ;( x1 x2 -- flag ) \ 94 CORE EXT |
59D4DC F0 D4 59 00 00 02 3C 3E C3 D4 59 00 00 00 00 00 ðÔY...<>ÃÔY..... |
59D4EC 00 00 00 00 .... |
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ x1 ¥ à ¢¥ x2. |
XOR EAX, [EBP] |
59D4F0 33 45 00 3E. |
NEG EAX |
59D4F3 F7 D8 ֯ |
SBB EAX, EAX |
59D4F5 1B C0 .À |
LEA EBP, [EBP+4] |
59D4F7 8D 6D 04 m. |
RET |
59D4FA C3 Ã |
EndCode |
Code < ;( n1 n2 -- flag ) \ 94 |
59D4FB 10 D5 59 00 00 01 3C E1 D4 59 00 00 00 00 00 00 .ÕY...<áÔY...... |
59D50B 00 00 00 00 00 ..... |
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ n1 ¬¥ìè¥ n2. |
CMP [EBP], EAX |
59D510 39 45 00 9E. |
SETGE AL |
59D513 0F 9D C0 .À |
AND EAX, 01 |
59D516 83 E0 01 à. |
DEC EAX |
59D519 48 H |
LEA EBP, [EBP+4] |
59D51A 8D 6D 04 m. |
RET |
59D51D C3 Ã |
EndCode |
Code > ;( n1 n2 -- flag ) \ 94 |
59D51E 30 D5 59 00 00 01 3E 00 D5 59 00 00 00 00 00 00 0ÕY...>.ÕY...... |
59D52E 00 00 .. |
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ n1 ¡®«ìè¥ n2. |
CMP EAX, [EBP] |
59D530 3B 45 00 ;E. |
SETGE AL |
59D533 0F 9D C0 .À |
AND EAX, 01 |
59D536 83 E0 01 à. |
DEC EAX |
59D539 48 H |
LEA EBP, [EBP+4] |
59D53A 8D 6D 04 m. |
RET |
59D53D C3 Ã |
EndCode |
Code WITHIN ;( n1 low high -- f1 ) \ f1=true if ((n1 >= low) & (n1 < high)) |
59D53E 50 D5 59 00 00 06 57 49 54 48 49 4E 23 D5 59 00 PÕY...WITHIN#ÕY. |
59D54E 00 00 .. |
MOV EBX, [EBP+4] |
59D550 8B 5D 04 ]. |
SUB EAX, [EBP] |
59D553 2B 45 00 +E. |
SUB EBX, [EBP] |
59D556 2B 5D 00 +]. |
SUB EBX, EAX |
59D559 2B D8 +Ø |
SBB EAX, EAX |
59D55B 1B C0 .À |
ADD EBP, 8 |
59D55D 83 C5 08 Å. |
RET |
59D560 C3 Ã |
EndCode |
Code D< ;( d1 d2 -- flag ) \ DOUBLE |
59D561 70 D5 59 00 00 02 44 3C 43 D5 59 00 00 00 00 pÕY...D<CÕY.... |
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ d1 ¬¥ìè¥ d2. |
MOV EBX, [EBP] |
59D570 8B 5D 00 ]. |
CMP DWORD PTR [EBP +8 ], EBX |
59D573 39 5D 08 9]. |
SBB DWORD PTR [EBP +4 ], EAX |
59D576 19 45 04 .E. |
MOV EAX, 0 |
59D579 B8 00 00 00 00 ¸.... |
SIF < |
59D57E 7D 01 }. |
DEC EAX |
59D580 48 H |
STHEN |
ADD EBP, 0CH |
59D581 83 C5 0C Å. |
RET |
59D584 C3 Ã |
EndCode |
Code D> ;( d1 d2 -- flag ) \ DOUBLE |
59D585 A0 D5 59 00 00 02 44 3E 66 D5 59 00 00 00 00 00 ÕY...D>fÕY..... |
59D595 00 00 00 00 00 00 00 00 00 00 00 ........... |
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ d1 ¡®«ìè¥ d2. |
MOV EBX, [EBP] |
59D5A0 8B 5D 00 ]. |
CMP EBX, [EBP+8] |
59D5A3 3B 5D 08 ;]. |
SBB EAX, [EBP+4] |
59D5A6 1B 45 04 .E. |
SAR EAX, 1FH |
59D5A9 C1 F8 1F Áø. |
ADD EBP, 0CH |
59D5AC 83 C5 0C Å. |
RET |
59D5AF C3 Ã |
EndCode |
Code U< ;( u1 u2 -- flag ) \ 94 |
59D5B0 C0 D5 59 00 00 02 55 3C 8A D5 59 00 00 00 00 00 ÀÕY...U<ÕY..... |
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ u1 ¬¥ìè¥ u2. |
CMP [EBP], EAX |
59D5C0 39 45 00 9E. |
SBB EAX, EAX |
59D5C3 1B C0 .À |
ADD EBP, 04 |
59D5C5 83 C5 04 Å. |
RET |
59D5C8 C3 Ã |
EndCode |
Code U> ;( u1 u2 -- flag ) \ 94 |
59D5C9 E0 D5 59 00 00 02 55 3E B5 D5 59 00 00 00 00 00 àÕY...U>µÕY..... |
59D5D9 00 00 00 00 00 00 00 ....... |
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ u1 ¡®«ìè¥ u2. |
CMP EAX, [EBP] |
59D5E0 3B 45 00 ;E. |
SBB EAX, EAX |
59D5E3 1B C0 .À |
ADD EBP, 04 |
59D5E5 83 C5 04 Å. |
RET |
59D5E8 C3 Ã |
EndCode |
Code 0< ;( n -- flag ) \ 94 |
59D5E9 00 D6 59 00 00 02 30 3C CE D5 59 00 00 00 00 00 .ÖY...0<ÎÕY..... |
59D5F9 00 00 00 00 00 00 00 ....... |
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ n ¬¥ìè¥ ã«ï. |
SAR EAX, 1F |
59D600 C1 F8 1F Áø. |
RET |
59D603 C3 Ã |
EndCode |
Code 0= ;( x -- flag ) \ 94 |
59D604 10 D6 59 00 00 02 30 3D EE D5 59 00 .ÖY...0=îÕY. |
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ x à ¢® ã«î. |
SUB EAX, 1 |
59D610 83 E8 01 è. |
SBB EAX, EAX |
59D613 1B C0 .À |
RET |
59D615 C3 Ã |
EndCode |
Code 0<> ;( x -- flag ) \ 94 CORE EXT |
59D616 30 D6 59 00 00 03 30 3C 3E 09 D6 59 00 00 00 00 0ÖY...0<>.ÖY.... |
59D626 00 00 00 00 00 00 00 00 00 00 .......... |
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ x ¥ à ¢® ã«î. |
NEG EAX |
59D630 F7 D8 ֯ |
SBB EAX, EAX |
59D632 1B C0 .À |
RET |
59D634 C3 Ã |
EndCode |
Code D0= ;( xd -- flag ) \ 94 DOUBLE |
59D635 50 D6 59 00 00 03 44 30 3D 1B D6 59 00 00 00 00 PÖY...D0=.ÖY.... |
59D645 00 00 00 00 00 00 00 00 00 00 00 ........... |
; flag "¨á⨠" ⮣¤ ¨ ⮫쪮 ⮣¤ , ª®£¤ xd à ¢¥ ã«î. |
OR EAX, [EBP] |
59D650 0B 45 00 .E. |
SUB EAX, 1 |
59D653 83 E8 01 è. |
SBB EAX, EAX |
59D656 1B C0 .À |
LEA EBP, [EBP+4] |
59D658 8D 6D 04 m. |
RET |
59D65B C3 Ã |
EndCode |
Code D= ;( xd1 xd2 -- flag ) \ 94 DOUBLE |
59D65C 70 D6 59 00 00 02 44 3D 3A D6 59 00 00 00 00 00 pÖY...D=:ÖY..... |
59D66C 00 00 00 00 .... |
; flag is true if and only if xd1 is bit-for-bit the same as xd2 |
MOV EDX,[EBP] |
59D670 8B 55 00 U. |
XOR EAX,[EBP+4] |
59D673 33 45 04 3E. |
XOR EDX,[EBP+8] |
59D676 33 55 08 3U. |
OR EAX,EDX |
59D679 0B C2 . |
SUB EAX,1 |
59D67B 83 E8 01 è. |
SBB EAX,EAX |
59D67E 1B C0 .À |
LEA EBP,[EBP+0CH] |
59D680 8D 6D 0C m. |
RET |
59D683 C3 Ã |
EndCode |
Code D2* ;( xd1 -- xd2 ) \ 94 DOUBLE |
59D684 A0 D6 59 00 00 03 44 32 2A 61 D6 59 00 00 00 00 ÖY...D2*aÖY.... |
59D694 00 00 00 00 00 00 00 00 00 00 00 00 ............ |
; xd2 is the result of shifting xd1 one bit toward the most-significant |
; bit, filling the vacated least-significant bit with zero |
SHL DWORD PTR [EBP], 1 |
59D6A0 D1 65 00 Ñe. |
RCL EAX, 1 |
59D6A3 D1 D0 ÑÐ |
RET |
59D6A5 C3 Ã |
EndCode |
Code D2/ ;( xd1 -- xd2 ) \ 94 DOUBLE |
59D6A6 C0 D6 59 00 00 03 44 32 2F 89 D6 59 00 00 00 00 ÀÖY...D2/ÖY.... |
59D6B6 00 00 00 00 00 00 00 00 00 00 .......... |
; xd2 is the result of shifting xd1 one bit toward the least-significant bit, |
; leaving the most-significant bit unchanged |
SAR EAX, 1 |
59D6C0 D1 F8 Ñø |
RCR DWORD PTR [EBP], 1 |
59D6C2 D1 5D 00 Ñ]. |
RET |
59D6C5 C3 Ã |
EndCode |
\ ================================================================ |
\ âப¨ |
Code -TRAILING ;( c-addr u1 -- c-addr u2 ) \ 94 STRING |
59D6C6 E0 D6 59 00 00 09 2D 54 52 41 49 4C 49 4E 47 AB àÖY...-TRAILING« |
59D6D6 D6 59 00 00 00 00 00 00 00 00 ÖY........ |
; ᫨ u1 ¡®«ìè¥ ã«ï, u2 à ¢® u1, 㬥ì襮¬ã ª®«¨ç¥á⢮ ¯à®¡¥«®¢ ¢ ª®æ¥ |
; ᨬ¢®«ì®© áâப¨, § ¤ ®© c-addr ¨ u1. ᫨ u1 ®«ì ¨«¨ ¢áï áâப á®á⮨â |
; ¨§ ¯à®¡¥«®¢, u2 ®«ì. |
PUSH EDI |
59D6E0 57 W |
MOV ECX, EAX |
59D6E1 8B C8 È |
SIF C0<> |
59D6E3 E3 11 ã. |
MOV EDI, DWORD PTR [EBP] |
59D6E5 8B 7D 00 }. |
ADD EDI, ECX |
59D6E8 03 F9 .ù |
DEC EDI |
59D6EA 4F O |
MOV AL, 20H |
59D6EB B0 20 ° |
STD |
59D6ED FD ý |
REPZ SCASB |
59D6EE F3 AE ó® |
SIF 0<> |
59D6F0 74 01 t. |
INC ECX |
59D6F2 41 A |
STHEN |
CLD |
59D6F3 FC ü |
MOV EAX, ECX |
59D6F4 8B C1 Á |
STHEN |
POP EDI |
59D6F6 5F _ |
RET |
59D6F7 C3 Ã |
EndCode |
Code COMPARE ;( c-addr1 u1 c-addr2 u2 -- n ) \ 94 STRING !!!!! |
59D6F8 10 D7 59 00 00 07 43 4F 4D 50 41 52 45 CB D6 59 .×Y...COMPAREËÖY |
59D708 00 00 00 00 00 00 00 00 ........ |
; à ¢¨âì áâபã, § ¤ ãî c-addr1 u1, á® áâப®©, § ¤ ®© c-addr2 u2. |
; âப¨ áà ¢¨¢ îâáï, ç¨ ï á § ¤ ëå ¤à¥á®¢, ᨬ¢®« § ᨬ¢®«®¬, ¤® ¤«¨ë |
; ¨¡®«¥¥ ª®à®âª®© ¨§ áâப ¨«¨ ¤® 宦¤¥¨ï à §«¨ç¨©. ᫨ ¤¢¥ áâப¨ |
; ¨¤¥â¨çë, n ®«ì. ᫨ ¤¢¥ áâப¨ ¨¤¥â¨çë ¤® ¤«¨ë ¨¡®«¥¥ ª®à®âª®© ¨§ |
; áâப, â® n ¬¨ãá ¥¤¨¨æ (-1), ¥á«¨ u1 ¬¥ìè¥ u2, ¨ ç¥ ¥¤¨¨æ (1). |
; ᫨ ¤¢¥ áâப¨ ¥ ¨¤¥â¨çë ¤® ¤«¨ë ¨¡®«¥¥ ª®à®âª®© ¨§ áâப, â® n ¬¨ãá |
; ¥¤¨¨æ (-1), ¥á«¨ ¯¥à¢ë© ¥á®¢¯ ¤ î騩 ᨬ¢®« áâப¨, § ¤ ®© c-addr1 u1 |
; ¨¬¥¥â ¬¥ì襥 ç¨á«®¢®¥ § 票¥, 祬 ᮮ⢥âáâ¢ãî騩 ᨬ¢®« ¢ áâப¥, |
; § ¤ ®© c-addr2 u2, ¨ ¥¤¨¨æ ¢ ¯à®â¨¢®¬ á«ãç ¥. |
PUSH EDI |
59D710 57 W |
MOV ECX, EAX |
59D711 8B C8 È |
SUB EAX, EAX |
59D713 2B C0 +À |
CMP ECX, [EBP +4 ] |
59D715 3B 4D 04 ;M. |
SIF 0<> |
59D718 74 09 t. |
SIF U< |
59D71A 73 03 s. |
INC EAX |
59D71C 40 @ |
SELSE |
59D71D EB 04 ë. |
DEC EAX |
59D71F 48 H |
MOV ECX, [EBP +4 ] |
59D720 8B 4D 04 M. |
STHEN |
STHEN |
MOV ESI, [EBP + { 2 CELLS } ] |
59D723 8B 75 08 u. |
MOV EDI, [EBP] |
59D726 8B 7D 00 }. |
REPE CMPSB |
59D729 F3 A6 ó¦ |
SIF 0<> |
59D72B 74 0E t. |
SIF U>= |
59D72D 72 07 r. |
MOV EAX, 1 |
59D72F B8 01 00 00 00 ¸.... |
SELSE |
59D734 EB 05 ë. |
MOV EAX, -1 |
59D736 B8 FF FF FF FF ¸ÿÿÿÿ |
STHEN |
STHEN |
LEA EBP, [EBP + { 3 CELLS } ] |
59D73B 8D 6D 0C m. |
POP EDI |
59D73E 5F _ |
RET |
59D73F C3 Ã |
EndCode |
Code SEARCH ;( c-addr1 u1 c-addr2 u2 -- c-addr3 u3 flag ) \ 94 STRING |
59D740 50 D7 59 00 00 06 53 45 41 52 43 48 FD D6 59 00 P×Y...SEARCHýÖY. |
; ந§¢¥á⨠¯®¨áª ¢ áâப¥, § ¤ ®© c-addr1 u1, áâப¨, § ¤ ®© c-addr2 u2. |
; ᫨ ä« £ "¨á⨠", ᮢ¯ ¤¥¨¥ ©¤¥® ¯® ¤à¥áã c-addr3 á ®á⠢訬¨áï u3 |
; ᨬ¢®« ¬¨. ᫨ ä« £ "«®¦ì", ᮢ¯ ¤¥¨ï ¥ ©¤¥®, ¨ c-addr3 ¥áâì c-addr1, |
; ¨ u3 ¥áâì u1. \ !!!!! |
LEA EBP, [EBP-4] |
59D750 8D 6D FC mü |
MOV [EBP], EAX |
59D753 89 45 00 E. |
PUSH EDI |
59D756 57 W |
CLD |
59D757 FC ü |
MOV EBX, DWORD PTR [EBP] |
59D758 8B 5D 00 ]. |
OR EBX, EBX |
59D75B 0B DB .Û |
SIF 0<> |
59D75D 74 35 t5 |
MOV EDX, DWORD PTR [EBP + { 2 CELLS } ] |
59D75F 8B 55 08 U. |
MOV EDI, DWORD PTR [EBP + { 3 CELLS } ] |
59D762 8B 7D 0C }. |
ADD EDX, EDI |
59D765 03 D7 .× |
SBEGIN |
MOV ESI, DWORD PTR [EBP +4 ] |
59D767 8B 75 04 u. |
LODSB |
59D76A AC ¬ |
MOV ECX, EDX |
59D76B 8B CA Ê |
SUB ECX, EDI |
59D76D 2B CF +Ï |
JECXZ LLD |
59D76F E3 2A ã* |
REPNZ |
59D771 F2 ò |
SCASB |
59D772 AE ® |
JNE SHORT LLD ; ¢® ¢á¥© áâப¥ ¥â ¯¥à¢®£® ᨬ¢®« ¨áª®¬®© áâப¨ |
59D773 75 26 u& |
CMP EBX, 1 |
59D775 83 FB 01 û. |
JZ SHORT LLC ; ¨áª®¬ ï áâப ¨¬¥« ¤«¨ã 1 ¨ ©¤¥ |
59D778 74 11 t. |
MOV ECX, EBX |
59D77A 8B CB Ë |
DEC ECX |
59D77C 49 I |
MOV EAX, EDX |
59D77D 8B C2 Â |
SUB EAX, EDI |
59D77F 2B C7 +Ç |
CMP EAX, ECX |
59D781 3B C1 ;Á |
JC SHORT LLD ; ®áâ ⮪ áâப¨ ª®à®ç¥ ¨áª®¬®© áâப¨ |
59D783 72 16 r. |
PUSH EDI |
59D785 57 W |
REPZ CMPSB |
59D786 F3 A6 ó¦ |
POP EDI |
59D788 5F _ |
SUNTIL 0= |
59D789 75 DC uÜ |
LLC: DEC EDI ; 諨 ¯®«®¥ ᮢ¯ ¤¥¨¥ |
59D78B 4F O |
SUB EDX, EDI |
59D78C 2B D7 +× |
MOV DWORD PTR [EBP + { 3 CELLS } ], EDI |
59D78E 89 7D 0C }. |
MOV DWORD PTR [EBP + { 2 CELLS } ], EDX |
59D791 89 55 08 U. |
STHEN |
MOV EAX, -1 |
59D794 B8 FF FF FF FF ¸ÿÿÿÿ |
JMP SHORT LLA |
59D799 EB 02 ë. |
LLD: XOR EAX, EAX |
59D79B 33 C0 3À |
LLA: LEA EBP, [EBP+4] |
59D79D 8D 6D 04 m. |
MOV [EBP], EAX |
59D7A0 89 45 00 E. |
POP EDI |
59D7A3 5F _ |
MOV EAX, [EBP] |
59D7A4 8B 45 00 E. |
LEA EBP, [EBP+4] |
59D7A7 8D 6D 04 m. |
RET |
59D7AA C3 Ã |
EndCode |
Code CMOVE ;( c-addr1 c-addr2 u -- ) \ 94 STRING |
59D7AB C0 D7 59 00 00 05 43 4D 4F 56 45 45 D7 59 00 00 À×Y...CMOVEE×Y.. |
59D7BB 00 00 00 00 00 ..... |
; ᫨ u ¡®«ìè¥ ã«ï, ª®¯¨à®¢ âì u ¯®á«¥¤®¢ ⥫ìëå ᨬ¢®«®¢ ¨§ ¯à®áâà á⢠|
; ¤ ëå ç¨ ï á ¤à¥á c-addr1 ¢ c-addr2, ᨬ¢®« § ᨬ¢®«®¬, ç¨ ï á |
; ¬« ¤è¨å ¤à¥á®¢ ª áâ à訬. |
MOV EDX, EDI |
59D7C0 8B D7 × |
MOV ECX, EAX |
59D7C2 8B C8 È |
MOV EDI, DWORD PTR [EBP] |
59D7C4 8B 7D 00 }. |
MOV ESI, DWORD PTR [EBP +4 ] |
59D7C7 8B 75 04 u. |
CLD |
59D7CA FC ü |
REPZ MOVSB |
59D7CB F3 A4 ó¤ |
LEA EBP, [EBP+0CH] |
59D7CD 8D 6D 0C m. |
MOV EAX, [EBP-4] |
59D7D0 8B 45 FC Eü |
MOV EDI, EDX |
59D7D3 8B FA ú |
RET |
59D7D5 C3 Ã |
EndCode |
: QCMOVE CMOVE ; |
59D7D6 F0 D7 59 00 00 06 51 43 4D 4F 56 45 B0 D7 59 00 ð×Y...QCMOVE°×Y. |
59D7E6 00 00 00 00 00 00 00 00 00 00 .......... |
CALL @@CMOVE |
RET |
Code CMOVE> ;( c-addr1 c-addr2 u -- ) \ 94 STRING |
59D7F6 10 D8 59 00 00 06 43 4D 4F 56 45 3E DB D7 59 00 .ØY...CMOVE>Û×Y. |
59D806 00 00 00 00 00 00 00 00 00 00 .......... |
; ᫨ u ¡®«ìè¥ ã«ï, ª®¯¨à®¢ âì u ¯®á«¥¤®¢ ⥫ìëå ᨬ¢®«®¢ ¨§ ¯à®áâà á⢠|
; ¤ ëå ç¨ ï á ¤à¥á c-addr1 ¢ c-addr2, ᨬ¢®« § ᨬ¢®«®¬, ç¨ ï á® |
; áâ àè¨å ¤à¥á®¢ ª ¬« ¤è¨¬. |
MOV EDX, EDI |
59D810 8B D7 × |
MOV ECX, EAX |
59D812 8B C8 È |
MOV EDI, [EBP] |
59D814 8B 7D 00 }. |
MOV ESI, [EBP+4] |
59D817 8B 75 04 u. |
STD |
59D81A FD ý |
ADD EDI, ECX |
59D81B 03 F9 .ù |
DEC EDI |
59D81D 4F O |
ADD ESI, ECX |
59D81E 03 F1 .ñ |
DEC ESI |
59D820 4E N |
REP MOVSB |
59D821 F3 A4 ó¤ |
MOV EDI, EDX |
59D823 8B FA ú |
LEA EBP, [EBP+0CH] |
59D825 8D 6D 0C m. |
MOV EAX, [EBP-4] |
59D828 8B 45 FC Eü |
RET |
59D82B C3 Ã |
EndCode |
Code FILL ;( c-addr u char -- ) \ 94 \ !!!!! |
59D82C 40 D8 59 00 00 04 46 49 4C 4C FB D7 59 00 00 00 @ØY...FILLû×Y... |
59D83C 00 00 00 00 .... |
; ᫨ u ¡®«ìè¥ ã«ï, § á« âì char ¢ u ¡ ©â®¢ ¯® ¤à¥áã c-addr. |
MOV EDX, EDI |
59D840 8B D7 × |
MOV ECX, [EBP] |
59D842 8B 4D 00 M. |
MOV EDI, [EBP+4] |
59D845 8B 7D 04 }. |
CLD |
59D848 FC ü |
REP STOSB |
59D849 F3 AA óª |
MOV EDI, EDX |
59D84B 8B FA ú |
LEA EBP, [EBP+0CH] |
59D84D 8D 6D 0C m. |
MOV EAX, [EBP-4] |
59D850 8B 45 FC Eü |
RET |
59D853 C3 Ã |
EndCode |
Code ZCOUNT ;( c-addr -- c-addr u ) |
59D854 70 D8 59 00 00 06 5A 43 4F 55 4E 54 31 D8 59 00 pØY...ZCOUNT1ØY. |
59D864 00 00 00 00 00 00 00 00 00 00 00 00 ............ |
LEA EBP, [EBP-4] |
59D870 8D 6D FC mü |
MOV [EBP], EAX |
59D873 89 45 00 E. |
XOR EBX, EBX |
59D876 33 DB 3Û |
SBEGIN |
MOV BL, BYTE PTR [EAX ] |
59D878 8A 18 . |
INC EAX |
59D87A 40 @ |
OR BL, BL |
59D87B 0A DB .Û |
SUNTIL 0= |
59D87D 75 F9 uù |
DEC EAX |
59D87F 48 H |
SUB EAX, [EBP] |
59D880 2B 45 00 +E. |
RET |
59D883 C3 Ã |
EndCode |
\ ================================================================ |
\ ª § ⥫¨ á⥪®¢ |
Code SP! ;( A -> ) |
59D884 A0 D8 59 00 00 03 53 50 21 59 D8 59 00 00 00 00 ØY...SP!YØY.... |
59D894 00 00 00 00 00 00 00 00 00 00 00 00 ............ |
LEA EBP, [EAX+4] |
59D8A0 8D 68 04 h. |
MOV EAX, [EBP-4] |
59D8A3 8B 45 FC Eü |
RET |
59D8A6 C3 Ã |
EndCode |
Code RP! ;( A -> ) |
59D8A7 C0 D8 59 00 00 03 52 50 21 89 D8 59 00 00 00 00 ÀØY...RP!ØY.... |
59D8B7 00 00 00 00 00 00 00 00 00 ......... |
POP EBX |
59D8C0 5B [ |
MOV ESP, EAX |
59D8C1 8B E0 à |
MOV EAX, [EBP] |
59D8C3 8B 45 00 E. |
LEA EBP, [EBP+4] |
59D8C6 8D 6D 04 m. |
JMP EBX |
59D8C9 FF E3 ÿã |
EndCode |
Code SP@ ;( -> A ) |
59D8CB E0 D8 59 00 00 03 53 50 40 AC D8 59 00 00 00 00 àØY...SP@¬ØY.... |
59D8DB 00 00 00 00 00 ..... |
LEA EBP, [EBP-4] |
59D8E0 8D 6D FC mü |
MOV [EBP], EAX |
59D8E3 89 45 00 E. |
MOV EAX, EBP |
59D8E6 8B C5 Å |
RET |
59D8E8 C3 Ã |
EndCode |
Code RP@ ;( -- RP ) |
59D8E9 00 D9 59 00 00 03 52 50 40 D0 D8 59 00 00 00 00 .ÙY...RP@ÐØY.... |
59D8F9 00 00 00 00 00 00 00 ....... |
LEA EBP, [EBP-4] |
59D900 8D 6D FC mü |
MOV [EBP], EAX |
59D903 89 45 00 E. |
LEA EAX, [ESP + 4 ] |
59D906 8D 44 24 04 D$. |
RET |
59D90A C3 Ã |
EndCode |
\ ================================================================ |
\ ¥£¨áâà ¯®â®ª (§ ¤ ç¨ ¢ãâਠä®àâ ) |
Code TlsIndex! ;( x -- ) \ 㪠§ â¥«ì «®ª «ì®£® ¯ã« ¯®â®ª |
59D90B 20 D9 59 00 00 09 54 6C 73 49 6E 64 65 78 21 EE ÙY...TlsIndex!î |
59D91B D8 59 00 00 00 ØY... |
MOV EDI, EAX |
59D920 8B F8 ø |
MOV EAX, [EBP] |
59D922 8B 45 00 E. |
LEA EBP, [EBP+4] |
59D925 8D 6D 04 m. |
RET |
59D928 C3 Ã |
EndCode |
Code TlsIndex@ ;( -- x ) |
59D929 40 D9 59 00 00 09 54 6C 73 49 6E 64 65 78 40 10 @ÙY...TlsIndex@. |
59D939 D9 59 00 00 00 00 00 ÙY..... |
LEA EBP, [EBP-4] |
59D940 8D 6D FC mü |
MOV [EBP], EAX |
59D943 89 45 00 E. |
MOV EAX, EDI |
59D946 8B C7 Ç |
RET |
59D948 C3 Ã |
EndCode |
\ ================================================================ |
\ ¨ª«ë |
Code C-J |
59D949 60 D9 59 00 00 03 43 2D 4A 2E D9 59 00 00 00 00 `ÙY...C-J.ÙY.... |
59D959 00 00 00 00 00 00 00 ....... |
LEA EBP, [EBP-4] |
59D960 8D 6D FC mü |
MOV [EBP], EAX |
59D963 89 45 00 E. |
MOV EAX, DWORD PTR [ESP + { 3 CELLS } ] |
59D966 8B 44 24 0C D$. |
SUB EAX, DWORD PTR [ESP + { 4 CELLS } ] |
59D96A 2B 44 24 10 +D$. |
RET |
59D96E C3 Ã |
EndCode |
( inline'ë ¤«ï ª®¬¯¨«ï樨 横«®¢ ) |
Code C-DO |
59D96F 80 D9 59 00 00 04 43 2D 44 4F 4E D9 59 00 00 00 ÙY...C-DONÙY... |
59D97F 00 . |
LEA EBP, [EBP+8] |
59D980 8D 6D 08 m. |
MOV EDX, 80000000H |
59D983 BA 00 00 00 80 º... |
SUB EDX, [EBP-8] |
59D988 2B 55 F8 +Uø |
LEA EBX, [EAX+EDX] |
59D98B 8D 1C 02 .. |
MOV EAX, [EBP-4] |
59D98E 8B 45 FC Eü |
MOV EDX, EDX ; FOR OPT |
59D991 8B D2 Ò |
; PUSH EDX |
; PUSH EBX |
RET |
59D993 C3 Ã |
EndCode |
Code C-?DO |
59D994 B0 D9 59 00 00 05 43 2D 3F 44 4F 74 D9 59 00 00 °ÙY...C-?DOtÙY.. |
59D9A4 00 00 00 00 00 00 00 00 00 00 00 00 ............ |
CMP EAX, [EBP-8] |
59D9B0 3B 45 F8 ;Eø |
SIF 0= |
59D9B3 75 05 u. |
MOV EAX, [EBP-4] |
59D9B5 8B 45 FC Eü |
JMP EBX |
59D9B8 FF E3 ÿã |
STHEN |
PUSH EBX |
59D9BA 53 S |
MOV EBX , 80000000 |
59D9BB BB 00 00 00 80 »... |
SUB EBX, [EBP-8] |
59D9C0 2B 5D F8 +]ø |
PUSH EBX ; 80000000h-to |
59D9C3 53 S |
ADD EBX, EAX |
59D9C4 03 D8 .Ø |
PUSH EBX ; 80000000H-to+from |
59D9C6 53 S |
MOV EAX, [EBP-4] |
59D9C7 8B 45 FC Eü |
RET |
59D9CA C3 Ã |
EndCode |
Code ADD[ESP],EAX |
59D9CB F0 D9 59 00 00 0C 41 44 44 5B 45 53 50 5D 2C 45 ðÙY...ADD[ESP],E |
59D9DB 41 58 99 D9 59 00 00 00 00 00 00 00 00 00 00 00 AXÙY........... |
59D9EB 00 00 00 00 00 ..... |
ADD [ESP] , EAX |
59D9F0 01 04 24 ..$ |
RET |
59D9F3 C3 Ã |
EndCode |
Code C-I |
59D9F4 10 DA 59 00 00 03 43 2D 49 D0 D9 59 00 00 00 00 .ÚY...C-IÐÙY.... |
59DA04 00 00 00 00 00 00 00 00 00 00 00 00 ............ |
LEA EBP, [EBP-4] |
59DA10 8D 6D FC mü |
MOV [EBP], EAX |
59DA13 89 45 00 E. |
MOV EAX, DWORD PTR [ESP] |
59DA16 8B 04 24 .$ |
SUB EAX, [ESP+4] |
59DA19 2B 44 24 04 +D$. |
RET |
59DA1D C3 Ã |
EndCode |
Code C->R |
59DA1E 30 DA 59 00 00 04 43 2D 3E 52 F9 D9 59 00 00 00 0ÚY...C->RùÙY... |
59DA2E 00 00 .. |
PUSH EAX |
59DA30 50 P |
MOV EAX, [EBP] |
59DA31 8B 45 00 E. |
LEA EBP, [EBP+4] |
59DA34 8D 6D 04 m. |
RET |
59DA37 C3 Ã |
EndCode |
Code C-R> |
59DA38 50 DA 59 00 00 04 43 2D 52 3E 23 DA 59 00 00 00 PÚY...C-R>#ÚY... |
59DA48 00 00 00 00 00 00 00 00 ........ |
LEA EBP, [EBP-4] |
59DA50 8D 6D FC mü |
MOV [EBP], EAX |
59DA53 89 45 00 E. |
POP EAX |
59DA56 58 X |
RET |
59DA57 C3 Ã |
EndCode |
Code C-RDROP |
59DA58 70 DA 59 00 00 07 43 2D 52 44 52 4F 50 3D DA 59 pÚY...C-RDROP=ÚY |
59DA68 00 00 00 00 00 00 00 00 ........ |
ADD ESP, 4 |
59DA70 83 C4 04 Ä. |
RET |
59DA73 C3 Ã |
EndCode |
Code C-2RDROP |
59DA74 90 DA 59 00 00 08 43 2D 32 52 44 52 4F 50 5D DA ÚY...C-2RDROP]Ú |
59DA84 59 00 00 00 00 00 00 00 00 00 00 00 Y........... |
ADD ESP, 8 |
59DA90 83 C4 08 Ä. |
RET |
59DA93 C3 Ã |
EndCode |
Code C-3RDROP |
59DA94 B0 DA 59 00 00 08 43 2D 33 52 44 52 4F 50 79 DA °ÚY...C-3RDROPyÚ |
59DAA4 59 00 00 00 00 00 00 00 00 00 00 00 Y........... |
ADD ESP, 0CH |
59DAB0 83 C4 0C Ä. |
RET |
59DAB3 C3 Ã |
EndCode |
TRUE [IF] |
Code C-EXECUTE ;( i*x xt -- j*x ) \ 94 |
59DAB4 D0 DA 59 00 00 09 43 2D 45 58 45 43 55 54 45 99 ÐÚY...C-EXECUTE |
59DAC4 DA 59 00 00 00 00 00 00 00 00 00 00 ÚY.......... |
; ¡à âì xt á® á⥪ ¨ ¢ë¯®«¨âì § ¤ ãî ¨¬ ᥬ ⨪ã. |
; à㣨¥ ¨§¬¥¥¨ï á⥪¥ ®¯à¥¤¥«ïîâáï á«®¢®¬, ª®â®à®¥ ¢ë¯®«ï¥âáï. |
MOV EDX, EAX |
59DAD0 8B D0 Ð |
MOV EAX, [EBP] |
59DAD2 8B 45 00 E. |
LEA EBP, [EBP+4] |
59DAD5 8D 6D 04 m. |
CALL EDX |
59DAD8 FF D2 ÿÒ |
RET |
59DADA C3 Ã |
EndCode |
[THEN] |
Code EXECUTE ;( i*x xt -- j*x ) \ 94 |
59DADB F0 DA 59 00 00 07 45 58 45 43 55 54 45 B9 DA 59 ðÚY...EXECUTE¹ÚY |
59DAEB 00 00 00 00 00 ..... |
; ¡à âì xt á® á⥪ ¨ ¢ë¯®«¨âì § ¤ ãî ¨¬ ᥬ ⨪ã. |
; à㣨¥ ¨§¬¥¥¨ï á⥪¥ ®¯à¥¤¥«ïîâáï á«®¢®¬, ª®â®à®¥ ¢ë¯®«ï¥âáï. |
MOV EBX, EAX |
59DAF0 8B D8 Ø |
MOV EAX, [EBP] |
59DAF2 8B 45 00 E. |
LEA EBP, [EBP+4] |
59DAF5 8D 6D 04 m. |
JMP EBX |
59DAF8 FF E3 ÿã |
EndCode |
Code @EXECUTE ;( i*x xt -- j*x ) |
59DAFA 10 DB 59 00 00 08 40 45 58 45 43 55 54 45 E0 DA .ÛY...@EXECUTEàÚ |
59DB0A 59 00 00 00 00 00 Y..... |
MOV EBX, EAX |
59DB10 8B D8 Ø |
MOV EAX, [EBP] |
59DB12 8B 45 00 E. |
LEA EBP, [EBP+4] |
59DB15 8D 6D 04 m. |
JMP [EBX] |
59DB18 FF 23 ÿ# |
EndCode |
\ ================================================================ |
\ ®¤¤¥à¦ª LOCALS |
Code DRMOVE ;( x1 ... xn n*4 -- ) |
59DB1A 30 DB 59 00 00 06 44 52 4D 4F 56 45 FF DA 59 00 0ÛY...DRMOVEÿÚY. |
59DB2A 00 00 00 00 00 00 ...... |
; ¯¥à¥¥á⨠n ç¨á¥« á® á⥪ ¤ ëå á⥪ ¢®§¢à ⮢ |
POP EDX ; ¤à¥á ¢®§¢à â |
59DB30 5A Z |
MOV ESI, EAX |
59DB31 8B F0 ð |
@@1: |
PUSH DWORD PTR [EBP+ESI-4] |
59DB33 FF 74 2E FC ÿt.ü |
SUB ESI, 4 |
59DB37 83 EE 04 î. |
JNZ SHORT @@1 |
59DB3A 75 F7 u÷ |
ADD EBP, EAX |
59DB3C 03 E8 .è |
MOV EAX, [EBP] |
59DB3E 8B 45 00 E. |
LEA EBP, [EBP+4] |
59DB41 8D 6D 04 m. |
JMP EDX |
59DB44 FF E2 ÿâ |
EndCode |
Code NR> ;( R: x1 ... xn n -- D: x1 ... xn n ) |
59DB46 60 DB 59 00 00 03 4E 52 3E 1F DB 59 00 00 00 00 `ÛY...NR>.ÛY.... |
59DB56 00 00 00 00 00 00 00 00 00 00 .......... |
; ¥à¥¥á⨠n ç¨á¥« á® á⥪ ¢®§¢à ⮢ á⥪ ¤ ëå |
; ᫨ n=0 ¢®§¢à â¨âì 0 |
POP EDX ; ¤à¥á ¢®§¢à â |
59DB60 5A Z |
LEA EBP, [EBP-4] |
59DB61 8D 6D FC mü |
MOV [EBP], EAX |
59DB64 89 45 00 E. |
POP EAX |
59DB67 58 X |
OR EAX, EAX |
59DB68 0B C0 .À |
JNZ @@2 |
59DB6A 0F 85 02 00 00 00 . .... |
JMP EDX |
59DB70 FF E2 ÿâ |
@@2: LEA EAX, [EAX*4] |
59DB72 8D 04 85 00 00 00 00 . .... |
MOV ESI, EAX |
59DB79 8B F0 ð |
@@1: |
MOV EBX, EBP |
59DB7B 8B DD Ý |
SUB EBX, ESI |
59DB7D 2B DE +Þ |
POP DWORD PTR [EBX] |
59DB7F 8F 03 . |
SUB ESI, 4 |
59DB81 83 EE 04 î. |
JNZ SHORT @@1 |
59DB84 75 F5 uõ |
SUB EBP, EAX |
59DB86 2B E8 +è |
SAR EAX, 2 |
59DB88 C1 F8 02 Áø. |
JMP EDX |
59DB8B FF E2 ÿâ |
EndCode |
Code N>R ;( D: x1 ... xn n -- R: x1 ... xn n ) |
59DB8D A0 DB 59 00 00 03 4E 3E 52 4B DB 59 00 00 00 00 ÛY...N>RKÛY.... |
59DB9D 00 00 00 ... |
; ¯¥à¥¥á⨠n ç¨á¥« á® á⥪ ¤ ëå á⥪ ¢®§¢à ⮢ |
LEA EBP, [EBP-4] |
59DBA0 8D 6D FC mü |
MOV [EBP], EAX |
59DBA3 89 45 00 E. |
LEA EAX, [EAX*4+4] |
59DBA6 8D 04 85 04 00 00 00 . .... |
POP EDX ; ¤à¥á ¢®§¢à â |
59DBAD 5A Z |
MOV ESI, EAX |
59DBAE 8B F0 ð |
@@1: |
PUSH DWORD PTR [EBP+ESI-4] |
59DBB0 FF 74 2E FC ÿt.ü |
SUB ESI, 4 |
59DBB4 83 EE 04 î. |
JNZ SHORT @@1 |
59DBB7 75 F7 u÷ |
ADD EBP, EAX |
59DBB9 03 E8 .è |
MOV EAX, [EBP] |
59DBBB 8B 45 00 E. |
LEA EBP, [EBP+4] |
59DBBE 8D 6D 04 m. |
JMP EDX |
59DBC1 FF E2 ÿâ |
EndCode |
Code NRCOPY ;( D: i*x i -- D: i*x i R: i*x i ) |
59DBC3 E0 DB 59 00 00 06 4E 52 43 4F 50 59 92 DB 59 00 àÛY...NRCOPYÛY. |
59DBD3 00 00 00 00 00 00 00 00 00 00 00 00 00 ............. |
; ᪮¯¨à®¢ âì n ç¨á¥« á® á⥪ ¤ ëå á⥪ ¢®§¢à ⮢ |
MOV ECX, EAX |
59DBE0 8B C8 È |
LEA ECX, [ECX*4] |
59DBE2 8D 0C 8D 00 00 00 00 ..... |
POP EDX ; ¤à¥á ¢®§¢à â |
59DBE9 5A Z |
JECXZ @@2 |
59DBEA E3 0B ã. |
MOV ESI, ECX |
59DBEC 8B F1 ñ |
@@1: |
PUSH DWORD PTR [ESI+EBP-4] |
59DBEE FF 74 35 FC ÿt5ü |
SUB ESI, 4 |
59DBF2 83 EE 04 î. |
JNZ SHORT @@1 |
59DBF5 75 F7 u÷ |
@@2: |
PUSH EAX |
59DBF7 50 P |
JMP EDX |
59DBF8 FF E2 ÿâ |
EndCode |
Code RP+@ ;( offs -- x ) |
59DBFA 10 DC 59 00 00 04 52 50 2B 40 C8 DB 59 00 00 00 .ÜY...RP+@ÈÛY... |
59DC0A 00 00 00 00 00 00 ...... |
; ¢§ïâì ç¨á«® ᮠᬥ饨¥¬ offs ¡ ©â ®â ¢¥àè¨ë á⥪ ¢®§¢à ⮢ (0 RP+@ == RP@) |
MOV EAX, [EAX+ESP+4] |
59DC10 8B 44 04 04 D.. |
RET |
59DC14 C3 Ã |
EndCode |
Code RP+ ;( offs -- addr ) |
59DC15 30 DC 59 00 00 03 52 50 2B FF DB 59 00 00 00 00 0ÜY...RP+ÿÛY.... |
59DC25 00 00 00 00 00 00 00 00 00 00 00 ........... |
; ¢§ïâì ¤à¥á ᮠᬥ饨¥¬ offs ¡ ©â ®â ¢¥àè¨ë á⥪ ¢®§¢à ⮢ |
LEA EAX, [EAX+ESP+4] |
59DC30 8D 44 04 04 D.. |
RET |
59DC34 C3 Ã |
EndCode |
Code RP+! ;( x offs -- ) |
59DC35 50 DC 59 00 00 04 52 50 2B 21 1A DC 59 00 00 00 PÜY...RP+!.ÜY... |
59DC45 00 00 00 00 00 00 00 00 00 00 00 ........... |
; § ¯¨á âì ç¨á«® x ¯® ᬥ饨î offs ¡ ©â ®â ¢¥àè¨ë á⥪ ¢®§¢à ⮢ |
MOV EBX, [EBP] |
59DC50 8B 5D 00 ]. |
MOV [EAX+ESP+4], EBX |
59DC53 89 5C 04 04 \.. |
LEA EBP, [EBP+8] |
59DC57 8D 6D 08 m. |
MOV EAX, [EBP-4] |
59DC5A 8B 45 FC Eü |
RET |
59DC5D C3 Ã |
EndCode |
Code RALLOT ;( n -- addr ) |
59DC5E 70 DC 59 00 00 06 52 41 4C 4C 4F 54 3A DC 59 00 pÜY...RALLOT:ÜY. |
59DC6E 00 00 .. |
; § १¥à¢¨à®¢ âì n ï祥ª á⥪¥ ¢®§¢à ⮢, |
; ᤥ« ¥¬ á ¨¨æ¨ «¨§ 樥© ( â® ¥á«¨ ¡®«ìè¥ 8 ¢ë¤¥«¨¬, exception ¬®¦¥â) |
POP EDX |
59DC70 5A Z |
MOV ECX, EAX |
59DC71 8B C8 È |
XOR EAX, EAX |
59DC73 33 C0 3À |
@@1: PUSH EAX |
59DC75 50 P |
DEC ECX |
59DC76 49 I |
JNZ SHORT @@1 |
59DC77 75 FC uü |
MOV EAX, ESP |
59DC79 8B C4 Ä |
JMP EDX |
59DC7B FF E2 ÿâ |
EndCode |
Code (RALLOT) ;( n -- ) |
59DC7D 90 DC 59 00 00 08 28 52 41 4C 4C 4F 54 29 63 DC ÜY...(RALLOT)cÜ |
59DC8D 59 00 00 Y.. |
; § १¥à¢¨à®¢ âì n ï祥ª á⥪¥ ¢®§¢à ⮢ |
POP EDX |
59DC90 5A Z |
MOV ECX, EAX |
59DC91 8B C8 È |
XOR EAX, EAX |
59DC93 33 C0 3À |
@@1: PUSH EAX |
59DC95 50 P |
DEC ECX |
59DC96 49 I |
JNZ SHORT @@1 |
59DC97 75 FC uü |
MOV EAX, [EBP] |
59DC99 8B 45 00 E. |
LEA EBP, [EBP+4] |
59DC9C 8D 6D 04 m. |
JMP EDX |
59DC9F FF E2 ÿâ |
EndCode |
Code RFREE ;( n -- ) |
59DCA1 B0 DC 59 00 00 05 52 46 52 45 45 82 DC 59 00 °ÜY...RFREEÜY. |
; ¢¥àãâì n ï祥ª á⥪ ¢®§¢à ⮢ |
POP EDX |
59DCB0 5A Z |
LEA ESP, [ESP+EAX*4] |
59DCB1 8D 24 84 $ |
MOV EAX, [EBP] |
59DCB4 8B 45 00 E. |
LEA EBP, [EBP+4] |
59DCB7 8D 6D 04 m. |
JMP EDX |
59DCBA FF E2 ÿâ |
EndCode |
Code (LocalsExit) ;( -- ) |
59DCBC E0 DC 59 00 00 0C 28 4C 6F 63 61 6C 73 45 78 69 àÜY...(LocalsExi |
59DCCC 74 29 A6 DC 59 00 00 00 00 00 00 00 00 00 00 00 t)¦ÜY........... |
59DCDC 00 00 00 00 .... |
; ¢¥àãâì ¯ ¬ïâì ¢ á⥪ ¢®¢à ⮢, ç¨á«® ¡ ©â «¥¦¨â á⥪¥ |
POP EBX |
59DCE0 5B [ |
ADD ESP, EBX |
59DCE1 03 E3 .ã |
RET |
59DCE3 C3 Ã |
EndCode |
Code TIMER@ ;( -- tlo thi ) \ ®«ìª® ¤«ï Intel Pentium ¨ ¢ëè¥!!! |
59DCE4 00 DD 59 00 00 06 54 49 4D 45 52 40 C1 DC 59 00 .ÝY...TIMER@ÁÜY. |
59DCF4 00 00 00 00 00 00 00 00 00 00 00 00 ............ |
; ®§¢à â¨âì § 票¥ â ©¬¥à ¯à®æ¥áá®à ª ª ud |
MOV [EBP-4], EAX |
59DD00 89 45 FC Eü |
RDTSC |
59DD03 0F 31 .1 |
MOV [EBP-8], EDX |
59DD05 89 55 F8 Uø |
LEA EBP, [EBP-8] |
59DD08 8D 6D F8 mø |
XCHG EAX, [EBP] |
59DD0B 87 45 00 E. |
RET |
59DD0E C3 Ã |
EndCode |
\ «ï ®áâ «ìëå ¯à®æ¥áá®à®¢ à ᪮¬¬¥â¨àã©â¥: |
\ : TIMER@ 0 GetTickCount ; |
Code TRAP-CODE ;( D: j*x u R: i*x i -- i*x u ) |
59DD0F 30 DD 59 00 00 09 54 52 41 50 2D 43 4F 44 45 E9 0ÝY...TRAP-CODEé |
59DD1F DC 59 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ÜY.............. |
59DD2F 00 . |
; ᯮ¬®£ ⥫쮥 á«®¢® ¤«ï ¢®ááâ ®¢«¥¨ï § 票©, á®åà ¥ëå |
; ¯¥à¥¤ CATCH á⥪¥ ¢®§¢à ⮢ |
POP EDX |
59DD30 5A Z |
POP ESI |
59DD31 5E ^ |
OR ESI, ESI |
59DD32 0B F6 .ö |
JZ @@2 |
59DD34 0F 84 18 00 00 00 ..... |
LEA ESI, [ESI*4] |
59DD3A 8D 34 B5 00 00 00 00 4µ.... |
MOV ECX, ESI |
59DD41 8B CE Î |
@@1: MOV EBX, [ESI+ESP-4] |
59DD43 8B 5C 34 FC \4ü |
MOV [ESI+EBP-4], EBX |
59DD47 89 5C 35 FC \5ü |
SUB ESI, 4 |
59DD4B 83 EE 04 î. |
JNZ SHORT @@1 |
59DD4E 75 F3 uó |
ADD ESP, ECX |
59DD50 03 E1 .á |
@@2: JMP EDX |
59DD52 FF E2 ÿâ |
EndCode |
DECIMAL |
ZZ=D0 |
/programs/develop/SPForth/src/spf_forthproc_hl.f |
---|
0,0 → 1,104 |
( á⠢訥áï á«®¢ "ä®àâ-¯à®æ¥áá®à " ¢ ¢¨¤¥ ¢ë᮪®ã஢¥¢ëå ®¯à¥¤¥«¥¨©. |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
८¡à §®¢ ¨¥ ¨§ 16-à §à冷£® ¢ 32-à §àï¤ë© ª®¤ - 1995-96££ |
¥¢¨§¨ï - á¥âï¡àì 1999 |
) |
0 CONSTANT FALSE ( -- false ) \ 94 CORE EXT |
\ ¥àãâì ä« £ "«®¦ì". |
-1 CONSTANT TRUE ( -- true ) \ 94 CORE EXT |
\ ¥àãâì ä« £ "¨á⨠", ï祩ªã á® ¢á¥¬¨ ãáâ ®¢«¥ë¬¨ ¡¨â ¬¨. |
4 CONSTANT CELL |
: */ ( n1 n2 n3 -- n4 ) \ 94 |
\ ¬®¦¨âì n1 n2, ¯®«ãç¨âì ¯à®¬¥¦ãâ®çë© ¤¢®©®© १ã«ìâ â d. |
\ §¤¥«¨âì d n3, ¯®«ãç¨âì ç á⮥ n4. |
*/MOD NIP |
; |
: CHAR+ ( c-addr1 -- c-addr2 ) \ 94 |
\ ਡ ¢¨âì à §¬¥à ᨬ¢®« ª c-addr1 ¨ ¯®«ãç¨âì c-addr2. |
1+ |
; |
: CHARS ( n1 -- n2 ) \ 94 |
\ n2 - à §¬¥à n1 ᨬ¢®«®¢. |
; IMMEDIATE |
: MOVE ( addr1 addr2 u -- ) \ 94 |
\ ᫨ u ¡®«ìè¥ ã«ï, ª®¯¨à®¢ âì ᮤ¥à¦¨¬®¥ u ¡ ©â ¨§ addr1 ¢ addr2. |
\ ®á«¥ MOVE ¢ u ¡ ©â å ¯® ¤à¥áã addr2 ᮤ¥à¦¨âáï ¢ â®ç®á⨠⮠¦¥, |
\ çâ® ¡ë«® ¢ u ¡ ©â å ¯® ¤à¥áã addr1 ¤® ª®¯¨à®¢ ¨ï. |
>R 2DUP SWAP R@ + U< \ § 票¥ ¯®¯ ¤ ¥â ¢ ¤¨ ¯ §® ¨áâ®ç¨ª ¨«¨ «¥¢¥¥ |
IF 2DUP U< \ «¥¢¥¥ |
IF R> CMOVE> ELSE R> CMOVE THEN |
ELSE R> CMOVE THEN ; |
: ERASE ( addr u -- ) \ 94 CORE EXT |
\ ᫨ u ¡®«ìè¥ ã«ï, ®ç¨áâ¨âì ¢á¥ ¡¨âë ª ¦¤®£® ¨§ u ¡ ©â ¯ ¬ïâ¨, |
\ ç¨ ï á ¤à¥á addr. |
0 FILL ; |
: BLANK ( addr len -- ) \ fill addr for len with spaces (blanks) |
BL FILL ; |
: DABS ( d -- ud ) \ 94 DOUBLE |
\ ud ¡á®«îâ ï ¢¥«¨ç¨ d. |
DUP 0< IF DNEGATE THEN |
; |
255 CONSTANT MAXCOUNTED \ maximum length of contents of a counted string |
\ : 0X BASE @ HEX >R BL WORD ?LITERAL |
\ R> BASE ! ; IMMEDIATE |
: "CLIP" ( a1 n1 -- a1 n1' ) \ clip a string to between 0 and MAXCOUNTED |
MAXCOUNTED AND ; |
: PLACE ( addr len dest -- ) |
SWAP "CLIP" SWAP |
2DUP C! CHAR+ SWAP CHARS MOVE ; |
: +PLACE ( addr len dest -- ) \ append string addr,len to counted |
\ string dest |
>R "CLIP" MAXCOUNTED R@ C@ - MIN R> |
\ clip total to MAXCOUNTED string |
2DUP 2>R |
COUNT CHARS + SWAP MOVE |
2R> +! ; |
: C+PLACE ( c1 a1 -- ) \ append char c1 to the counted string at a1 |
DUP 1+! COUNT + 1- C! ; |
: STR>R ( addr u -- addr1 u) |
\ ®«®¦¨âì áâபã addr u á⥪ ¢®§¢à ⮢ |
\ ®§¢à â¨âì addr1 ¤à¥á ®¢®© áâப¨ |
; |
0 VALUE DOES-CODE |
: $! ( addr len dest -- ) |
PLACE ; |
: ASCII-Z ( addr len buff -- buff-z ) \ make an ascii string |
DUP >R $! R> COUNT OVER + 0 SWAP C! ; |
: 0MAX 0 MAX ; |
: ASCIIZ> ZCOUNT ; |
: R> ['] C-R> INLINE, ; IMMEDIATE |
: >R ['] C->R INLINE, ; IMMEDIATE |
: 2CONSTANT ( d --- ) |
\ Create a new definition that has the following runtime behavior. |
\ Runtime: ( --- d) push the constant double number on the stack. |
CREATE HERE 2! 8 ALLOT DOES> 2@ ; |
: U/MOD 0 SWAP UM/MOD ; |
: 2NIP 2SWAP 2DROP ; |
: ON TRUE SWAP ! ; |
: OFF ( a--) 0! ; |
/programs/develop/SPForth/src/spf_init.f |
---|
0,0 → 1,48 |
( Èíèöèàëèçàöèÿ USER-ïåðåìåííûõ. |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
Ñåíòÿáðü 1999 |
) |
VARIABLE MAINX |
VECT <FLOAT-INIT> |
: TITLE |
." SP-FOPTH ANS FORTH 94 for fasm" CR |
." A.Cherezov http://www.forth.org.ru/" CR |
." M.Maksimov http://forth.spb.su:8888/ http://www.chat.ru/~mak" CR |
." PAGE - Clearing of a screen" CR |
." WORDS - list of forth-words" CR |
." BYE - KolibriOS continuance" CR |
; |
: ERR-EXIT ( xt -- ) |
CATCH |
?DUP IF _BYE THEN |
; |
: HH. |
0x10000000 U/MOD DIGIT> EMIT |
0x1000000 U/MOD DIGIT> EMIT |
0x100000 U/MOD DIGIT> EMIT |
0x10000 U/MOD DIGIT> EMIT |
0x1000 U/MOD DIGIT> EMIT |
0x100 U/MOD DIGIT> EMIT |
0x10 U/MOD DIGIT> EMIT DIGIT> EMIT ; |
: INIT |
CURFILE 0! |
[ TDIS-OPT ] |
1 ALIGN-BYTES ! |
OP0 0! JP0 JpBuffSize ERASE |
0 LIT, 0x20 TO MM_SIZE SET-OPT |
TITLE |
['] AUTOEXEC CATCH ?DUP IF |
ERROR_DO THEN |
BEGIN |
['] QUIT CATCH ( 横« ¯à¨¥¬ ⥪áâ ) |
ERROR_DO |
AGAIN |
; |
/programs/develop/SPForth/src/spf_last.f |
---|
0,0 → 1,76 |
DECIMAL |
\ ' DUP VALUE 'DUP_V |
\ ' DROP VALUE 'DROP_V |
USER HLD \ ¯¥à¥¬¥ ï - ¯®§¨æ¨ï ¯®á«¥¤¥© «¨â¥àë, ¯¥à¥¥á¥®© ¢ PAD |
0 VALUE H-STDIN \ åí¤« ä ©« - áâ ¤ à⮣® ¢¢®¤ |
1 VALUE H-STDOUT \ åí¤« ä ©« - áâ ¤ à⮣® ¢ë¢®¤ |
1 VALUE H-STDERR \ åí¤« ä ©« - áâ ¤ à⮣® ¢ë¢®¤ ®è¨¡®ª |
USER ALIGN-BYTES |
: ALIGNED ( addr -- a-addr ) \ 94 |
\ a-addr - ¯¥à¢ë© ¢ë஢¥ë© ¤à¥á, ¡®«ì訩 ¨«¨ à ¢ë© addr. |
ALIGN-BYTES @ DUP 0= IF 1+ DUP ALIGN-BYTES ! THEN |
2DUP |
MOD DUP IF - + ELSE 2DROP THEN |
; |
: ALIGN ( -- ) \ 94 |
\ ᫨ 㪠§ â¥«ì ¯à®áâà á⢠¤ ëå ¥ ¢ë஢¥ - |
\ ¢ë஢ïâì ¥£®. |
DP @ ALIGNED DP @ - ALLOT |
; |
: ALIGN-NOP ( n -- ) |
\ ¢ë஢ïâì HERE n ¨ § ¯®«¨âì NOP |
HERE DUP ROT 2DUP |
MOD DUP IF - + ELSE 2DROP THEN |
OVER - DUP ALLOT 0x90 FILL |
; |
: IMMEDIATE ( -- ) \ 94 |
\ ¤¥« âì ¯®á«¥¤¥¥ ®¯à¥¤¥«¥¨¥ á«®¢®¬ ¥¬¥¤«¥®£® ¨á¯®«¥¨ï. |
\ ᪫îç¨â¥«ì ï á¨âã æ¨ï ¢®§¨ª ¥â, ¥á«¨ ¯®á«¥¤¥¥ ®¯à¥¤¥«¥¨¥ |
\ ¥ ¨¬¥¥â ¨¬¥¨. |
LAST @ NAME>F DUP C@ &IMMEDIATE OR SWAP C! |
; |
: :NONAME ( C: -- colon-sys ) ( S: -- xt ) \ 94 CORE EXT |
\ ®§¤ âì ¢ë¯®«¨¬ë© ⮪¥ xt, ãáâ ®¢¨âì á®áâ®ï¨¥ ª®¬¯¨«ï樨 ¨ |
\ ç âì ⥪ã饥 ®¯à¥¤¥«¥¨¥, ¯à®¨§¢¥¤ï colon-sys. ®¡ ¢¨âì ᥬ ⨪ã |
\ ¨¨æ¨ «¨§ 樨 ª ⥪ã饬㠮¯à¥¤¥«¥¨î. |
\ ¥¬ ⨪ ¢ë¯®«¥¨ï xt ¡ã¤¥â § ¤ á«®¢ ¬¨, ᪮¬¯¨«¨à®¢ 묨 |
\ ¢ ⥫® ®¯à¥¤¥«¥¨ï. â® ®¯à¥¤¥«¥¨¥ ¬®¦¥â ¡ëâì ¯®§¦¥ ¢ë¯®«¥® ¯® |
\ xt EXECUTE. |
\ ᫨ ã¯à ¢«ïî騩 á⥪ ॠ«¨§®¢ á ¨¬¯®«ì§®¢ ¨¥¬ á⥪ ¤ ëå, |
\ colon-sys ¡ã¤¥â ¢¥à娬 í«¥¬¥â®¬ á⥪¥ ¤ ëå. |
\ ¨æ¨ «¨§ æ¨ï: ( i*x -- i*x ) ( R: -- nest-sys ) |
\ ®åà ¨âì § ¢¨áïéãî ®â ॠ«¨§ 樨 ¨ä®à¬ æ¨î nest-sys ® ¢ë§®¢¥ |
\ ®¯à¥¤¥«¥¨ï. «¥¬¥âë á⥪ i*x ¯à¥¤áâ ¢«ïîâ à£ã¬¥âë xt. |
\ xt 믮«¥¨¥: ( i*x -- j*x ) |
\ 믮«¨âì ®¯à¥¤¥«¥¨¥, § ¤ ®¥ xt. «¥¬¥âë á⥪ i*x ¨ j*x |
\ ¯à¥¤áâ ¢«ïîâ à£ã¬¥âë ¨ १ã«ìâ âë xt ᮮ⢥âá⢥®. |
HERE ] |
HERE TO :-SET ; |
: INCLUDED INCLUDED_ ; |
' NOOP TO <PRE> |
' FIND1 TO FIND |
' ?LITERAL2 TO ?LITERAL |
' ?SLITERAL2 TO ?SLITERAL |
' OK1 TO OK. |
' (ABORT1") TO (ABORT") |
VECT TYPE ' _TYPE TO TYPE |
VECT EMIT ' _EMIT TO EMIT |
: H. BASE @ SWAP HEX U. BASE ! ; |
: TST S" /rd/1/autoload.f" INCLUDED_ ; |
: TST1 S" WORDS" EVALUATE ; |
/programs/develop/SPForth/src/spf_print.f |
---|
0,0 → 1,168 |
( Ñëîâà ôîðìàòíîé ïå÷àòè ÷èñåë. |
Copyright [C] 1992-1999 A.Cherezov ac@forth.org |
Ïðåîáðàçîâàíèå èç 16-ðàçðÿäíîãî â 32-ðàçðÿäíûé êîä - 1995-96ãã |
Ðåâèçèÿ - ñåíòÿáðü 1999 [ïåðåõîä íà USER-ïåðåìåííûå è |
çàìåíà CODE-ñëîâ âûñîêîóðîâíåâûìè îïðåäåëåíèÿìè] |
) |
4096 DUP CONSTANT NUMERIC-OUTPUT-LENGTH |
USER-CREATE SYSTEM-PAD |
USER-ALLOT \ Îáëàñòü ôîðìàòíîãî ïðåîáðàçîâàíèÿ - îáÿçàòåëüíî ïåðåä PAD |
: HEX ( -- ) \ 94 CORE EXT |
\ Óñòàíîâèòü ñîäåðæèìîå BASE ðàâíûì øåñòíàäöàòè. |
16 BASE ! |
; |
: DECIMAL ( -- ) \ 94 |
\ Óñòàíîâèòü îñíîâàíèå ñèñòåìû ñ÷èñëåíèÿ ðàâíûì äåñÿòè. |
10 BASE ! |
; |
: HOLD ( char -- ) \ 94 |
\ Äîáàâèòü char ê íà÷àëó ôîðìàòíîé ÷èñëîâîé ñòðîêè. |
\ Èñêëþ÷èòåëüíàÿ ñèòóàöèÿ âîçíèêàåò, åñëè èñïîëüçîâàòü HOLD |
\ âíå <# è #>, îãðàíè÷èâàþùèâàþùèõ ïðåîáðàçîâàíèå ÷èñåë. |
HLD @ 1- DUP HLD ! C! |
; |
: HOLDS ( addr u -- ) \ from eserv src |
TUCK + SWAP 0 ?DO DUP I - 1- C@ HOLD LOOP DROP |
; |
: <# ( -- ) \ 94 |
\ Íà÷àòü ôîðìàòíîå ïðåîáðàçîâàíèå ÷èñåë. |
PAD 1- HLD ! |
0 PAD 1- C! |
; |
: DIGIT> ( c -- c1 ) |
DUP 10 < 0= IF 7 + THEN 48 + ; |
: # ( ud1 -- ud2 ) \ 94 |
\ Äåëåíèåì ud1 íà çíà÷åíèå BASE âûäåëèòü îäíó öèôðó ñ êîíöà è |
\ äîáàâèòü åå â áóôåð ôîðìàòíîãî ïðåîáðàçîâàíèÿ ÷èñåë, |
\ îñòàâèâ ÷àñòíîå ud2. |
\ Èñêëþ÷èòåëüíàÿ ñèòóàöèÿ âîçíèêàåò, åñëè èñïîëüçîâàòü # |
\ âíå <# è #>, îãðàíè÷èâàþùèâàþùèõ ïðåîáðàçîâàíèå ÷èñåë. |
0 BASE @ UM/MOD >R BASE @ UM/MOD R> |
ROT DIGIT> HOLD |
; |
: #S ( ud1 -- ud2 ) \ 94 |
\ Âûäåëÿòü öèôðû D1 ïî ñëîâó # äî ïîëó÷åíèÿ íóëÿ. |
\ ud2 - íîëü. |
\ Èñêëþ÷èòåëüíàÿ ñèòóàöèÿ âîçíèêàåò, åñëè èñïîëüçîâàòü #S |
\ âíå <# è #>, îãðàíè÷èâàþùèâàþùèõ ïðåîáðàçîâàíèå ÷èñåë. |
BEGIN |
# 2DUP D0= |
UNTIL |
; |
: #> ( xd -- c-addr u ) \ 94 |
\ Óáðàòü xd. Ñäåëàòü áóôåð ôîðìàòíîãî ïðåîáðàçîâàíèÿ äîñòóïíûì â âèäå |
\ ñòðîêè ñèìâîëîâ, çàäàííîé c-addr è u. |
\ Ïðîãðàììà ìîæåò ìåíÿòü ñèìâîëû â ýòîé ñòðîêå. |
2DROP HLD @ PAD OVER - 1- |
; |
: SIGN ( n -- ) \ 94 |
\ Åñëè n îòðèöàòåëüíî, äîáàâèòü â ñòðîêó ôîðìàòíîãî ïðåîáðàçîâàíèÿ |
\ ÷èñåë ìèíóñ. |
\ Èñêëþ÷èòåëüíàÿ ñèòóàöèÿ âîçíèêàåò, åñëè èñïîëüçîâàòü SIGN |
\ âíå <# è #>, îãðàíè÷èâàþùèâàþùèõ ïðåîáðàçîâàíèå ÷èñåë. |
0< IF [CHAR] - HOLD THEN |
; |
: (D.) ( d -- addr len ) DUP >R DABS <# #S R> SIGN #> ; |
: D. ( d -- ) (D.) TYPE SPACE ; |
: . ( n -- ) S>D D. ; |
: D.R ( d w -- ) >R (D.) R> OVER - 0MAX SPACES TYPE ; |
: .R ( n w -- ) >R S>D R> D.R ; |
: U.R ( u w -- ) 0 SWAP D.R ; |
: U. ( u -- ) \ 94 |
\ Íàïå÷àòàòü u â ñâîáîäíîì ôîðìàòå. |
U>D D. |
; |
: .0 |
>R 0 <# #S #> R> OVER - 0 MAX DUP |
IF 0 DO [CHAR] 0 EMIT LOOP |
ELSE DROP THEN TYPE |
; |
: >PRT |
DUP BL U< IF DROP [CHAR] . THEN |
; |
: PTYPE |
0 DO DUP C@ >PRT EMIT 1+ LOOP DROP |
; |
: DUMP ( addr u -- ) \ 94 TOOLS |
DUP 0= IF 2DROP EXIT THEN |
BASE @ >R HEX |
15 + 16 U/ 0 DO |
CR DUP 4 .0 SPACE |
SPACE DUP 16 0 |
DO I 4 MOD 0= IF SPACE THEN |
DUP C@ 2 .0 SPACE 1+ |
LOOP SWAP 16 PTYPE |
LOOP DROP R> BASE ! |
; |
: (.") ( T -> ) |
COUNT TYPE |
; |
\ ' (.") TO (.")-CODE |
: DIGIT ( C, N1 ->> N2, TF / FF ) |
\ N2 - çíà÷åíèå ëèòåðû C êàê |
\ öèôðû â ñèñòåìå ñ÷èñëåíèÿ ïî îñíîâàíèþ N1 |
>R |
[CHAR] 0 - 10 OVER U< |
IF |
DUP [CHAR] A [CHAR] 0 - < IF RDROP DROP 0 EXIT THEN |
DUP [CHAR] a [CHAR] 0 - 1- > IF [CHAR] a [CHAR] A - - THEN |
[CHAR] A [CHAR] 0 - 10 - - |
THEN R> OVER U> DUP 0= IF NIP THEN ; |
: >NUMBER ( ud1 c-addr1 u1 -- ud2 c-addr2 u2 ) \ 94 |
\ ud2 - ðåçóëüòàò ïðåîáðàçîâàíèÿ ñèìâîëîâ ñòðîêè, çàäàííîé c-addr1 u1, |
\ â öèôðû, èñïîëüçóÿ ÷èñëî â BASE, è äîáàâëåíèåì êàæäîé ê ud1 ïîñëå |
\ óìíîæåíèÿ ud1 íà ÷èñëî â BASE. Ïðåîáðàçîâàíèå ïðîäîëæàåòñÿ ñëåâà |
\ íàïðàâî äî ïåðâîãî íåïðåîáðàçóåìîãî ñèìâîëà, âêëþ÷àÿ ñèìâîëû "+" è "-", |
\ èëè äî ïîëíîãî ïðåîáðàçîâàíèÿ ñòðîêè. |
\ c-addr2 - àäðåñ ïåðâîãî íåïðåîáðàçóìîãî ñèìâîëà èëè ïåðâîãî ñèìâîëà |
\ çà êîíöîì ñòðîêè, åñëè ñòðîêà áûëà ïîëíîñòüþ ïðåîáðàçîâàíà. |
\ u2 - ÷èñëî íåïðåîáðàçîâàííûõ ñèìâîëîâ â ñòðîêå. |
\ Íåîäíîçíà÷íàÿ ñèòóàöèÿ âîçíèêàåò, åñëè ud2 ïåðåïîëíÿåòñÿ âî âðåìÿ |
\ ïðåîáðàçîâàíèÿ. |
BEGIN |
DUP |
WHILE |
>R |
DUP >R |
C@ BASE @ DIGIT 0= \ ud n flag |
IF R> R> EXIT THEN \ ud n ( ud = udh udl ) |
SWAP BASE @ UM* DROP \ udl n udh*base |
ROT BASE @ UM* D+ \ (n udh*base)+(udl*baseD) |
R> 1+ R> 1- |
REPEAT |
; |
: SCREEN-LENGTH ( addr n -- n1 ) \ ýêðàííàÿ-äëèíà |
\ äàòü äëèíó ñòðîêè ïðè âûâîäå (ïðè ïå÷àòè) |
\ - ÷èñëî çíàêîìåñò, êîòîðîå ñòðîêà çàéìåò íà ýêðàíå. |
\ addr n - ñòðîêà. n1 ÷èñëî çíàêîìåñò íà ýêðàí. |
0 -ROT OVER + SWAP ?DO |
I C@ 9 = IF 3 RSHIFT 1+ 3 LSHIFT |
ELSE 1+ THEN |
LOOP |
; |
/programs/develop/SPForth/src/tc_spfopt.f |
---|
0,0 → 1,93 |
REQUIRE INCLUDED_L ~mak/listing3.f |
0 VALUE TOUSER-VALUE-CODE |
0 VALUE ---CODE |
0 VALUE DO-OFF |
0 VALUE ?DO-OFF |
0 VALUE OFF-LOOP |
0 VALUE OFF-+LOOP |
0 VALUE 'DUP_V |
0 VALUE 'DROP_V |
' DUP TO 'DUP_V |
' DROP TO 'DROP_V |
: 'DUP 'DUP_V ; |
: 'DROP 'DROP_V ; |
: M\ POSTPONE \ ; IMMEDIATE |
: OS\ ( POSTPONE \) ; IMMEDIATE |
: [>T] ; IMMEDIATE |
: >T ; IMMEDIATE |
TRUE VALUE J_OPT? |
: TT ; |
S" src/macroopt.f" INCLUDED |
: TSET-OPT SET-OPT ; |
: TDIS-OPT DIS-OPT ; |
: TOMM_SIZE TO MM_SIZE ; |
REQUIRE GTYPE ~mak/djgpp/gdis.f |
TRUE TO ?C-JMP |
\ 0 TO ?C-JMP |
: TC-COMPILE, \ 94 CORE EXT |
\ Èíòåðïðåòàöèÿ: ñåìàíòèêà íå îïðåäåëåíà. |
\ Âûïîëíåíèå: ( xt -- ) |
\ Äîáàâèòü ñåìàíòèêó âûïîëíåíèÿ îïðåäåëåíèÿ, ïðåäñòàâëåíîãî xt, ê |
\ ñåìàíòèêå âûïîëíåíèÿ òåêóùåãî îïðåäåëåíèÿ. |
CON>LIT |
IF INLINE? |
IF INLINE, |
ELSE _COMPILE, |
THEN |
THEN |
; |
: _DABS ( d -- ud ) \ 94 DOUBLE |
\ ud àáñîëþòíàÿ âåëè÷èíà d. |
DUP 0< IF DNEGATE THEN |
; |
0xE9 ' COMPILE, C! |
' TC-COMPILE, ' COMPILE, - 5 - ' COMPILE, 1+ ! |
: DABS ( d -- ud ) \ 94 DOUBLE |
\ ud àáñîëþòíàÿ âåëè÷èíà d. |
DUP 0< IF DNEGATE THEN |
; |
0 VALUE TSAVE_LIMIT |
: TSAVE ( ADDR LEN -- ) |
H-STDOUT >R R/W CREATE-FILE THROW TO H-STDOUT |
UNIX-LINES |
CR ." MUSEROFFS EQU " USER-HERE RESERVE - 2 MAX . |
CR |
HERE >R |
CONTEXT @ @ |
BEGIN |
CR ." AHEADER " |
DUP 1- C@ . ." ," |
DUP COUNT ATYPE ." ," |
DUP COUNT GTYPE |
CR |
R> OVER NAME> GDIS |
DUP NAME>C >R |
CDR |
DUP TSAVE_LIMIT U< |
UNTIL DROP RDROP CR |
H-STDOUT CLOSE-FILE THROW R> TO H-STDOUT |
; |
: RN> CHAR SWAP WordByAddr DROP C! ; |
' CR CONSTANT '_CR |
/programs/develop/SPForth/src |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/SPForth |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |