added a create-project system to assembler, and fixed a couple of parsing bugs
This commit is contained in:
+35
-13
@@ -17,18 +17,15 @@
|
||||
dw display: 0x20000
|
||||
dw current: 0x20000
|
||||
|
||||
reset:
|
||||
pop ret
|
||||
ldw display, rg1
|
||||
stw rg1, current
|
||||
jmp 4, ret
|
||||
|
||||
// prints the given text to the screen.
|
||||
print:
|
||||
pop ret // return address
|
||||
pop rg0 // string
|
||||
push bpr
|
||||
mov spr, bpr
|
||||
|
||||
ldw bpr, rg0, 8
|
||||
ldw current, rg1
|
||||
|
||||
loop:
|
||||
print_loop:
|
||||
ldb rg0, acc
|
||||
stb acc, rg1
|
||||
|
||||
@@ -36,10 +33,35 @@ loop:
|
||||
addi rg1, 1
|
||||
|
||||
cmp acc, zero
|
||||
jne loop
|
||||
jne print_loop
|
||||
jmp end
|
||||
|
||||
// return
|
||||
// return
|
||||
end:
|
||||
// set current to
|
||||
stw rg1, current
|
||||
jmp 4, ret
|
||||
|
||||
mov bpr, spr
|
||||
pop bpr
|
||||
return
|
||||
|
||||
// resets the cursor position on the screen
|
||||
reset:
|
||||
push bpr
|
||||
mov spr, bpr
|
||||
ldw display, rg1
|
||||
jmp end
|
||||
|
||||
clear:
|
||||
push bpr
|
||||
mov spr, bpr
|
||||
// display size = 2000 bytes / 500 words
|
||||
lli 500 rg0
|
||||
ldw display, rg1
|
||||
|
||||
clear_loop:
|
||||
dec rg0
|
||||
stw zero, rg1
|
||||
addi rg1, 4
|
||||
cmp rg0, zero
|
||||
jgt clear_loop
|
||||
jmp end
|
||||
Reference in New Issue
Block a user