Compare commits

..
45 Commits
Author SHA1 Message Date
ShatteredMINT b7621187e6 mention globabls.asm 2026-09-03 20:40:37 +02:00
ShatteredMINT 560855f6ac fix path to stdlib.asm 2026-09-03 20:40:37 +02:00
ShatteredMINT 0ad8cf639c add examples directory 2026-09-03 20:40:29 +02:00
ShatteredMINT 51c7869ce4 add tests folder 2026-09-03 20:40:29 +02:00
ShatteredMINT 443623c945 move assembly files into src directory 2026-09-03 20:40:29 +02:00
Michał Isalski a91895b8ac Fixed at-address 2026-09-03 20:40:29 +02:00
Michal Isalski ef80825f40 Added a shift conversion LUT and finished read_line (except Writeback) 2026-09-03 20:40:29 +02:00
Michał Isalski d0afb22568 Added storing shift status 2026-09-03 20:40:23 +02:00
Michal Isalski a4ecadfad5 Made read_line compliant to new doc guidelines 2026-09-03 20:40:23 +02:00
Michal Isalski 6e5d0acfeb One instruction less by using another register 2026-09-03 20:40:23 +02:00
Michal Isalski 1508c22fc7 Added handling for skipping non-renderable characters
Added handling for backspace character
2026-09-03 20:40:23 +02:00
Michał Isalski 2b85e5a851 Added read_line function 2026-09-03 20:40:23 +02:00
ShatteredMINT cbdcec77b5 clean up confusion about function template 2026-09-03 20:40:19 +02:00
Michał Isalski 6686bc54fc Changed docs of math functions to conform to new guidelines 2026-09-03 20:40:19 +02:00
Michal Isalski eb9dbfb8ad Fixed swapped pop instructions 2026-09-03 20:40:19 +02:00
Michal Isalski 75da3d730f Made find_index conform to new doc guidelines 2026-09-03 20:40:19 +02:00
Michał Isalski 267dcba57d pleegwat's code review fixes 2026-09-03 20:40:19 +02:00
Michał Isalski 0894cdca40 Added comment about predicate context 2026-09-03 20:40:19 +02:00
Michał Isalski a3f74a1f05 Tested and fixed stride->shift conversion missing 2026-09-03 20:40:19 +02:00
Michal Isalski f91c56deb1 Reduced operations to get -1 in register 2026-09-03 20:40:19 +02:00
Michal Isalski 63e9d43440 Fixed the predicate return address 2026-09-03 20:40:19 +02:00
Michal Isalski 8a463207ae Added find_index array function 2026-09-03 20:40:19 +02:00
Michał Isalski 98ecc3619c Added comment about predicate context 2026-09-03 20:39:59 +02:00
Michał Isalski 6be5e520bc Tested and fixed stride->shift conversion missing 2026-09-03 20:39:59 +02:00
Michal Isalski bb4095b8fc Reduced operations to get -1 in register 2026-09-03 20:39:59 +02:00
Michal Isalski bda60bd486 Fixed the predicate return address 2026-09-03 20:39:59 +02:00
Michal Isalski 46e8fad974 Added find_index array function 2026-09-03 20:39:59 +02:00
ShatteredMINT 993bbb797d mention globabls.asm 2026-09-02 11:41:27 +02:00
ShatteredMINT 7a9f2da1c0 create teaching directory 2026-09-02 11:40:39 +02:00
ShatteredMINT db8462a2fe change stack start 2026-09-02 11:40:39 +02:00
ShatteredMINT aa5cc1dbe0 remove mention of non existent file 2026-09-02 11:40:39 +02:00
ShatteredMINT f7d3ca2ec5 relax r7 requirement for result stack 2026-09-02 11:40:39 +02:00
ShatteredMINT da811fd65d remove duplicate documentation from stdlib.asm 2026-09-02 11:40:39 +02:00
ShatteredMINT 49767b61df clarify stack arguments 2026-09-02 11:40:39 +02:00
ShatteredMINT 6eb91f3433 explain inline comment 2026-09-02 11:40:39 +02:00
ShatteredMINT 9220e3dc28 basic contribution guidelines 2026-09-02 11:40:39 +02:00
ShatteredMINT 25ecd155e1 add arrays to readme 2026-09-02 11:40:39 +02:00
ShatteredMINT c071a00746 format calling convention 2026-09-02 11:40:39 +02:00
ShatteredMINT 5400da0157 fix remaining links 2026-09-02 11:40:39 +02:00
ShatteredMINT f19dfd3611 link test 2026-09-02 11:40:39 +02:00
ShatteredMINT a9fa16a241 start readme 2026-09-02 11:40:39 +02:00
ShatteredMINT de9ac7fe72 create globals.asm with placeholder globals 2026-09-02 11:37:26 +02:00
ShatteredMINT 1fc4515f6b include LUTs in memory map 2026-09-02 11:15:43 +02:00
ShatteredMINT f4ae43bbc1 update memory overview 2026-09-02 11:13:48 +02:00
ShatteredMINT f27715b5b3 start memory documentation 2026-09-01 13:45:23 +02:00
4 changed files with 33 additions and 2 deletions
+21
View File
@@ -0,0 +1,21 @@
# Memory Map
To not have to allocate a ton of things at run time the Standard Library uses a static memory map for some purposes
## Overview
| Start | Use |
| ---- | ---- |
| `0x0` | Reset Vector |
| `0x16` | Zero Page |
| `0x100` | User Code |
| `?` | Library Code |
| `0x1_0000` | LUTs |
| `?` | heap |
| `0xXXF0_0000` | Stack |
| `0xXXFF_0000` | quick access |
## Zero Page
Some values are needed not often enough to get their own special register, but often enough that it makes sense to keep them at a quickly accessible location.
This is what the zero page is for. its position in memory allows us to load them into a register with a single instruction.
+2 -1
View File
@@ -3,7 +3,8 @@
This is a standard library for symphony.
It is both intended as a practical toolkit to develop more complex software as well as a teaching resource.
If you just want to use the standard library [[src/stdlib.asm]] is your main header, include it after your code.
If you just want to use the standard library [[stdlib.asm]] is your main header, include it after your code.
You also need to include [[globals.asm]] as the first line in your assembly file.
If you are using it as a learning resource have a look at the [teaching folder](teaching).
+10
View File
@@ -0,0 +1,10 @@
jmp 0x100
@0x10
screen:
frambuffer_ptr: U32 0x0
size: U32 0x0
position_xy: U32 0x0
mode: U32 0x0
@0x100
-1
View File
@@ -1,6 +1,5 @@
pub include bit
pub include imath
pub include array
pub include console
; Needs to be last!