summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authormrb0nk500 <b0nk@b0nk.xyz>2020-09-18 14:49:07 -0400
committermrb0nk500 <b0nk@b0nk.xyz>2020-09-18 14:49:07 -0400
commiteea04e3327972f052dcfb8ae0854b77f87d3d52f (patch)
treee6c65aad43cb65eb152dc55fba1eb13efffdf7f2 /test
parent385a621b9487456c3167f204b02cb0ea0752191d (diff)
- Added support for structs, and unions to the
emulator's assembler. - Make the symbol table a doublely linked list, in both ways. - Optimized the memcopy() function. - Changed the benchmark timing, to now use a timer, and stops once the timer reaches zero. When the timer hits zero, it sends SIGALRM to the main function, which tells the emulator that the benchmark is done.
Diffstat (limited to 'test')
-rw-r--r--test/popcnt2.s4
-rw-r--r--test/struct.s31
2 files changed, 33 insertions, 2 deletions
diff --git a/test/popcnt2.s b/test/popcnt2.s
index 3aa38f0..503b074 100644
--- a/test/popcnt2.s
+++ b/test/popcnt2.s
@@ -14,7 +14,7 @@ popcnt:
bra @loop ; Keep looping.
@end:
tya ; Return the bit count.
- rts.w ; End of popcnt.
+ rts ; End of popcnt.
reset:
@@ -27,7 +27,7 @@ reset:
tay ; Reset Y.
main:
pha.q ; Save A.
- jsr.w popcnt ; Get population count.
+ jsr popcnt ; Get population count.
tay ; Save it in Y.
pla.q ; Get A back.
inc ; Increment A by one.
diff --git a/test/struct.s b/test/struct.s
new file mode 100644
index 0000000..dce527d
--- /dev/null
+++ b/test/struct.s
@@ -0,0 +1,31 @@
+.struct lol
+ oof .byte
+ cia .word
+ glo .dword
+ nig .qword
+ .union asd
+ f .qword
+ ss .byte
+ .struct aa
+ lol .qword
+ why .word
+ .endstruct
+ .endunion
+ why .word
+.endstruct
+
+
+.org 0
+
+lda #1
+ldb #lol.asd.f
+ldx #lol.asd.ss
+ldy #lol.glo
+lda #lol.oof
+ldb #lol.asd.aa.lol
+ldx #lol.asd.aa.why
+ldy #lol.why
+a
+l a
+v
+q