Commit Graph

91 Commits

Author SHA1 Message Date
Kitty-Cricket Piapiac f4cdb6e7be update vim syntax highlighter
^labels as numbers
2023-06-27 18:08:15 -07:00
Kitty-Cricket Piapiac a352fb1124 rename .kmm --> .x20 en masse in x/ 2023-06-27 17:49:46 -07:00
Kitty-Cricket Piapiac b234d213eb add vim syntax highlighter 2023-06-27 17:43:58 -07:00
Kitty-Cricket Piapiac 29c53ab0da README: update repository 2023-06-27 04:01:36 -07:00
Kitty-Cricket Piapiac ed68439bc5 migrate current documentation to markdown 2023-06-27 04:00:17 -07:00
Kitty-Cricket Piapiac 8b2cc9f183 update README 2023-06-27 02:49:58 -07:00
Kitty-Cricket Piapiac 7c2e3b39fb rebrand: kmm32 -> kmx20 2023-06-27 02:15:56 -07:00
Kitty-Cricket Piapiac f256e7cd1f fix compile warnings on freebsd 2023-06-27 02:00:04 -07:00
Kitty-Cricket Piapiac 2571884392 t/t.sh
shell script testing (im not a shell sripter)
yea this is bare bones, i wrote it on the commute home
i will expand it with more tests and what not later on
2023-04-13 20:29:27 -07:00
Kitty-Cricket Piapiac f25f1b8176 as:absorb`libu',fix,fmt,switch from table to BST
this mostly switches from using a resizeable hash table to store macros
and whatnot to using a binary search tree (i was having some heisenbugs
with the hash table that i didn't really feel like debugging it).
a BST has a simpler implementation and uses a bit less memory, however
it is potentially slower (O(log n) vs O(1)) & less cache performant

however, currently i care more about ease of implementation so i can
muck about with my impl without running into bugs. when i care more
about performance i will probably revert this change (or rewrite a
working hash table), but not without benchmarks
2023-04-13 14:32:50 -07:00
Kitty-Cricket Piapiac 32b743abe9 README:mao->mow 2023-04-05 22:52:28 -07:00
Kitty-Cricket Piapiac 4486db6b53 as:no need to write to file if no data specified
ie -org #0000 -org #2000 doesn't automatically set the rom filesize
to #2000 anymore unless something is written after -org #2000
2023-04-05 22:52:28 -07:00
Kitty-Cricket Piapiac 63e503662d README:mention mao 2023-04-05 14:49:23 -07:00
Kitty-Cricket Piapiac 5d93be14df x/use $ in some examples 2023-04-04 01:32:20 -07:00
Kitty-Cricket Piapiac bc23878497 kmm32:cuter K flag implementation & cleanup 2023-04-04 01:32:20 -07:00
Kitty-Cricket Piapiac 62453d6377 kmm32(isa):keep flag
as:$ keep flag

keep flag, whether to decrement the stack pointers for
the arguments used in the instruction
e.g. (a--n) --> (a--a n)

this is useful in situations where we want to keep the
arguments on the stack to do something else with, e.g.
a lot of the times we'll do `du fb` or something. now
we can save bytes and just do `$fb`. yippee!
2023-04-04 01:21:07 -07:00
Kitty-Cricket Piapiac 654eed58d5 friendlier LICENSE 2023-04-03 22:45:40 -07:00
Kitty-Cricket Piapiac c5882969bc x/use relative refs 2023-04-03 01:34:36 -07:00
Kitty-Cricket Piapiac 07a7728b01 d/kmm32-as:add examples and clarify and fmt 2023-04-03 01:16:56 -07:00
Kitty-Cricket Piapiac 4a2f26ac46 as:add relative addresses (^ literal)
{d/kmm32-as,s/vim}:{document,highlight} ^ literal

this allows us to create relative addresses easily
eg. `pr ^l ju :l ;` & `pw @l ju :l ;` are equivelant

this also enables us to easily make pascal-style (?)
length-prefixed strings, given the string size is <127:
`:str ^l "meow" :l ; ;`
2023-04-03 01:16:56 -07:00
Kitty-Cricket Piapiac 7d8fc24c8f kmm32(isa):add pr instruction
`pr x` (where x is a byte) puts ip+(int8)x onto the stack
eg. `pr #04 ju xx yy zz` skips bytes xx&yy and jumps to zz
         0  1  2  3  4
         ^
         +- relative to

this allows us to cut down by a full 3 bytes when referring
to labels that are closer than 128 bytes away, and allows
us to relocate less labels
(if we ever have relocatable binaries or something)
2023-03-31 21:05:22 -07:00
Kitty-Cricket Piapiac db8e763cb0 kip-io:add mouse/scrl,x:use / instead of : for device macros 2023-03-31 13:32:56 -07:00
Kitty-Cricket Piapiac bbe792d7ae kmm32:remove step
rationale:i was thinking about adding some instructions to
disable/enable interrupt vectors but, it's not really
necessary to have peripherals running in parallel with the
instructions on the CPU, and it simplifies code a lot by
assuming they are not
2023-03-31 12:09:43 -07:00
Kitty-Cricket Piapiac 0364947fcd kmm32:remove unneccesary stdio.h 2023-03-29 16:01:45 -07:00
Kitty-Cricket Piapiac 48a9197068 as:fix -inc bug&fmt 2023-03-29 13:40:32 -07:00
Kitty-Cricket Piapiac 18eac84dec x/restructure 2023-03-29 12:51:55 -07:00
Kitty-Cricket Piapiac c70e59bf41 s/vim:init 2023-03-28 12:07:15 -07:00
Kitty-Cricket Piapiac 58ccad23c0 as:first -org sets output origin
should be #0100 for ROMs
2023-03-28 10:04:14 -07:00
Kitty-Cricket Piapiac d368a3be0f x/graphics:add text drawing example 2023-03-27 22:24:18 -07:00
Kitty-Cricket Piapiac 94226f86f7 x/keeb.kmm:update after new-isa 2023-03-27 19:45:24 -07:00
Kitty-Cricket Piapiac 9c0258e9ff Merge branch 'new-isa' into trunk
adds F flag to instructions (~op in the assembler)
makes stack management on the return stack much easier,
and now returning from a function only takes 1 instruction
(~ju) rather than two (mr ju). also, this allows us to
remove some opcodes from the opcode set that were kind of
unneccessary
2023-03-27 19:41:53 -07:00
Kitty-Cricket Piapiac 7dc8759204 kip-io:keyboard 2023-03-27 13:04:36 -07:00
Kitty-Cricket Piapiac 87b17f603e README:mention codeberg in README 2023-03-26 17:29:43 -07:00
Kitty-Cricket Piapiac a29a225e4b d/kmm32:quick F example 2023-03-26 15:15:49 -07:00
Kitty-Cricket Piapiac 897e9c20c0 kmm32:put sw before du and ov 2023-03-26 15:13:08 -07:00
Kitty-Cricket Piapiac 4e1502bd01 d/kmm32-as:document ~ 2023-03-26 15:03:58 -07:00
Kitty-Cricket Piapiac 29cbf8e082 kmm32:add F flag,mr+md-->ss
as:~-->F flag
x:update examples
d:update documentation for kmm32
2023-03-26 15:02:27 -07:00
Kitty-Cricket Piapiac 52cd51be2f s/epto2kmm.bqn:init 2023-03-23 23:31:24 -07:00
Kitty-Cricket Piapiac dd4f546d09 x/dev.inc:add IVT defs 2023-03-23 11:34:07 -07:00
Kitty-Cricket Piapiac 8ffaa3a020 kip-io:add mouse buttons 2023-03-23 11:33:43 -07:00
Kitty-Cricket Piapiac ae23b15c75 x/fmt 2023-03-23 02:42:46 -07:00
Kitty-Cricket Piapiac 8b6b2962cf x/namespaces 2023-03-23 02:39:59 -07:00
Kitty-Cricket Piapiac 69d31978ad as:add namespaced labels 2023-03-23 02:34:54 -07:00
Kitty-Cricket Piapiac d13d7448a0 d/move IVT doc from kmm32->kip 2023-03-22 22:33:09 -07:00
Kitty-Cricket Piapiac eb26f05414 d/kmm32-as:document -inc and -emb 2023-03-22 12:45:24 -07:00
Kitty-Cricket Piapiac 53e7e766af kip-io:add display:pal 2023-03-21 14:33:09 -07:00
Kitty-Cricket Piapiac 1a804c0cba x/dev.inc 2023-03-21 14:16:52 -07:00
Kitty-Cricket Piapiac f4b062cfc6 as:dont cd,add -inc 2023-03-21 14:07:29 -07:00
Kitty-Cricket Piapiac 9b85fb2c56 liba:xcd 2023-03-21 13:46:10 -07:00
Kitty-Cricket Piapiac ba5bc4cc2e as:add -emb,kip-io:actually add disk 2023-03-21 13:29:33 -07:00