forked from KolibriOS/kolibrios
git-svn-id: svn://kolibrios.org@4867 a494cfbc-eb01-0410-851d-a64ba20cac60
418 lines
7.7 KiB
NASM
418 lines
7.7 KiB
NASM
|
|
|
|
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
|