Fix a typo:

Recieved -> Received
This commit is contained in:
Andrius Štikonas 2019-10-23 19:46:52 +01:00
parent 81c788fd4b
commit 279941646f
Signed by: andrius
GPG Key ID: E2E5CD054CB9CD3E
33 changed files with 590 additions and 590 deletions

View File

@ -16,7 +16,7 @@
;; add_node Function ;; add_node Function
;; Recieves pointers in R0 R1 ;; Receives pointers in R0 R1
;; Alters R0 if NULL ;; Alters R0 if NULL
;; Appends nodes together ;; Appends nodes together
;; Returns to whatever called it ;; Returns to whatever called it

View File

@ -15,7 +15,7 @@
; along with stage0. If not, see <http://www.gnu.org/licenses/>. ; along with stage0. If not, see <http://www.gnu.org/licenses/>.
;; Readline function ;; Readline function
;; Recieves Pointer to node in R0 ;; Receives Pointer to node in R0
;; And Input in R1 ;; And Input in R1
;; Allocates Text segment on Heap ;; Allocates Text segment on Heap
;; Sets node's pointer to Text segment ;; Sets node's pointer to Text segment

View File

@ -239,7 +239,7 @@ DEFINE ZERO_EXTEND_CL 480FB6C9
;; fgetc function ;; fgetc function
;; Recieves FILE* in R15 ;; Receives FILE* in R15
;; Returns -4 (EOF) or char in RAX ;; Returns -4 (EOF) or char in RAX
:fgetc :fgetc
LOADI32_RAX %-4 ; Put EOF in rax LOADI32_RAX %-4 ; Put EOF in rax
@ -285,7 +285,7 @@ DEFINE ZERO_EXTEND_CL 480FB6C9
;; Store_String Function ;; Store_String Function
;; Recieves C in RCX, HEAD in RDX and Input file in R14 ;; Receives C in RCX, HEAD in RDX and Input file in R14
;; Uses RBX for terminator, RCX for C and RDX for string ;; Uses RBX for terminator, RCX for C and RDX for string
:Store_String :Store_String
PUSH_RBX ; Protect RBX PUSH_RBX ; Protect RBX
@ -316,7 +316,7 @@ DEFINE ZERO_EXTEND_CL 480FB6C9
;; Store_Atom Function ;; Store_Atom Function
;; Recieves C in RCX, HEAD in RDX and Input file in R15 ;; Receives C in RCX, HEAD in RDX and Input file in R15
;; Uses RBX for in_set strings, RCX for C and RDX for string ;; Uses RBX for in_set strings, RCX for C and RDX for string
:Store_Atom :Store_Atom
PUSH_RBX ; Protect RBX PUSH_RBX ; Protect RBX
@ -346,7 +346,7 @@ DEFINE ZERO_EXTEND_CL 480FB6C9
;; In_Set function ;; In_Set function
;; Recieves Char C in RAX and CHAR* in RBX ;; Receives Char C in RAX and CHAR* in RBX
;; Returns 1 if true, zero if false in RAX ;; Returns 1 if true, zero if false in RAX
:In_Set :In_Set
PUSH_RBX ; Protect RBX PUSH_RBX ; Protect RBX
@ -389,7 +389,7 @@ DEFINE ZERO_EXTEND_CL 480FB6C9
;; Reverse_List function ;; Reverse_List function
;; Recieves List in RAX ;; Receives List in RAX
;; Returns the list reversed in RAX ;; Returns the list reversed in RAX
:Reverse_List :Reverse_List
PUSH_RBX ; Protect RBX PUSH_RBX ; Protect RBX
@ -413,7 +413,7 @@ DEFINE ZERO_EXTEND_CL 480FB6C9
;; Identify_Macros function ;; Identify_Macros function
;; Recieves List in RAX ;; Receives List in RAX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses RBX for DEFINE, RCX for I ;; Uses RBX for DEFINE, RCX for I
:Identify_Macros :Identify_Macros
@ -463,7 +463,7 @@ DEFINE ZERO_EXTEND_CL 480FB6C9
;; match function ;; match function
;; Recieves CHAR* in RAX and CHAR* in RBX ;; Receives CHAR* in RAX and CHAR* in RBX
;; Returns 0 (TRUE) or 1 (FALSE) in RAX ;; Returns 0 (TRUE) or 1 (FALSE) in RAX
:match :match
PUSH_RBX ; Protect RBX PUSH_RBX ; Protect RBX
@ -495,7 +495,7 @@ DEFINE ZERO_EXTEND_CL 480FB6C9
;; Line_Macro function ;; Line_Macro function
;; Recieves List in RAX ;; Receives List in RAX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses RAX for I, RBX for I->TEXT, RCX for I->EXPRESSION ;; Uses RAX for I, RBX for I->TEXT, RCX for I->EXPRESSION
:Line_Macro :Line_Macro
@ -528,7 +528,7 @@ DEFINE ZERO_EXTEND_CL 480FB6C9
;; Set_Expression function ;; Set_Expression function
;; Recieves List in RAX, CHAR* in RBX and CHAR* in RCX ;; Receives List in RAX, CHAR* in RBX and CHAR* in RCX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses RBX for C, RCX for EXP and RDX for I ;; Uses RBX for C, RCX for EXP and RDX for I
:Set_Expression :Set_Expression
@ -563,7 +563,7 @@ DEFINE ZERO_EXTEND_CL 480FB6C9
;; Process_String function ;; Process_String function
;; Recieves List in RAX ;; Receives List in RAX
;; Update the list in place; does not modify registers ;; Update the list in place; does not modify registers
;; Uses RBX for I->TEXT, RCX for I and RDX for S ;; Uses RBX for I->TEXT, RCX for I and RDX for S
:Process_String :Process_String
@ -623,7 +623,7 @@ DEFINE ZERO_EXTEND_CL 480FB6C9
;; string_length function ;; string_length function
;; Recieves CHAR* in RAX ;; Receives CHAR* in RAX
;; Returns INT in RAX ;; Returns INT in RAX
;; Uses RAX for CH, RBX for S and RCX for INDEX ;; Uses RAX for CH, RBX for S and RCX for INDEX
:string_length :string_length
@ -648,7 +648,7 @@ DEFINE ZERO_EXTEND_CL 480FB6C9
;; Eval_Immediates function ;; Eval_Immediates function
;; Recieves List in RAX ;; Receives List in RAX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses RBX for I->TEXT[0], RCX for I->TEXT[1] and RDX for I ;; Uses RBX for I->TEXT[0], RCX for I->TEXT[1] and RDX for I
:Eval_Immediates :Eval_Immediates
@ -700,7 +700,7 @@ DEFINE ZERO_EXTEND_CL 480FB6C9
;; numerate_string function ;; numerate_string function
;; Recieves CHAR* in RAX ;; Receives CHAR* in RAX
;; Returns value of CHAR* in RAX ;; Returns value of CHAR* in RAX
;; Only supports negative decimals and Uppercase Hex (eg 5, -3 and 0xCC) ;; Only supports negative decimals and Uppercase Hex (eg 5, -3 and 0xCC)
;; Uses RAX for VALUE, RBX for S, RCX for CH and RSI for NEGATIVE? ;; Uses RAX for VALUE, RBX for S, RCX for CH and RSI for NEGATIVE?
@ -784,7 +784,7 @@ DEFINE ZERO_EXTEND_CL 480FB6C9
;; express_number function ;; express_number function
;; Recieves INT in RAX and CHAR in RBX ;; Receives INT in RAX and CHAR in RBX
;; Allocates a string and expresses the value in hex ;; Allocates a string and expresses the value in hex
;; Returns string in RAX ;; Returns string in RAX
;; Uses RAX for VALUE, RBX for S and RCX for CH ;; Uses RAX for VALUE, RBX for S and RCX for CH
@ -831,7 +831,7 @@ DEFINE ZERO_EXTEND_CL 480FB6C9
;; HEX to ascii routine ;; HEX to ascii routine
;; Recieves INT in RAX and CHAR* in RBX ;; Receives INT in RAX and CHAR* in RBX
;; Stores ascii of INT in CHAR* ;; Stores ascii of INT in CHAR*
;; Returns only modifying RAX ;; Returns only modifying RAX
:hex64l :hex64l
@ -867,7 +867,7 @@ RET
;; Preserve_Other function ;; Preserve_Other function
;; Recieves List in RAX ;; Receives List in RAX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses RAX for I, RBX for I->TEXT ;; Uses RAX for I, RBX for I->TEXT
:Preserve_Other :Preserve_Other
@ -897,7 +897,7 @@ RET
;; Print_Hex function ;; Print_Hex function
;; Recieves list in RAX ;; Receives list in RAX
;; walks the list and prints the I->EXPRESSION for all nodes followed by newline ;; walks the list and prints the I->EXPRESSION for all nodes followed by newline
;; Uses RBX for I ;; Uses RBX for I
:Print_Hex :Print_Hex
@ -925,7 +925,7 @@ RET
;; File_Print function ;; File_Print function
;; Recieves CHAR* in RAX ;; Receives CHAR* in RAX
;; calls fputc for every non-null char ;; calls fputc for every non-null char
:File_Print :File_Print
PUSH_RBX ; Protect RBX PUSH_RBX ; Protect RBX
@ -950,7 +950,7 @@ RET
;; fputc function ;; fputc function
;; recieves CHAR in RAX and FILE* in R14 ;; receives CHAR in RAX and FILE* in R14
;; writes char and returns ;; writes char and returns
:fputc :fputc
PUSH_RAX ; We are writing rax PUSH_RAX ; We are writing rax

View File

@ -132,7 +132,7 @@ done:
;; fgetc function ;; fgetc function
;; Recieves FILE* in R15 ;; Receives FILE* in R15
;; Returns -4 (EOF) or char in RAX ;; Returns -4 (EOF) or char in RAX
fgetc: fgetc:
mov rax, -4 ; Put EOF in rax mov rax, -4 ; Put EOF in rax
@ -178,7 +178,7 @@ Purge_LineComment:
;; Store_String Function ;; Store_String Function
;; Recieves C in RCX, HEAD in RDX and Input file in R14 ;; Receives C in RCX, HEAD in RDX and Input file in R14
;; Uses RBX for terminator, RCX for C and RDX for string ;; Uses RBX for terminator, RCX for C and RDX for string
Store_String: Store_String:
push rbx ; Protect RBX push rbx ; Protect RBX
@ -209,7 +209,7 @@ Store_String_Loop:
;; Store_Atom Function ;; Store_Atom Function
;; Recieves C in RCX, HEAD in RDX and Input file in R15 ;; Receives C in RCX, HEAD in RDX and Input file in R15
;; Uses RBX for in_set strings, RCX for C and RDX for string ;; Uses RBX for in_set strings, RCX for C and RDX for string
Store_Atom: Store_Atom:
push rbx ; Protect RBX push rbx ; Protect RBX
@ -239,7 +239,7 @@ Store_Atom_loop:
;; In_Set function ;; In_Set function
;; Recieves Char C in RAX and CHAR* in RBX ;; Receives Char C in RAX and CHAR* in RBX
;; Returns 1 if true, zero if false in RAX ;; Returns 1 if true, zero if false in RAX
In_Set: In_Set:
push rbx ; Protect RBX push rbx ; Protect RBX
@ -281,7 +281,7 @@ string_char:
;; Reverse_List function ;; Reverse_List function
;; Recieves List in RAX ;; Receives List in RAX
;; Returns the list reversed in RAX ;; Returns the list reversed in RAX
Reverse_List: Reverse_List:
push rbx ; Protect RBX push rbx ; Protect RBX
@ -305,7 +305,7 @@ Reverse_List_Done:
;; Identify_Macros function ;; Identify_Macros function
;; Recieves List in RAX ;; Receives List in RAX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses RBX for DEFINE, RCX for I ;; Uses RBX for DEFINE, RCX for I
Identify_Macros: Identify_Macros:
@ -355,7 +355,7 @@ DEFINE_str:
;; match function ;; match function
;; Recieves CHAR* in RAX and CHAR* in RBX ;; Receives CHAR* in RAX and CHAR* in RBX
;; Returns 0 (TRUE) or 1 (FALSE) in RAX ;; Returns 0 (TRUE) or 1 (FALSE) in RAX
match: match:
push rbx ; Protect RBX push rbx ; Protect RBX
@ -387,7 +387,7 @@ match_Done:
;; Line_Macro function ;; Line_Macro function
;; Recieves List in RAX ;; Receives List in RAX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses RAX for I, RBX for I->TEXT, RCX for I->EXPRESSION ;; Uses RAX for I, RBX for I->TEXT, RCX for I->EXPRESSION
Line_Macro: Line_Macro:
@ -420,7 +420,7 @@ Line_Macro_Next:
;; Set_Expression function ;; Set_Expression function
;; Recieves List in RAX, CHAR* in RBX and CHAR* in RCX ;; Receives List in RAX, CHAR* in RBX and CHAR* in RCX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses RBX for C, RCX for EXP and RDX for I ;; Uses RBX for C, RCX for EXP and RDX for I
Set_Expression: Set_Expression:
@ -455,7 +455,7 @@ Set_Expression_Next:
;; Process_String function ;; Process_String function
;; Recieves List in RAX ;; Receives List in RAX
;; Update the list in place; does not modify registers ;; Update the list in place; does not modify registers
;; Uses RBX for I->TEXT, RCX for I and RDX for S ;; Uses RBX for I->TEXT, RCX for I and RDX for S
Process_String: Process_String:
@ -515,7 +515,7 @@ Process_String_Next:
;; string_length function ;; string_length function
;; Recieves CHAR* in RAX ;; Receives CHAR* in RAX
;; Returns INT in RAX ;; Returns INT in RAX
;; Uses RAX for CH, RBX for S and RCX for INDEX ;; Uses RAX for CH, RBX for S and RCX for INDEX
string_length: string_length:
@ -540,7 +540,7 @@ string_length_done:
;; Eval_Immediates function ;; Eval_Immediates function
;; Recieves List in RAX ;; Receives List in RAX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses RBX for I->TEXT[0], RCX for I->TEXT[1] and RDX for I ;; Uses RBX for I->TEXT[0], RCX for I->TEXT[1] and RDX for I
Eval_Immediates: Eval_Immediates:
@ -592,7 +592,7 @@ Eval_Immediates_Next:
;; numerate_string function ;; numerate_string function
;; Recieves CHAR* in RAX ;; Receives CHAR* in RAX
;; Returns value of CHAR* in RAX ;; Returns value of CHAR* in RAX
;; Uses RAX for VALUE, RBX for S, RCX for CH and RSI for NEGATIVE? ;; Uses RAX for VALUE, RBX for S, RCX for CH and RSI for NEGATIVE?
numerate_string: numerate_string:
@ -675,7 +675,7 @@ numerate_string_done:
;; express_number function ;; express_number function
;; Recieves INT in RAX and CHAR in RBX ;; Receives INT in RAX and CHAR in RBX
;; Allocates a string and expresses the value in hex ;; Allocates a string and expresses the value in hex
;; Returns string in RAX ;; Returns string in RAX
;; Uses RAX for VALUE, RBX for S and RCX for CH ;; Uses RAX for VALUE, RBX for S and RCX for CH
@ -722,7 +722,7 @@ express_number_done:
;; HEX to ascii routine ;; HEX to ascii routine
;; Recieves INT in RAX and CHAR* in RBX ;; Receives INT in RAX and CHAR* in RBX
;; Stores ascii of INT in CHAR* ;; Stores ascii of INT in CHAR*
;; Returns only modifying RAX ;; Returns only modifying RAX
hex64l: hex64l:
@ -758,7 +758,7 @@ hex1:
;; Preserve_Other function ;; Preserve_Other function
;; Recieves List in RAX ;; Receives List in RAX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses RAX for I, RBX for I->TEXT ;; Uses RAX for I, RBX for I->TEXT
Preserve_Other: Preserve_Other:
@ -788,7 +788,7 @@ Preserve_Other_Next:
;; Print_Hex function ;; Print_Hex function
;; Recieves list in RAX ;; Receives list in RAX
;; walks the list and prints the I->EXPRESSION for all nodes followed by newline ;; walks the list and prints the I->EXPRESSION for all nodes followed by newline
;; Uses RBX for I ;; Uses RBX for I
Print_Hex: Print_Hex:
@ -816,7 +816,7 @@ Print_Hex_Next:
;; File_Print function ;; File_Print function
;; Recieves CHAR* in RAX ;; Receives CHAR* in RAX
;; calls fputc for every non-null char ;; calls fputc for every non-null char
File_Print: File_Print:
push rbx ; Protect RBX push rbx ; Protect RBX
@ -841,7 +841,7 @@ File_Print_Done:
;; fputc function ;; fputc function
;; recieves CHAR in RAX and FILE* in R14 ;; receives CHAR in RAX and FILE* in R14
;; writes char and returns ;; writes char and returns
fputc: fputc:
push rax ; We are writing rax push rax ; We are writing rax

View File

@ -129,7 +129,7 @@
;; fgetc function ;; fgetc function
;; Recieves FILE* in R15 ;; Receives FILE* in R15
;; Returns -4 (EOF) or char in RAX ;; Returns -4 (EOF) or char in RAX
:fgetc :fgetc
48C7C0 FCFFFFFF # LOADI32_RAX %-4 ; Put EOF in rax 48C7C0 FCFFFFFF # LOADI32_RAX %-4 ; Put EOF in rax
@ -175,7 +175,7 @@
;; Store_String Function ;; Store_String Function
;; Recieves C in RCX, HEAD in RDX and Input file in R14 ;; Receives C in RCX, HEAD in RDX and Input file in R14
;; Uses RBX for terminator, RCX for C and RDX for string ;; Uses RBX for terminator, RCX for C and RDX for string
:Store_String :Store_String
53 # PUSH_RBX ; Protect RBX 53 # PUSH_RBX ; Protect RBX
@ -206,7 +206,7 @@
;; Store_Atom Function ;; Store_Atom Function
;; Recieves C in RCX, HEAD in RDX and Input file in R15 ;; Receives C in RCX, HEAD in RDX and Input file in R15
;; Uses RBX for in_set strings, RCX for C and RDX for string ;; Uses RBX for in_set strings, RCX for C and RDX for string
:Store_Atom :Store_Atom
53 # PUSH_RBX ; Protect RBX 53 # PUSH_RBX ; Protect RBX
@ -236,7 +236,7 @@
;; In_Set function ;; In_Set function
;; Recieves Char C in RAX and CHAR* in RBX ;; Receives Char C in RAX and CHAR* in RBX
;; Returns 1 if true, zero if false in RAX ;; Returns 1 if true, zero if false in RAX
:In_Set :In_Set
53 # PUSH_RBX ; Protect RBX 53 # PUSH_RBX ; Protect RBX
@ -278,7 +278,7 @@
;; Reverse_List function ;; Reverse_List function
;; Recieves List in RAX ;; Receives List in RAX
;; Returns the list reversed in RAX ;; Returns the list reversed in RAX
:Reverse_List :Reverse_List
53 # PUSH_RBX ; Protect RBX 53 # PUSH_RBX ; Protect RBX
@ -302,7 +302,7 @@
;; Identify_Macros function ;; Identify_Macros function
;; Recieves List in RAX ;; Receives List in RAX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses RBX for DEFINE, RCX for I ;; Uses RBX for DEFINE, RCX for I
:Identify_Macros :Identify_Macros
@ -352,7 +352,7 @@
;; match function ;; match function
;; Recieves CHAR* in RAX and CHAR* in RBX ;; Receives CHAR* in RAX and CHAR* in RBX
;; Returns 0 (TRUE) or 1 (FALSE) in RAX ;; Returns 0 (TRUE) or 1 (FALSE) in RAX
:match :match
53 # PUSH_RBX ; Protect RBX 53 # PUSH_RBX ; Protect RBX
@ -384,7 +384,7 @@
;; Line_Macro function ;; Line_Macro function
;; Recieves List in RAX ;; Receives List in RAX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses RAX for I, RBX for I->TEXT, RCX for I->EXPRESSION ;; Uses RAX for I, RBX for I->TEXT, RCX for I->EXPRESSION
:Line_Macro :Line_Macro
@ -417,7 +417,7 @@
;; Set_Expression function ;; Set_Expression function
;; Recieves List in RAX, CHAR* in RBX and CHAR* in RCX ;; Receives List in RAX, CHAR* in RBX and CHAR* in RCX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses RBX for C, RCX for EXP and RDX for I ;; Uses RBX for C, RCX for EXP and RDX for I
:Set_Expression :Set_Expression
@ -452,7 +452,7 @@
;; Process_String function ;; Process_String function
;; Recieves List in RAX ;; Receives List in RAX
;; Update the list in place; does not modify registers ;; Update the list in place; does not modify registers
;; Uses RBX for I->TEXT, RCX for I and RDX for S ;; Uses RBX for I->TEXT, RCX for I and RDX for S
:Process_String :Process_String
@ -512,7 +512,7 @@
;; string_length function ;; string_length function
;; Recieves CHAR* in RAX ;; Receives CHAR* in RAX
;; Returns INT in RAX ;; Returns INT in RAX
;; Uses RAX for CH, RBX for S and RCX for INDEX ;; Uses RAX for CH, RBX for S and RCX for INDEX
:string_length :string_length
@ -537,7 +537,7 @@
;; Eval_Immediates function ;; Eval_Immediates function
;; Recieves List in RAX ;; Receives List in RAX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses RBX for I->TEXT[0], RCX for I->TEXT[1] and RDX for I ;; Uses RBX for I->TEXT[0], RCX for I->TEXT[1] and RDX for I
:Eval_Immediates :Eval_Immediates
@ -589,7 +589,7 @@
;; numerate_string function ;; numerate_string function
;; Recieves CHAR* in RAX ;; Receives CHAR* in RAX
;; Returns value of CHAR* in RAX ;; Returns value of CHAR* in RAX
;; Only supports negative decimals and Uppercase Hex (eg 5, -3 and 0xCC) ;; Only supports negative decimals and Uppercase Hex (eg 5, -3 and 0xCC)
;; Uses RAX for VALUE, RBX for S, RCX for CH and RSI for NEGATIVE? ;; Uses RAX for VALUE, RBX for S, RCX for CH and RSI for NEGATIVE?
@ -673,7 +673,7 @@
;; express_number function ;; express_number function
;; Recieves INT in RAX and CHAR in RBX ;; Receives INT in RAX and CHAR in RBX
;; Allocates a string and expresses the value in hex ;; Allocates a string and expresses the value in hex
;; Returns string in RAX ;; Returns string in RAX
;; Uses RAX for VALUE, RBX for S and RCX for CH ;; Uses RAX for VALUE, RBX for S and RCX for CH
@ -720,7 +720,7 @@
;; HEX to ascii routine ;; HEX to ascii routine
;; Recieves INT in RAX and CHAR* in RBX ;; Receives INT in RAX and CHAR* in RBX
;; Stores ascii of INT in CHAR* ;; Stores ascii of INT in CHAR*
;; Returns only modifying RAX ;; Returns only modifying RAX
:hex64l :hex64l
@ -756,7 +756,7 @@
;; Preserve_Other function ;; Preserve_Other function
;; Recieves List in RAX ;; Receives List in RAX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses RAX for I, RBX for I->TEXT ;; Uses RAX for I, RBX for I->TEXT
:Preserve_Other :Preserve_Other
@ -786,7 +786,7 @@
;; Print_Hex function ;; Print_Hex function
;; Recieves list in RAX ;; Receives list in RAX
;; walks the list and prints the I->EXPRESSION for all nodes followed by newline ;; walks the list and prints the I->EXPRESSION for all nodes followed by newline
;; Uses RBX for I ;; Uses RBX for I
:Print_Hex :Print_Hex
@ -814,7 +814,7 @@
;; File_Print function ;; File_Print function
;; Recieves CHAR* in RAX ;; Receives CHAR* in RAX
;; calls fputc for every non-null char ;; calls fputc for every non-null char
:File_Print :File_Print
53 # PUSH_RBX ; Protect RBX 53 # PUSH_RBX ; Protect RBX
@ -839,7 +839,7 @@
;; fputc function ;; fputc function
;; recieves CHAR in RAX and FILE* in R14 ;; receives CHAR in RAX and FILE* in R14
;; writes char and returns ;; writes char and returns
:fputc :fputc
50 # PUSH_RAX ; We are writing rax 50 # PUSH_RAX ; We are writing rax

View File

@ -98,7 +98,7 @@ header_string3: db 10, "# Program strings", 10, 0
;; read_all_tokens function ;; read_all_tokens function
;; Recieves FILE* in R15 and Token_List* in RAX ;; Receives FILE* in R15 and Token_List* in RAX
;; Tokenizes all input and returns updated list in RAX ;; Tokenizes all input and returns updated list in RAX
;; Returns TOKEN in RAX ;; Returns TOKEN in RAX
;; Uses RAX for C ;; Uses RAX for C
@ -116,7 +116,7 @@ read_all_tokens_done:
;; get_token function ;; get_token function
;; Recieves INT in RAX and FILE* in R15 ;; Receives INT in RAX and FILE* in R15
;; Makes a list of TOKEN_LIST ;; Makes a list of TOKEN_LIST
;; C and STRING_INDEX are stored in memory, RCX is used for S and RDX is used for current ;; C and STRING_INDEX are stored in memory, RCX is used for S and RDX is used for current
;; Returns C in RAX ;; Returns C in RAX
@ -277,7 +277,7 @@ malloc:
;; clear_white_space function ;; clear_white_space function
;; Recieves INT C in RAX and FILE* in R15 ;; Receives INT C in RAX and FILE* in R15
;; Returns first non-whitespace char in RAX ;; Returns first non-whitespace char in RAX
clear_white_space: clear_white_space:
cmp rax, 32 ; Check for ' ' cmp rax, 32 ; Check for ' '
@ -300,7 +300,7 @@ clear_white_space_done:
;; In_Set function ;; In_Set function
;; Recieves Char C in RAX and CHAR* in RBX ;; Receives Char C in RAX and CHAR* in RBX
;; Returns 1 if true, zero if false in RAX ;; Returns 1 if true, zero if false in RAX
In_Set: In_Set:
push rbx ; Protect RBX push rbx ; Protect RBX
@ -336,7 +336,7 @@ strings: db 34, 39, 0
;; purge_macro function ;; purge_macro function
;; Recieves CH in RAX ;; Receives CH in RAX
;; Reads chars until Line feed is read ;; Reads chars until Line feed is read
;; returns line feed ;; returns line feed
purge_macro: purge_macro:
@ -347,7 +347,7 @@ purge_macro:
;; preserve_keyword function ;; preserve_keyword function
;; Recieves INT C in RAX ;; Receives INT C in RAX
;; collects all chars in keyword ;; collects all chars in keyword
;; Returns C in RAX ;; Returns C in RAX
;; Uses RCX for INT C ;; Uses RCX for INT C
@ -382,7 +382,7 @@ preserve_keyword_done:
;; preserve_symbol function ;; preserve_symbol function
;; Recieves INT C in RAX ;; Receives INT C in RAX
;; collects all chars in symbol ;; collects all chars in symbol
;; Returns C in RAX ;; Returns C in RAX
;; Uses RCX for INT C ;; Uses RCX for INT C
@ -409,7 +409,7 @@ preserve_symbol_done:
;; consume_word function ;; consume_word function
;; recieves INT C in RAX ;; receives INT C in RAX
;; returns INT C in RAX ;; returns INT C in RAX
;; Uses RAX for C, RBX for FREQ and RCX for ESCAPE ;; Uses RAX for C, RBX for FREQ and RCX for ESCAPE
consume_word: consume_word:
@ -446,7 +446,7 @@ consume_word_iter:
;; consume_byte function ;; consume_byte function
;; Recieves INT C in RAX ;; Receives INT C in RAX
;; Inserts C into string S, updates String S ;; Inserts C into string S, updates String S
;; Returns Next char in RAX ;; Returns Next char in RAX
consume_byte: consume_byte:
@ -461,7 +461,7 @@ consume_byte:
;; fixup_label function ;; fixup_label function
;; Recieves S in RCX ;; Receives S in RCX
;; prepends ':' to string and returns registers un changed ;; prepends ':' to string and returns registers un changed
;; Uses RAX for HOLD, RBX for PREV and RCX for S[0] ;; Uses RAX for HOLD, RBX for PREV and RCX for S[0]
fixup_label: fixup_label:
@ -486,7 +486,7 @@ fixup_label_loop:
;; fgetc function ;; fgetc function
;; Recieves FILE* in R15 ;; Receives FILE* in R15
;; Returns -4 (EOF) or char in RAX ;; Returns -4 (EOF) or char in RAX
fgetc: fgetc:
mov rax, -4 ; Put EOF in rax mov rax, -4 ; Put EOF in rax
@ -511,7 +511,7 @@ fgetc_done:
;; Reverse_List function ;; Reverse_List function
;; Recieves List in RAX ;; Receives List in RAX
;; Returns the list reversed in RAX ;; Returns the list reversed in RAX
Reverse_List: Reverse_List:
push rbx ; Protect RBX push rbx ; Protect RBX
@ -535,7 +535,7 @@ Reverse_List_Done:
;; recursive_output function ;; recursive_output function
;; Recieves list in RAX ;; Receives list in RAX
;; walks the list and prints the I->S for all nodes backwards ;; walks the list and prints the I->S for all nodes backwards
;; Uses RBX for I ;; Uses RBX for I
recursive_output: recursive_output:
@ -558,7 +558,7 @@ recursive_output_done:
;; File_Print function ;; File_Print function
;; Recieves CHAR* in RAX ;; Receives CHAR* in RAX
;; calls fputc for every non-null char ;; calls fputc for every non-null char
File_Print: File_Print:
push rbx ; Protect RBX push rbx ; Protect RBX
@ -583,7 +583,7 @@ File_Print_Done:
;; fputc function ;; fputc function
;; recieves CHAR in RAX and FILE* in R14 ;; receives CHAR in RAX and FILE* in R14
;; writes char and returns ;; writes char and returns
fputc: fputc:
push rax ; We are writing rax push rax ; We are writing rax
@ -603,7 +603,7 @@ fputc:
;; program function ;; program function
;; recieves nothing, returns nothing ;; receives nothing, returns nothing
;; Uses RAX for type_size ;; Uses RAX for type_size
program: program:
;; The binary initialized the globals to null, so we can skip those steps ;; The binary initialized the globals to null, so we can skip those steps
@ -710,7 +710,7 @@ program_string_1: db 10, "NOP", 10, 0
;; declare_function function ;; declare_function function
;; Recieves nothing and returns nothing ;; Receives nothing and returns nothing
;; Sets current function and adds it to the global function list ;; Sets current function and adds it to the global function list
declare_function: declare_function:
push rbx ; Protect RBX push rbx ; Protect RBX
@ -786,7 +786,7 @@ declare_function_string_3: db 10, 0
;; collect_arguments function ;; collect_arguments function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Adds arguments to the function definition ;; Adds arguments to the function definition
;; holds struct type* type_size in RCX, then replace with struct token_list* a in RCX when type_size is used ;; holds struct type* type_size in RCX, then replace with struct token_list* a in RCX when type_size is used
@ -882,7 +882,7 @@ collect_arguments_done:
;; statement function ;; statement function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Walks down global_token recursively to collect the contents of the function ;; Walks down global_token recursively to collect the contents of the function
statement: statement:
@ -1073,7 +1073,7 @@ statement_string_4: db "ERROR in statement", 10, "Missing ;", 10, 0
;; recursive_statement function ;; recursive_statement function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Walks the global_token list to build the contents of statements ;; Walks the global_token list to build the contents of statements
;; Uses struct token_list* frame in RCX ;; Uses struct token_list* frame in RCX
@ -1138,7 +1138,7 @@ recursive_statement_string_1: db "POP_ebx", 9, "# _recursive_statement_locals",
;; return_result function ;; return_result function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Cleans up function and generates return ;; Cleans up function and generates return
;; Also handles returing expressions ;; Also handles returing expressions
@ -1186,7 +1186,7 @@ return_result_string_2: db "RETURN", 10, 0
;; collect_local function ;; collect_local function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Walks global_token list to create function locals ;; Walks global_token list to create function locals
;; Uses RCX for struct token_list* A ;; Uses RCX for struct token_list* A
@ -1318,7 +1318,7 @@ collect_local_string_3: db "PUSH_eax", 9, "#", 0
;; process_asm function ;; process_asm function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Simply inlines the asm statements ;; Simply inlines the asm statements
;; Uses RBX for global_token temp storage ;; Uses RBX for global_token temp storage
@ -1370,7 +1370,7 @@ process_asm_string_3: db "ERROR in process_asm", 10, "MISSING ;", 10, 0
;; process_if function ;; process_if function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Increments current_count recurses into expression + statement ;; Increments current_count recurses into expression + statement
;; Uses RCX for char* NUMBER_STRING ;; Uses RCX for char* NUMBER_STRING
@ -1504,7 +1504,7 @@ restore_break_frame:
;; set_break_frame microfunction ;; set_break_frame microfunction
;; Recieves char* head in RAX and char* num in RBX ;; Receives char* head in RAX and char* num in RBX
;; Overwrites RAX and RBX ;; Overwrites RAX and RBX
;; Returns to calling function ;; Returns to calling function
set_break_frame: set_break_frame:
@ -1519,7 +1519,7 @@ set_break_frame:
;; process_do function ;; process_do function
;; Recieves Nothing ;; Receives Nothing
;; Returns Nothing ;; Returns Nothing
;; Increments current_count and leverages save/restore_break_frame pieces ;; Increments current_count and leverages save/restore_break_frame pieces
;; Uses RCX for char* NUMBER_STRING ;; Uses RCX for char* NUMBER_STRING
@ -1603,7 +1603,7 @@ process_do_string_7: db ":DO_END_", 0
;; process_while function ;; process_while function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Increments current_count and leverages save/restore_break_frame pieces ;; Increments current_count and leverages save/restore_break_frame pieces
;; Uses RCX for char* NUMBER_STRING ;; Uses RCX for char* NUMBER_STRING
@ -1694,7 +1694,7 @@ process_while_string_7: db ":END_WHILE_", 0
;; process_for function ;; process_for function
;; Recieves Nothing ;; Receives Nothing
;; Returns Nothing ;; Returns Nothing
;; Increments current_count and leverages save/restore_break_frame pieces ;; Increments current_count and leverages save/restore_break_frame pieces
;; Uses RCX for char* NUMBER_STRING ;; Uses RCX for char* NUMBER_STRING
@ -1842,7 +1842,7 @@ process_for_string_13: db ":FOR_END_", 0
;; process_break function ;; process_break function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Handles the break out of loops case ;; Handles the break out of loops case
;; Uses RBX for struct token_list* break_frame and RCX for struct token_list* I ;; Uses RBX for struct token_list* break_frame and RCX for struct token_list* I
@ -1920,7 +1920,7 @@ process_break_string_4: db "ERROR in break statement",10, "Missing ;", 10, 0
;; expression function ;; expression function
;; Recieves Nothing ;; Receives Nothing
;; Returns Nothing ;; Returns Nothing
;; Walks global_token and updates output_list ;; Walks global_token and updates output_list
;; Uses RAX and RBX for match and RCX for char* store ;; Uses RAX and RBX for match and RCX for char* store
@ -1976,7 +1976,7 @@ expression_string_1: db "STORE_CHAR", 10, 0
;; bitwise_expr function ;; bitwise_expr function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Walks global_token list and updates output list ;; Walks global_token list and updates output list
;; Just calls other functions ;; Just calls other functions
@ -1987,7 +1987,7 @@ bitwise_expr:
;; bitwise_expr_stub function ;; bitwise_expr_stub function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Just calls general_recursion a bunch ;; Just calls general_recursion a bunch
;; Uses RAX, RBX, RCX and RDX for passing constants to general recursion ;; Uses RAX, RBX, RCX and RDX for passing constants to general recursion
@ -2037,7 +2037,7 @@ bitwise_expr_stub_string_2: db "XOR_ebx_eax_into_eax", 10, 0
;; relational_expr function ;; relational_expr function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Walks global_token list and updates output list ;; Walks global_token list and updates output list
;; just calls other function ;; just calls other function
@ -2048,7 +2048,7 @@ relational_expr:
;; relational_expr_stub function ;; relational_expr_stub function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Just calls general_recursion a bunch ;; Just calls general_recursion a bunch
;; Uses RAX, RBX, RCX and RDX for passing constants to general recursion ;; Uses RAX, RBX, RCX and RDX for passing constants to general recursion
@ -2107,7 +2107,7 @@ relational_expr_stub_string_5: db "CMP", 10, "SETNE", 10, "MOVEZBL", 10, 0
;; additive_expr function ;; additive_expr function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Walks global_token list and updates output list ;; Walks global_token list and updates output list
;; just calls other function ;; just calls other function
@ -2118,7 +2118,7 @@ additive_expr:
;; additive_expr_stub function ;; additive_expr_stub function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Just calls general_recursion a bunch ;; Just calls general_recursion a bunch
;; Uses RAX, RBX, RCX and RDX for passing constants to general recursion ;; Uses RAX, RBX, RCX and RDX for passing constants to general recursion
@ -2184,7 +2184,7 @@ additive_expr_stub_string_6: db "COPY_eax_to_ecx", 10, "COPY_ebx_to_eax", 10, "S
;; postfix_expr function ;; postfix_expr function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Walks global_token list and updates output list ;; Walks global_token list and updates output list
;; just calls other function ;; just calls other function
@ -2195,7 +2195,7 @@ postfix_expr:
;; postfix_expr_stub function ;; postfix_expr_stub function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Checks for "[" and "->" and deals with them otherwise does nothing ;; Checks for "[" and "->" and deals with them otherwise does nothing
;; Uses RAX, RBX, RCX and RDX for passing constants to general recursion ;; Uses RAX, RBX, RCX and RDX for passing constants to general recursion
@ -2228,7 +2228,7 @@ postfix_expr_stub_done:
;; unary_expr_sizeof function ;; unary_expr_sizeof function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Uses RCX for A->SIZE ;; Uses RCX for A->SIZE
unary_expr_sizeof: unary_expr_sizeof:
@ -2270,7 +2270,7 @@ unary_expr_sizeof_string_3: db 10, 0
;; postfix_expr_array function ;; postfix_expr_array function
;; Recieves Nothing ;; Receives Nothing
;; Returns Nothing ;; Returns Nothing
;; Uses RBX for struct type* ARRAY and RCX for char* ASSIGN ;; Uses RBX for struct type* ARRAY and RCX for char* ASSIGN
postfix_expr_array: postfix_expr_array:
@ -2348,7 +2348,7 @@ postfix_expr_array_string_6: db 0
;; ceil_log2 function ;; ceil_log2 function
;; Recieves int a in RAX ;; Receives int a in RAX
;; Performs log2 on A and ;; Performs log2 on A and
;; Returns result in RAX ;; Returns result in RAX
;; Uses RBX for INT A and RCX for INT RESULT ;; Uses RBX for INT A and RCX for INT RESULT
@ -2381,7 +2381,7 @@ ceil_log2_done:
;; postfix_expr_arrow function ;; postfix_expr_arrow function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Emits a bunch and updates current_target ;; Emits a bunch and updates current_target
;; Uses RBX for struct type* I ;; Uses RBX for struct type* I
@ -2449,7 +2449,7 @@ postfix_expr_arrow_string_3: db "LOAD_INTEGER", 10, 0
;; primary_expr function ;; primary_expr function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
primary_expr: primary_expr:
push rbx ; Protect RBX push rbx ; Protect RBX
@ -2607,7 +2607,7 @@ primary_expr_string_7:db "0123456789", 0
;; primary_expr_variable function ;; primary_expr_variable function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Walks global and updates output ;; Walks global and updates output
;; Uses RAX for struct token_list* a and RCX for char* S ;; Uses RAX for struct token_list* a and RCX for char* S
@ -2704,7 +2704,7 @@ primary_expr_variable_string_2: db "LOAD_IMMEDIATE_eax %", 0
;; function_call function ;; function_call function
;; Recieves char* S in RAX and int BOOL in RBX ;; Receives char* S in RAX and int BOOL in RBX
;; Builds stack frames before and tears them down after function calls ;; Builds stack frames before and tears them down after function calls
;; Uses RCX for char* S, RDX for int BOOL, RSI for PASSED ;; Uses RCX for char* S, RDX for int BOOL, RSI for PASSED
function_call: function_call:
@ -2848,7 +2848,7 @@ function_call_string_15: db "POP_edi", 9, "# Prevent overwrite", 10, 0
;; variable_load function ;; variable_load function
;; Recieves struct token_list* A in RAX ;; Receives struct token_list* A in RAX
;; Returns nothing ;; Returns nothing
;; Updates output and current_target ;; Updates output and current_target
;; Uses RCX for A ;; Uses RCX for A
@ -2915,7 +2915,7 @@ variable_load_string_2: db "LOAD_INTEGER", 10, 0
;; function_load function ;; function_load function
;; Recieves struct token_list* a in RAX ;; Receives struct token_list* a in RAX
;; Returns nothing ;; Returns nothing
;; Uses RCX to hold A->S ;; Uses RCX to hold A->S
function_load: function_load:
@ -2956,7 +2956,7 @@ function_load_string_1: db 10, 0
;; global_load function ;; global_load function
;; Recieves struct token_list* A in RAX ;; Receives struct token_list* A in RAX
;; Returns nothing ;; Returns nothing
;; Uses RBX to hold A->S ;; Uses RBX to hold A->S
global_load: global_load:
@ -2997,7 +2997,7 @@ global_load_string_2: db "LOAD_INTEGER", 10, 0
;; sym_lookup function ;; sym_lookup function
;; Recieves char* S in RAX and struct token_list* symbol_list in RBX ;; Receives char* S in RAX and struct token_list* symbol_list in RBX
;; Uses I->S in RAX, S in RBX and I in RCX ;; Uses I->S in RAX, S in RBX and I in RCX
;; Returns match or NULL ;; Returns match or NULL
sym_lookup: sym_lookup:
@ -3025,7 +3025,7 @@ sym_lookup_done:
;; primary_expr_number function ;; primary_expr_number function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Simply uses current global token to update output and then steps to next global_token ;; Simply uses current global token to update output and then steps to next global_token
primary_expr_number: primary_expr_number:
@ -3049,7 +3049,7 @@ primary_expr_number_string_1: db 10, 0
;; primary_expr_string function ;; primary_expr_string function
;; recieves nothing ;; receives nothing
;; Returns nothing ;; Returns nothing
;; creates entries for string and calls to generate string output ;; creates entries for string and calls to generate string output
;; uses RCX for char* number_string ;; uses RCX for char* number_string
@ -3103,7 +3103,7 @@ primary_expr_string_string_1: db ":STRING_", 0
;; primary_expr_char function ;; primary_expr_char function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Updates output_list using global_token ;; Updates output_list using global_token
primary_expr_char: primary_expr_char:
@ -3134,13 +3134,13 @@ primary_expr_char_string_1: db 10, 0
;; primary_expr_failure function ;; primary_expr_failure function
;; Recieves nothing ;; Receives nothing
;; Does not return but aborts hard ;; Does not return but aborts hard
;; Complains about the bad input ;; Complains about the bad input
primary_expr_failure: primary_expr_failure:
; call line_error ; Get line of issue ; call line_error ; Get line of issue
mov r14, 2 ; write to standard error mov r14, 2 ; write to standard error
mov rax, primary_expr_failure_string_0 ; Using "Recieved " mov rax, primary_expr_failure_string_0 ; Using "Received "
call File_Print ; Print it call File_Print ; Print it
mov rax, [global_token] ; Using global_token mov rax, [global_token] ; Using global_token
@ -3151,12 +3151,12 @@ primary_expr_failure:
call File_Print ; Print it call File_Print ; Print it
jmp Exit_Failure ; Abort Hard jmp Exit_Failure ; Abort Hard
primary_expr_failure_string_0: db "Recieved ", 0 primary_expr_failure_string_0: db "Received ", 0
primary_expr_failure_string_1: db " in primary_expr", 10, 0 primary_expr_failure_string_1: db " in primary_expr", 10, 0
;; general_recursion function ;; general_recursion function
;; Recieves FUNCTION F in RAX, char* S in RBX, char* name in RCX and FUNCTION iterate in RDX ;; Receives FUNCTION F in RAX, char* S in RBX, char* name in RCX and FUNCTION iterate in RDX
;; Returns nothing ;; Returns nothing
;; Uses RCX for char* S, RDX for FUNCTION iterate and RBP for FUNCTION F ;; Uses RCX for char* S, RDX for FUNCTION iterate and RBP for FUNCTION F
;; But generally recurses a shitload ;; But generally recurses a shitload
@ -3194,7 +3194,7 @@ general_recursion_done:
;; promote_type function ;; promote_type function
;; Recieves struct type* a in RAX and struct type* b in RBX ;; Receives struct type* a in RAX and struct type* b in RBX
;; Returns the most recent type in RAX ;; Returns the most recent type in RAX
;; Uses RAX for struct type* I, RCX for struct type* A and RDX for struct type* B ;; Uses RAX for struct type* I, RCX for struct type* A and RDX for struct type* B
promote_type: promote_type:
@ -3245,7 +3245,7 @@ promote_type_done:
;; common_recursion function ;; common_recursion function
;; Recieves FUNCTION F in RAX ;; Receives FUNCTION F in RAX
;; Returns Nothing ;; Returns Nothing
;; Walks global_token list and update output_list ;; Walks global_token list and update output_list
;; Updates current_target ;; Updates current_target
@ -3277,7 +3277,7 @@ common_recursion_string_1: db "POP_ebx", 9, "# _common_recursion", 10, 0
;; require_match function ;; require_match function
;; Recieves char* message in RAX and char* required in RBX ;; Receives char* message in RAX and char* required in RBX
;; Returns nothing ;; Returns nothing
;; Uses RCX to hold message and updates global_token ;; Uses RCX to hold message and updates global_token
require_match: require_match:
@ -3307,7 +3307,7 @@ require_match_good:
;; uniqueID Function ;; uniqueID Function
;; Recieves char*S in RAX, struct token_list* l in RBX snd char* num in RCX ;; Receives char*S in RAX, struct token_list* l in RBX snd char* num in RCX
;; Returns updated struct token_list* L in RAX ;; Returns updated struct token_list* L in RAX
uniqueID: uniqueID:
push rbx ; Protect RBX push rbx ; Protect RBX
@ -3330,7 +3330,7 @@ uniqueID_string_0: db 10, 0
;; uniqueID_out function ;; uniqueID_out function
;; Recieves char* S in RAX and char* num in RBX ;; Receives char* S in RAX and char* num in RBX
;; Returns nothing ;; Returns nothing
uniqueID_out: uniqueID_out:
push rax ; Protect RAX push rax ; Protect RAX
@ -3347,7 +3347,7 @@ uniqueID_out:
;; emit_out function ;; emit_out function
;; Recieves char* S in RAX ;; Receives char* S in RAX
;; Returns nothing ;; Returns nothing
;; Updates output_list ;; Updates output_list
;; MUST NOT ALTER REGISTERS ;; MUST NOT ALTER REGISTERS
@ -3363,7 +3363,7 @@ emit_out:
;; emit function ;; emit function
;; Recieves char *s in RAX and struct token_list* head in RBX ;; Receives char *s in RAX and struct token_list* head in RBX
;; Returns struct token_list* T in RAX ;; Returns struct token_list* T in RAX
emit: emit:
push rcx ; Protect RCX push rcx ; Protect RCX
@ -3377,9 +3377,9 @@ emit:
;; escape_lookup function ;; escape_lookup function
;; Recieves char* c in RAX ;; Receives char* c in RAX
;; Returns integer value of char in RAX ;; Returns integer value of char in RAX
;; Aborts hard if unknown escape is recieved ;; Aborts hard if unknown escape is received
;; Uses RCX to hold char* C ;; Uses RCX to hold char* C
escape_lookup: escape_lookup:
push rbx ; Protect RBX push rbx ; Protect RBX
@ -3422,7 +3422,7 @@ escape_lookup:
;; Looks like we have no clue what we are doing ;; Looks like we have no clue what we are doing
;; Aborting hard ;; Aborting hard
mov r14, 2 ; write to standard error mov r14, 2 ; write to standard error
mov rax, escape_lookup_string_0 ; Using "Unknown escape recieved: " mov rax, escape_lookup_string_0 ; Using "Unknown escape received: "
call File_Print ; Print it call File_Print ; Print it
mov rax, rcx ; Using C mov rax, rcx ; Using C
call File_Print ; Print it call File_Print ; Print it
@ -3450,12 +3450,12 @@ escape_lookup_hex:
add rax, rbx ; hex(c[2]) << 4 + hex(c[3]) add rax, rbx ; hex(c[2]) << 4 + hex(c[3])
jmp escape_lookup_done ; Be done jmp escape_lookup_done ; Be done
escape_lookup_string_0: db "Unknown escape recieved: ", 0 escape_lookup_string_0: db "Unknown escape received: ", 0
escape_lookup_string_1: db " Unable to process", 10, 0 escape_lookup_string_1: db " Unable to process", 10, 0
;; char2hex function ;; char2hex function
;; Recieves char in RAX ;; Receives char in RAX
;; Returns hex or aborts hard ;; Returns hex or aborts hard
char2hex: char2hex:
sub rax, 48 ; Try 0-9 sub rax, 48 ; Try 0-9
@ -3484,7 +3484,7 @@ char2hex_string_0: db "Tried to print non-hex number", 10, 0
;; parse_string function ;; parse_string function
;; Recieves char* string in RAX ;; Receives char* string in RAX
;; Returns cleaned up string ;; Returns cleaned up string
;; Protects char* string in RBX ;; Protects char* string in RBX
parse_string: parse_string:
@ -3509,7 +3509,7 @@ parse_string_done:
;; weird function ;; weird function
;; Recieves char* string in RAX ;; Receives char* string in RAX
;; Returns true(0) or false(1) in RAX ;; Returns true(0) or false(1) in RAX
;; Uses RCX to hold char* string ;; Uses RCX to hold char* string
weird: weird:
@ -3579,7 +3579,7 @@ weird_string_1: db 9, 10, 13, 32, 0
;; collect_regular_string function ;; collect_regular_string function
;; Recieves char* string in RAX ;; Receives char* string in RAX
;; Malloc and creates new string to return in RAX ;; Malloc and creates new string to return in RAX
;; Uses RCX for return string and RDX for passed string ;; Uses RCX for return string and RDX for passed string
collect_regular_string: collect_regular_string:
@ -3635,7 +3635,7 @@ collect_regular_string_done:
;; collect_weird_string function ;; collect_weird_string function
;; Recieves char* string in RAX ;; Receives char* string in RAX
;; Mallocs and returns char* hold in RAX ;; Mallocs and returns char* hold in RAX
;; Uses RCX for char* hold and RDX for char* string ;; Uses RCX for char* hold and RDX for char* string
collect_weird_string: collect_weird_string:
@ -3703,7 +3703,7 @@ collect_weird_string_done:
;; HEX to ascii routine ;; HEX to ascii routine
;; Recieves INT in RAX and CHAR* in RCX ;; Receives INT in RAX and CHAR* in RCX
;; Stores ascii of INT in CHAR* ;; Stores ascii of INT in CHAR*
;; Returns only modifying RAX and RCX ;; Returns only modifying RAX and RCX
hex8: hex8:
@ -3724,7 +3724,7 @@ hex1:
;; type_name function ;; type_name function
;; Recieves nothing ;; Receives nothing
;; Returns type_size in RAX ;; Returns type_size in RAX
;; Uses RCX for STRUCT TYPE* RET ;; Uses RCX for STRUCT TYPE* RET
type_name: type_name:
@ -3810,7 +3810,7 @@ type_name_string_1: db 10, 0
;; lookup_type function ;; lookup_type function
;; Recieves char* s in RAX and struct type* start in RBX ;; Receives char* s in RAX and struct type* start in RBX
;; Returns struct type* in RAX ;; Returns struct type* in RAX
;; Uses RBX for S and RCX for I ;; Uses RBX for S and RCX for I
lookup_type: lookup_type:
@ -3838,7 +3838,7 @@ lookup_type_done:
;; create_struct function ;; create_struct function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Uses global_token to malloc a struct's definition ;; Uses global_token to malloc a struct's definition
;; Uses RCX for int OFFSET, RDX for struct type* head, RBP for struct type* I, ;; Uses RCX for int OFFSET, RDX for struct type* head, RBP for struct type* I,
@ -3955,7 +3955,7 @@ create_struct_string_1: db "ERROR in create_struct", 10, " Missing ;", 10, 0
;; lookup_member function ;; lookup_member function
;; Recieves struct type* parent in RAX and char* name in RBX ;; Receives struct type* parent in RAX and char* name in RBX
;; Returns struct type* I in RAX ;; Returns struct type* I in RAX
;; Uses char* NAME in RBX, RCX for struct type* I and RDX to hold parent for errors ;; Uses char* NAME in RBX, RCX for struct type* I and RDX to hold parent for errors
;; Aborts hard if not found ;; Aborts hard if not found
@ -4012,7 +4012,7 @@ lookup_member_string_2: db 10, 0
;; build_member function ;; build_member function
;; Recieves struct type* last in RAX, int offset in RBX and global member_size in RDI ;; Receives struct type* last in RAX, int offset in RBX and global member_size in RDI
;; Updates member_size in RDI and returns struct type* I in RAX ;; Updates member_size in RDI and returns struct type* I in RAX
;; Uses RCX for struct type* member_type and RDX for struct type* I ;; Uses RCX for struct type* member_type and RDX for struct type* I
build_member: build_member:
@ -4081,7 +4081,7 @@ build_member_string_0: db "Struct only supports [num] form", 10, 0
;; build_union function ;; build_union function
;; Recieves struct type* last in RAX, int offset in RBX and global member_size in RDI ;; Receives struct type* last in RAX, int offset in RBX and global member_size in RDI
;; Updates member_size in RDI and returns struct type* LAST in RAX ;; Updates member_size in RDI and returns struct type* LAST in RAX
;; Uses RCX for struct type* last, RDX for int offset, RSI for int size and RDI for int member_size ;; Uses RCX for struct type* last, RDX for int offset, RSI for int size and RDI for int member_size
build_union: build_union:
@ -4147,7 +4147,7 @@ build_union_string_1: db "ERROR in build_union", 10, "Missing ;", 10, 0
;; sym_declare function ;; sym_declare function
;; Recieves char *s in RAX, struct type* t in RBX, and struct token_list* list in RCX ;; Receives char *s in RAX, struct type* t in RBX, and struct token_list* list in RCX
;; Returns struct token_list* in RAX ;; Returns struct token_list* in RAX
;; Uses RAX for A ;; Uses RAX for A
sym_declare: sym_declare:
@ -4163,7 +4163,7 @@ sym_declare:
;; match function ;; match function
;; Recieves CHAR* in RAX and CHAR* in RBX ;; Receives CHAR* in RAX and CHAR* in RBX
;; Returns 0 (TRUE) or 1 (FALSE) in RAX ;; Returns 0 (TRUE) or 1 (FALSE) in RAX
match: match:
push rbx ; Protect RBX push rbx ; Protect RBX
@ -4195,7 +4195,7 @@ match_Done:
;; numerate_number function ;; numerate_number function
;; Recieves an INT A in RAX ;; Receives an INT A in RAX
;; Returns char* result in RAX ;; Returns char* result in RAX
;; Allocates 16 bytes of memory ;; Allocates 16 bytes of memory
;; Behaves badly when given a negative number too large ;; Behaves badly when given a negative number too large
@ -4275,7 +4275,7 @@ numerate_number_ZERO:
;; numerate_string function ;; numerate_string function
;; Recieves CHAR* in RAX ;; Receives CHAR* in RAX
;; Returns value of CHAR* in RAX ;; Returns value of CHAR* in RAX
;; Uses RAX for VALUE, RBX for S, RCX for CH and RSI for NEGATIVE? ;; Uses RAX for VALUE, RBX for S, RCX for CH and RSI for NEGATIVE?
numerate_string: numerate_string:
@ -4358,7 +4358,7 @@ numerate_string_done:
;; Exit_Failure function ;; Exit_Failure function
;; Recieves nothing ;; Receives nothing
;; And aborts hard ;; And aborts hard
;; Does NOT return ;; Does NOT return
Exit_Failure: Exit_Failure:
@ -4504,7 +4504,7 @@ type_unsigned_name: db "unsigned", 0
;; debug_list function ;; debug_list function
;; Recieves struct token_list* in RAX ;; Receives struct token_list* in RAX
;; Prints contents of list and exits ;; Prints contents of list and exits
;; Does NOT return ;; Does NOT return
debug_list: debug_list:

View File

@ -449,7 +449,7 @@ DEFINE ZERO_EXTEND_BL 480FB6DB
POP_R11 ; Restore HEAD POP_R11 ; Restore HEAD
RET RET
;; Recieves pointer in RBX ;; Receives pointer in RBX
;; Writes out char and updates RBX ;; Writes out char and updates RBX
:consume_token :consume_token
CALLI32 %Read_byte ; Consume_token CALLI32 %Read_byte ; Consume_token

View File

@ -373,7 +373,7 @@ print_chars:
pop r11 ; Restore HEAD pop r11 ; Restore HEAD
ret ret
;; Recieves pointer in RBX ;; Receives pointer in RBX
;; Writes out char and updates RBX ;; Writes out char and updates RBX
consume_token: consume_token:
call Read_byte ; Consume_token call Read_byte ; Consume_token

View File

@ -420,7 +420,7 @@ CF 05 00 00 00 00 00 00 ## p_memsz
415B ; POP_R11 ; Restore HEAD 415B ; POP_R11 ; Restore HEAD
C3 ; RET C3 ; RET
;; Recieves pointer in RBX ;; Receives pointer in RBX
;; Writes out char and updates RBX ;; Writes out char and updates RBX
:A # :consume_token :A # :consume_token
E8 %x ; CALLI32 %Read_byte ; Consume_token E8 %x ; CALLI32 %Read_byte ; Consume_token

View File

@ -374,7 +374,7 @@
415B ; POP_R11 ; Restore HEAD 415B ; POP_R11 ; Restore HEAD
C3 ; RET C3 ; RET
;; Recieves pointer in RBX ;; Receives pointer in RBX
;; Writes out char and updates RBX ;; Writes out char and updates RBX
:consume_token :consume_token
E8 %Read_byte ; CALLI32 %Read_byte ; Consume_token E8 %Read_byte ; CALLI32 %Read_byte ; Consume_token

View File

@ -235,7 +235,7 @@ DEFINE XCHG_EAX_EBX 93
;; fgetc function ;; fgetc function
;; Recieves FILE* in [Input] ;; Receives FILE* in [Input]
;; Returns -4 (EOF) or char in EAX ;; Returns -4 (EOF) or char in EAX
:fgetc :fgetc
PUSH_EDX ; Protect EDX PUSH_EDX ; Protect EDX
@ -287,7 +287,7 @@ DEFINE XCHG_EAX_EBX 93
;; Store_String Function ;; Store_String Function
;; Recieves C in ECX, HEAD in EDX and Input file in [Output] ;; Receives C in ECX, HEAD in EDX and Input file in [Output]
;; Uses EBX for terminator, ECX for C and EDX for string ;; Uses EBX for terminator, ECX for C and EDX for string
:Store_String :Store_String
PUSH_EBX ; Protect EBX PUSH_EBX ; Protect EBX
@ -318,7 +318,7 @@ DEFINE XCHG_EAX_EBX 93
;; Store_Atom Function ;; Store_Atom Function
;; Recieves C in ECX, HEAD in EDX and Input file in [Input] ;; Receives C in ECX, HEAD in EDX and Input file in [Input]
;; Uses EBX for in_set strings, ECX for C and EDX for string ;; Uses EBX for in_set strings, ECX for C and EDX for string
:Store_Atom :Store_Atom
PUSH_EBX ; Protect EBX PUSH_EBX ; Protect EBX
@ -348,7 +348,7 @@ DEFINE XCHG_EAX_EBX 93
;; In_Set function ;; In_Set function
;; Recieves Char C in EAX and CHAR* in EBX ;; Receives Char C in EAX and CHAR* in EBX
;; Returns 1 if true, zero if false in EAX ;; Returns 1 if true, zero if false in EAX
:In_Set :In_Set
PUSH_EBX ; Protect EBX PUSH_EBX ; Protect EBX
@ -391,7 +391,7 @@ DEFINE XCHG_EAX_EBX 93
;; Reverse_List function ;; Reverse_List function
;; Recieves List in EAX ;; Receives List in EAX
;; Returns the list reversed in EAX ;; Returns the list reversed in EAX
:Reverse_List :Reverse_List
PUSH_EBX ; Protect EBX PUSH_EBX ; Protect EBX
@ -415,7 +415,7 @@ DEFINE XCHG_EAX_EBX 93
;; Identify_Macros function ;; Identify_Macros function
;; Recieves List in EAX ;; Receives List in EAX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses EBX for DEFINE, ECX for I ;; Uses EBX for DEFINE, ECX for I
:Identify_Macros :Identify_Macros
@ -465,7 +465,7 @@ DEFINE XCHG_EAX_EBX 93
;; match function ;; match function
;; Recieves CHAR* in EAX and CHAR* in EBX ;; Receives CHAR* in EAX and CHAR* in EBX
;; Returns 0 (TRUE) or 1 (FALSE) in EAX ;; Returns 0 (TRUE) or 1 (FALSE) in EAX
:match :match
PUSH_EBX ; Protect EBX PUSH_EBX ; Protect EBX
@ -497,7 +497,7 @@ DEFINE XCHG_EAX_EBX 93
;; Line_Macro function ;; Line_Macro function
;; Recieves List in EAX ;; Receives List in EAX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses EAX for I, EBX for I->TEXT, ECX for I->EXPRESSION ;; Uses EAX for I, EBX for I->TEXT, ECX for I->EXPRESSION
:Line_Macro :Line_Macro
@ -530,7 +530,7 @@ DEFINE XCHG_EAX_EBX 93
;; Set_Expression function ;; Set_Expression function
;; Recieves List in EAX, CHAR* in EBX and CHAR* in ECX ;; Receives List in EAX, CHAR* in EBX and CHAR* in ECX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses EBX for C, ECX for EXP and EDX for I ;; Uses EBX for C, ECX for EXP and EDX for I
:Set_Expression :Set_Expression
@ -565,7 +565,7 @@ DEFINE XCHG_EAX_EBX 93
;; Process_String function ;; Process_String function
;; Recieves List in EAX ;; Receives List in EAX
;; Update the list in place; does not modify registers ;; Update the list in place; does not modify registers
;; Uses EBX for I->TEXT, ECX for I and EDX for S ;; Uses EBX for I->TEXT, ECX for I and EDX for S
:Process_String :Process_String
@ -625,7 +625,7 @@ DEFINE XCHG_EAX_EBX 93
;; string_length function ;; string_length function
;; Recieves CHAR* in EAX ;; Receives CHAR* in EAX
;; Returns INT in EAX ;; Returns INT in EAX
;; Uses EAX for CH, EBX for S and ECX for INDEX ;; Uses EAX for CH, EBX for S and ECX for INDEX
:string_length :string_length
@ -650,7 +650,7 @@ DEFINE XCHG_EAX_EBX 93
;; Eval_Immediates function ;; Eval_Immediates function
;; Recieves List in EAX ;; Receives List in EAX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses EBX for I->TEXT[0], ECX for I->TEXT[1] and EDX for I ;; Uses EBX for I->TEXT[0], ECX for I->TEXT[1] and EDX for I
:Eval_Immediates :Eval_Immediates
@ -702,7 +702,7 @@ DEFINE XCHG_EAX_EBX 93
;; numerate_string function ;; numerate_string function
;; Recieves CHAR* in EAX ;; Receives CHAR* in EAX
;; Returns value of CHAR* in EAX ;; Returns value of CHAR* in EAX
;; Uses EAX for VALUE, EBX for S, ECX for CH and EDI for NEGATIVE? ;; Uses EAX for VALUE, EBX for S, ECX for CH and EDI for NEGATIVE?
:numerate_string :numerate_string
@ -785,7 +785,7 @@ DEFINE XCHG_EAX_EBX 93
;; express_number function ;; express_number function
;; Recieves INT in EAX and CHAR in EBX ;; Receives INT in EAX and CHAR in EBX
;; Allocates a string and expresses the value in hex ;; Allocates a string and expresses the value in hex
;; Returns string in EAX ;; Returns string in EAX
;; Uses EAX for VALUE, EBX for S and ECX for CH ;; Uses EAX for VALUE, EBX for S and ECX for CH
@ -832,7 +832,7 @@ DEFINE XCHG_EAX_EBX 93
;; HEX to ascii routine ;; HEX to ascii routine
;; Recieves INT in EAX and CHAR* in EBX ;; Receives INT in EAX and CHAR* in EBX
;; Stores ascii of INT in CHAR* ;; Stores ascii of INT in CHAR*
;; Returns only modifying EAX ;; Returns only modifying EAX
:hex64l :hex64l
@ -868,7 +868,7 @@ DEFINE XCHG_EAX_EBX 93
;; Preserve_Other function ;; Preserve_Other function
;; Recieves List in EAX ;; Receives List in EAX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses EAX for I, EBX for I->TEXT ;; Uses EAX for I, EBX for I->TEXT
:Preserve_Other :Preserve_Other
@ -898,7 +898,7 @@ DEFINE XCHG_EAX_EBX 93
;; Print_Hex function ;; Print_Hex function
;; Recieves list in EAX ;; Receives list in EAX
;; walks the list and prints the I->EXPRESSION for all nodes followed by newline ;; walks the list and prints the I->EXPRESSION for all nodes followed by newline
;; Uses EBX for I ;; Uses EBX for I
:Print_Hex :Print_Hex
@ -926,7 +926,7 @@ DEFINE XCHG_EAX_EBX 93
;; File_Print function ;; File_Print function
;; Recieves CHAR* in EAX ;; Receives CHAR* in EAX
;; calls fputc for every non-null char ;; calls fputc for every non-null char
:File_Print :File_Print
PUSH_EBX ; Protect EBX PUSH_EBX ; Protect EBX
@ -951,7 +951,7 @@ DEFINE XCHG_EAX_EBX 93
;; fputc function ;; fputc function
;; recieves CHAR in EAX and FILE* in [Output] ;; receives CHAR in EAX and FILE* in [Output]
;; writes char and returns ;; writes char and returns
:fputc :fputc
PUSH_EDX ; Protect EDX PUSH_EDX ; Protect EDX

View File

@ -132,7 +132,7 @@ done:
;; fgetc function ;; fgetc function
;; Recieves FILE* in [Input] ;; Receives FILE* in [Input]
;; Returns -4 (EOF) or char in EAX ;; Returns -4 (EOF) or char in EAX
fgetc: fgetc:
push edx ; Protect EDX push edx ; Protect EDX
@ -184,7 +184,7 @@ Purge_LineComment:
;; Store_String Function ;; Store_String Function
;; Recieves C in ECX, HEAD in EDX and Input file in [Output] ;; Receives C in ECX, HEAD in EDX and Input file in [Output]
;; Uses EBX for terminator, ECX for C and EDX for string ;; Uses EBX for terminator, ECX for C and EDX for string
Store_String: Store_String:
push ebx ; Protect EBX push ebx ; Protect EBX
@ -215,7 +215,7 @@ Store_String_Loop:
;; Store_Atom Function ;; Store_Atom Function
;; Recieves C in ECX, HEAD in EDX and Input file in [Input] ;; Receives C in ECX, HEAD in EDX and Input file in [Input]
;; Uses EBX for in_set strings, ECX for C and EDX for string ;; Uses EBX for in_set strings, ECX for C and EDX for string
Store_Atom: Store_Atom:
push ebx ; Protect EBX push ebx ; Protect EBX
@ -245,7 +245,7 @@ Store_Atom_loop:
;; In_Set function ;; In_Set function
;; Recieves Char C in EAX and CHAR* in EBX ;; Receives Char C in EAX and CHAR* in EBX
;; Returns 1 if true, zero if false in EAX ;; Returns 1 if true, zero if false in EAX
In_Set: In_Set:
push ebx ; Protect EBX push ebx ; Protect EBX
@ -287,7 +287,7 @@ string_char:
;; Reverse_List function ;; Reverse_List function
;; Recieves List in EAX ;; Receives List in EAX
;; Returns the list reversed in EAX ;; Returns the list reversed in EAX
Reverse_List: Reverse_List:
push ebx ; Protect EBX push ebx ; Protect EBX
@ -311,7 +311,7 @@ Reverse_List_Done:
;; Identify_Macros function ;; Identify_Macros function
;; Recieves List in EAX ;; Receives List in EAX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses EBX for DEFINE, ECX for I ;; Uses EBX for DEFINE, ECX for I
Identify_Macros: Identify_Macros:
@ -361,7 +361,7 @@ DEFINE_str:
;; match function ;; match function
;; Recieves CHAR* in EAX and CHAR* in EBX ;; Receives CHAR* in EAX and CHAR* in EBX
;; Returns 0 (TRUE) or 1 (FALSE) in EAX ;; Returns 0 (TRUE) or 1 (FALSE) in EAX
match: match:
push ebx ; Protect EBX push ebx ; Protect EBX
@ -393,7 +393,7 @@ match_Done:
;; Line_Macro function ;; Line_Macro function
;; Recieves List in EAX ;; Receives List in EAX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses EAX for I, EBX for I->TEXT, ECX for I->EXPRESSION ;; Uses EAX for I, EBX for I->TEXT, ECX for I->EXPRESSION
Line_Macro: Line_Macro:
@ -426,7 +426,7 @@ Line_Macro_Next:
;; Set_Expression function ;; Set_Expression function
;; Recieves List in EAX, CHAR* in EBX and CHAR* in ECX ;; Receives List in EAX, CHAR* in EBX and CHAR* in ECX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses EBX for C, ECX for EXP and EDX for I ;; Uses EBX for C, ECX for EXP and EDX for I
Set_Expression: Set_Expression:
@ -461,7 +461,7 @@ Set_Expression_Next:
;; Process_String function ;; Process_String function
;; Recieves List in EAX ;; Receives List in EAX
;; Update the list in place; does not modify registers ;; Update the list in place; does not modify registers
;; Uses EBX for I->TEXT, ECX for I and EDX for S ;; Uses EBX for I->TEXT, ECX for I and EDX for S
Process_String: Process_String:
@ -521,7 +521,7 @@ Process_String_Next:
;; string_length function ;; string_length function
;; Recieves CHAR* in EAX ;; Receives CHAR* in EAX
;; Returns INT in EAX ;; Returns INT in EAX
;; Uses EAX for CH, EBX for S and ECX for INDEX ;; Uses EAX for CH, EBX for S and ECX for INDEX
string_length: string_length:
@ -546,7 +546,7 @@ string_length_done:
;; Eval_Immediates function ;; Eval_Immediates function
;; Recieves List in EAX ;; Receives List in EAX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses EBX for I->TEXT[0], ECX for I->TEXT[1] and EDX for I ;; Uses EBX for I->TEXT[0], ECX for I->TEXT[1] and EDX for I
Eval_Immediates: Eval_Immediates:
@ -598,7 +598,7 @@ Eval_Immediates_Next:
;; numerate_string function ;; numerate_string function
;; Recieves CHAR* in EAX ;; Receives CHAR* in EAX
;; Returns value of CHAR* in EAX ;; Returns value of CHAR* in EAX
;; Uses EAX for VALUE, EBX for S, ECX for CH and EDI for NEGATIVE? ;; Uses EAX for VALUE, EBX for S, ECX for CH and EDI for NEGATIVE?
numerate_string: numerate_string:
@ -681,7 +681,7 @@ numerate_string_done:
;; express_number function ;; express_number function
;; Recieves INT in EAX and CHAR in EBX ;; Receives INT in EAX and CHAR in EBX
;; Allocates a string and expresses the value in hex ;; Allocates a string and expresses the value in hex
;; Returns string in EAX ;; Returns string in EAX
;; Uses EAX for VALUE, EBX for S and ECX for CH ;; Uses EAX for VALUE, EBX for S and ECX for CH
@ -728,7 +728,7 @@ express_number_done:
;; HEX to ascii routine ;; HEX to ascii routine
;; Recieves INT in EAX and CHAR* in EBX ;; Receives INT in EAX and CHAR* in EBX
;; Stores ascii of INT in CHAR* ;; Stores ascii of INT in CHAR*
;; Returns only modifying EAX ;; Returns only modifying EAX
hex64l: hex64l:
@ -764,7 +764,7 @@ hex1:
;; Preserve_Other function ;; Preserve_Other function
;; Recieves List in EAX ;; Receives List in EAX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses EAX for I, EBX for I->TEXT ;; Uses EAX for I, EBX for I->TEXT
Preserve_Other: Preserve_Other:
@ -794,7 +794,7 @@ Preserve_Other_Next:
;; Print_Hex function ;; Print_Hex function
;; Recieves list in EAX ;; Receives list in EAX
;; walks the list and prints the I->EXPRESSION for all nodes followed by newline ;; walks the list and prints the I->EXPRESSION for all nodes followed by newline
;; Uses EBX for I ;; Uses EBX for I
Print_Hex: Print_Hex:
@ -822,7 +822,7 @@ Print_Hex_Next:
;; File_Print function ;; File_Print function
;; Recieves CHAR* in EAX ;; Receives CHAR* in EAX
;; calls fputc for every non-null char ;; calls fputc for every non-null char
File_Print: File_Print:
push ebx ; Protect EBX push ebx ; Protect EBX
@ -847,7 +847,7 @@ File_Print_Done:
;; fputc function ;; fputc function
;; recieves CHAR in EAX and FILE* in [Output] ;; receives CHAR in EAX and FILE* in [Output]
;; writes char and returns ;; writes char and returns
fputc: fputc:
push edx ; Protect EDX push edx ; Protect EDX

View File

@ -129,7 +129,7 @@
;; fgetc function ;; fgetc function
;; Recieves FILE* in [Input] ;; Receives FILE* in [Input]
;; Returns -4 (EOF) or char in EAX ;; Returns -4 (EOF) or char in EAX
:fgetc :fgetc
52 ; PUSH_EDX ; Protect EDX 52 ; PUSH_EDX ; Protect EDX
@ -181,7 +181,7 @@
;; Store_String Function ;; Store_String Function
;; Recieves C in ECX, HEAD in EDX and Input file in [Output] ;; Receives C in ECX, HEAD in EDX and Input file in [Output]
;; Uses EBX for terminator, ECX for C and EDX for string ;; Uses EBX for terminator, ECX for C and EDX for string
:Store_String :Store_String
53 ; PUSH_EBX ; Protect EBX 53 ; PUSH_EBX ; Protect EBX
@ -212,7 +212,7 @@
;; Store_Atom Function ;; Store_Atom Function
;; Recieves C in ECX, HEAD in EDX and Input file in [Input] ;; Receives C in ECX, HEAD in EDX and Input file in [Input]
;; Uses EBX for in_set strings, ECX for C and EDX for string ;; Uses EBX for in_set strings, ECX for C and EDX for string
:Store_Atom :Store_Atom
53 ; PUSH_EBX ; Protect EBX 53 ; PUSH_EBX ; Protect EBX
@ -242,7 +242,7 @@
;; In_Set function ;; In_Set function
;; Recieves Char C in EAX and CHAR* in EBX ;; Receives Char C in EAX and CHAR* in EBX
;; Returns 1 if true, zero if false in EAX ;; Returns 1 if true, zero if false in EAX
:In_Set :In_Set
53 ; PUSH_EBX ; Protect EBX 53 ; PUSH_EBX ; Protect EBX
@ -284,7 +284,7 @@
;; Reverse_List function ;; Reverse_List function
;; Recieves List in EAX ;; Receives List in EAX
;; Returns the list reversed in EAX ;; Returns the list reversed in EAX
:Reverse_List :Reverse_List
53 ; PUSH_EBX ; Protect EBX 53 ; PUSH_EBX ; Protect EBX
@ -308,7 +308,7 @@
;; Identify_Macros function ;; Identify_Macros function
;; Recieves List in EAX ;; Receives List in EAX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses EBX for DEFINE, ECX for I ;; Uses EBX for DEFINE, ECX for I
:Identify_Macros :Identify_Macros
@ -358,7 +358,7 @@
;; match function ;; match function
;; Recieves CHAR* in EAX and CHAR* in EBX ;; Receives CHAR* in EAX and CHAR* in EBX
;; Returns 0 (TRUE) or 1 (FALSE) in EAX ;; Returns 0 (TRUE) or 1 (FALSE) in EAX
:match :match
53 ; PUSH_EBX ; Protect EBX 53 ; PUSH_EBX ; Protect EBX
@ -390,7 +390,7 @@
;; Line_Macro function ;; Line_Macro function
;; Recieves List in EAX ;; Receives List in EAX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses EAX for I, EBX for I->TEXT, ECX for I->EXPRESSION ;; Uses EAX for I, EBX for I->TEXT, ECX for I->EXPRESSION
:Line_Macro :Line_Macro
@ -423,7 +423,7 @@
;; Set_Expression function ;; Set_Expression function
;; Recieves List in EAX, CHAR* in EBX and CHAR* in ECX ;; Receives List in EAX, CHAR* in EBX and CHAR* in ECX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses EBX for C, ECX for EXP and EDX for I ;; Uses EBX for C, ECX for EXP and EDX for I
:Set_Expression :Set_Expression
@ -458,7 +458,7 @@
;; Process_String function ;; Process_String function
;; Recieves List in EAX ;; Receives List in EAX
;; Update the list in place; does not modify registers ;; Update the list in place; does not modify registers
;; Uses EBX for I->TEXT, ECX for I and EDX for S ;; Uses EBX for I->TEXT, ECX for I and EDX for S
:Process_String :Process_String
@ -518,7 +518,7 @@
;; string_length function ;; string_length function
;; Recieves CHAR* in EAX ;; Receives CHAR* in EAX
;; Returns INT in EAX ;; Returns INT in EAX
;; Uses EAX for CH, EBX for S and ECX for INDEX ;; Uses EAX for CH, EBX for S and ECX for INDEX
:string_length :string_length
@ -543,7 +543,7 @@
;; Eval_Immediates function ;; Eval_Immediates function
;; Recieves List in EAX ;; Receives List in EAX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses EBX for I->TEXT[0], ECX for I->TEXT[1] and EDX for I ;; Uses EBX for I->TEXT[0], ECX for I->TEXT[1] and EDX for I
:Eval_Immediates :Eval_Immediates
@ -595,7 +595,7 @@
;; numerate_string function ;; numerate_string function
;; Recieves CHAR* in EAX ;; Receives CHAR* in EAX
;; Returns value of CHAR* in EAX ;; Returns value of CHAR* in EAX
;; Uses EAX for VALUE, EBX for S, ECX for CH and EDI for NEGATIVE? ;; Uses EAX for VALUE, EBX for S, ECX for CH and EDI for NEGATIVE?
:numerate_string :numerate_string
@ -678,7 +678,7 @@
;; express_number function ;; express_number function
;; Recieves INT in EAX and CHAR in EBX ;; Receives INT in EAX and CHAR in EBX
;; Allocates a string and expresses the value in hex ;; Allocates a string and expresses the value in hex
;; Returns string in EAX ;; Returns string in EAX
;; Uses EAX for VALUE, EBX for S and ECX for CH ;; Uses EAX for VALUE, EBX for S and ECX for CH
@ -725,7 +725,7 @@
;; HEX to ascii routine ;; HEX to ascii routine
;; Recieves INT in EAX and CHAR* in EBX ;; Receives INT in EAX and CHAR* in EBX
;; Stores ascii of INT in CHAR* ;; Stores ascii of INT in CHAR*
;; Returns only modifying EAX ;; Returns only modifying EAX
:hex64l :hex64l
@ -761,7 +761,7 @@
;; Preserve_Other function ;; Preserve_Other function
;; Recieves List in EAX ;; Receives List in EAX
;; Updates the list in place; does not modify registers ;; Updates the list in place; does not modify registers
;; Uses EAX for I, EBX for I->TEXT ;; Uses EAX for I, EBX for I->TEXT
:Preserve_Other :Preserve_Other
@ -791,7 +791,7 @@
;; Print_Hex function ;; Print_Hex function
;; Recieves list in EAX ;; Receives list in EAX
;; walks the list and prints the I->EXPRESSION for all nodes followed by newline ;; walks the list and prints the I->EXPRESSION for all nodes followed by newline
;; Uses EBX for I ;; Uses EBX for I
:Print_Hex :Print_Hex
@ -819,7 +819,7 @@
;; File_Print function ;; File_Print function
;; Recieves CHAR* in EAX ;; Receives CHAR* in EAX
;; calls fputc for every non-null char ;; calls fputc for every non-null char
:File_Print :File_Print
53 ; PUSH_EBX ; Protect EBX 53 ; PUSH_EBX ; Protect EBX
@ -844,7 +844,7 @@
;; fputc function ;; fputc function
;; recieves CHAR in EAX and FILE* in [Output] ;; receives CHAR in EAX and FILE* in [Output]
;; writes char and returns ;; writes char and returns
:fputc :fputc
52 ; PUSH_EDX ; Protect EDX 52 ; PUSH_EDX ; Protect EDX

View File

@ -253,7 +253,7 @@ DEFINE SWAP_EAX_EBX 93
;; read_all_tokens function ;; read_all_tokens function
;; Recieves Token_List* in EAX ;; Receives Token_List* in EAX
;; Tokenizes all input and returns updated list in EAX ;; Tokenizes all input and returns updated list in EAX
;; Returns TOKEN in EAX ;; Returns TOKEN in EAX
;; Uses EAX for C ;; Uses EAX for C
@ -271,7 +271,7 @@ DEFINE SWAP_EAX_EBX 93
;; get_token function ;; get_token function
;; Recieves INT in EAX ;; Receives INT in EAX
;; Makes a list of TOKEN_LIST ;; Makes a list of TOKEN_LIST
;; C and STRING_INDEX are stored in memory, ECX is used for S and EDX is used for current ;; C and STRING_INDEX are stored in memory, ECX is used for S and EDX is used for current
;; Returns C in EAX ;; Returns C in EAX
@ -434,7 +434,7 @@ DEFINE SWAP_EAX_EBX 93
;; clear_white_space function ;; clear_white_space function
;; Recieves INT C in EAX ;; Receives INT C in EAX
;; Returns first non-whitespace char in EAX ;; Returns first non-whitespace char in EAX
:clear_white_space :clear_white_space
CMPI8_EAX !32 ; Check for ' ' CMPI8_EAX !32 ; Check for ' '
@ -457,7 +457,7 @@ DEFINE SWAP_EAX_EBX 93
;; In_Set function ;; In_Set function
;; Recieves Char C in EAX and CHAR* in EBX ;; Receives Char C in EAX and CHAR* in EBX
;; Returns 1 if true, zero if false in EAX ;; Returns 1 if true, zero if false in EAX
:In_Set :In_Set
PUSH_EBX ; Protect EBX PUSH_EBX ; Protect EBX
@ -493,7 +493,7 @@ DEFINE SWAP_EAX_EBX 93
;; purge_macro function ;; purge_macro function
;; Recieves CH in EAX ;; Receives CH in EAX
;; Reads chars until Line feed is read ;; Reads chars until Line feed is read
;; returns line feed ;; returns line feed
:purge_macro :purge_macro
@ -504,7 +504,7 @@ DEFINE SWAP_EAX_EBX 93
;; preserve_keyword function ;; preserve_keyword function
;; Recieves INT C in EAX ;; Receives INT C in EAX
;; collects all chars in keyword ;; collects all chars in keyword
;; Returns C in EAX ;; Returns C in EAX
;; Uses ECX for INT C ;; Uses ECX for INT C
@ -539,7 +539,7 @@ DEFINE SWAP_EAX_EBX 93
;; preserve_symbol function ;; preserve_symbol function
;; Recieves INT C in EAX ;; Receives INT C in EAX
;; collects all chars in symbol ;; collects all chars in symbol
;; Returns C in EAX ;; Returns C in EAX
;; Uses ECX for INT C ;; Uses ECX for INT C
@ -566,7 +566,7 @@ DEFINE SWAP_EAX_EBX 93
;; consume_word function ;; consume_word function
;; recieves INT C in EAX ;; receives INT C in EAX
;; returns INT C in EAX ;; returns INT C in EAX
;; Uses EAX for C, EBX for FREQ and ECX for ESCAPE ;; Uses EAX for C, EBX for FREQ and ECX for ESCAPE
:consume_word :consume_word
@ -603,7 +603,7 @@ DEFINE SWAP_EAX_EBX 93
;; consume_byte function ;; consume_byte function
;; Recieves INT C in EAX ;; Receives INT C in EAX
;; Inserts C into string S, updates String S ;; Inserts C into string S, updates String S
;; Returns Next char in EAX ;; Returns Next char in EAX
:consume_byte :consume_byte
@ -618,7 +618,7 @@ DEFINE SWAP_EAX_EBX 93
;; fixup_label function ;; fixup_label function
;; Recieves S in ECX ;; Receives S in ECX
;; prepends ':' to string and returns registers un changed ;; prepends ':' to string and returns registers un changed
;; Uses EAX for HOLD, EBX for PREV and ECX for S[0] ;; Uses EAX for HOLD, EBX for PREV and ECX for S[0]
:fixup_label :fixup_label
@ -668,7 +668,7 @@ DEFINE SWAP_EAX_EBX 93
;; Reverse_List function ;; Reverse_List function
;; Recieves List in EAX ;; Receives List in EAX
;; Returns the list reversed in EAX ;; Returns the list reversed in EAX
:Reverse_List :Reverse_List
PUSH_EBX ; Protect EBX PUSH_EBX ; Protect EBX
@ -692,7 +692,7 @@ DEFINE SWAP_EAX_EBX 93
;; recursive_output function ;; recursive_output function
;; Recieves list in EAX ;; Receives list in EAX
;; walks the list and prints the I->S for all nodes backwards ;; walks the list and prints the I->S for all nodes backwards
;; Uses EBX for I ;; Uses EBX for I
:recursive_output :recursive_output
@ -715,7 +715,7 @@ DEFINE SWAP_EAX_EBX 93
;; File_Print function ;; File_Print function
;; Recieves CHAR* in EAX ;; Receives CHAR* in EAX
;; calls fputc for every non-null char ;; calls fputc for every non-null char
:File_Print :File_Print
PUSH_EBX ; Protect EBX PUSH_EBX ; Protect EBX
@ -740,7 +740,7 @@ DEFINE SWAP_EAX_EBX 93
;; fputc function ;; fputc function
;; recieves CHAR in EAX and load FILE* from [OUTPUT_FILE] ;; receives CHAR in EAX and load FILE* from [OUTPUT_FILE]
;; writes char and returns ;; writes char and returns
:fputc :fputc
PUSH_EBX ; Protect EBX PUSH_EBX ; Protect EBX
@ -760,7 +760,7 @@ DEFINE SWAP_EAX_EBX 93
;; program function ;; program function
;; recieves nothing, returns nothing ;; receives nothing, returns nothing
;; Uses EAX for type_size ;; Uses EAX for type_size
:program :program
;; The binary initialized the globals to null, so we can skip those steps ;; The binary initialized the globals to null, so we can skip those steps
@ -870,7 +870,7 @@ NOP
;; declare_function function ;; declare_function function
;; Recieves nothing and returns nothing ;; Receives nothing and returns nothing
;; Sets current function and adds it to the global function list ;; Sets current function and adds it to the global function list
:declare_function :declare_function
PUSH_EBX ; Protect EBX PUSH_EBX ; Protect EBX
@ -949,7 +949,7 @@ NOP
;; collect_arguments function ;; collect_arguments function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Adds arguments to the function definition ;; Adds arguments to the function definition
;; holds struct type* type_size in ECX, then replace with struct token_list* a in ECX when type_size is used ;; holds struct type* type_size in ECX, then replace with struct token_list* a in ECX when type_size is used
@ -1045,7 +1045,7 @@ NOP
;; statement function ;; statement function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Walks down global_token recursively to collect the contents of the function ;; Walks down global_token recursively to collect the contents of the function
:statement :statement
@ -1242,7 +1242,7 @@ Missing ;
;; recursive_statement function ;; recursive_statement function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Walks the global_token list to build the contents of statements ;; Walks the global_token list to build the contents of statements
;; Uses struct token_list* frame in ECX ;; Uses struct token_list* frame in ECX
@ -1309,7 +1309,7 @@ Missing ;
;; return_result function ;; return_result function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Cleans up function and generates return ;; Cleans up function and generates return
;; Also handles returing expressions ;; Also handles returing expressions
@ -1361,7 +1361,7 @@ MISSING ;
;; collect_local function ;; collect_local function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Walks global_token list to create function locals ;; Walks global_token list to create function locals
;; Uses ECX for struct token_list* A ;; Uses ECX for struct token_list* A
@ -1496,7 +1496,7 @@ Missing ;
;; process_asm function ;; process_asm function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Simply inlines the asm statements ;; Simply inlines the asm statements
;; Uses EBX for global_token temp storage ;; Uses EBX for global_token temp storage
@ -1555,7 +1555,7 @@ MISSING ;
;; process_if function ;; process_if function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Increments current_count recurses into expression + statement ;; Increments current_count recurses into expression + statement
;; Uses ECX for char* NUMBER_STRING ;; Uses ECX for char* NUMBER_STRING
@ -1694,7 +1694,7 @@ MISSING )
;; set_break_frame microfunction ;; set_break_frame microfunction
;; Recieves char* head in EAX and char* num in EBX ;; Receives char* head in EAX and char* num in EBX
;; Overwrites EAX and EBX ;; Overwrites EAX and EBX
;; Returns to calling function ;; Returns to calling function
:set_break_frame :set_break_frame
@ -1709,7 +1709,7 @@ MISSING )
;; process_do function ;; process_do function
;; Recieves Nothing ;; Receives Nothing
;; Returns Nothing ;; Returns Nothing
;; Increments current_count and leverages save/restore_break_frame pieces ;; Increments current_count and leverages save/restore_break_frame pieces
;; Uses ECX for char* NUMBER_STRING ;; Uses ECX for char* NUMBER_STRING
@ -1802,7 +1802,7 @@ JUMP_NE %DO_"
;; process_while function ;; process_while function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Increments current_count and leverages save/restore_break_frame pieces ;; Increments current_count and leverages save/restore_break_frame pieces
;; Uses ECX for char* NUMBER_STRING ;; Uses ECX for char* NUMBER_STRING
@ -1898,7 +1898,7 @@ MISSING )
;; process_for function ;; process_for function
;; Recieves Nothing ;; Receives Nothing
;; Returns Nothing ;; Returns Nothing
;; Increments current_count and leverages save/restore_break_frame pieces ;; Increments current_count and leverages save/restore_break_frame pieces
;; Uses ECX for char* NUMBER_STRING ;; Uses ECX for char* NUMBER_STRING
@ -2055,7 +2055,7 @@ MISSING )
;; process_break function ;; process_break function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Handles the break out of loops case ;; Handles the break out of loops case
;; Uses EBX for struct token_list* break_frame and ECX for struct token_list* I ;; Uses EBX for struct token_list* break_frame and ECX for struct token_list* I
@ -2137,7 +2137,7 @@ Missing ;
;; expression function ;; expression function
;; Recieves Nothing ;; Receives Nothing
;; Returns Nothing ;; Returns Nothing
;; Walks global_token and updates output_list ;; Walks global_token and updates output_list
;; Uses EAX and EBX for match and ECX for char* store ;; Uses EAX and EBX for match and ECX for char* store
@ -2195,7 +2195,7 @@ Missing ;
;; bitwise_expr function ;; bitwise_expr function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Walks global_token list and updates output list ;; Walks global_token list and updates output list
;; Just calls other functions ;; Just calls other functions
@ -2206,7 +2206,7 @@ Missing ;
;; bitwise_expr_stub function ;; bitwise_expr_stub function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Just calls general_recursion a bunch ;; Just calls general_recursion a bunch
;; Uses EAX, EBX, ECX and EDX for passing constants to general recursion ;; Uses EAX, EBX, ECX and EDX for passing constants to general recursion
@ -2259,7 +2259,7 @@ Missing ;
;; relational_expr function ;; relational_expr function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Walks global_token list and updates output list ;; Walks global_token list and updates output list
;; just calls other function ;; just calls other function
@ -2270,7 +2270,7 @@ Missing ;
;; relational_expr_stub function ;; relational_expr_stub function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Just calls general_recursion a bunch ;; Just calls general_recursion a bunch
;; Uses EAX, EBX, ECX and EDX for passing constants to general recursion ;; Uses EAX, EBX, ECX and EDX for passing constants to general recursion
@ -2347,7 +2347,7 @@ MOVEZBL
;; additive_expr function ;; additive_expr function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Walks global_token list and updates output list ;; Walks global_token list and updates output list
;; just calls other function ;; just calls other function
@ -2358,7 +2358,7 @@ MOVEZBL
;; additive_expr_stub function ;; additive_expr_stub function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Just calls general_recursion a bunch ;; Just calls general_recursion a bunch
;; Uses EAX, EBX, ECX and EDX for passing constants to general recursion ;; Uses EAX, EBX, ECX and EDX for passing constants to general recursion
@ -2441,7 +2441,7 @@ SAR_eax_cl
;; postfix_expr function ;; postfix_expr function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Walks global_token list and updates output list ;; Walks global_token list and updates output list
;; just calls other function ;; just calls other function
@ -2452,7 +2452,7 @@ SAR_eax_cl
;; postfix_expr_stub function ;; postfix_expr_stub function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Checks for "[" and "->" and deals with them otherwise does nothing ;; Checks for "[" and "->" and deals with them otherwise does nothing
;; Uses EAX, EBX, ECX and EDX for passing constants to general recursion ;; Uses EAX, EBX, ECX and EDX for passing constants to general recursion
@ -2485,7 +2485,7 @@ SAR_eax_cl
;; unary_expr_sizeof function ;; unary_expr_sizeof function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Uses ECX for A->SIZE ;; Uses ECX for A->SIZE
:unary_expr_sizeof :unary_expr_sizeof
@ -2532,7 +2532,7 @@ Missing )
;; postfix_expr_array function ;; postfix_expr_array function
;; Recieves Nothing ;; Receives Nothing
;; Returns Nothing ;; Returns Nothing
;; Uses EBX for struct type* ARRAY and ECX for char* ASSIGN ;; Uses EBX for struct type* ARRAY and ECX for char* ASSIGN
:postfix_expr_array :postfix_expr_array
@ -2616,7 +2616,7 @@ Missing ]
;; ceil_log2 function ;; ceil_log2 function
;; Recieves int a in EAX ;; Receives int a in EAX
;; Performs log2 on A and ;; Performs log2 on A and
;; Returns result in EAX ;; Returns result in EAX
;; Uses EBX for INT A and ECX for INT RESULT ;; Uses EBX for INT A and ECX for INT RESULT
@ -2649,7 +2649,7 @@ Missing ]
;; postfix_expr_arrow function ;; postfix_expr_arrow function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Emits a bunch and updates current_target ;; Emits a bunch and updates current_target
;; Uses EBX for struct type* I ;; Uses EBX for struct type* I
@ -2722,7 +2722,7 @@ ADD_ebx_to_eax
;; primary_expr function ;; primary_expr function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
:primary_expr :primary_expr
PUSH_EBX ; Protect EBX PUSH_EBX ; Protect EBX
@ -2888,7 +2888,7 @@ Didn't get )
;; primary_expr_variable function ;; primary_expr_variable function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Walks global and updates output ;; Walks global and updates output
;; Uses EAX for struct token_list* a and ECX for char* S ;; Uses EAX for struct token_list* a and ECX for char* S
@ -2988,7 +2988,7 @@ Didn't get )
;; function_call function ;; function_call function
;; Recieves char* S in EAX and int BOOL in EBX ;; Receives char* S in EAX and int BOOL in EBX
;; Builds stack frames before and tears them down after function calls ;; Builds stack frames before and tears them down after function calls
;; Uses ECX for char* S, EDX for int BOOL, ESI for PASSED ;; Uses ECX for char* S, EDX for int BOOL, ESI for PASSED
:function_call :function_call
@ -3149,7 +3149,7 @@ LOAD_INTEGER
;; variable_load function ;; variable_load function
;; Recieves struct token_list* A in EAX ;; Receives struct token_list* A in EAX
;; Returns nothing ;; Returns nothing
;; Updates output and current_target ;; Updates output and current_target
;; Uses ECX for A ;; Uses ECX for A
@ -3218,7 +3218,7 @@ LOAD_INTEGER
;; function_load function ;; function_load function
;; Recieves struct token_list* a in EAX ;; Receives struct token_list* a in EAX
;; Returns nothing ;; Returns nothing
;; Uses ECX to hold A->S ;; Uses ECX to hold A->S
:function_load :function_load
@ -3260,7 +3260,7 @@ LOAD_INTEGER
;; global_load function ;; global_load function
;; Recieves struct token_list* A in EAX ;; Receives struct token_list* A in EAX
;; Returns nothing ;; Returns nothing
;; Uses EBX to hold A->S ;; Uses EBX to hold A->S
:global_load :global_load
@ -3303,7 +3303,7 @@ LOAD_INTEGER
;; sym_lookup function ;; sym_lookup function
;; Recieves char* S in EAX and struct token_list* symbol_list in EBX ;; Receives char* S in EAX and struct token_list* symbol_list in EBX
;; Uses I->S in EAX, S in EBX and I in ECX ;; Uses I->S in EAX, S in EBX and I in ECX
;; Returns match or NULL ;; Returns match or NULL
:sym_lookup :sym_lookup
@ -3331,7 +3331,7 @@ LOAD_INTEGER
;; primary_expr_number function ;; primary_expr_number function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Simply uses current global token to update output and then steps to next global_token ;; Simply uses current global token to update output and then steps to next global_token
:primary_expr_number :primary_expr_number
@ -3356,7 +3356,7 @@ LOAD_INTEGER
;; primary_expr_string function ;; primary_expr_string function
;; recieves nothing ;; receives nothing
;; Returns nothing ;; Returns nothing
;; creates entries for string and calls to generate string output ;; creates entries for string and calls to generate string output
;; uses ECX for char* number_string ;; uses ECX for char* number_string
@ -3410,7 +3410,7 @@ LOAD_INTEGER
;; primary_expr_char function ;; primary_expr_char function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Updates output_list using global_token ;; Updates output_list using global_token
:primary_expr_char :primary_expr_char
@ -3442,14 +3442,14 @@ LOAD_INTEGER
;; primary_expr_failure function ;; primary_expr_failure function
;; Recieves nothing ;; Receives nothing
;; Does not return but aborts hard ;; Does not return but aborts hard
;; Complains about the bad input ;; Complains about the bad input
:primary_expr_failure :primary_expr_failure
; CALL32 %line_error ; Get line of issue ; CALL32 %line_error ; Get line of issue
LOADI32_EAX %2 ; Using Standard error LOADI32_EAX %2 ; Using Standard error
STORE32_Absolute32_eax &Output_file ; write to standard error STORE32_Absolute32_eax &Output_file ; write to standard error
LOADI32_EAX &primary_expr_failure_string_0 ; Using "Recieved " LOADI32_EAX &primary_expr_failure_string_0 ; Using "Received "
CALL32 %File_Print ; Print it CALL32 %File_Print ; Print it
LOAD32_Absolute32_eax &global_token ; Using global_token LOAD32_Absolute32_eax &global_token ; Using global_token
@ -3460,13 +3460,13 @@ LOAD_INTEGER
CALL32 %File_Print ; Print it CALL32 %File_Print ; Print it
JMP32 %Exit_Failure ; Abort Hard JMP32 %Exit_Failure ; Abort Hard
:primary_expr_failure_string_0 "Recieved " :primary_expr_failure_string_0 "Received "
:primary_expr_failure_string_1 " in primary_expr :primary_expr_failure_string_1 " in primary_expr
" "
;; general_recursion function ;; general_recursion function
;; Recieves FUNCTION F in EAX, char* S in EBX, char* name in ECX and FUNCTION iterate in EDX ;; Receives FUNCTION F in EAX, char* S in EBX, char* name in ECX and FUNCTION iterate in EDX
;; Returns nothing ;; Returns nothing
;; Uses ECX for char* S, EDX for FUNCTION iterate and EBP for FUNCTION F ;; Uses ECX for char* S, EDX for FUNCTION iterate and EBP for FUNCTION F
;; But generally recurses a shitload ;; But generally recurses a shitload
@ -3504,7 +3504,7 @@ LOAD_INTEGER
;; promote_type function ;; promote_type function
;; Recieves struct type* a in EAX and struct type* b in EBX ;; Receives struct type* a in EAX and struct type* b in EBX
;; Returns the most recent type in EAX ;; Returns the most recent type in EAX
;; Uses EAX for struct type* I, ECX for struct type* A and EDX for struct type* B ;; Uses EAX for struct type* I, ECX for struct type* A and EDX for struct type* B
:promote_type :promote_type
@ -3555,7 +3555,7 @@ LOAD_INTEGER
;; common_recursion function ;; common_recursion function
;; Recieves FUNCTION F in EAX ;; Receives FUNCTION F in EAX
;; Returns Nothing ;; Returns Nothing
;; Walks global_token list and update output_list ;; Walks global_token list and update output_list
;; Updates current_target ;; Updates current_target
@ -3589,7 +3589,7 @@ LOAD_INTEGER
;; require_match function ;; require_match function
;; Recieves char* message in EAX and char* required in EBX ;; Receives char* message in EAX and char* required in EBX
;; Returns nothing ;; Returns nothing
;; Uses ECX to hold message and updates global_token ;; Uses ECX to hold message and updates global_token
:require_match :require_match
@ -3620,7 +3620,7 @@ LOAD_INTEGER
;; uniqueID Function ;; uniqueID Function
;; Recieves char*S in EAX, struct token_list* l in EBX snd char* num in ECX ;; Receives char*S in EAX, struct token_list* l in EBX snd char* num in ECX
;; Returns updated struct token_list* L in EAX ;; Returns updated struct token_list* L in EAX
:uniqueID :uniqueID
PUSH_EBX ; Protect EBX PUSH_EBX ; Protect EBX
@ -3644,7 +3644,7 @@ LOAD_INTEGER
;; uniqueID_out function ;; uniqueID_out function
;; Recieves char* S in EAX and char* num in EBX ;; Receives char* S in EAX and char* num in EBX
;; Returns nothing ;; Returns nothing
:uniqueID_out :uniqueID_out
PUSH_EAX ; Protect EAX PUSH_EAX ; Protect EAX
@ -3661,7 +3661,7 @@ LOAD_INTEGER
;; emit_out function ;; emit_out function
;; Recieves char* S in EAX ;; Receives char* S in EAX
;; Returns nothing ;; Returns nothing
;; Updates output_list ;; Updates output_list
;; MUST NOT ALTER REGISTERS ;; MUST NOT ALTER REGISTERS
@ -3677,7 +3677,7 @@ LOAD_INTEGER
;; emit function ;; emit function
;; Recieves char *s in EAX and struct token_list* head in EBX ;; Receives char *s in EAX and struct token_list* head in EBX
;; Returns struct token_list* T in EAX ;; Returns struct token_list* T in EAX
:emit :emit
PUSH_ECX ; Protect ECX PUSH_ECX ; Protect ECX
@ -3691,9 +3691,9 @@ LOAD_INTEGER
;; escape_lookup function ;; escape_lookup function
;; Recieves char* c in EAX ;; Receives char* c in EAX
;; Returns integer value of char in EAX ;; Returns integer value of char in EAX
;; Aborts hard if unknown escape is recieved ;; Aborts hard if unknown escape is received
;; Uses ECX to hold char* C ;; Uses ECX to hold char* C
:escape_lookup :escape_lookup
PUSH_EBX ; Protect EBX PUSH_EBX ; Protect EBX
@ -3737,7 +3737,7 @@ LOAD_INTEGER
;; Aborting hard ;; Aborting hard
LOADI32_EAX %2 ; Using Standard error LOADI32_EAX %2 ; Using Standard error
STORE32_Absolute32_eax &Output_file ; write to standard error STORE32_Absolute32_eax &Output_file ; write to standard error
LOADI32_EAX &escape_lookup_string_0 ; Using "Unknown escape recieved: " LOADI32_EAX &escape_lookup_string_0 ; Using "Unknown escape received: "
CALL32 %File_Print ; Print it CALL32 %File_Print ; Print it
COPY_ECX_to_EAX ; Using C COPY_ECX_to_EAX ; Using C
CALL32 %File_Print ; Print it CALL32 %File_Print ; Print it
@ -3765,13 +3765,13 @@ LOAD_INTEGER
ADD_ebx_into_eax ; hex(c[2]) << 4 + hex(c[3]) ADD_ebx_into_eax ; hex(c[2]) << 4 + hex(c[3])
JMP32 %escape_lookup_done ; Be done JMP32 %escape_lookup_done ; Be done
:escape_lookup_string_0 "Unknown escape recieved: " :escape_lookup_string_0 "Unknown escape received: "
:escape_lookup_string_1 " Unable to process :escape_lookup_string_1 " Unable to process
" "
;; char2hex function ;; char2hex function
;; Recieves char in EAX ;; Receives char in EAX
;; Returns hex or aborts hard ;; Returns hex or aborts hard
:char2hex :char2hex
SUBI8_EAX !48 ; Try 0-9 SUBI8_EAX !48 ; Try 0-9
@ -3802,7 +3802,7 @@ LOAD_INTEGER
;; parse_string function ;; parse_string function
;; Recieves char* string in EAX ;; Receives char* string in EAX
;; Returns cleaned up string ;; Returns cleaned up string
;; Protects char* string in EBX ;; Protects char* string in EBX
:parse_string :parse_string
@ -3827,7 +3827,7 @@ LOAD_INTEGER
;; weird function ;; weird function
;; Recieves char* string in EAX ;; Receives char* string in EAX
;; Returns true(0) or false(1) in EAX ;; Returns true(0) or false(1) in EAX
;; Uses ECX to hold char* string ;; Uses ECX to hold char* string
:weird :weird
@ -3898,7 +3898,7 @@ LOAD_INTEGER
;; collect_regular_string function ;; collect_regular_string function
;; Recieves char* string in EAX ;; Receives char* string in EAX
;; Malloc and creates new string to return in EAX ;; Malloc and creates new string to return in EAX
;; Uses ECX for return string and EDX for passed string ;; Uses ECX for return string and EDX for passed string
:collect_regular_string :collect_regular_string
@ -3954,7 +3954,7 @@ LOAD_INTEGER
;; collect_weird_string function ;; collect_weird_string function
;; Recieves char* string in EAX ;; Receives char* string in EAX
;; Mallocs and returns char* hold in EAX ;; Mallocs and returns char* hold in EAX
;; Uses ECX for char* hold and EDX for char* string ;; Uses ECX for char* hold and EDX for char* string
:collect_weird_string :collect_weird_string
@ -4022,7 +4022,7 @@ LOAD_INTEGER
;; HEX to ascii routine ;; HEX to ascii routine
;; Recieves INT in EAX and CHAR* in ECX ;; Receives INT in EAX and CHAR* in ECX
;; Stores ascii of INT in CHAR* ;; Stores ascii of INT in CHAR*
;; Returns only modifying EAX and ECX ;; Returns only modifying EAX and ECX
:hex8 :hex8
@ -4043,7 +4043,7 @@ LOAD_INTEGER
;; type_name function ;; type_name function
;; Recieves nothing ;; Receives nothing
;; Returns type_size in EAX ;; Returns type_size in EAX
;; Uses ECX for STRUCT TYPE* RET ;; Uses ECX for STRUCT TYPE* RET
:type_name :type_name
@ -4131,7 +4131,7 @@ LOAD_INTEGER
;; lookup_type function ;; lookup_type function
;; Recieves char* s in EAX and struct type* start in EBX ;; Receives char* s in EAX and struct type* start in EBX
;; Returns struct type* in EAX ;; Returns struct type* in EAX
;; Uses EBX for S and ECX for I ;; Uses EBX for S and ECX for I
:lookup_type :lookup_type
@ -4159,7 +4159,7 @@ LOAD_INTEGER
;; create_struct function ;; create_struct function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Uses global_token to malloc a struct's definition ;; Uses global_token to malloc a struct's definition
;; Uses ECX for int OFFSET, EDX for struct type* head, EBP for struct type* I, ;; Uses ECX for int OFFSET, EDX for struct type* head, EBP for struct type* I,
@ -4280,7 +4280,7 @@ LOAD_INTEGER
;; lookup_member function ;; lookup_member function
;; Recieves struct type* parent in EAX and char* name in EBX ;; Receives struct type* parent in EAX and char* name in EBX
;; Returns struct type* I in EAX ;; Returns struct type* I in EAX
;; Uses char* NAME in EBX, ECX for struct type* I and EDX to hold parent for errors ;; Uses char* NAME in EBX, ECX for struct type* I and EDX to hold parent for errors
;; Aborts hard if not found ;; Aborts hard if not found
@ -4340,7 +4340,7 @@ LOAD_INTEGER
;; build_member function ;; build_member function
;; Recieves struct type* last in EAX, int offset in EBX and global member_size in EDI ;; Receives struct type* last in EAX, int offset in EBX and global member_size in EDI
;; Updates member_size in EDI and returns struct type* I in EAX ;; Updates member_size in EDI and returns struct type* I in EAX
;; Uses ECX for struct type* member_type and EDX for struct type* I ;; Uses ECX for struct type* member_type and EDX for struct type* I
:build_member :build_member
@ -4410,7 +4410,7 @@ LOAD_INTEGER
;; build_union function ;; build_union function
;; Recieves struct type* last in EAX, int offset in EBX and global member_size in EDI ;; Receives struct type* last in EAX, int offset in EBX and global member_size in EDI
;; Updates member_size in EDI and returns struct type* LAST in EAX ;; Updates member_size in EDI and returns struct type* LAST in EAX
;; Uses ECX for struct type* last, EDX for int offset, ESI for int size and EDI for int member_size ;; Uses ECX for struct type* last, EDX for int offset, ESI for int size and EDI for int member_size
:build_union :build_union
@ -4480,7 +4480,7 @@ Missing ;
;; sym_declare function ;; sym_declare function
;; Recieves char *s in EAX, struct type* t in EBX, and struct token_list* list in ECX ;; Receives char *s in EAX, struct type* t in EBX, and struct token_list* list in ECX
;; Returns struct token_list* in EAX ;; Returns struct token_list* in EAX
;; Uses EAX for A ;; Uses EAX for A
:sym_declare :sym_declare
@ -4496,7 +4496,7 @@ Missing ;
;; match function ;; match function
;; Recieves CHAR* in EAX and CHAR* in EBX ;; Receives CHAR* in EAX and CHAR* in EBX
;; Returns 0 (TRUE) or 1 (FALSE) in EAX ;; Returns 0 (TRUE) or 1 (FALSE) in EAX
:match :match
PUSH_EBX ; Protect EBX PUSH_EBX ; Protect EBX
@ -4528,7 +4528,7 @@ Missing ;
;; numerate_number function ;; numerate_number function
;; Recieves an INT A in EAX ;; Receives an INT A in EAX
;; Returns char* result in EAX ;; Returns char* result in EAX
;; Allocates 16 bytes of memory ;; Allocates 16 bytes of memory
;; Behaves badly when given a negative number too large ;; Behaves badly when given a negative number too large
@ -4608,7 +4608,7 @@ Missing ;
;; numerate_string function ;; numerate_string function
;; Recieves CHAR* in EAX ;; Receives CHAR* in EAX
;; Returns value of CHAR* in EAX ;; Returns value of CHAR* in EAX
;; Uses EAX for VALUE, EBX for S, ECX for CH and ESI for NEGATIVE? ;; Uses EAX for VALUE, EBX for S, ECX for CH and ESI for NEGATIVE?
:numerate_string :numerate_string
@ -4691,7 +4691,7 @@ Missing ;
;; Exit_Failure function ;; Exit_Failure function
;; Recieves nothing ;; Receives nothing
;; And aborts hard ;; And aborts hard
;; Does NOT return ;; Does NOT return
:Exit_Failure :Exit_Failure
@ -4837,7 +4837,7 @@ Missing ;
;; debug_list function ;; debug_list function
;; Recieves struct token_list* in EAX ;; Receives struct token_list* in EAX
;; Prints contents of list and exits ;; Prints contents of list and exits
;; Does NOT return ;; Does NOT return
:debug_list :debug_list

View File

@ -94,7 +94,7 @@ header_string2: db 10, ":ELF_data", 10, 10, "# Program global variables", 10, 0
header_string3: db 10, "# Program strings", 10, 0 header_string3: db 10, "# Program strings", 10, 0
;; read_all_tokens function ;; read_all_tokens function
;; Recieves Token_List* in EAX ;; Receives Token_List* in EAX
;; Tokenizes all input and returns updated list in EAX ;; Tokenizes all input and returns updated list in EAX
;; Returns TOKEN in EAX ;; Returns TOKEN in EAX
;; Uses EAX for C ;; Uses EAX for C
@ -112,7 +112,7 @@ read_all_tokens_done:
;; get_token function ;; get_token function
;; Recieves INT in EAX ;; Receives INT in EAX
;; Makes a list of TOKEN_LIST ;; Makes a list of TOKEN_LIST
;; C and STRING_INDEX are stored in memory, ECX is used for S and EDX is used for current ;; C and STRING_INDEX are stored in memory, ECX is used for S and EDX is used for current
;; Returns C in EAX ;; Returns C in EAX
@ -275,7 +275,7 @@ malloc:
;; clear_white_space function ;; clear_white_space function
;; Recieves INT C in EAX ;; Receives INT C in EAX
;; Returns first non-whitespace char in EAX ;; Returns first non-whitespace char in EAX
clear_white_space: clear_white_space:
cmp eax, 32 ; Check for ' ' cmp eax, 32 ; Check for ' '
@ -298,7 +298,7 @@ clear_white_space_done:
;; In_Set function ;; In_Set function
;; Recieves Char C in EAX and CHAR* in EBX ;; Receives Char C in EAX and CHAR* in EBX
;; Returns 1 if true, zero if false in EAX ;; Returns 1 if true, zero if false in EAX
In_Set: In_Set:
push ebx ; Protect EBX push ebx ; Protect EBX
@ -334,7 +334,7 @@ strings: db 34, 39, 0
;; purge_macro function ;; purge_macro function
;; Recieves CH in EAX ;; Receives CH in EAX
;; Reads chars until Line feed is read ;; Reads chars until Line feed is read
;; returns line feed ;; returns line feed
purge_macro: purge_macro:
@ -345,7 +345,7 @@ purge_macro:
;; preserve_keyword function ;; preserve_keyword function
;; Recieves INT C in EAX ;; Receives INT C in EAX
;; collects all chars in keyword ;; collects all chars in keyword
;; Returns C in EAX ;; Returns C in EAX
;; Uses ECX for INT C ;; Uses ECX for INT C
@ -380,7 +380,7 @@ preserve_keyword_done:
;; preserve_symbol function ;; preserve_symbol function
;; Recieves INT C in EAX ;; Receives INT C in EAX
;; collects all chars in symbol ;; collects all chars in symbol
;; Returns C in EAX ;; Returns C in EAX
;; Uses ECX for INT C ;; Uses ECX for INT C
@ -407,7 +407,7 @@ preserve_symbol_done:
;; consume_word function ;; consume_word function
;; recieves INT C in EAX ;; receives INT C in EAX
;; returns INT C in EAX ;; returns INT C in EAX
;; Uses EAX for C, EBX for FREQ and ECX for ESCAPE ;; Uses EAX for C, EBX for FREQ and ECX for ESCAPE
consume_word: consume_word:
@ -444,7 +444,7 @@ consume_word_iter:
;; consume_byte function ;; consume_byte function
;; Recieves INT C in EAX ;; Receives INT C in EAX
;; Inserts C into string S, updates String S ;; Inserts C into string S, updates String S
;; Returns Next char in EAX ;; Returns Next char in EAX
consume_byte: consume_byte:
@ -459,7 +459,7 @@ consume_byte:
;; fixup_label function ;; fixup_label function
;; Recieves S in ECX ;; Receives S in ECX
;; prepends ':' to string and returns registers un changed ;; prepends ':' to string and returns registers un changed
;; Uses EAX for HOLD, EBX for PREV and ECX for S[0] ;; Uses EAX for HOLD, EBX for PREV and ECX for S[0]
fixup_label: fixup_label:
@ -509,7 +509,7 @@ fgetc_done:
;; Reverse_List function ;; Reverse_List function
;; Recieves List in EAX ;; Receives List in EAX
;; Returns the list reversed in EAX ;; Returns the list reversed in EAX
Reverse_List: Reverse_List:
push ebx ; Protect EBX push ebx ; Protect EBX
@ -533,7 +533,7 @@ Reverse_List_Done:
;; recursive_output function ;; recursive_output function
;; Recieves list in EAX ;; Receives list in EAX
;; walks the list and prints the I->S for all nodes backwards ;; walks the list and prints the I->S for all nodes backwards
;; Uses EBX for I ;; Uses EBX for I
recursive_output: recursive_output:
@ -556,7 +556,7 @@ recursive_output_done:
;; File_Print function ;; File_Print function
;; Recieves CHAR* in EAX ;; Receives CHAR* in EAX
;; calls fputc for every non-null char ;; calls fputc for every non-null char
File_Print: File_Print:
push ebx ; Protect EBX push ebx ; Protect EBX
@ -581,7 +581,7 @@ File_Print_Done:
;; fputc function ;; fputc function
;; recieves CHAR in EAX and load FILE* from [OUTPUT_FILE] ;; receives CHAR in EAX and load FILE* from [OUTPUT_FILE]
;; writes char and returns ;; writes char and returns
fputc: fputc:
push ebx ; Protect EBX push ebx ; Protect EBX
@ -601,7 +601,7 @@ fputc:
;; program function ;; program function
;; recieves nothing, returns nothing ;; receives nothing, returns nothing
;; Uses EAX for type_size ;; Uses EAX for type_size
program: program:
;; The binary initialized the globals to null, so we can skip those steps ;; The binary initialized the globals to null, so we can skip those steps
@ -708,7 +708,7 @@ program_string_1: db 10, "NOP", 10, 0
;; declare_function function ;; declare_function function
;; Recieves nothing and returns nothing ;; Receives nothing and returns nothing
;; Sets current function and adds it to the global function list ;; Sets current function and adds it to the global function list
declare_function: declare_function:
push ebx ; Protect EBX push ebx ; Protect EBX
@ -784,7 +784,7 @@ declare_function_string_3: db 10, 0
;; collect_arguments function ;; collect_arguments function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Adds arguments to the function definition ;; Adds arguments to the function definition
;; holds struct type* type_size in ECX, then replace with struct token_list* a in ECX when type_size is used ;; holds struct type* type_size in ECX, then replace with struct token_list* a in ECX when type_size is used
@ -880,7 +880,7 @@ collect_arguments_done:
;; statement function ;; statement function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Walks down global_token recursively to collect the contents of the function ;; Walks down global_token recursively to collect the contents of the function
statement: statement:
@ -1071,7 +1071,7 @@ statement_string_4: db "ERROR in statement", 10, "Missing ;", 10, 0
;; recursive_statement function ;; recursive_statement function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Walks the global_token list to build the contents of statements ;; Walks the global_token list to build the contents of statements
;; Uses struct token_list* frame in ECX ;; Uses struct token_list* frame in ECX
@ -1136,7 +1136,7 @@ recursive_statement_string_1: db "POP_ebx", 9, "# _recursive_statement_locals",
;; return_result function ;; return_result function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Cleans up function and generates return ;; Cleans up function and generates return
;; Also handles returing expressions ;; Also handles returing expressions
@ -1184,7 +1184,7 @@ return_result_string_2: db "RETURN", 10, 0
;; collect_local function ;; collect_local function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Walks global_token list to create function locals ;; Walks global_token list to create function locals
;; Uses ECX for struct token_list* A ;; Uses ECX for struct token_list* A
@ -1316,7 +1316,7 @@ collect_local_string_3: db "PUSH_eax", 9, "#", 0
;; process_asm function ;; process_asm function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Simply inlines the asm statements ;; Simply inlines the asm statements
;; Uses EBX for global_token temp storage ;; Uses EBX for global_token temp storage
@ -1368,7 +1368,7 @@ process_asm_string_3: db "ERROR in process_asm", 10, "MISSING ;", 10, 0
;; process_if function ;; process_if function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Increments current_count recurses into expression + statement ;; Increments current_count recurses into expression + statement
;; Uses ECX for char* NUMBER_STRING ;; Uses ECX for char* NUMBER_STRING
@ -1502,7 +1502,7 @@ restore_break_frame:
;; set_break_frame microfunction ;; set_break_frame microfunction
;; Recieves char* head in EAX and char* num in EBX ;; Receives char* head in EAX and char* num in EBX
;; Overwrites EAX and EBX ;; Overwrites EAX and EBX
;; Returns to calling function ;; Returns to calling function
set_break_frame: set_break_frame:
@ -1517,7 +1517,7 @@ set_break_frame:
;; process_do function ;; process_do function
;; Recieves Nothing ;; Receives Nothing
;; Returns Nothing ;; Returns Nothing
;; Increments current_count and leverages save/restore_break_frame pieces ;; Increments current_count and leverages save/restore_break_frame pieces
;; Uses ECX for char* NUMBER_STRING ;; Uses ECX for char* NUMBER_STRING
@ -1601,7 +1601,7 @@ process_do_string_7: db ":DO_END_", 0
;; process_while function ;; process_while function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Increments current_count and leverages save/restore_break_frame pieces ;; Increments current_count and leverages save/restore_break_frame pieces
;; Uses ECX for char* NUMBER_STRING ;; Uses ECX for char* NUMBER_STRING
@ -1692,7 +1692,7 @@ process_while_string_7: db ":END_WHILE_", 0
;; process_for function ;; process_for function
;; Recieves Nothing ;; Receives Nothing
;; Returns Nothing ;; Returns Nothing
;; Increments current_count and leverages save/restore_break_frame pieces ;; Increments current_count and leverages save/restore_break_frame pieces
;; Uses ECX for char* NUMBER_STRING ;; Uses ECX for char* NUMBER_STRING
@ -1840,7 +1840,7 @@ process_for_string_13: db ":FOR_END_", 0
;; process_break function ;; process_break function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Handles the break out of loops case ;; Handles the break out of loops case
;; Uses EBX for struct token_list* break_frame and ECX for struct token_list* I ;; Uses EBX for struct token_list* break_frame and ECX for struct token_list* I
@ -1918,7 +1918,7 @@ process_break_string_4: db "ERROR in break statement",10, "Missing ;", 10, 0
;; expression function ;; expression function
;; Recieves Nothing ;; Receives Nothing
;; Returns Nothing ;; Returns Nothing
;; Walks global_token and updates output_list ;; Walks global_token and updates output_list
;; Uses EAX and EBX for match and ECX for char* store ;; Uses EAX and EBX for match and ECX for char* store
@ -1974,7 +1974,7 @@ expression_string_1: db "STORE_CHAR", 10, 0
;; bitwise_expr function ;; bitwise_expr function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Walks global_token list and updates output list ;; Walks global_token list and updates output list
;; Just calls other functions ;; Just calls other functions
@ -1985,7 +1985,7 @@ bitwise_expr:
;; bitwise_expr_stub function ;; bitwise_expr_stub function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Just calls general_recursion a bunch ;; Just calls general_recursion a bunch
;; Uses EAX, EBX, ECX and EDX for passing constants to general recursion ;; Uses EAX, EBX, ECX and EDX for passing constants to general recursion
@ -2035,7 +2035,7 @@ bitwise_expr_stub_string_2: db "XOR_ebx_eax_into_eax", 10, 0
;; relational_expr function ;; relational_expr function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Walks global_token list and updates output list ;; Walks global_token list and updates output list
;; just calls other function ;; just calls other function
@ -2046,7 +2046,7 @@ relational_expr:
;; relational_expr_stub function ;; relational_expr_stub function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Just calls general_recursion a bunch ;; Just calls general_recursion a bunch
;; Uses EAX, EBX, ECX and EDX for passing constants to general recursion ;; Uses EAX, EBX, ECX and EDX for passing constants to general recursion
@ -2105,7 +2105,7 @@ relational_expr_stub_string_5: db "CMP", 10, "SETNE", 10, "MOVEZBL", 10, 0
;; additive_expr function ;; additive_expr function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Walks global_token list and updates output list ;; Walks global_token list and updates output list
;; just calls other function ;; just calls other function
@ -2116,7 +2116,7 @@ additive_expr:
;; additive_expr_stub function ;; additive_expr_stub function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Just calls general_recursion a bunch ;; Just calls general_recursion a bunch
;; Uses EAX, EBX, ECX and EDX for passing constants to general recursion ;; Uses EAX, EBX, ECX and EDX for passing constants to general recursion
@ -2182,7 +2182,7 @@ additive_expr_stub_string_6: db "COPY_eax_to_ecx", 10, "COPY_ebx_to_eax", 10, "S
;; postfix_expr function ;; postfix_expr function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Walks global_token list and updates output list ;; Walks global_token list and updates output list
;; just calls other function ;; just calls other function
@ -2193,7 +2193,7 @@ postfix_expr:
;; postfix_expr_stub function ;; postfix_expr_stub function
;; Recieves nothing ;; Receives nothing
;; Returns Nothing ;; Returns Nothing
;; Checks for "[" and "->" and deals with them otherwise does nothing ;; Checks for "[" and "->" and deals with them otherwise does nothing
;; Uses EAX, EBX, ECX and EDX for passing constants to general recursion ;; Uses EAX, EBX, ECX and EDX for passing constants to general recursion
@ -2226,7 +2226,7 @@ postfix_expr_stub_done:
;; unary_expr_sizeof function ;; unary_expr_sizeof function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Uses ECX for A->SIZE ;; Uses ECX for A->SIZE
unary_expr_sizeof: unary_expr_sizeof:
@ -2268,7 +2268,7 @@ unary_expr_sizeof_string_3: db 10, 0
;; postfix_expr_array function ;; postfix_expr_array function
;; Recieves Nothing ;; Receives Nothing
;; Returns Nothing ;; Returns Nothing
;; Uses EBX for struct type* ARRAY and ECX for char* ASSIGN ;; Uses EBX for struct type* ARRAY and ECX for char* ASSIGN
postfix_expr_array: postfix_expr_array:
@ -2346,7 +2346,7 @@ postfix_expr_array_string_6: db 0
;; ceil_log2 function ;; ceil_log2 function
;; Recieves int a in EAX ;; Receives int a in EAX
;; Performs log2 on A and ;; Performs log2 on A and
;; Returns result in EAX ;; Returns result in EAX
;; Uses EBX for INT A and ECX for INT RESULT ;; Uses EBX for INT A and ECX for INT RESULT
@ -2379,7 +2379,7 @@ ceil_log2_done:
;; postfix_expr_arrow function ;; postfix_expr_arrow function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Emits a bunch and updates current_target ;; Emits a bunch and updates current_target
;; Uses EBX for struct type* I ;; Uses EBX for struct type* I
@ -2447,7 +2447,7 @@ postfix_expr_arrow_string_3: db "LOAD_INTEGER", 10, 0
;; primary_expr function ;; primary_expr function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
primary_expr: primary_expr:
push ebx ; Protect EBX push ebx ; Protect EBX
@ -2605,7 +2605,7 @@ primary_expr_string_7:db "0123456789", 0
;; primary_expr_variable function ;; primary_expr_variable function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Walks global and updates output ;; Walks global and updates output
;; Uses EAX for struct token_list* a and ECX for char* S ;; Uses EAX for struct token_list* a and ECX for char* S
@ -2703,7 +2703,7 @@ primary_expr_variable_string_2: db "LOAD_IMMEDIATE_eax %", 0
;; function_call function ;; function_call function
;; Recieves char* S in EAX and int BOOL in EBX ;; Receives char* S in EAX and int BOOL in EBX
;; Builds stack frames before and tears them down after function calls ;; Builds stack frames before and tears them down after function calls
;; Uses ECX for char* S, EDX for int BOOL, ESI for PASSED ;; Uses ECX for char* S, EDX for int BOOL, ESI for PASSED
function_call: function_call:
@ -2847,7 +2847,7 @@ function_call_string_15: db "POP_edi", 9, "# Prevent overwrite", 10, 0
;; variable_load function ;; variable_load function
;; Recieves struct token_list* A in EAX ;; Receives struct token_list* A in EAX
;; Returns nothing ;; Returns nothing
;; Updates output and current_target ;; Updates output and current_target
;; Uses ECX for A ;; Uses ECX for A
@ -2914,7 +2914,7 @@ variable_load_string_2: db "LOAD_INTEGER", 10, 0
;; function_load function ;; function_load function
;; Recieves struct token_list* a in EAX ;; Receives struct token_list* a in EAX
;; Returns nothing ;; Returns nothing
;; Uses ECX to hold A->S ;; Uses ECX to hold A->S
function_load: function_load:
@ -2955,7 +2955,7 @@ function_load_string_1: db 10, 0
;; global_load function ;; global_load function
;; Recieves struct token_list* A in EAX ;; Receives struct token_list* A in EAX
;; Returns nothing ;; Returns nothing
;; Uses EBX to hold A->S ;; Uses EBX to hold A->S
global_load: global_load:
@ -2996,7 +2996,7 @@ global_load_string_2: db "LOAD_INTEGER", 10, 0
;; sym_lookup function ;; sym_lookup function
;; Recieves char* S in EAX and struct token_list* symbol_list in EBX ;; Receives char* S in EAX and struct token_list* symbol_list in EBX
;; Uses I->S in EAX, S in EBX and I in ECX ;; Uses I->S in EAX, S in EBX and I in ECX
;; Returns match or NULL ;; Returns match or NULL
sym_lookup: sym_lookup:
@ -3024,7 +3024,7 @@ sym_lookup_done:
;; primary_expr_number function ;; primary_expr_number function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Simply uses current global token to update output and then steps to next global_token ;; Simply uses current global token to update output and then steps to next global_token
primary_expr_number: primary_expr_number:
@ -3048,7 +3048,7 @@ primary_expr_number_string_1: db 10, 0
;; primary_expr_string function ;; primary_expr_string function
;; recieves nothing ;; receives nothing
;; Returns nothing ;; Returns nothing
;; creates entries for string and calls to generate string output ;; creates entries for string and calls to generate string output
;; uses ECX for char* number_string ;; uses ECX for char* number_string
@ -3102,7 +3102,7 @@ primary_expr_string_string_1: db ":STRING_", 0
;; primary_expr_char function ;; primary_expr_char function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Updates output_list using global_token ;; Updates output_list using global_token
primary_expr_char: primary_expr_char:
@ -3133,14 +3133,14 @@ primary_expr_char_string_1: db 10, 0
;; primary_expr_failure function ;; primary_expr_failure function
;; Recieves nothing ;; Receives nothing
;; Does not return but aborts hard ;; Does not return but aborts hard
;; Complains about the bad input ;; Complains about the bad input
primary_expr_failure: primary_expr_failure:
; call line_error ; Get line of issue ; call line_error ; Get line of issue
mov eax, 2 ; Using Standard error mov eax, 2 ; Using Standard error
mov [Output_file], eax ; write to standard error mov [Output_file], eax ; write to standard error
mov eax, primary_expr_failure_string_0 ; Using "Recieved " mov eax, primary_expr_failure_string_0 ; Using "Received "
call File_Print ; Print it call File_Print ; Print it
mov eax, [global_token] ; Using global_token mov eax, [global_token] ; Using global_token
@ -3151,12 +3151,12 @@ primary_expr_failure:
call File_Print ; Print it call File_Print ; Print it
jmp Exit_Failure ; Abort Hard jmp Exit_Failure ; Abort Hard
primary_expr_failure_string_0: db "Recieved ", 0 primary_expr_failure_string_0: db "Received ", 0
primary_expr_failure_string_1: db " in primary_expr", 10, 0 primary_expr_failure_string_1: db " in primary_expr", 10, 0
;; general_recursion function ;; general_recursion function
;; Recieves FUNCTION F in EAX, char* S in EBX, char* name in ECX and FUNCTION iterate in EDX ;; Receives FUNCTION F in EAX, char* S in EBX, char* name in ECX and FUNCTION iterate in EDX
;; Returns nothing ;; Returns nothing
;; Uses ECX for char* S, EDX for FUNCTION iterate and EBP for FUNCTION F ;; Uses ECX for char* S, EDX for FUNCTION iterate and EBP for FUNCTION F
;; But generally recurses a shitload ;; But generally recurses a shitload
@ -3194,7 +3194,7 @@ general_recursion_done:
;; promote_type function ;; promote_type function
;; Recieves struct type* a in EAX and struct type* b in EBX ;; Receives struct type* a in EAX and struct type* b in EBX
;; Returns the most recent type in EAX ;; Returns the most recent type in EAX
;; Uses EAX for struct type* I, ECX for struct type* A and EDX for struct type* B ;; Uses EAX for struct type* I, ECX for struct type* A and EDX for struct type* B
promote_type: promote_type:
@ -3245,7 +3245,7 @@ promote_type_done:
;; common_recursion function ;; common_recursion function
;; Recieves FUNCTION F in EAX ;; Receives FUNCTION F in EAX
;; Returns Nothing ;; Returns Nothing
;; Walks global_token list and update output_list ;; Walks global_token list and update output_list
;; Updates current_target ;; Updates current_target
@ -3277,7 +3277,7 @@ common_recursion_string_1: db "POP_ebx", 9, "# _common_recursion", 10, 0
;; require_match function ;; require_match function
;; Recieves char* message in EAX and char* required in EBX ;; Receives char* message in EAX and char* required in EBX
;; Returns nothing ;; Returns nothing
;; Uses ECX to hold message and updates global_token ;; Uses ECX to hold message and updates global_token
require_match: require_match:
@ -3308,7 +3308,7 @@ require_match_good:
;; uniqueID Function ;; uniqueID Function
;; Recieves char*S in EAX, struct token_list* l in EBX snd char* num in ECX ;; Receives char*S in EAX, struct token_list* l in EBX snd char* num in ECX
;; Returns updated struct token_list* L in EAX ;; Returns updated struct token_list* L in EAX
uniqueID: uniqueID:
push ebx ; Protect EBX push ebx ; Protect EBX
@ -3331,7 +3331,7 @@ uniqueID_string_0: db 10, 0
;; uniqueID_out function ;; uniqueID_out function
;; Recieves char* S in EAX and char* num in EBX ;; Receives char* S in EAX and char* num in EBX
;; Returns nothing ;; Returns nothing
uniqueID_out: uniqueID_out:
push eax ; Protect EAX push eax ; Protect EAX
@ -3348,7 +3348,7 @@ uniqueID_out:
;; emit_out function ;; emit_out function
;; Recieves char* S in EAX ;; Receives char* S in EAX
;; Returns nothing ;; Returns nothing
;; Updates output_list ;; Updates output_list
;; MUST NOT ALTER REGISTERS ;; MUST NOT ALTER REGISTERS
@ -3364,7 +3364,7 @@ emit_out:
;; emit function ;; emit function
;; Recieves char *s in EAX and struct token_list* head in EBX ;; Receives char *s in EAX and struct token_list* head in EBX
;; Returns struct token_list* T in EAX ;; Returns struct token_list* T in EAX
emit: emit:
push ecx ; Protect ECX push ecx ; Protect ECX
@ -3378,9 +3378,9 @@ emit:
;; escape_lookup function ;; escape_lookup function
;; Recieves char* c in EAX ;; Receives char* c in EAX
;; Returns integer value of char in EAX ;; Returns integer value of char in EAX
;; Aborts hard if unknown escape is recieved ;; Aborts hard if unknown escape is received
;; Uses ECX to hold char* C ;; Uses ECX to hold char* C
escape_lookup: escape_lookup:
push ebx ; Protect EBX push ebx ; Protect EBX
@ -3424,7 +3424,7 @@ escape_lookup:
;; Aborting hard ;; Aborting hard
mov eax, 2 ; Using Standard error mov eax, 2 ; Using Standard error
mov [Output_file], eax ; write to standard error mov [Output_file], eax ; write to standard error
mov eax, escape_lookup_string_0 ; Using "Unknown escape recieved: " mov eax, escape_lookup_string_0 ; Using "Unknown escape received: "
call File_Print ; Print it call File_Print ; Print it
mov eax, ecx ; Using C mov eax, ecx ; Using C
call File_Print ; Print it call File_Print ; Print it
@ -3452,12 +3452,12 @@ escape_lookup_hex:
add eax, ebx ; hex(c[2]) << 4 + hex(c[3]) add eax, ebx ; hex(c[2]) << 4 + hex(c[3])
jmp escape_lookup_done ; Be done jmp escape_lookup_done ; Be done
escape_lookup_string_0: db "Unknown escape recieved: ", 0 escape_lookup_string_0: db "Unknown escape received: ", 0
escape_lookup_string_1: db " Unable to process", 10, 0 escape_lookup_string_1: db " Unable to process", 10, 0
;; char2hex function ;; char2hex function
;; Recieves char in EAX ;; Receives char in EAX
;; Returns hex or aborts hard ;; Returns hex or aborts hard
char2hex: char2hex:
sub eax, 48 ; Try 0-9 sub eax, 48 ; Try 0-9
@ -3487,7 +3487,7 @@ char2hex_string_0: db "Tried to print non-hex number", 10, 0
;; parse_string function ;; parse_string function
;; Recieves char* string in EAX ;; Receives char* string in EAX
;; Returns cleaned up string ;; Returns cleaned up string
;; Protects char* string in EBX ;; Protects char* string in EBX
parse_string: parse_string:
@ -3512,7 +3512,7 @@ parse_string_done:
;; weird function ;; weird function
;; Recieves char* string in EAX ;; Receives char* string in EAX
;; Returns true(0) or false(1) in EAX ;; Returns true(0) or false(1) in EAX
;; Uses ECX to hold char* string ;; Uses ECX to hold char* string
weird: weird:
@ -3582,7 +3582,7 @@ weird_string_1: db 9, 10, 13, 32, 0
;; collect_regular_string function ;; collect_regular_string function
;; Recieves char* string in EAX ;; Receives char* string in EAX
;; Malloc and creates new string to return in EAX ;; Malloc and creates new string to return in EAX
;; Uses ECX for return string and EDX for passed string ;; Uses ECX for return string and EDX for passed string
collect_regular_string: collect_regular_string:
@ -3638,7 +3638,7 @@ collect_regular_string_done:
;; collect_weird_string function ;; collect_weird_string function
;; Recieves char* string in EAX ;; Receives char* string in EAX
;; Mallocs and returns char* hold in EAX ;; Mallocs and returns char* hold in EAX
;; Uses ECX for char* hold and EDX for char* string ;; Uses ECX for char* hold and EDX for char* string
collect_weird_string: collect_weird_string:
@ -3706,7 +3706,7 @@ collect_weird_string_done:
;; HEX to ascii routine ;; HEX to ascii routine
;; Recieves INT in EAX and CHAR* in ECX ;; Receives INT in EAX and CHAR* in ECX
;; Stores ascii of INT in CHAR* ;; Stores ascii of INT in CHAR*
;; Returns only modifying EAX and ECX ;; Returns only modifying EAX and ECX
hex8: hex8:
@ -3727,7 +3727,7 @@ hex1:
;; type_name function ;; type_name function
;; Recieves nothing ;; Receives nothing
;; Returns type_size in EAX ;; Returns type_size in EAX
;; Uses ECX for STRUCT TYPE* RET ;; Uses ECX for STRUCT TYPE* RET
type_name: type_name:
@ -3814,7 +3814,7 @@ type_name_string_1: db 10, 0
;; lookup_type function ;; lookup_type function
;; Recieves char* s in EAX and struct type* start in EBX ;; Receives char* s in EAX and struct type* start in EBX
;; Returns struct type* in EAX ;; Returns struct type* in EAX
;; Uses EBX for S and ECX for I ;; Uses EBX for S and ECX for I
lookup_type: lookup_type:
@ -3842,7 +3842,7 @@ lookup_type_done:
;; create_struct function ;; create_struct function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Uses global_token to malloc a struct's definition ;; Uses global_token to malloc a struct's definition
;; Uses ECX for int OFFSET, EDX for struct type* head, EBP for struct type* I, ;; Uses ECX for int OFFSET, EDX for struct type* head, EBP for struct type* I,
@ -3959,7 +3959,7 @@ create_struct_string_1: db "ERROR in create_struct", 10, " Missing ;", 10, 0
;; lookup_member function ;; lookup_member function
;; Recieves struct type* parent in EAX and char* name in EBX ;; Receives struct type* parent in EAX and char* name in EBX
;; Returns struct type* I in EAX ;; Returns struct type* I in EAX
;; Uses char* NAME in EBX, ECX for struct type* I and EDX to hold parent for errors ;; Uses char* NAME in EBX, ECX for struct type* I and EDX to hold parent for errors
;; Aborts hard if not found ;; Aborts hard if not found
@ -4017,7 +4017,7 @@ lookup_member_string_2: db 10, 0
;; build_member function ;; build_member function
;; Recieves struct type* last in EAX, int offset in EBX and global member_size in EDI ;; Receives struct type* last in EAX, int offset in EBX and global member_size in EDI
;; Updates member_size in EDI and returns struct type* I in EAX ;; Updates member_size in EDI and returns struct type* I in EAX
;; Uses ECX for struct type* member_type and EDX for struct type* I ;; Uses ECX for struct type* member_type and EDX for struct type* I
build_member: build_member:
@ -4086,7 +4086,7 @@ build_member_string_0: db "Struct only supports [num] form", 10, 0
;; build_union function ;; build_union function
;; Recieves struct type* last in EAX, int offset in EBX and global member_size in EDI ;; Receives struct type* last in EAX, int offset in EBX and global member_size in EDI
;; Updates member_size in EDI and returns struct type* LAST in EAX ;; Updates member_size in EDI and returns struct type* LAST in EAX
;; Uses ECX for struct type* last, EDX for int offset, ESI for int size and EDI for int member_size ;; Uses ECX for struct type* last, EDX for int offset, ESI for int size and EDI for int member_size
build_union: build_union:
@ -4152,7 +4152,7 @@ build_union_string_1: db "ERROR in build_union", 10, "Missing ;", 10, 0
;; sym_declare function ;; sym_declare function
;; Recieves char *s in EAX, struct type* t in EBX, and struct token_list* list in ECX ;; Receives char *s in EAX, struct type* t in EBX, and struct token_list* list in ECX
;; Returns struct token_list* in EAX ;; Returns struct token_list* in EAX
;; Uses EAX for A ;; Uses EAX for A
sym_declare: sym_declare:
@ -4168,7 +4168,7 @@ sym_declare:
;; match function ;; match function
;; Recieves CHAR* in EAX and CHAR* in EBX ;; Receives CHAR* in EAX and CHAR* in EBX
;; Returns 0 (TRUE) or 1 (FALSE) in EAX ;; Returns 0 (TRUE) or 1 (FALSE) in EAX
match: match:
push ebx ; Protect EBX push ebx ; Protect EBX
@ -4200,7 +4200,7 @@ match_Done:
;; numerate_number function ;; numerate_number function
;; Recieves an INT A in EAX ;; Receives an INT A in EAX
;; Returns char* result in EAX ;; Returns char* result in EAX
;; Allocates 16 bytes of memory ;; Allocates 16 bytes of memory
;; Behaves badly when given a negative number too large ;; Behaves badly when given a negative number too large
@ -4280,7 +4280,7 @@ numerate_number_ZERO:
;; numerate_string function ;; numerate_string function
;; Recieves CHAR* in EAX ;; Receives CHAR* in EAX
;; Returns value of CHAR* in EAX ;; Returns value of CHAR* in EAX
;; Uses EAX for VALUE, EBX for S, ECX for CH and ESI for NEGATIVE? ;; Uses EAX for VALUE, EBX for S, ECX for CH and ESI for NEGATIVE?
numerate_string: numerate_string:
@ -4363,7 +4363,7 @@ numerate_string_done:
;; Exit_Failure function ;; Exit_Failure function
;; Recieves nothing ;; Receives nothing
;; And aborts hard ;; And aborts hard
;; Does NOT return ;; Does NOT return
Exit_Failure: Exit_Failure:
@ -4510,7 +4510,7 @@ type_unsigned_name: db "unsigned", 0
;; debug_list function ;; debug_list function
;; Recieves struct token_list* in EAX ;; Receives struct token_list* in EAX
;; Prints contents of list and exits ;; Prints contents of list and exits
;; Does NOT return ;; Does NOT return
debug_list: debug_list:

View File

@ -471,7 +471,7 @@ DEFINE TEST 85C0
POP_ESI ; Restore esi POP_ESI ; Restore esi
RET RET
;; Recieves pointer in EBX ;; Receives pointer in EBX
;; Writes out char and updates EBX ;; Writes out char and updates EBX
:consume_token :consume_token
CALL32 %Read_byte ; Consume_token CALL32 %Read_byte ; Consume_token

View File

@ -400,7 +400,7 @@ print_chars:
pop esi ; Restore esi pop esi ; Restore esi
ret ret
;; Recieves pointer in EBX ;; Receives pointer in EBX
;; Writes out char and updates EBX ;; Writes out char and updates EBX
consume_token: consume_token:
call Read_byte ; Consume_token call Read_byte ; Consume_token

View File

@ -443,7 +443,7 @@
5E ; POP_ESI ; Restore esi 5E ; POP_ESI ; Restore esi
C3 ; RET C3 ; RET
;; Recieves pointer in EBX ;; Receives pointer in EBX
;; Writes out char and updates EBX ;; Writes out char and updates EBX
:B #:consume_token :B #:consume_token
E8 %y ; CALL32 %Read_byte ; Consume_token E8 %y ; CALL32 %Read_byte ; Consume_token

View File

@ -398,7 +398,7 @@
5E ; POP_ESI ; Restore esi 5E ; POP_ESI ; Restore esi
C3 ; RET C3 ; RET
;; Recieves pointer in EBX ;; Receives pointer in EBX
;; Writes out char and updates EBX ;; Writes out char and updates EBX
:consume_token :consume_token
E8 %Read_byte ; CALL32 %Read_byte ; Consume_token E8 %Read_byte ; CALL32 %Read_byte ; Consume_token

View File

@ -152,7 +152,7 @@ Then we use our M0 Line macro assembler to convert our assembly into hex2 format
Then we need to assemble that hex into our desired program: Then we need to assemble that hex into our desired program:
./bin/vm --rom roms/stage1_assembler-2 --tape_01 temp2 --tape_02 roms/lisp --memory 48K ./bin/vm --rom roms/stage1_assembler-2 --tape_01 temp2 --tape_02 roms/lisp --memory 48K
roms/lisp should have the sha256sum of 2b80849180d5fb3757bcca2471b6337808e5b5ca80b18d93fa82ddef0435b84b roms/lisp should have the sha256sum of 96ade767f30e3d9037a6c597cefb103942c8ec104264a3551017f091b10646e1
Our lisp will first attempt to evaluate any code in tape_01 and then evaluate any code that the user types in. Our lisp will first attempt to evaluate any code in tape_01 and then evaluate any code that the user types in.
It is recommended to run with no less than 4MB of Memory It is recommended to run with no less than 4MB of Memory
@ -194,7 +194,7 @@ Then we use our M0 Line macro assembler to convert our assembly into hex2 format
Then we need to assemble that hex into our desired program: Then we need to assemble that hex into our desired program:
./bin/vm --rom roms/stage1_assembler-2 --tape_01 cc_TEMP2 --tape_02 roms/cc_x86 --memory 48K ./bin/vm --rom roms/stage1_assembler-2 --tape_01 cc_TEMP2 --tape_02 roms/cc_x86 --memory 48K
roms/cc_x86 should with the sha256sum of 12bb96de936fff18b27c2382ddcee2db6afb6a94b9f4c6e9e9b3d1d0d0d3b0ed roms/cc_x86 should with the sha256sum of d04462af441ec9c2d23080b654b4cc30f34cc27b09669146db02be7652ffdf81
Our C compiler will read any code in tape_01 and output the compiled output to tape_02. Our C compiler will read any code in tape_01 and output the compiled output to tape_02.
The compiled output is macro assembly (allowing for easy inspection) which then must go through the appropriate macro assembler and hex2 steps to become a working binary. The compiled output is macro assembly (allowing for easy inspection) which then must go through the appropriate macro assembler and hex2 steps to become a working binary.

View File

@ -124,7 +124,7 @@ E10020100000 # STORE R1 R0 0 ; head->next = root
# ;; Purge_Line_Comment Function # ;; Purge_Line_Comment Function
# ;; Recieves char in R0 and desired input in R1 # ;; Receives char in R0 and desired input in R1
# ;; Modifies R0 # ;; Modifies R0
# ;; Returns to Tokenize_Line as if the entire line # ;; Returns to Tokenize_Line as if the entire line
# ;; Comment never existed # ;; Comment never existed
@ -136,7 +136,7 @@ E000A020000a # CMPSKIPI.E R0 10 ; Stop When LF is reached
# ;; Store_String function # ;; Store_String function
# ;; Recieves Char in R0, desired input in R1 # ;; Receives Char in R0, desired input in R1
# ;; And node pointer in R2 # ;; And node pointer in R2
# ;; Modifies node Text to point to string and sets # ;; Modifies node Text to point to string and sets
# ;; Type to string. # ;; Type to string.
@ -158,7 +158,7 @@ E10023020004 # STORE32 R0 R2 4 ; Set node type
# ;; Store_Atom function # ;; Store_Atom function
# ;; Recieves Char in R0, desired input in R1 # ;; Receives Char in R0, desired input in R1
# ;; And node pointer in R2 # ;; And node pointer in R2
# ;; Modifies node Text to point to string # ;; Modifies node Text to point to string
:Store_Atom :Store_Atom
@ -185,7 +185,7 @@ E1000FEE0001 # ADDUI R14 R14 1 ; Correct Malloc
# ;; strcmp function # ;; strcmp function
# ;; Recieves pointers to null terminated strings # ;; Receives pointers to null terminated strings
# ;; In R0 and R1 # ;; In R0 and R1
# ;; Returns if they are equal in R0 # ;; Returns if they are equal in R0
# ;; Returns to whatever called it # ;; Returns to whatever called it
@ -266,7 +266,7 @@ E0002CA2 @Identify_Macros_0 # JUMP.NZ R2 @Identify_Macros_0 ; Loop if i not NULL
# ;; Line_Macro Function # ;; Line_Macro Function
# ;; Recieves a node pointer in R0 # ;; Receives a node pointer in R0
# ;; Causes macros to be applied # ;; Causes macros to be applied
# ;; Returns to whatever called it # ;; Returns to whatever called it
:Line_Macro :Line_Macro
@ -286,7 +286,7 @@ E0002CA0 @Line_Macro_0 # JUMP.NZ R0 @Line_Macro_0 ; If Next is Null Don't loop
# ;; setExpression Function # ;; setExpression Function
# ;; Recieves a node pointer in R0 # ;; Receives a node pointer in R0
# ;; A string pointer to compare against in R1 # ;; A string pointer to compare against in R1
# ;; A string pointer for replacement in R2 # ;; A string pointer for replacement in R2
# ;; Doesn't modify any registers # ;; Doesn't modify any registers
@ -318,7 +318,7 @@ E0002CA4 @setExpression_0 # JUMP.NZ R4 @setExpression_0 ; Loop if next isn't NUL
# ;; Process_String Function # ;; Process_String Function
# ;; Recieves a Node in R0 # ;; Receives a Node in R0
# ;; Doesn't modify registers # ;; Doesn't modify registers
# ;; Returns back to whatever called it # ;; Returns back to whatever called it
:Process_String :Process_String
@ -355,7 +355,7 @@ E0002CA0 @Process_String_0 # JUMP.NZ R0 @Process_String_0 ; If Next isn't NULL R
# ;; Hexify_String Function # ;; Hexify_String Function
# ;; Recieves a node pointer in R0 # ;; Receives a node pointer in R0
# ;; Converts Quoted text to Hex values # ;; Converts Quoted text to Hex values
# ;; Pads values up to multiple of 4 bytes # ;; Pads values up to multiple of 4 bytes
# ;; Doesn't modify registers # ;; Doesn't modify registers
@ -415,7 +415,7 @@ E1000FEE0001 # ADDUI R14 R14 1 ; Increment address pointer
# ;; Eval_Immediates function # ;; Eval_Immediates function
# ;; Recieves a node in R0 # ;; Receives a node in R0
# ;; Converts number into Hex # ;; Converts number into Hex
# ;; And write into Memory and fix pointer # ;; And write into Memory and fix pointer
:Eval_Immediates :Eval_Immediates
@ -446,7 +446,7 @@ E0002CA3 @Eval_Immediates_0 # JUMP.NZ R3 @Eval_Immediates_0 ; And loop
# ;; numerate_string function # ;; numerate_string function
# ;; Recieves pointer To string in R0 # ;; Receives pointer To string in R0
# ;; Returns number in R0 equal to value of string # ;; Returns number in R0 equal to value of string
# ;; Or Zero in the event of invalid string # ;; Or Zero in the event of invalid string
:numerate_string :numerate_string

View File

@ -124,7 +124,7 @@
;; Purge_Line_Comment Function ;; Purge_Line_Comment Function
;; Recieves char in R0 and desired input in R1 ;; Receives char in R0 and desired input in R1
;; Modifies R0 ;; Modifies R0
;; Returns to Tokenize_Line as if the entire line ;; Returns to Tokenize_Line as if the entire line
;; Comment never existed ;; Comment never existed
@ -136,7 +136,7 @@
;; Store_String function ;; Store_String function
;; Recieves Char in R0, desired input in R1 ;; Receives Char in R0, desired input in R1
;; And node pointer in R2 ;; And node pointer in R2
;; Modifies node Text to point to string and sets ;; Modifies node Text to point to string and sets
;; Type to string. ;; Type to string.
@ -158,7 +158,7 @@
;; Store_Atom function ;; Store_Atom function
;; Recieves Char in R0, desired input in R1 ;; Receives Char in R0, desired input in R1
;; And node pointer in R2 ;; And node pointer in R2
;; Modifies node Text to point to string ;; Modifies node Text to point to string
:Store_Atom :Store_Atom
@ -185,7 +185,7 @@
;; strcmp function ;; strcmp function
;; Recieves pointers to null terminated strings ;; Receives pointers to null terminated strings
;; In R0 and R1 ;; In R0 and R1
;; Returns if they are equal in R0 ;; Returns if they are equal in R0
;; Returns to whatever called it ;; Returns to whatever called it
@ -266,7 +266,7 @@
;; Line_Macro Function ;; Line_Macro Function
;; Recieves a node pointer in R0 ;; Receives a node pointer in R0
;; Causes macros to be applied ;; Causes macros to be applied
;; Returns to whatever called it ;; Returns to whatever called it
:Line_Macro :Line_Macro
@ -286,7 +286,7 @@
;; setExpression Function ;; setExpression Function
;; Recieves a node pointer in R0 ;; Receives a node pointer in R0
;; A string pointer to compare against in R1 ;; A string pointer to compare against in R1
;; A string pointer for replacement in R2 ;; A string pointer for replacement in R2
;; Doesn't modify any registers ;; Doesn't modify any registers
@ -318,7 +318,7 @@
;; Process_String Function ;; Process_String Function
;; Recieves a Node in R0 ;; Receives a Node in R0
;; Doesn't modify registers ;; Doesn't modify registers
;; Returns back to whatever called it ;; Returns back to whatever called it
:Process_String :Process_String
@ -355,7 +355,7 @@
;; Hexify_String Function ;; Hexify_String Function
;; Recieves a node pointer in R0 ;; Receives a node pointer in R0
;; Converts Quoted text to Hex values ;; Converts Quoted text to Hex values
;; Pads values up to multiple of 4 bytes ;; Pads values up to multiple of 4 bytes
;; Doesn't modify registers ;; Doesn't modify registers
@ -415,7 +415,7 @@
;; Eval_Immediates function ;; Eval_Immediates function
;; Recieves a node in R0 ;; Receives a node in R0
;; Converts number into Hex ;; Converts number into Hex
;; And write into Memory and fix pointer ;; And write into Memory and fix pointer
:Eval_Immediates :Eval_Immediates
@ -446,7 +446,7 @@
;; numerate_string function ;; numerate_string function
;; Recieves pointer To string in R0 ;; Receives pointer To string in R0
;; Returns number in R0 equal to value of string ;; Returns number in R0 equal to value of string
;; Or Zero in the event of invalid string ;; Or Zero in the event of invalid string
:numerate_string :numerate_string

View File

@ -42,7 +42,7 @@ FFFFFFFF # HALT
# ;; Readfile function # ;; Readfile function
# ;; Recieves pointer to head in R1 # ;; Receives pointer to head in R1
# ;; Creates Nodes and imports text until EOF # ;; Creates Nodes and imports text until EOF
# ;; Alters R0 R1 R14 # ;; Alters R0 R1 R14
# ;; Returns to whatever called it # ;; Returns to whatever called it
@ -64,7 +64,7 @@ E0002C9E @ReadFile # JUMP.Z R14 @ReadFile
# ;; Readline function # ;; Readline function
# ;; Recieves Pointer to node in R0 # ;; Receives Pointer to node in R0
# ;; And Input in R1 # ;; And Input in R1
# ;; Allocates Text segment on Heap # ;; Allocates Text segment on Heap
# ;; Sets node's pointer to Text segment # ;; Sets node's pointer to Text segment
@ -132,7 +132,7 @@ E10023240008 # STORE32 R2 R4 8
# ;; addline Function # ;; addline Function
# ;; Recieves pointers in R0 R1 # ;; Receives pointers in R0 R1
# ;; Alters R0 if NULL # ;; Alters R0 if NULL
# ;; Appends nodes together # ;; Appends nodes together
# ;; Returns to whatever called it # ;; Returns to whatever called it
@ -257,7 +257,7 @@ E0002D0F @RemoveLine # CALLI R15 @RemoveLine
# ;; GetRoot function # ;; GetRoot function
# ;; Walks backwards through nodes until beginning # ;; Walks backwards through nodes until beginning
# ;; Recieves node pointer in R0 and Returns result in R0 # ;; Receives node pointer in R0 and Returns result in R0
# ;; Returns to whatever called it # ;; Returns to whatever called it
:GetRoot :GetRoot
# ;; Preserve registers # ;; Preserve registers
@ -302,7 +302,7 @@ E000A0320000 # CMPSKIPI.NE R2 0 ; If Head->Next is NULL
# ;; Printline function # ;; Printline function
# ;; Recieves a string pointer in R0 # ;; Receives a string pointer in R0
# ;; Prints string interface specified in R1 # ;; Prints string interface specified in R1
# ;; Does not alter registers # ;; Does not alter registers
# ;; Returns to whatever called it # ;; Returns to whatever called it
@ -337,7 +337,7 @@ E1000F330001 # ADDUI R3 R3 1 ; Prep for next loop
# ;; AppendLine Function # ;; AppendLine Function
# ;; Recieves a Node in R0 # ;; Receives a Node in R0
# ;; Creates a new Node and appends it # ;; Creates a new Node and appends it
# ;; Does not alter registers # ;; Does not alter registers
# ;; Returns to whatever calls it # ;; Returns to whatever calls it
@ -367,7 +367,7 @@ E10023010000 # STORE32 R0 R1 0 ; head->next = p
# ;; InsertLine Function # ;; InsertLine Function
# ;; Recieves a Node in R0 # ;; Receives a Node in R0
# ;; Creates a new Node and prepends it # ;; Creates a new Node and prepends it
# ;; Does not alter registers # ;; Does not alter registers
# ;; Returns to whatever called it # ;; Returns to whatever called it
@ -397,7 +397,7 @@ E10023010004 # STORE32 R0 R1 4 ; head->prev = p
# ;; RemoveLine Function # ;; RemoveLine Function
# ;; Recieves Node in R0 # ;; Receives Node in R0
# ;; Returns replacement node in R0 # ;; Returns replacement node in R0
# ;; Returns to whatever called it # ;; Returns to whatever called it
:RemoveLine :RemoveLine

View File

@ -47,7 +47,7 @@
;; Readfile function ;; Readfile function
;; Recieves pointer to head in R1 ;; Receives pointer to head in R1
;; Creates Nodes and imports text until EOF ;; Creates Nodes and imports text until EOF
;; Alters R0 R1 R14 ;; Alters R0 R1 R14
;; Returns to whatever called it ;; Returns to whatever called it
@ -69,7 +69,7 @@
;; Readline function ;; Readline function
;; Recieves Pointer to node in R0 ;; Receives Pointer to node in R0
;; And Input in R1 ;; And Input in R1
;; Allocates Text segment on Heap ;; Allocates Text segment on Heap
;; Sets node's pointer to Text segment ;; Sets node's pointer to Text segment
@ -143,7 +143,7 @@
;; addline Function ;; addline Function
;; Recieves pointers in R0 R1 ;; Receives pointers in R0 R1
;; Alters R0 if NULL ;; Alters R0 if NULL
;; Appends nodes together ;; Appends nodes together
;; Returns to whatever called it ;; Returns to whatever called it
@ -290,7 +290,7 @@
;; GetRoot function ;; GetRoot function
;; Walks backwards through nodes until beginning ;; Walks backwards through nodes until beginning
;; Recieves node pointer in R0 and Returns result in R0 ;; Receives node pointer in R0 and Returns result in R0
;; Returns to whatever called it ;; Returns to whatever called it
:GetRoot :GetRoot
;; Preserve registers ;; Preserve registers
@ -338,7 +338,7 @@
;; Printline function ;; Printline function
;; Recieves a string pointer in R0 ;; Receives a string pointer in R0
;; Prints string interface specified in R1 ;; Prints string interface specified in R1
;; Does not alter registers ;; Does not alter registers
;; Returns to whatever called it ;; Returns to whatever called it
@ -374,7 +374,7 @@
;; AppendLine Function ;; AppendLine Function
;; Recieves a Node in R0 ;; Receives a Node in R0
;; Creates a new Node and appends it ;; Creates a new Node and appends it
;; Does not alter registers ;; Does not alter registers
;; Returns to whatever calls it ;; Returns to whatever calls it
@ -407,7 +407,7 @@
;; InsertLine Function ;; InsertLine Function
;; Recieves a Node in R0 ;; Receives a Node in R0
;; Creates a new Node and prepends it ;; Creates a new Node and prepends it
;; Does not alter registers ;; Does not alter registers
;; Returns to whatever called it ;; Returns to whatever called it
@ -440,7 +440,7 @@
;; RemoveLine Function ;; RemoveLine Function
;; Recieves Node in R0 ;; Receives Node in R0
;; Returns replacement node in R0 ;; Returns replacement node in R0
;; Returns to whatever called it ;; Returns to whatever called it
:RemoveLine :RemoveLine

View File

@ -76,7 +76,7 @@ E0002D20003a # LOADUI R0 58 ; Prep
E0002D200009 # LOADUI R0 9 ; Prep E0002D200009 # LOADUI R0 9 ; Prep
42100200 # FPUTC ; Write it 42100200 # FPUTC ; Write it
# :dehex_0 a0 # :dehex_0 a0
0902800F # POPR R0 R15 ; Restore byte recieved 0902800F # POPR R0 R15 ; Restore byte received
E0002D0F003a # CALLI R15 @hex8 ; Use a subset E0002D0F003a # CALLI R15 @hex8 ; Use a subset
E0002D200020 # LOADUI R0 32 ; Prep for writing space E0002D200020 # LOADUI R0 32 ; Prep for writing space
42100200 # FPUTC ; Write it 42100200 # FPUTC ; Write it

View File

@ -87,7 +87,7 @@
LOADUI R0 9 ; Prep LOADUI R0 9 ; Prep
FPUTC ; Write it FPUTC ; Write it
:dehex_0 :dehex_0
POPR R0 R15 ; Restore byte recieved POPR R0 R15 ; Restore byte received
CALLI R15 @hex8 ; Use a subset CALLI R15 @hex8 ; Use a subset
LOADUI R0 32 ; Prep for writing space LOADUI R0 32 ; Prep for writing space

View File

@ -340,7 +340,7 @@ E000A022ffff # CMPSKIPI.E R2 -1 ; Otherwise get the value
# ;; Our simple string compare function # ;; Our simple string compare function
# ;; Recieves two pointers in R0 and R1 # ;; Receives two pointers in R0 and R1
# ;; Returns the difference between the strings in R0 # ;; Returns the difference between the strings in R0
# ;; Returns to whatever called it # ;; Returns to whatever called it
# :strcmp 290 # :strcmp 290
@ -377,7 +377,7 @@ E0002C51 @i # JUMP.E R1 @cmpbyte ; Loop if bytes are equal
# ;; Processimmediate Function # ;; Processimmediate Function
# ;; Recieves an integer value in R0 # ;; Receives an integer value in R0
# ;; Writes out the values to Tape_02 # ;; Writes out the values to Tape_02
# ;; Doesn't modify registers # ;; Doesn't modify registers
# ;; Returns to whatever called it # ;; Returns to whatever called it

View File

@ -323,7 +323,7 @@
;; Our simple string compare function ;; Our simple string compare function
;; Recieves two pointers in R0 and R1 ;; Receives two pointers in R0 and R1
;; Returns the difference between the strings in R0 ;; Returns the difference between the strings in R0
;; Returns to whatever called it ;; Returns to whatever called it
:strcmp :strcmp
@ -354,7 +354,7 @@
;; Processimmediate Function ;; Processimmediate Function
;; Recieves an integer value in R0 ;; Receives an integer value in R0
;; Writes out the values to Tape_02 ;; Writes out the values to Tape_02
;; Doesn't modify registers ;; Doesn't modify registers
;; Returns to whatever called it ;; Returns to whatever called it

View File

@ -95,7 +95,7 @@
;; clearWhiteSpace function ;; clearWhiteSpace function
;; Recieves a character in R0 and FILE* in R1 and line_num in R11 ;; Receives a character in R0 and FILE* in R1 and line_num in R11
;; Returns first non-whitespace character in R0 ;; Returns first non-whitespace character in R0
:clearWhiteSpace :clearWhiteSpace
CMPSKIPI.NE R0 32 ; Check for a Space CMPSKIPI.NE R0 32 ; Check for a Space
@ -116,7 +116,7 @@
;; consume_byte function ;; consume_byte function
;; Recieves a char in R0, FILE* in R1 and index in R13 ;; Receives a char in R0, FILE* in R1 and index in R13
;; Returns next char in R0 ;; Returns next char in R0
:consume_byte :consume_byte
STOREX8 R0 R14 R13 ; Put char onto HEAP STOREX8 R0 R14 R13 ; Put char onto HEAP
@ -126,7 +126,7 @@
;; consume_word function ;; consume_word function
;; Recieves a char in R0, FILE* in R1, FREQUENT in R2 and index in R13 ;; Receives a char in R0, FILE* in R1, FREQUENT in R2 and index in R13
;; Returns next char in R0 ;; Returns next char in R0
:consume_word :consume_word
PUSHR R3 R15 ; Protect R3 PUSHR R3 R15 ; Protect R3
@ -148,7 +148,7 @@
;; fixup_label function ;; fixup_label function
;; Recieves nothing (But uses R14 as HEAP pointer) ;; Receives nothing (But uses R14 as HEAP pointer)
;; Returns 32 in R0 and no other registers altered ;; Returns 32 in R0 and no other registers altered
:fixup_label :fixup_label
PUSHR R1 R15 ; Protect R1 from change PUSHR R1 R15 ; Protect R1 from change
@ -171,7 +171,7 @@
;; in_set2 function ;; in_set2 function
;; Recieves a Char in R0, FILE* in R1, char* in R2 and index in R13 ;; Receives a Char in R0, FILE* in R1, char* in R2 and index in R13
;; Return result in R2 ;; Return result in R2
:in_set2 :in_set2
PUSHR R3 R15 ; Protect R3 from changes PUSHR R3 R15 ; Protect R3 from changes
@ -194,7 +194,7 @@
;; in_set function ;; in_set function
;; Recieves a Char in R0, char* in R1 ;; Receives a Char in R0, char* in R1
;; Return result in R0 ;; Return result in R0
:in_set :in_set
PUSHR R2 R15 ; Protect R3 from changes PUSHR R2 R15 ; Protect R3 from changes
@ -236,7 +236,7 @@
" "
;; preserve_keyword function ;; preserve_keyword function
;; Recieves a Char in R0, FILE* in R1 and index in R13 ;; Receives a Char in R0, FILE* in R1 and index in R13
;; Overwrites R2 ;; Overwrites R2
;; Returns next CHAR ;; Returns next CHAR
:preserve_keyword :preserve_keyword
@ -255,7 +255,7 @@
;; preserve_symbol function ;; preserve_symbol function
;; Recieves a Char in R0, FILE* in R1 and index in R13 ;; Receives a Char in R0, FILE* in R1 and index in R13
;; Overwrites R2 ;; Overwrites R2
;; Returns next CHAR ;; Returns next CHAR
:preserve_symbol :preserve_symbol
@ -272,7 +272,7 @@
;; purge_macro function ;; purge_macro function
;; Recieves a Char in R0, FILE* in R1 and index in R13 ;; Receives a Char in R0, FILE* in R1 and index in R13
;; Returns next CHAR via jumping to get_token_reset ;; Returns next CHAR via jumping to get_token_reset
:purge_macro :purge_macro
CMPSKIPI.NE R0 10 ; Check for Line Feed CMPSKIPI.NE R0 10 ; Check for Line Feed
@ -283,7 +283,7 @@
;; get_token function ;; get_token function
;; Recieves a Char in R0, FILE* in R1, line_num in R11 and TOKEN in R10 ;; Receives a Char in R0, FILE* in R1, line_num in R11 and TOKEN in R10
;; sets index in R13 and current in R12 ;; sets index in R13 and current in R12
;; Overwrites R2 ;; Overwrites R2
;; Returns next CHAR ;; Returns next CHAR
@ -398,7 +398,7 @@
;; reverse_list function ;; reverse_list function
;; Recieves a Token_list in R0 ;; Receives a Token_list in R0
;; Returns List in Reverse order in R0 ;; Returns List in Reverse order in R0
:reverse_list :reverse_list
PUSHR R1 R15 ; Protect R1 PUSHR R1 R15 ; Protect R1
@ -420,7 +420,7 @@
;; read_all_tokens function ;; read_all_tokens function
;; Recieves a FILE* in R0 ;; Receives a FILE* in R0
;; sets line_num in R11 and TOKEN in R10 ;; sets line_num in R11 and TOKEN in R10
;; Overwrites R2 ;; Overwrites R2
;; Returns struct token_list* in R0 ;; Returns struct token_list* in R0
@ -447,7 +447,7 @@
;; parse_string function ;; parse_string function
;; Recieves char* string in R0 ;; Receives char* string in R0
;; R14 is HEAP Pointer ;; R14 is HEAP Pointer
;; Returns char* in R0 ;; Returns char* in R0
:parse_string :parse_string
@ -469,7 +469,7 @@
;; weird function ;; weird function
;; Analyze string to determine if it's output would be weird for mescc-tools ;; Analyze string to determine if it's output would be weird for mescc-tools
;; Recieves char* in R0 ;; Receives char* in R0
;; Returns BOOL in R0 ;; Returns BOOL in R0
:weird :weird
PUSHR R1 R15 ; Protect R1 PUSHR R1 R15 ; Protect R1
@ -522,7 +522,7 @@
;; collect_weird_string function ;; collect_weird_string function
;; Converts weird string into a form mescc-tools can handle cleanly ;; Converts weird string into a form mescc-tools can handle cleanly
;; Recieves char* in R0 ;; Receives char* in R0
;; R14 is HEAP Pointer and $hex_chars as the table ;; R14 is HEAP Pointer and $hex_chars as the table
;; Returns char* in R0 ;; Returns char* in R0
:collect_weird_string :collect_weird_string
@ -580,7 +580,7 @@
;; hex function ;; hex function
;; Recieves Char in R0 ;; Receives Char in R0
;; Return Int in R0 ;; Return Int in R0
:hex :hex
SUBUI R0 R0 48 ; First shift SUBUI R0 R0 48 ; First shift
@ -609,7 +609,7 @@
;; escape_lookup function ;; escape_lookup function
;; Recieves char* in R0 ;; Receives char* in R0
;; Returns char in R0 ;; Returns char in R0
:escape_lookup :escape_lookup
PUSHR R1 R15 ; Protect R1 PUSHR R1 R15 ; Protect R1
@ -678,12 +678,12 @@
HALT HALT
:escape_lookup_string0 :escape_lookup_string0
"Recieved invalid escape \\" "Received invalid escape \\"
;; collect_regular_string function ;; collect_regular_string function
;; Converts C string into a RAW string for mescc-tools ;; Converts C string into a RAW string for mescc-tools
;; Recieves char* in R0 ;; Receives char* in R0
;; R14 is HEAP Pointer ;; R14 is HEAP Pointer
;; Returns char* in R0 ;; Returns char* in R0
:collect_regular_string :collect_regular_string
@ -728,7 +728,7 @@
;; unary_expr_sizeof function ;; unary_expr_sizeof function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; R13 Holds pointer to global_token, R14 is HEAP Pointer ;; R13 Holds pointer to global_token, R14 is HEAP Pointer
:unary_expr_sizeof :unary_expr_sizeof
@ -771,7 +771,7 @@ Missing )
;; constant_load function ;; constant_load function
;; Recieves struct token_list* a in R0 ;; Receives struct token_list* a in R0
;; Returns nothing ;; Returns nothing
:constant_load :constant_load
PUSHR R0 R15 ; Protect R0 PUSHR R0 R15 ; Protect R0
@ -790,7 +790,7 @@ Missing )
;; variable_load function ;; variable_load function
;; Recieves struct token_list* a in R0 ;; Receives struct token_list* a in R0
;; and struct token_list* current_target in R8 ;; and struct token_list* current_target in R8
;; Returns Nothing ;; Returns Nothing
;; R13 Holds pointer to global_token, R14 is HEAP Pointer ;; R13 Holds pointer to global_token, R14 is HEAP Pointer
@ -853,7 +853,7 @@ Missing )
;; function_load function ;; function_load function
;; Recieves struct token_list* a in R0 ;; Receives struct token_list* a in R0
;; Returns nothing ;; Returns nothing
;; R13 Holds pointer to global_token, R14 is HEAP Pointer ;; R13 Holds pointer to global_token, R14 is HEAP Pointer
:function_load :function_load
@ -888,7 +888,7 @@ Missing )
;; global_load function ;; global_load function
;; Recieves struct token_list* a in R0 ;; Receives struct token_list* a in R0
;; and struct token_list* current_target in R8 ;; and struct token_list* current_target in R8
;; Returns nothing ;; Returns nothing
;; R13 Holds pointer to global_token, R14 is HEAP Pointer ;; R13 Holds pointer to global_token, R14 is HEAP Pointer
@ -926,7 +926,7 @@ Missing )
;; primary_expr_failure function ;; primary_expr_failure function
;; Fails hard and fast ;; Fails hard and fast
;; Recieves nothing ;; Receives nothing
;; HALTs and will trash registers ;; HALTs and will trash registers
;; R13 Holds pointer to global_token, R14 is HEAP Pointer ;; R13 Holds pointer to global_token, R14 is HEAP Pointer
:primary_expr_failure :primary_expr_failure
@ -944,14 +944,14 @@ Missing )
HALT HALT
:primary_expr_failure_string0 :primary_expr_failure_string0
"Recieved " "Received "
:primary_expr_failure_string1 :primary_expr_failure_string1
" in primary_expr " in primary_expr
" "
;; primary_expr_string function ;; primary_expr_string function
;; Recieves struct token_list* global_token in R13, ;; Receives struct token_list* global_token in R13,
;; struct token_list* out in R12, ;; struct token_list* out in R12,
;; struct token_list* string_list in R11 ;; struct token_list* string_list in R11
;; struct token_list* global_list in R10 ;; struct token_list* global_list in R10
@ -1003,7 +1003,7 @@ Missing )
;; primary_expr_char function ;; primary_expr_char function
;; Recieves struct token_list* global_token in R13, ;; Receives struct token_list* global_token in R13,
;; struct token_list* out in R12, ;; struct token_list* out in R12,
;; struct token_list* string_list in R11 ;; struct token_list* string_list in R11
;; struct token_list* global_list in R10 ;; struct token_list* global_list in R10
@ -1140,7 +1140,7 @@ Missing )
;; promote_type function ;; promote_type function
;; Recieves struct type* in R0 and struct type* in R1 ;; Receives struct type* in R0 and struct type* in R1
;; Returns first match struct type* in R0 ;; Returns first match struct type* in R0
:promote_type :promote_type
JUMP.Z R1 @promote_type_abort0 ; If B is NULL just abort JUMP.Z R1 @promote_type_abort0 ; If B is NULL just abort
@ -1187,7 +1187,7 @@ Missing )
;; common_recursion function ;; common_recursion function
;; Recieves FUNCTION* in R0 ;; Receives FUNCTION* in R0
;; struct token_list* out in R12, ;; struct token_list* out in R12,
;; struct token_list* string_list in R11 ;; struct token_list* string_list in R11
;; struct token_list* global_list in R10 ;; struct token_list* global_list in R10
@ -1228,7 +1228,7 @@ Missing )
;; general_recursion function ;; general_recursion function
;; Recieves FUNCTION F in R0, char* s in R1, char* name in R2 ;; Receives FUNCTION F in R0, char* s in R1, char* name in R2
;; and FUNCTION ITERATE in R3 ;; and FUNCTION ITERATE in R3
;; struct token_list* out in R12, ;; struct token_list* out in R12,
;; struct token_list* string_list in R11 ;; struct token_list* string_list in R11
@ -1266,7 +1266,7 @@ Missing )
;; ceil_log2 function ;; ceil_log2 function
;; Recieves INT A in R0 ;; Receives INT A in R0
;; Returns LOG2(A) in R0 ;; Returns LOG2(A) in R0
:ceil_log2 :ceil_log2
PUSHR R1 R15 ; Protect R1 PUSHR R1 R15 ; Protect R1
@ -1292,7 +1292,7 @@ Missing )
;; postfix_expr_arrow function ;; postfix_expr_arrow function
;; Recieves nothing ;; Receives nothing
;; struct token_list* out in R12, ;; struct token_list* out in R12,
;; struct token_list* string_list in R11 ;; struct token_list* string_list in R11
;; struct token_list* global_list in R10 ;; struct token_list* global_list in R10
@ -1368,7 +1368,7 @@ ADD_ebx_to_eax
;; postfix_expr_array function ;; postfix_expr_array function
;; Recieves nothing ;; Receives nothing
;; struct token_list* out in R12, ;; struct token_list* out in R12,
;; struct token_list* string_list in R11 ;; struct token_list* string_list in R11
;; struct token_list* global_list in R10 ;; struct token_list* global_list in R10
@ -1446,7 +1446,7 @@ Missing ]
;; postfix_expr_stub function ;; postfix_expr_stub function
;; Recieves nothing ;; Receives nothing
;; struct token_list* out in R12, ;; struct token_list* out in R12,
;; struct token_list* string_list in R11 ;; struct token_list* string_list in R11
;; struct token_list* global_list in R10 ;; struct token_list* global_list in R10
@ -1498,7 +1498,7 @@ Missing ]
;; additive_expr_stub function ;; additive_expr_stub function
;; recieves nothing ;; receives nothing
;; returns nothing ;; returns nothing
;; Updates struct token_list* ;; Updates struct token_list*
:additive_expr_stub :additive_expr_stub
@ -1585,7 +1585,7 @@ SAR_eax_cl
;; additive_expr function ;; additive_expr function
;; Recieves struct token_list* global_token in R13, ;; Receives struct token_list* global_token in R13,
;; struct token_list* out in R12, ;; struct token_list* out in R12,
;; struct token_list* string_list in R11 ;; struct token_list* string_list in R11
;; struct token_list* global_list in R10 ;; struct token_list* global_list in R10
@ -1600,7 +1600,7 @@ SAR_eax_cl
;; relational_expr_stub function ;; relational_expr_stub function
;; recieves nothing ;; receives nothing
;; returns nothing ;; returns nothing
;; Updates struct token_list* ;; Updates struct token_list*
:relational_expr_stub :relational_expr_stub
@ -1681,7 +1681,7 @@ MOVEZBL
;; relational_expr function ;; relational_expr function
;; Recieves struct token_list* global_token in R13, ;; Receives struct token_list* global_token in R13,
;; struct token_list* out in R12, ;; struct token_list* out in R12,
;; struct token_list* string_list in R11 ;; struct token_list* string_list in R11
;; struct token_list* global_list in R10 ;; struct token_list* global_list in R10
@ -1696,7 +1696,7 @@ MOVEZBL
;; relational_expr_stub function ;; relational_expr_stub function
;; recieves nothing ;; receives nothing
;; returns nothing ;; returns nothing
;; Updates struct token_list* ;; Updates struct token_list*
:bitwise_expr_stub :bitwise_expr_stub
@ -1751,7 +1751,7 @@ MOVEZBL
;; bitwise_expr function ;; bitwise_expr function
;; Recieves struct token_list* global_token in R13, ;; Receives struct token_list* global_token in R13,
;; struct token_list* out in R12, ;; struct token_list* out in R12,
;; struct token_list* string_list in R11 ;; struct token_list* string_list in R11
;; struct token_list* global_list in R10 ;; struct token_list* global_list in R10
@ -1766,7 +1766,7 @@ MOVEZBL
;; primary_expr function ;; primary_expr function
;; Recieves struct token_list* global_token in R13, ;; Receives struct token_list* global_token in R13,
;; struct token_list* out in R12, ;; struct token_list* out in R12,
;; struct token_list* string_list in R11 ;; struct token_list* string_list in R11
;; struct token_list* global_list in R10 ;; struct token_list* global_list in R10
@ -1889,7 +1889,7 @@ Didn't get )
;; expression function ;; expression function
;; Recieves struct token_list* global_token in R13, ;; Receives struct token_list* global_token in R13,
;; struct token_list* out in R12, ;; struct token_list* out in R12,
;; struct token_list* string_list in R11 ;; struct token_list* string_list in R11
;; struct token_list* global_list in R10 ;; struct token_list* global_list in R10
@ -2080,7 +2080,7 @@ MISSING )
;; set_break_frame microfunction ;; set_break_frame microfunction
;; Recieves char* num in R0, char* head in R1 ;; Receives char* num in R0, char* head in R1
;; Overwrites R0 ;; Overwrites R0
;; Sets break frame using ;; Sets break frame using
;; R9 holding FUNC ;; R9 holding FUNC
@ -2414,7 +2414,7 @@ MISSING )
;; return_result function ;; return_result function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; and struct token_list* FUNC in R9 ;; and struct token_list* FUNC in R9
;; R13 Holds pointer to global_token, R14 is HEAP Pointer ;; R13 Holds pointer to global_token, R14 is HEAP Pointer
@ -2460,7 +2460,7 @@ MISSING ;
;; process_break function ;; process_break function
;; Recieves nothing ;; Receives nothing
;; and struct token_list* FUNC in R9 ;; and struct token_list* FUNC in R9
;; R13 Holds pointer to global_token, R14 is HEAP Pointer ;; R13 Holds pointer to global_token, R14 is HEAP Pointer
;; Returns the token_lists modified ;; Returns the token_lists modified
@ -2540,7 +2540,7 @@ Missing ;
;; process_asm function ;; process_asm function
;; Recieves struct token_list* global_token in R13, ;; Receives struct token_list* global_token in R13,
;; struct token_list* out in R12, ;; struct token_list* out in R12,
;; struct token_list* string_list in R11 ;; struct token_list* string_list in R11
;; struct token_list* global_list in R10 ;; struct token_list* global_list in R10
@ -2602,7 +2602,7 @@ MISSING ;
;; recursive_statement function ;; recursive_statement function
;; Recieves struct token_list* global_token in R13, ;; Receives struct token_list* global_token in R13,
;; struct token_list* out in R12, ;; struct token_list* out in R12,
;; struct token_list* string_list in R11 ;; struct token_list* string_list in R11
;; struct token_list* global_list in R10 ;; struct token_list* global_list in R10
@ -2659,7 +2659,7 @@ MISSING ;
;; statement function ;; statement function
;; Recieves struct token_list* global_token in R13, ;; Receives struct token_list* global_token in R13,
;; struct token_list* out in R12, ;; struct token_list* out in R12,
;; struct token_list* string_list in R11 ;; struct token_list* string_list in R11
;; struct token_list* global_list in R10 ;; struct token_list* global_list in R10
@ -2837,7 +2837,7 @@ MISSING ;
;; collect_local function ;; collect_local function
;; Recieves struct token_list* global_token in R13, ;; Receives struct token_list* global_token in R13,
;; struct token_list* out in R12, ;; struct token_list* out in R12,
;; struct token_list* string_list in R11 ;; struct token_list* string_list in R11
;; struct token_list* global_list in R10 ;; struct token_list* global_list in R10
@ -2949,7 +2949,7 @@ Missing ;
;; collect_arguments function ;; collect_arguments function
;; Recieves struct token_list* global_token in R13, ;; Receives struct token_list* global_token in R13,
;; struct token_list* out in R12, ;; struct token_list* out in R12,
;; struct token_list* string_list in R11 ;; struct token_list* string_list in R11
;; struct token_list* global_list in R10 ;; struct token_list* global_list in R10
@ -3012,7 +3012,7 @@ Missing ;
;; declare_function function ;; declare_function function
;; Recieves struct token_list* global_token in R13, ;; Receives struct token_list* global_token in R13,
;; struct token_list* out in R12, ;; struct token_list* out in R12,
;; struct token_list* string_list in R11 ;; struct token_list* string_list in R11
;; and struct token_list* global_list in R10 ;; and struct token_list* global_list in R10
@ -3094,7 +3094,7 @@ Missing ;
;; program function ;; program function
;; Recieves struct token_list* global_token in R13, ;; Receives struct token_list* global_token in R13,
;; struct token_list* out in R12, ;; struct token_list* out in R12,
;; struct token_list* string_list in R11 ;; struct token_list* string_list in R11
;; and struct token_list* global_list in R10 ;; and struct token_list* global_list in R10
@ -3248,7 +3248,7 @@ Missing ;
NOP NOP
" "
:program_string2 :program_string2
"Recieved " "Received "
:program_string3 :program_string3
" in program " in program
" "
@ -3259,7 +3259,7 @@ Missing ;
;; sym_declare function ;; sym_declare function
;; Recieves char* in R0, struct type* in R1, struct token_list* in R2 ;; Receives char* in R0, struct type* in R1, struct token_list* in R2
;; R13 Holds pointer to global_token, R14 is HEAP Pointer ;; R13 Holds pointer to global_token, R14 is HEAP Pointer
;; Returns struct token_list* in R0 ;; Returns struct token_list* in R0
:sym_declare :sym_declare
@ -3272,7 +3272,7 @@ Missing ;
;; sym_lookup function ;; sym_lookup function
;; Recieves char* in R0 and struct token_list in R1 ;; Receives char* in R0 and struct token_list in R1
;; Returns struct token_list* or NULL in R0 ;; Returns struct token_list* or NULL in R0
:sym_lookup :sym_lookup
PUSHR R2 R15 ; Protect R2 PUSHR R2 R15 ; Protect R2
@ -3293,7 +3293,7 @@ Missing ;
;; function_call function ;; function_call function
;; Recieves CHAR* S in R0 and INT BOOL in R1 ;; Receives CHAR* S in R0 and INT BOOL in R1
;; struct token_list* out in R12, ;; struct token_list* out in R12,
;; struct token_list* string_list in R11 ;; struct token_list* string_list in R11
;; and struct token_list* global_list in R10 ;; and struct token_list* global_list in R10
@ -3452,7 +3452,7 @@ LOAD_INTEGER
;; emit function ;; emit function
;; Recieves char* in R0, struct token_list* in R1 ;; Receives char* in R0, struct token_list* in R1
;; R13 Holds pointer to global_token, R14 is HEAP Pointer ;; R13 Holds pointer to global_token, R14 is HEAP Pointer
;; Returns struct token_list* in R0 ;; Returns struct token_list* in R0
:emit :emit
@ -3467,7 +3467,7 @@ LOAD_INTEGER
;; emit_out function ;; emit_out function
;; Recieves char* in R0 ;; Receives char* in R0
;; struct token_list* out in R12, ;; struct token_list* out in R12,
;; R13 Holds pointer to global_token, R14 is HEAP Pointer ;; R13 Holds pointer to global_token, R14 is HEAP Pointer
;; Returns struct token_list* in R0 ;; Returns struct token_list* in R0
@ -3480,7 +3480,7 @@ LOAD_INTEGER
;; uniqueID function ;; uniqueID function
;; Recieves char* in R0, struct token_list* in R1 and char* in R2 ;; Receives char* in R0, struct token_list* in R1 and char* in R2
;; Calls emit repeatedly ;; Calls emit repeatedly
;; Returns struct token_list* in R0 ;; Returns struct token_list* in R0
:uniqueID :uniqueID
@ -3501,7 +3501,7 @@ LOAD_INTEGER
;; uniqueID_out function ;; uniqueID_out function
;; Recieves char* in R0, char* in R1 ;; Receives char* in R0, char* in R1
;; Calls emit_out repeatedly ;; Calls emit_out repeatedly
;; Returns nothing ;; Returns nothing
:uniqueID_out :uniqueID_out
@ -3519,7 +3519,7 @@ LOAD_INTEGER
;; file_print function ;; file_print function
;; Recieves pointer to string in R0 and FILE* in R1 ;; Receives pointer to string in R0 and FILE* in R1
;; Returns nothing ;; Returns nothing
:file_print :file_print
PUSHR R2 R15 ; Protect R2 from Overwrite PUSHR R2 R15 ; Protect R2 from Overwrite
@ -3536,7 +3536,7 @@ LOAD_INTEGER
;; recursive_output function ;; recursive_output function
;; Recieves token_list in R0 and FILE* in R1 ;; Receives token_list in R0 and FILE* in R1
;; Returns nothing and alters nothing ;; Returns nothing and alters nothing
:recursive_output :recursive_output
JUMP.Z R0 @recursive_output_abort ; Abort if NULL JUMP.Z R0 @recursive_output_abort ; Abort if NULL
@ -3553,7 +3553,7 @@ LOAD_INTEGER
;; match function ;; match function
;; Recieves a CHAR* in R0, CHAR* in R1 ;; Receives a CHAR* in R0, CHAR* in R1
;; Returns Bool in R0 indicating if strings match ;; Returns Bool in R0 indicating if strings match
:match :match
PUSHR R1 R15 ; Protect R1 PUSHR R1 R15 ; Protect R1
@ -3582,7 +3582,7 @@ LOAD_INTEGER
;; lookup_type function ;; lookup_type function
;; Recieves a CHAR* in R0 and struct type* in R1 ;; Receives a CHAR* in R0 and struct type* in R1
;; Returns struct type* in R0 or NULL if no match ;; Returns struct type* in R0 or NULL if no match
:lookup_type :lookup_type
PUSHR R1 R15 ; Protect R1 PUSHR R1 R15 ; Protect R1
@ -3603,7 +3603,7 @@ LOAD_INTEGER
;; lookup_member function ;; lookup_member function
;; Recieves struct type* parent in R0 and char* name in R1 ;; Receives struct type* parent in R0 and char* name in R1
;; R13 Holds pointer to global_token, R14 is HEAP Pointer ;; R13 Holds pointer to global_token, R14 is HEAP Pointer
;; Returns struct type* of member in R0 or aborts with error ;; Returns struct type* of member in R0 or aborts with error
:lookup_member :lookup_member
@ -3651,7 +3651,7 @@ LOAD_INTEGER
;; build_member function ;; build_member function
;; Recieves a struct type* in R0, int in R1 and int in R2 ;; Receives a struct type* in R0, int in R1 and int in R2
;; R13 Holds pointer to global_token, R14 is HEAP Pointer ;; R13 Holds pointer to global_token, R14 is HEAP Pointer
;; Modifies R2 to current member_size ;; Modifies R2 to current member_size
;; Returns struct type* in R0 ;; Returns struct type* in R0
@ -3713,7 +3713,7 @@ LOAD_INTEGER
;; build_union function ;; build_union function
;; Recieves a struct type* in R0, int in R1 and int in R2 ;; Receives a struct type* in R0, int in R1 and int in R2
;; R13 Holds pointer to global_token, R14 is HEAP Pointer ;; R13 Holds pointer to global_token, R14 is HEAP Pointer
;; Modifies R2 to current member_size ;; Modifies R2 to current member_size
;; Returns struct type* in R0 ;; Returns struct type* in R0
@ -3765,7 +3765,7 @@ Missing ;
;; create_struct function ;; create_struct function
;; Recieves Nothing ;; Receives Nothing
;; R13 Holds pointer to global_token, R14 is HEAP Pointer ;; R13 Holds pointer to global_token, R14 is HEAP Pointer
;; Returns Nothing ;; Returns Nothing
:create_struct :create_struct
@ -3852,7 +3852,7 @@ Missing ;
;; type_name function ;; type_name function
;; Recieves Nothing ;; Receives Nothing
;; R13 Holds pointer to global_token, R14 is HEAP Pointer ;; R13 Holds pointer to global_token, R14 is HEAP Pointer
;; Returns struct type* in R0 ;; Returns struct type* in R0
:type_name :type_name
@ -3906,7 +3906,7 @@ Missing ;
;; line_error function ;; line_error function
;; Recieves Nothing ;; Receives Nothing
;; R13 Holds pointer to global_token, R14 is HEAP Pointer ;; R13 Holds pointer to global_token, R14 is HEAP Pointer
;; Returns nothing ;; Returns nothing
:line_error :line_error
@ -3927,7 +3927,7 @@ Missing ;
;; require_match function ;; require_match function
;; Recieves char* in R0 and char* in R1 ;; Receives char* in R0 and char* in R1
;; R13 Holds pointer to global_token, R14 is HEAP Pointer ;; R13 Holds pointer to global_token, R14 is HEAP Pointer
;; Returns Nothing ;; Returns Nothing
:require_match :require_match
@ -3953,7 +3953,7 @@ Missing ;
;; numerate_number function ;; numerate_number function
;; Recieves int in R0 ;; Receives int in R0
;; R13 Holds pointer to global_token, R14 is HEAP Pointer ;; R13 Holds pointer to global_token, R14 is HEAP Pointer
;; Returns pointer to string generated ;; Returns pointer to string generated
:numerate_number :numerate_number
@ -4020,7 +4020,7 @@ Missing ;
;; numerate_string function ;; numerate_string function
;; Recieves pointer To string in R0 ;; Receives pointer To string in R0
;; Returns number in R0 equal to value of string ;; Returns number in R0 equal to value of string
;; Or Zero in the event of invalid string ;; Or Zero in the event of invalid string
:numerate_string :numerate_string
@ -4293,7 +4293,7 @@ Missing ;
;; debug_list function ;; debug_list function
;; Recieves struct token_list* in R0 ;; Receives struct token_list* in R0
;; Prints contents of list and HALTS ;; Prints contents of list and HALTS
;; Does not return ;; Does not return
:debug_list :debug_list

View File

@ -1482,7 +1482,7 @@
;; Reads Tape_01 until EOF ;; Reads Tape_01 until EOF
;; Then switches into TTY Mode ;; Then switches into TTY Mode
:cold_done :cold_done
;; IF TTY Recieves EOF call it quits ;; IF TTY Receives EOF call it quits
CMPSKIPI.NE R7 0 ; Check if TTY CMPSKIPI.NE R7 0 ; Check if TTY
JUMP @final_Cleanup ; Clean up and call it a day JUMP @final_Cleanup ; Clean up and call it a day

View File

@ -97,7 +97,7 @@
;; Append_Cell ;; Append_Cell
;; Adds a cell to the end of a CDR chain ;; Adds a cell to the end of a CDR chain
;; Recieves HEAD in R0 and Tail in R1 ;; Receives HEAD in R0 and Tail in R1
;; Returns HEAD if not NULL ;; Returns HEAD if not NULL
:append_Cell :append_Cell
CMPSKIPI.NE R0 0 ; If HEAD is NULL CMPSKIPI.NE R0 0 ; If HEAD is NULL
@ -123,7 +123,7 @@
;; Tokenize ;; Tokenize
;; Converts a string into a list of tokens ;; Converts a string into a list of tokens
;; Recieves HEAD in R0, Pointer to String in R1 and Size of string in R2 ;; Receives HEAD in R0, Pointer to String in R1 and Size of string in R2
;; Returns HEAD of list in R0 ;; Returns HEAD of list in R0
:tokenize :tokenize
;; Deal with Edge case ;; Deal with Edge case
@ -186,7 +186,7 @@
;; is_integer ;; is_integer
;; Recieves pointer to string in R0 ;; Receives pointer to string in R0
;; Returns TRUE or FALSE in R0 ;; Returns TRUE or FALSE in R0
:is_integer :is_integer
PUSHR R1 R15 ; Protect R1 PUSHR R1 R15 ; Protect R1
@ -209,7 +209,7 @@
;; numerate_string function ;; numerate_string function
;; Recieves pointer To string in R0 ;; Receives pointer To string in R0
;; Returns number in R0 equal to value of string ;; Returns number in R0 equal to value of string
;; Or Zero in the event of invalid string ;; Or Zero in the event of invalid string
:numerate_string :numerate_string
@ -290,7 +290,7 @@
;; atom ;; atom
;; Converts tokens into native forms ;; Converts tokens into native forms
;; Aka numbers become numbers and everything else is a symbol ;; Aka numbers become numbers and everything else is a symbol
;; Recieves a pointer to Token in R0 ;; Receives a pointer to Token in R0
;; Returns a pointer to a Cell in R0 ;; Returns a pointer to a Cell in R0
:atom :atom
PUSHR R1 R15 ; Protect R1 PUSHR R1 R15 ; Protect R1
@ -374,7 +374,7 @@
;; readobj ;; readobj
;; Breaks up tokens on the token_stack until its empty ;; Breaks up tokens on the token_stack until its empty
;; Recieves Nothing ;; Receives Nothing
;; Returns a Cell in R0 ;; Returns a Cell in R0
:readobj :readobj
PUSHR R1 R15 ; Protect R1 PUSHR R1 R15 ; Protect R1
@ -407,7 +407,7 @@
;; readlist ;; readlist
;; CONS up Rest of elements until ) is found ;; CONS up Rest of elements until ) is found
;; Recieves nothing ;; Receives nothing
;; Returns A Cell in R0 ;; Returns A Cell in R0
:readlist :readlist
PUSHR R1 R15 ; Protect R1 PUSHR R1 R15 ; Protect R1
@ -436,7 +436,7 @@
;; parse ;; parse
;; Starts the recursive tokenizing and atomizing of input ;; Starts the recursive tokenizing and atomizing of input
;; Recieves a string in R0 and its length in R1 ;; Receives a string in R0 and its length in R1
;; Returns a list of Cells in R0 ;; Returns a list of Cells in R0
:parse :parse
PUSHR R2 R15 ; Protect R2 PUSHR R2 R15 ; Protect R2
@ -459,7 +459,7 @@
;; Our simple malloc function ;; Our simple malloc function
;; Recieves A number of bytes to allocate in R0 ;; Receives A number of bytes to allocate in R0
;; Returns a pointer to Segment in R0 ;; Returns a pointer to Segment in R0
:malloc :malloc
PUSHR R1 R15 ; Protect R1 PUSHR R1 R15 ; Protect R1
@ -610,7 +610,7 @@
;; Write_Int ;; Write_Int
;; Writes desired integer to desired IO ;; Writes desired integer to desired IO
;; Recieves Integer in R0 and IO in R1 ;; Receives Integer in R0 and IO in R1
;; Returns Nothing ;; Returns Nothing
:Max_Decimal :Max_Decimal
'3B9ACA00' '3B9ACA00'
@ -669,7 +669,7 @@
;; Print_String ;; Print_String
;; Prints the string pointed in R0 to IO in R1 ;; Prints the string pointed in R0 to IO in R1
;; Recieves string pointer in R0 and IO in R1 ;; Receives string pointer in R0 and IO in R1
;; Returns nothing ;; Returns nothing
:Print_String :Print_String
PUSHR R0 R15 ; Protect R0 PUSHR R0 R15 ; Protect R0
@ -692,7 +692,7 @@
;; writeobj ;; writeobj
;; Outputs to the IO in R12 ;; Outputs to the IO in R12
;; Recieves a Cell list in R0 ;; Receives a Cell list in R0
;; Returns nothing ;; Returns nothing
:writeobj :writeobj
PUSHR R0 R15 ; Protect R0 PUSHR R0 R15 ; Protect R0
@ -811,7 +811,7 @@
;; strcmp ;; strcmp
;; A simple string compare function ;; A simple string compare function
;; Recieves string pointers in R0 and R1 ;; Receives string pointers in R0 and R1
;; Returns result of comparision in R0 ;; Returns result of comparision in R0
:strcmp :strcmp
;; Preserve registers ;; Preserve registers
@ -840,7 +840,7 @@
;; findsym ;; findsym
;; Attempts to find a symbol in a CONS list ;; Attempts to find a symbol in a CONS list
;; Recieves a string in R0 ;; Receives a string in R0
;; Returns Cell or NIL in R0 ;; Returns Cell or NIL in R0
:findsym :findsym
PUSHR R1 R15 ; Protect R1 PUSHR R1 R15 ; Protect R1
@ -875,7 +875,7 @@
;; intern ;; intern
;; Either find symbol or make it ;; Either find symbol or make it
;; Recieves string pointer in R0 ;; Receives string pointer in R0
;; Returns a Cell pointer in R0 ;; Returns a Cell pointer in R0
:intern :intern
PUSHR R1 R15 ; Protect R1 PUSHR R1 R15 ; Protect R1
@ -908,7 +908,7 @@
;; extend ;; extend
;; CONS up symbols with an environment ;; CONS up symbols with an environment
;; Recieves an environment in R0, symbol in R1 and Value in R2 ;; Receives an environment in R0, symbol in R1 and Value in R2
;; Returns a CONS of CONS in R0 ;; Returns a CONS of CONS in R0
:extend :extend
PUSHR R1 R15 ; Protect R1 PUSHR R1 R15 ; Protect R1
@ -928,7 +928,7 @@
;; multiple_extend ;; multiple_extend
;; Recieves an environment in R0, symbol in R1 and Values in R2 ;; Receives an environment in R0, symbol in R1 and Values in R2
;; Returns an extended environment in R0 ;; Returns an extended environment in R0
:multiple_extend :multiple_extend
PUSHR R1 R15 ; Protect R1 PUSHR R1 R15 ; Protect R1
@ -959,7 +959,7 @@
;; extend_env ;; extend_env
;; Recieves a Symbol in R0, a Value in R1 and an environment pointer in R2 ;; Receives a Symbol in R0, a Value in R1 and an environment pointer in R2
;; Returns Value in R0 after extending top ;; Returns Value in R0 after extending top
:extend_env :extend_env
PUSHR R1 R15 ; Protect Val PUSHR R1 R15 ; Protect Val
@ -982,7 +982,7 @@
;; assoc ;; assoc
;; Recieves a Key in R0 and an alist in R1 ;; Receives a Key in R0 and an alist in R1
;; Returns Value if Found or NIL in R0 ;; Returns Value if Found or NIL in R0
:assoc :assoc
PUSHR R1 R15 ; Protect R1 PUSHR R1 R15 ; Protect R1
@ -1014,7 +1014,7 @@
;; evlis ;; evlis
;; Recieves Expressions in R0 and an Environment in R1 ;; Receives Expressions in R0 and an Environment in R1
;; Returns the result of Evaluation of those Expressions ;; Returns the result of Evaluation of those Expressions
;; in respect to the given Environment in R0 ;; in respect to the given Environment in R0
:evlis :evlis
@ -1041,7 +1041,7 @@
;; progn ;; progn
;; Recieves Expressions in R0 and an Environment in R1 ;; Receives Expressions in R0 and an Environment in R1
;; Returns the result of Evaluation of those Expressions ;; Returns the result of Evaluation of those Expressions
;; in respect to the given Environment in R0 ;; in respect to the given Environment in R0
:progn :progn
@ -1069,7 +1069,7 @@
;; Apply ;; Apply
;; Recieves a Procedure in R0 and Values in R1 ;; Receives a Procedure in R0 and Values in R1
;; Applies the procedure to the values and returns the result in R0 ;; Applies the procedure to the values and returns the result in R0
:apply :apply
PUSHR R1 R15 ; Protect R1 PUSHR R1 R15 ; Protect R1
@ -1124,7 +1124,7 @@
;; evcond ;; evcond
;; Recieves an Expression in R0 and an Environment in R1 ;; Receives an Expression in R0 and an Environment in R1
;; Walks down conditions until true one is found and return ;; Walks down conditions until true one is found and return
;; Desired expression's result in R0 ;; Desired expression's result in R0
;; if none of the conditions are true, and the result of ;; if none of the conditions are true, and the result of
@ -1166,7 +1166,7 @@
;; eval ;; eval
;; Recieves an Expression in R0 and an Environment in R1 ;; Receives an Expression in R0 and an Environment in R1
;; Evaluates the expression in the given environment and returns ;; Evaluates the expression in the given environment and returns
;; The result in R0 ;; The result in R0
:eval :eval
@ -1224,7 +1224,7 @@
HALT HALT
:eval_error_Message :eval_error_Message
"EVAL Recieved unknown Object" "EVAL Received unknown Object"
;; Result must be in R0 by this point ;; Result must be in R0 by this point
;; Simply Clean up and return result in R0 ;; Simply Clean up and return result in R0
@ -1237,7 +1237,7 @@
;; process_sym ;; process_sym
;; Recieves Expression in R0 and an Environment in R1 ;; Receives Expression in R0 and an Environment in R1
;; Returns symbol in R0 ;; Returns symbol in R0
:process_sym :process_sym
CALLI R15 @assoc ; ASSOC to get tmp CALLI R15 @assoc ; ASSOC to get tmp
@ -1258,7 +1258,7 @@
;; process_if ;; process_if
;; Recieves Expression in R0 and an Environment in R1 ;; Receives Expression in R0 and an Environment in R1
;; Returns the evaluation of the expression if true in R0 ;; Returns the evaluation of the expression if true in R0
;; Or the evaluation of the CDR of the expression ;; Or the evaluation of the CDR of the expression
:process_if :process_if
@ -1278,7 +1278,7 @@
;; process_setb ;; process_setb
;; Recieves Expression in R0 and an Environment in R1 ;; Receives Expression in R0 and an Environment in R1
;; Sets the desired variable to desired value/type ;; Sets the desired variable to desired value/type
;; Returns the value/type in R0 ;; Returns the value/type in R0
:process_setb :process_setb
@ -1297,7 +1297,7 @@
;; process_let ;; process_let
;; Recieves Expression in R0 and an Environment in R1 ;; Receives Expression in R0 and an Environment in R1
;; Creates lexical closure and evaluates inside of it ;; Creates lexical closure and evaluates inside of it
;; Returns the value/type in R0 ;; Returns the value/type in R0
:process_let :process_let
@ -1347,7 +1347,7 @@
RET R15 RET R15
;; process_cons ;; process_cons
;; Recieves Expression in R0 and an Environment in R1 ;; Receives Expression in R0 and an Environment in R1
;; Returns the evaluation of whatever special used or ;; Returns the evaluation of whatever special used or
;; The application of the evaluation in R0 ;; The application of the evaluation in R0
:process_cons :process_cons
@ -1448,7 +1448,7 @@
;; prim_apply ;; prim_apply
;; Recieves arglist in R0 ;; Receives arglist in R0
;; Returns result of applying ARGS->CAR to ARGS->CDR->CAR ;; Returns result of applying ARGS->CAR to ARGS->CDR->CAR
:prim_apply_String :prim_apply_String
"apply" "apply"
@ -1468,7 +1468,7 @@
;; nullp ;; nullp
;; Recieves a CELL in R0 ;; Receives a CELL in R0
;; Returns NIL if not NIL or TEE if NIL ;; Returns NIL if not NIL or TEE if NIL
:nullp_String :nullp_String
"null?" "null?"
@ -1484,7 +1484,7 @@
;; prim_sum ;; prim_sum
;; Recieves a list in R0 ;; Receives a list in R0
;; Adds all values and returns a Cell with result in R0 ;; Adds all values and returns a Cell with result in R0
:prim_sum_String :prim_sum_String
"+" "+"
@ -1515,7 +1515,7 @@
;; prim_sub ;; prim_sub
;; Recieves a list in R0 ;; Receives a list in R0
;; Subtracts all of the values and returns a Cell with the result in R0 ;; Subtracts all of the values and returns a Cell with the result in R0
:prim_sub_String :prim_sub_String
"-" "-"
@ -1548,7 +1548,7 @@
;; prim_prod ;; prim_prod
;; Recieves a list in R0 ;; Receives a list in R0
;; Multiplies all of the values and returns a Cell with the result in R0 ;; Multiplies all of the values and returns a Cell with the result in R0
:prim_prod_String :prim_prod_String
"*" "*"
@ -1579,7 +1579,7 @@
;; prim_div ;; prim_div
;; Recieves a list in R0 ;; Receives a list in R0
;; Divides all of the values and returns a Cell with the result in R0 ;; Divides all of the values and returns a Cell with the result in R0
:prim_div_String :prim_div_String
"/" "/"
@ -1612,7 +1612,7 @@
;; prim_mod ;; prim_mod
;; Recieves a list in R0 ;; Receives a list in R0
;; Remainders all of the values and returns a Cell with the result in R0 ;; Remainders all of the values and returns a Cell with the result in R0
:prim_mod_String :prim_mod_String
"mod" "mod"
@ -1645,7 +1645,7 @@
;; prim_and ;; prim_and
;; Recieves a list in R0 ;; Receives a list in R0
;; ANDs all of the values and returns a Cell with the result in R0 ;; ANDs all of the values and returns a Cell with the result in R0
:prim_and_String :prim_and_String
"and" "and"
@ -1679,7 +1679,7 @@
;; prim_or ;; prim_or
;; Recieves a list in R0 ;; Receives a list in R0
;; ORs all of the values and returns a Cell with the result in R0 ;; ORs all of the values and returns a Cell with the result in R0
:prim_or_String :prim_or_String
"or" "or"
@ -1713,7 +1713,7 @@
;; prim_not ;; prim_not
;; Recieves a list in R0 ;; Receives a list in R0
;; NOTs first of the values and returns a Cell with the result in R0 ;; NOTs first of the values and returns a Cell with the result in R0
:prim_not_String :prim_not_String
"not" "not"
@ -1736,7 +1736,7 @@
;; prim_numgt ;; prim_numgt
;; Recieves a list in R0 ;; Receives a list in R0
;; Compares values and returns a Cell with the result in R0 ;; Compares values and returns a Cell with the result in R0
:prim_numgt_String :prim_numgt_String
">" ">"
@ -1775,7 +1775,7 @@
;; prim_numge ;; prim_numge
;; Recieves a list in R0 ;; Receives a list in R0
;; Compares values and returns a Cell with the result in R0 ;; Compares values and returns a Cell with the result in R0
:prim_numge_String :prim_numge_String
">=" ">="
@ -1814,7 +1814,7 @@
;; prim_numeq ;; prim_numeq
;; Recieves a list in R0 ;; Receives a list in R0
;; Compares values and returns a Cell with the result in R0 ;; Compares values and returns a Cell with the result in R0
:prim_numeq_String :prim_numeq_String
"=" "="
@ -1853,7 +1853,7 @@
;; prim_numle ;; prim_numle
;; Recieves a list in R0 ;; Receives a list in R0
;; Compares values and returns a Cell with the result in R0 ;; Compares values and returns a Cell with the result in R0
:prim_numle_String :prim_numle_String
"<=" "<="
@ -1892,7 +1892,7 @@
;; prim_numlt ;; prim_numlt
;; Recieves a list in R0 ;; Receives a list in R0
;; Compares values and returns a Cell with the result in R0 ;; Compares values and returns a Cell with the result in R0
:prim_numlt_String :prim_numlt_String
"<" "<"
@ -1931,7 +1931,7 @@
;; prim_listp ;; prim_listp
;; Recieves a list in R0 ;; Receives a list in R0
;; Compares values and returns a Cell with the result in R0 ;; Compares values and returns a Cell with the result in R0
:prim_listp_String :prim_listp_String
"list?" "list?"
@ -1955,7 +1955,7 @@
;; prim_charp ;; prim_charp
;; Recieves argslist in R0 ;; Receives argslist in R0
;; Returns #t if CHAR else NIL ;; Returns #t if CHAR else NIL
:prim_charp_String :prim_charp_String
"char?" "char?"
@ -1979,7 +1979,7 @@
;; prim_numberp ;; prim_numberp
;; Recieves argslist in R0 ;; Receives argslist in R0
;; Returns #t if NUMBER else NIL ;; Returns #t if NUMBER else NIL
:prim_numberp_String :prim_numberp_String
"number?" "number?"
@ -2003,7 +2003,7 @@
;; prim_symbolp ;; prim_symbolp
;; Recieves argslist in R0 ;; Receives argslist in R0
;; Returns #t if SYMBOL else NIL ;; Returns #t if SYMBOL else NIL
:prim_symbolp_String :prim_symbolp_String
"symbol?" "symbol?"
@ -2027,7 +2027,7 @@
;; prim_stringp ;; prim_stringp
;; Recieves argslist in R0 ;; Receives argslist in R0
;; Returns #t if CHAR else NIL ;; Returns #t if CHAR else NIL
:prim_stringp_String :prim_stringp_String
"string?" "string?"
@ -2051,7 +2051,7 @@
;; prim_output ;; prim_output
;; Recieves argslist in R0 ;; Receives argslist in R0
;; Outputs to whatever is specified in R12 and returns TEE ;; Outputs to whatever is specified in R12 and returns TEE
:prim_output :prim_output
PUSHR R1 R15 ; Protect R1 PUSHR R1 R15 ; Protect R1
@ -2092,7 +2092,7 @@
;; prim_output_INT ;; prim_output_INT
;; Recieves an INT CELL in R0 and desired Output in R1 ;; Receives an INT CELL in R0 and desired Output in R1
;; Outputs value and returns ;; Outputs value and returns
:prim_output_INT :prim_output_INT
PUSHR R0 R15 ; Protect R0 PUSHR R0 R15 ; Protect R0
@ -2105,7 +2105,7 @@
;; prim_output_SYM ;; prim_output_SYM
;; Recieves a SYM CELL in R0 and desired Output in R1 ;; Receives a SYM CELL in R0 and desired Output in R1
;; Outputs string and returns ;; Outputs string and returns
:prim_output_SYM :prim_output_SYM
PUSHR R0 R15 ; Protect R0 PUSHR R0 R15 ; Protect R0
@ -2118,7 +2118,7 @@
;; prim_output_CHAR ;; prim_output_CHAR
;; Recieves an CHAR CELL in R0 and desired Output in R1 ;; Receives an CHAR CELL in R0 and desired Output in R1
;; Outputs Last CHAR and returns ;; Outputs Last CHAR and returns
:prim_output_CHAR :prim_output_CHAR
PUSHR R0 R15 ; Protect R0 PUSHR R0 R15 ; Protect R0
@ -2131,7 +2131,7 @@
;; prim_stringeq ;; prim_stringeq
;; Recieves a list in R0 ;; Receives a list in R0
;; Compares strings and returns a Cell with the result in R0 ;; Compares strings and returns a Cell with the result in R0
:prim_stringeq_String :prim_stringeq_String
"string=?" "string=?"
@ -2173,7 +2173,7 @@
;; prim_display ;; prim_display
;; Recieves argslist in R0 ;; Receives argslist in R0
;; Outputs to TTY R12 and returns TEE ;; Outputs to TTY R12 and returns TEE
:prim_display_String :prim_display_String
"display" "display"
@ -2183,7 +2183,7 @@
;; prim_write ;; prim_write
;; Recieves argslist in R0 ;; Receives argslist in R0
;; Write to Tape_02 and returns TEE ;; Write to Tape_02 and returns TEE
:prim_write_String :prim_write_String
"write" "write"
@ -2195,7 +2195,7 @@
;; prim_freecell ;; prim_freecell
;; Recieves either NIL or a list in R0 ;; Receives either NIL or a list in R0
;; If NIL displays header, otherwise just returns number of free cells in R0 ;; If NIL displays header, otherwise just returns number of free cells in R0
:prim_freecell_String :prim_freecell_String
"free_mem" "free_mem"
@ -2221,7 +2221,7 @@
;; prim_integer_to_char ;; prim_integer_to_char
;; Recieves a list in R0 ;; Receives a list in R0
;; Converts INT to CHAR ;; Converts INT to CHAR
:prim_integer_to_char_String :prim_integer_to_char_String
"integer->char" "integer->char"
@ -2243,7 +2243,7 @@
;; prim_char_to_integer ;; prim_char_to_integer
;; Recieves a list in R0 ;; Receives a list in R0
;; Converts CHAR to INT ;; Converts CHAR to INT
:prim_char_to_integer_String :prim_char_to_integer_String
"char->integer" "char->integer"
@ -2265,7 +2265,7 @@
;; string_to_list ;; string_to_list
;; Recieves a pointer to string in R0 ;; Receives a pointer to string in R0
;; Returns a list of chars ;; Returns a list of chars
:string_to_list :string_to_list
CMPSKIPI.NE R0 $NIL ; If NIL Expression CMPSKIPI.NE R0 $NIL ; If NIL Expression
@ -2294,7 +2294,7 @@
;; prim_string_to_list ;; prim_string_to_list
;; Recieves a pointer to a CONS whose CAR should be a STRING ;; Receives a pointer to a CONS whose CAR should be a STRING
;; Returns a list of CHARs in R0 ;; Returns a list of CHARs in R0
:prim_string_to_list_String :prim_string_to_list_String
"string->list" "string->list"
@ -2322,7 +2322,7 @@
;; list_to_string ;; list_to_string
;; Recieves an index in R0, a String pointer in R1 ;; Receives an index in R0, a String pointer in R1
;; And a list of arguments in R2 ;; And a list of arguments in R2
;; Alters only R0 ;; Alters only R0
:list_to_string :list_to_string
@ -2368,7 +2368,7 @@
;; prim_list_to_string ;; prim_list_to_string
;; Recieves a list in R0 ;; Receives a list in R0
;; Returns a String CELL in R0 ;; Returns a String CELL in R0
:prim_list_to_string_String :prim_list_to_string_String
"list->string" "list->string"
@ -2411,7 +2411,7 @@
;; prim_cons ;; prim_cons
;; Recieves an arglist in R0 and returns a CONS in R0 ;; Receives an arglist in R0 and returns a CONS in R0
:prim_cons_String :prim_cons_String
"cons" "cons"
:prim_cons :prim_cons
@ -2425,7 +2425,7 @@
;; prim_car ;; prim_car
;; Recieves an arglist in R0 and returns the CAR in R0 ;; Receives an arglist in R0 and returns the CAR in R0
:prim_car_String :prim_car_String
"car" "car"
:prim_car :prim_car
@ -2437,7 +2437,7 @@
;; prim_cdr ;; prim_cdr
;; Recieves an arglist in R0 and returns the CDR in R0 ;; Receives an arglist in R0 and returns the CDR in R0
:prim_cdr_String :prim_cdr_String
"cdr" "cdr"
:prim_cdr :prim_cdr
@ -2449,7 +2449,7 @@
;; spinup ;; spinup
;; Recieves a symbol in R0 and a primitive in R1 ;; Receives a symbol in R0 and a primitive in R1
;; Returns nothing but CONS both to all_symbols and top_env ;; Returns nothing but CONS both to all_symbols and top_env
:spinup :spinup
PUSHR R0 R15 ; Protect R0 PUSHR R0 R15 ; Protect R0
@ -2615,7 +2615,7 @@
;; Global init function ;; Global init function
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; sets up all_symbols and top_env ;; sets up all_symbols and top_env
:init_sl3 :init_sl3
@ -2903,14 +2903,14 @@
NOP NOP
;; cells_remaining ;; cells_remaining
;; Recieves nothing and returns number of remaining cells in R0 ;; Receives nothing and returns number of remaining cells in R0
:cells_remaining :cells_remaining
LOADR R0 @left_to_take ; Get number of cells left LOADR R0 @left_to_take ; Get number of cells left
RET R15 RET R15
;; update_remaining ;; update_remaining
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Updates left_to_take via counting ;; Updates left_to_take via counting
:update_remaining :update_remaining
@ -2943,7 +2943,7 @@
;; insert_ordered ;; insert_ordered
;; Recieves a cell and a list of cells in R0 and R1 ;; Receives a cell and a list of cells in R0 and R1
;; Inserts cell into the list from lowest to highest ;; Inserts cell into the list from lowest to highest
;; Returns resulting list in R0 ;; Returns resulting list in R0
:insert_ordered :insert_ordered
@ -2964,7 +2964,7 @@
;; reclaim_marked ;; reclaim_marked
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Reclaims and updates free_cells ;; Reclaims and updates free_cells
:reclaim_marked :reclaim_marked
@ -3006,7 +3006,7 @@
;; mark_all_cells ;; mark_all_cells
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Marks all unfree cells ;; Marks all unfree cells
:mark_all_cells :mark_all_cells
@ -3040,7 +3040,7 @@
;; unmark_cells ;; unmark_cells
;; Recieves a List in R0 and R1 and a Count in R2 ;; Receives a List in R0 and R1 and a Count in R2
;; Returns nothing ;; Returns nothing
;; Unmarks all connected Cells ;; Unmarks all connected Cells
:unmark_cells :unmark_cells
@ -3101,7 +3101,7 @@
;; relocate_cell ;; relocate_cell
;; Recieves a current, target and List in R0, R1 and R2 ;; Receives a current, target and List in R0, R1 and R2
;; Returns nothing ;; Returns nothing
;; Relocate all references to a cell and walks down list ;; Relocate all references to a cell and walks down list
:relocate_cell :relocate_cell
@ -3154,7 +3154,7 @@
;; compact ;; compact
;; Recieves a List in R0 ;; Receives a List in R0
;; Returns nothing ;; Returns nothing
;; Finds cells to relocate and has all references updated ;; Finds cells to relocate and has all references updated
:compact :compact
@ -3225,7 +3225,7 @@
;; garbage_collect ;; garbage_collect
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; The Core of Garbage Collection ;; The Core of Garbage Collection
:garbage_collect :garbage_collect
@ -3256,7 +3256,7 @@
;; garbage_init ;; garbage_init
;; Recieves nothing ;; Receives nothing
;; Returns nothing ;; Returns nothing
;; Initializes Garbage Heap ;; Initializes Garbage Heap
:garbage_init :garbage_init
@ -3279,7 +3279,7 @@
;; pop_cons ;; pop_cons
;; Recieves nothing ;; Receives nothing
;; Returns a Free CONS in R0 ;; Returns a Free CONS in R0
;; Updates left_to_take ;; Updates left_to_take
:pop_cons :pop_cons
@ -3310,7 +3310,7 @@
;; make_int ;; make_int
;; Recieves an Integer in R0 ;; Receives an Integer in R0
;; Returns a CELL in R0 ;; Returns a CELL in R0
:make_int :make_int
PUSHR R1 R15 ; Protect R1 PUSHR R1 R15 ; Protect R1
@ -3324,7 +3324,7 @@
;; make_char ;; make_char
;; Recieves a CHAR in R0 ;; Receives a CHAR in R0
;; Returns a CELL in R0 ;; Returns a CELL in R0
:make_char :make_char
PUSHR R1 R15 ; Protect R1 PUSHR R1 R15 ; Protect R1
@ -3338,7 +3338,7 @@
;; make_string ;; make_string
;; Recieves a string pointer in R0 ;; Receives a string pointer in R0
;; Returns a CELL in R0 ;; Returns a CELL in R0
:make_string :make_string
PUSHR R1 R15 ; Protect R1 PUSHR R1 R15 ; Protect R1
@ -3352,7 +3352,7 @@
;; make_sym ;; make_sym
;; Recieves a string pointer in R0 ;; Receives a string pointer in R0
;; Returns a Cell in R0 ;; Returns a Cell in R0
:make_sym :make_sym
PUSHR R1 R15 ; Protect R1 PUSHR R1 R15 ; Protect R1
@ -3366,7 +3366,7 @@
;; make_cons ;; make_cons
;; Recieves a Cell in R0 and R1 ;; Receives a Cell in R0 and R1
;; Returns a combined Cell in R0 ;; Returns a combined Cell in R0
:make_cons :make_cons
PUSHR R2 R15 ; Protect R2 PUSHR R2 R15 ; Protect R2
@ -3381,7 +3381,7 @@
;; make_proc ;; make_proc
;; Recieves Cells in R0, R1 and R2 ;; Receives Cells in R0, R1 and R2
;; Returns a combined Cell in R0 ;; Returns a combined Cell in R0
:make_proc :make_proc
PUSHR R3 R15 ; Protect R3 PUSHR R3 R15 ; Protect R3
@ -3397,7 +3397,7 @@
;; make_prim ;; make_prim
;; Recieves pointer to function in R0 ;; Receives pointer to function in R0
;; Returns a Cell in R0 ;; Returns a Cell in R0
:make_prim :make_prim
PUSHR R1 R15 ; Protect R1 PUSHR R1 R15 ; Protect R1

View File

@ -869,7 +869,7 @@ int escape_lookup(char* c)
else if(c[1] == '\'') return 39; else if(c[1] == '\'') return 39;
else if(c[1] == '\\') return 92; else if(c[1] == '\\') return 92;
file_print("Unknown escape recieved: ", stderr); file_print("Unknown escape received: ", stderr);
file_print(c, stderr); file_print(c, stderr);
file_print(" Unable to process\n", stderr); file_print(" Unable to process\n", stderr);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
@ -1428,7 +1428,7 @@ void global_load(struct token_list* a)
void primary_expr_failure() void primary_expr_failure()
{ {
line_error(); line_error();
file_print("Recieved ", stderr); file_print("Received ", stderr);
file_print(global_token->s, stderr); file_print(global_token->s, stderr);
file_print(" in primary_expr\n", stderr); file_print(" in primary_expr\n", stderr);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
@ -2344,7 +2344,7 @@ new_type:
else else
{ {
line_error(); line_error();
file_print("Recieved ", stderr); file_print("Received ", stderr);
file_print(global_token->s, stderr); file_print(global_token->s, stderr);
file_print(" in program\n", stderr); file_print(" in program\n", stderr);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
@ -2356,7 +2356,7 @@ new_type:
else else
{ {
line_error(); line_error();
file_print("Recieved ", stderr); file_print("Received ", stderr);
file_print(global_token->s, stderr); file_print(global_token->s, stderr);
file_print(" in program\n", stderr); file_print(" in program\n", stderr);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);

View File

@ -1,8 +1,8 @@
695698ebc7ed1d3acbcded1bd832a6b49b9a7c2a37c216a9fccdc0e89e976e99 roms/CAT 695698ebc7ed1d3acbcded1bd832a6b49b9a7c2a37c216a9fccdc0e89e976e99 roms/CAT
12bb96de936fff18b27c2382ddcee2db6afb6a94b9f4c6e9e9b3d1d0d0d3b0ed roms/cc_x86 d04462af441ec9c2d23080b654b4cc30f34cc27b09669146db02be7652ffdf81 roms/cc_x86
662b14485df5da61c3f5ad63151932985914b2fe074c21798e20ba2d83b45ecc roms/DEHEX 662b14485df5da61c3f5ad63151932985914b2fe074c21798e20ba2d83b45ecc roms/DEHEX
f4bbf9e9c4828170d0c153ac265382dc705643f95efd2a029243326d426be5a4 roms/forth f4bbf9e9c4828170d0c153ac265382dc705643f95efd2a029243326d426be5a4 roms/forth
2b80849180d5fb3757bcca2471b6337808e5b5ca80b18d93fa82ddef0435b84b roms/lisp 96ade767f30e3d9037a6c597cefb103942c8ec104264a3551017f091b10646e1 roms/lisp
3020b194ead31ae19ba66fc35ed95465514373f6005896350d1608c9efabbdca roms/M0 3020b194ead31ae19ba66fc35ed95465514373f6005896350d1608c9efabbdca roms/M0
059d38e34275029f2de5f600f08fe01bd13cd173f7da58e3fbec7114074beff2 roms/SET 059d38e34275029f2de5f600f08fe01bd13cd173f7da58e3fbec7114074beff2 roms/SET
a551568d72804a2de6f6f94fcb507452e9d672c7638beb170dde84a9bf7fb82a roms/stage0_monitor a551568d72804a2de6f6f94fcb507452e9d672c7638beb170dde84a9bf7fb82a roms/stage0_monitor