diff options
| author | Jan Tuomi <jan@jantuomi.fi> | 2025-03-04 22:55:32 +0200 |
|---|---|---|
| committer | Jan Tuomi <jan@jantuomi.fi> | 2025-03-04 22:55:32 +0200 |
| commit | 5899f8f02a90a3ba03f7799bcaf87fbb5d2d63f2 (patch) | |
| tree | b205381dc1030d36da4a57bd589ffa458b09fc96 /atk16_schasm/main.scm | |
| parent | 8c25522dedc4ee1e382cdb63c54cdf5263bce6a7 (diff) | |
Add %if and %if-else macros, refactor, add indirection levels
Diffstat (limited to 'atk16_schasm/main.scm')
| -rw-r--r-- | atk16_schasm/main.scm | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/atk16_schasm/main.scm b/atk16_schasm/main.scm index 2810df7..e6f63ca 100644 --- a/atk16_schasm/main.scm +++ b/atk16_schasm/main.scm @@ -1,6 +1,7 @@ (import (chicken base)) -(load "lib.scm") +(load "core.scm") +(load "macros.scm") ;; load asm modules (load "bootstrap.scm") @@ -33,12 +34,9 @@ (def-label 'forward (hlt)) -;; copy to register -(mov R0 R1) - ;; store string data in memory (def-label 'data - (emit-packed-string "hölynpöly")) + (%packed-string "hölynpöly")) (at-addr #x50) @@ -49,7 +47,14 @@ (def-label 'branch-true (emit-word 2)) -;;(print *buffer*) +;; use macros for convenience +(let ((x #x5678)) + (%if-else (R1 == R2) + (emit-word #x1234) + (emit-word x))) + +(%if (R1 <= (u16 #xFF)) + (emit-word #xbeef)) ;; compile to a 128KB image file (write-image-to "out.bin") |
