-
6d35283ef0
Clearer VERBOSE messages
Aryadev Chavali
2023-11-01 15:22:47 +00:00
-
6a270eda1e
Parser now uses updated lexer
Aryadev Chavali
2023-11-01 15:09:56 +00:00
-
93d234cd48
Lexer now returns more descriptive tokens
Aryadev Chavali
2023-11-01 14:38:59 +00:00
-
727081f99a
Removed OP_EQ signed versions as they're useless
Aryadev Chavali
2023-11-01 14:23:48 +00:00
-
90fb9816b4
Added new macro for bitwise comparison construction
Aryadev Chavali
2023-10-31 22:30:58 +00:00
-
5045452d7a
Added flag which forces the printing of hexes
Aryadev Chavali
2023-10-31 22:29:07 +00:00
-
0f0a1c7699
Allow hex literals for numbers
Aryadev Chavali
2023-10-31 22:27:53 +00:00
-
d9aaaf2a53
Use macros to stop duplication of code
Aryadev Chavali
2023-10-31 21:42:29 +00:00
-
5127202722
Introduced 3 new union members to data_t
Aryadev Chavali
2023-10-31 21:41:53 +00:00
-
5202dfbb26
Remove duplicated code
Aryadev Chavali
2023-10-31 21:28:19 +00:00
-
f7f566b106
Implemented all the comparators
Aryadev Chavali
2023-10-31 21:24:54 +00:00
-
7817b5acc9
Use standardised signed version of word type from base.h
Aryadev Chavali
2023-10-31 21:24:26 +00:00
-
095e62b86f
Introduced signed versions of common types
Aryadev Chavali
2023-10-31 21:23:00 +00:00
-
92ccdfe95c
Fixed README for change in inst module
Aryadev Chavali
2023-10-31 21:15:39 +00:00
-
5d800d4366
Moved inst module to lib
Aryadev Chavali
2023-10-31 21:14:14 +00:00
-
14a3820e74
Implemented new types of EQ, forced all comparators to push bytes
Aryadev Chavali
2023-10-31 21:05:25 +00:00
-
036d3dcfba
vm_execute_all: Print every cycle on VERBOSE >= 2, just print final state otherwise
Aryadev Chavali
2023-10-31 20:59:31 +00:00
-
4d8b855d87
Created routines for new comparator opcodes (not implemented)
Aryadev Chavali
2023-10-31 20:59:01 +00:00
-
0975d92493
Introduced new instructions for comparison
Aryadev Chavali
2023-10-31 20:40:55 +00:00
-
7ca8f2c644
asm/main logs are now indented and look prettier
Aryadev Chavali
2023-10-31 20:39:49 +00:00
-
75dc36cd19
Lexer now returns errors on failure
Aryadev Chavali
2023-10-31 20:39:26 +00:00
-
fa640f13e8
parse_word deals with characters now
Aryadev Chavali
2023-10-31 20:38:03 +00:00
-
228f548bd9
Changed asm/parser instruction push-reg->push.reg
Aryadev Chavali
2023-10-31 20:37:11 +00:00
-
c534a53b6f
Make Verbose a universal flag
Aryadev Chavali
2023-10-29 16:59:37 +00:00
-
157c79d53c
Added a "usage" message and colours for assembler
Aryadev Chavali
2023-10-29 16:58:58 +00:00
-
597a45aa73
Fixed bug where JUMP_REGISTER couldn't be in bytecode read
Aryadev Chavali
2023-10-29 16:58:18 +00:00
-
c4cb45f3ad
Fixed bug where reading operand bytecode may stop prematurely
Aryadev Chavali
2023-10-29 16:56:33 +00:00
-
7c367f95c9
Added some examples to instruction-test for positive/negative literals
Aryadev Chavali
2023-10-29 16:55:26 +00:00
-
025b26b877
Introduced an example source file for all instructions
Aryadev Chavali
2023-10-28 18:24:59 +01:00
-
1177a5a45b
Auto-fill copyright notice in examples/fib.c
Aryadev Chavali
2023-10-28 18:24:49 +01:00
-
1c0bd20cba
Introduce error reporting in asm/main
Aryadev Chavali
2023-10-28 18:21:56 +01:00
-
eac8cbf1da
asm/parser supports all opcodes, introduced parse errors
Aryadev Chavali
2023-10-28 18:20:15 +01:00
-
191fe5c6b8
Ignore comments (using semicolons) in lexer
Aryadev Chavali
2023-10-28 18:19:33 +01:00
-
d2429aa549
Introduced a column and line for each token
Aryadev Chavali
2023-10-28 18:18:46 +01:00
-
32dfcc109c
Added macro to do safe subtractions on a word
Aryadev Chavali
2023-10-28 18:16:50 +01:00
-
fc81cda96b
Plugged in asm/parser to asm/main
Aryadev Chavali
2023-10-26 11:18:07 +01:00
-
2fe2af22a9
Implemented a rudimentary parser with support for 4 instruction types
Aryadev Chavali
2023-10-26 11:17:55 +01:00
-
dca51106a2
Added support in lexer for negative numbers
Aryadev Chavali
2023-10-26 11:17:01 +01:00
-
e9c54e045a
Fixed bug where printing hword of an instruction prints number not hex
Aryadev Chavali
2023-10-26 11:16:02 +01:00
-
c70a9d9879
asm/main now uses TOKEN_STREAM_AT
Aryadev Chavali
2023-10-26 10:23:00 +01:00
-
b152365561
Lexer forces uppercase for symbols
Aryadev Chavali
2023-10-26 10:22:35 +01:00
-
3200e97324
Updated README for targeting VM
Aryadev Chavali
2023-10-26 10:22:26 +01:00
-
d1f84a6a2c
Makefile now prints dependencies on successful compilation
Aryadev Chavali
2023-10-26 10:22:10 +01:00
-
74a85268c4
Moved base functions from inst.c to dedicated file
Aryadev Chavali
2023-10-26 10:19:10 +01:00
-
c8c5381cf2
vm/main takes a filename as input to execute bytecode
Aryadev Chavali
2023-10-26 10:18:33 +01:00
-
a07b571da2
Auto fill licenses
Aryadev Chavali
2023-10-26 08:01:26 +01:00
-
7bf6b53230
Unified literal for numbers, main program now tokenises
Aryadev Chavali
2023-10-26 07:15:52 +01:00
-
131d70a9a3
Started working on a parser
Aryadev Chavali
2023-10-25 21:43:51 +01:00
-
94abb9e3d4
Separated lexer from main file in asm
Aryadev Chavali
2023-10-25 21:43:13 +01:00
-
dbbfac1236
Wrote lexer for assembly
Aryadev Chavali
2023-10-24 18:20:59 +01:00
-
3aad3926d2
Removed assertion in darr_read_file
Aryadev Chavali
2023-10-24 18:20:22 +01:00
-
92855ebb3e
Starting development on assembly language
Aryadev Chavali
2023-10-23 16:53:50 +01:00
-
42ac28d44a
Make root directory an include path, set #include's properly
Aryadev Chavali
2023-10-23 04:30:50 +01:00
-
0ac634a9be
Reintroduced example fib.c via examples/ folder
Aryadev Chavali
2023-10-23 04:25:30 +01:00
-
ac57e32a02
Added lib folder for general stuff, introduced as target to Makefile
Aryadev Chavali
2023-10-23 04:24:28 +01:00
-
aa4a3b8614
Implemented simple example of a for loop in main
Aryadev Chavali
2023-10-23 03:59:34 +01:00
-
b44a61be41
src->vm, Makefile is now a bit more abstracted and pretty colours
Aryadev Chavali
2023-10-23 03:58:34 +01:00
-
587f31a63b
Remove unnecessary log message
Aryadev Chavali
2023-10-23 03:11:05 +01:00
-
9496da9d93
Added and implemented OP_JUMP_IF_*
Aryadev Chavali
2023-10-23 01:45:54 +01:00
-
b93a4af495
Extracted code that performs a jump into its own routine
Aryadev Chavali
2023-10-23 01:45:18 +01:00
-
2ef104f235
Fixed bug in vm_mov(byte|hword) where registers aren't set properly
Aryadev Chavali
2023-10-23 01:43:24 +01:00
-
20030e364c
Moved macros to extract nth (byte|hword) from a word to base.h
Aryadev Chavali
2023-10-23 00:53:44 +01:00
-
00f3b3bf21
Rearrange what is printed in vm_print_all
Aryadev Chavali
2023-10-23 00:48:53 +01:00
-
d0ee1f3b1f
Check for and handle errors when interpreting bytecode
Aryadev Chavali
2023-10-23 00:45:32 +01:00
-
919fae2df8
Added an example program fib.c
Aryadev Chavali
2023-10-23 00:42:57 +01:00
-
19eb401498
Fixed bugs with ordering of bytes in some operations
Aryadev Chavali
2023-10-23 00:28:39 +01:00
-
ae9bc91713
Added and implemented OP_PRINT*
Aryadev Chavali
2023-10-23 00:09:12 +01:00
-
45ad8f7296
Fixed bug where vm_print_program listing for program was incorrect
Aryadev Chavali
2023-10-23 00:08:53 +01:00
-
b44eaefabb
Remove get_opcode_data_type
Aryadev Chavali
2023-10-22 22:04:13 +01:00
-
7243ac2533
Coupled some routines together, implemented OP_PLUS_*, -vm_peek
Aryadev Chavali
2023-10-22 22:01:14 +01:00
-
1962aabdf5
Added OP_PLUS_*
Aryadev Chavali
2023-10-22 22:00:44 +01:00
-
789016a343
Fix bug where negative opcodes lead to invalid bytecode parsing
Aryadev Chavali
2023-10-22 21:39:32 +01:00
-
cc84703725
Added runtime errors to virtual machine
Aryadev Chavali
2023-10-22 21:31:52 +01:00
-
7f1994c7aa
Added and implemented OP_JUMP_(STACK|REGISTER)
Aryadev Chavali
2023-10-22 20:57:29 +01:00
-
d8e45fce04
Removed
ret register
Aryadev Chavali
2023-10-22 20:54:29 +01:00
-
fffad9aea3
Added and implemented OP_JUMP_ABS
Aryadev Chavali
2023-10-22 20:40:42 +01:00
-
bc0e0fce25
Fixed bug in vm_execute_all, if no OP_HALT then program kept going
Aryadev Chavali
2023-10-22 20:30:17 +01:00
-
9da31398ba
Implemented vm_* routines for OP_DUP and vm_execute code
Aryadev Chavali
2023-10-22 20:30:05 +01:00
-
073a23152e
Use conversion functions for (h)word to and from bytes instead of bit shifting
Aryadev Chavali
2023-10-22 20:29:02 +01:00
-
aa3d1cb85f
Added NUMBER_OF_OPCODES which aids in compilation errors
Aryadev Chavali
2023-10-22 20:27:09 +01:00
-
b20ad511a0
Added opcode OP_DUP_*
Aryadev Chavali
2023-10-22 20:26:17 +01:00
-
137a6d3b75
Cleaned up inst.c
Aryadev Chavali
2023-10-22 20:25:17 +01:00
-
d5d37f1264
Functions which convert (h)words to and from bytes
Aryadev Chavali
2023-10-22 20:23:23 +01:00
-
d5d10480fa
Simple program which assembles instructions then executes them
Aryadev Chavali
2023-10-22 19:33:27 +01:00
-
33364fddab
Fix bug where accessing byte/hword registers > 8 wouldn't work
Aryadev Chavali
2023-10-22 19:28:45 +01:00
-
ed63025927
Added flag to Makefile to set VERBOSE macro in base.h
Aryadev Chavali
2023-10-22 18:26:33 +01:00
-
cf23a62008
Made a debug and release configuration via flags
Aryadev Chavali
2023-10-22 18:06:41 +01:00
-
36bcd90c81
When VEROBSE flag is set greater than 0, print traces in vm_execute_all
Aryadev Chavali
2023-10-22 18:04:13 +01:00
-
936971c1a3
Changed formats for vm_print_(stack|program)
Aryadev Chavali
2023-10-22 18:04:00 +01:00
-
5eb7b6f431
Fix bug where FILE is closed when passing to darr_(write|read)
Aryadev Chavali
2023-10-22 18:03:05 +01:00
-
5ee9bfaca8
Added flag in base.h, VERBOSE
Aryadev Chavali
2023-10-22 18:02:40 +01:00
-
a8d743e76e
Added macros for NOOP and HALT
Aryadev Chavali
2023-10-22 18:02:30 +01:00
-
e6339b1036
Changed format of inst_print
Aryadev Chavali
2023-10-22 18:02:05 +01:00
-
47c7d6baf7
Store the result of OP_POP in the last register as a word
Aryadev Chavali
2023-10-22 17:01:15 +01:00
-
95723f36d2
Implemented vm routines for OP_EQ_*
Aryadev Chavali
2023-10-21 23:55:51 +01:00
-
50ce1b35cd
Implemented vm routines for OP_XOR_*
Aryadev Chavali
2023-10-21 23:55:41 +01:00
-
c9b23b7b24
Implemented vm routines for OP_AND_*
Aryadev Chavali
2023-10-21 23:55:29 +01:00
-
6161a352e0
Implemented vm routines for OP_OR_*
Aryadev Chavali
2023-10-21 23:55:16 +01:00
-
ae7f0efc85
Implemented vm routines for OP_NOT_*
Aryadev Chavali
2023-10-21 23:54:59 +01:00
-
ba57523f3e
Implemented opcode_as_cstr for NOT,OR,AND,XOR,EQ
Aryadev Chavali
2023-10-21 23:54:35 +01:00