mirror of
https://github.com/Asraelite/littlebigcomputer.git
synced 2025-07-18 00:26:50 +00:00
Fix V8 emulator bugs
This commit is contained in:
parent
c45ad79440
commit
476972f85a
29 changed files with 281 additions and 18 deletions
109
programs/parva_0.1/binary_to_decimal_2.lbpasm
Normal file
109
programs/parva_0.1/binary_to_decimal_2.lbpasm
Normal file
|
@ -0,0 +1,109 @@
|
|||
li sp, stack
|
||||
|
||||
j main
|
||||
|
||||
main:
|
||||
sw x0, gpu_clear_screen(upper)
|
||||
|
||||
li x6, 1
|
||||
li x7, 1
|
||||
sd x67, cursor_pos
|
||||
li a0, 6942069
|
||||
call print_number
|
||||
|
||||
li x6, 1
|
||||
li x7, 7
|
||||
sd x67, cursor_pos
|
||||
li a0, 12345678
|
||||
call print_number
|
||||
|
||||
wfi
|
||||
|
||||
.eq gpu_clear_screen 0b01_0100_000000
|
||||
.eq gpu_move_cursor 0b01_0000_000000
|
||||
.eq gpu_print_char 0b01_0010_000000
|
||||
.eq gpu_show_buffer 0b01_0011_000000
|
||||
|
||||
|
||||
# void print_number(*void return: ra, int number: a0)
|
||||
.address 128
|
||||
print_number:
|
||||
push ra
|
||||
mv x0, a0
|
||||
li x2, 0
|
||||
li x4, 10000000
|
||||
|
||||
.align 2
|
||||
print_number__bin_to_dec_loop:
|
||||
divu x3, x0, x4
|
||||
remu x0, x0, x4
|
||||
sw x3, print_number__result_string(x2)
|
||||
divui x4, x4, 10
|
||||
addi x2, x2, 1
|
||||
bnez x4, print_number__bin_to_dec_loop
|
||||
|
||||
li x0, -1
|
||||
ld x67, cursor_pos
|
||||
print_number__skip_zeroes:
|
||||
addi x0, x0, 1
|
||||
lw x4, print_number__result_string(x0)
|
||||
beqz x4, print_number__skip_zeroes
|
||||
print_number__print_loop:
|
||||
lw x4, print_number__result_string(x0)
|
||||
bltz x4, print_number__end_print_loop
|
||||
sd x67, gpu_move_cursor(upper)
|
||||
slli x4, x4, 1
|
||||
ld x23, print_number__char_pixels(x4)
|
||||
addi x6, x6, 4
|
||||
addi x0, x0, 1
|
||||
sd x23, gpu_print_char(upper)
|
||||
b print_number__print_loop
|
||||
print_number__end_print_loop:
|
||||
sd x01, gpu_show_buffer(upper) # gpu show buffer
|
||||
sw x6, (cursor_pos + 0)
|
||||
pop ra
|
||||
j ra
|
||||
|
||||
print_number__char_pixels:
|
||||
.data 0b111000_101000_101000_101000 # 0
|
||||
.data 0b111000_000000_000000_000000
|
||||
|
||||
.data 0b001000_001000_001000_001000 # 1
|
||||
.data 0b001000_000000_000000_000000
|
||||
|
||||
.data 0b111000_001000_111000_100000 # 2
|
||||
.data 0b111000_000000_000000_000000
|
||||
|
||||
.data 0b111000_001000_111000_001000 # 3
|
||||
.data 0b111000_000000_000000_000000
|
||||
|
||||
.data 0b101000_101000_111000_001000 # 4
|
||||
.data 0b001000_000000_000000_000000
|
||||
|
||||
.data 0b111000_100000_111000_001000 # 5
|
||||
.data 0b111000_000000_000000_000000
|
||||
|
||||
.data 0b111000_100000_111000_101000 # 6
|
||||
.data 0b111000_000000_000000_000000
|
||||
|
||||
.data 0b111000_001000_001000_010000 # 7
|
||||
.data 0b010000_000000_000000_000000
|
||||
|
||||
.data 0b111000_101000_111000_101000 # 8
|
||||
.data 0b111000_000000_000000_000000
|
||||
|
||||
.data 0b111000_101000_111000_001000 # 9
|
||||
.data 0b001000_000000_000000_000000
|
||||
print_number__result_string:
|
||||
.repeat 0 8
|
||||
.data -1
|
||||
# end print_number()
|
||||
|
||||
.align 2
|
||||
cursor_pos:
|
||||
.data 1
|
||||
.data 1
|
||||
|
||||
.align 2
|
||||
stack:
|
||||
.data 0
|
Loading…
Add table
Add a link
Reference in a new issue