kolibrios-fun/programs/develop/SPForth/amain.asm

418 lines
7.7 KiB
NASM
Raw Normal View History

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 ; <20><><EFBFBD> VOC-LIST
DD LastNFA ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1ABA5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> !!!!!!!!
DD 0 ; <20><EFBFBD><E0A5A4>
DD 0 ; <20><><EFBFBD><EFBFBD><EFBFBD>
ByeLevel DD 0