Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
2 files changed, 19 insertions, 16 deletions
-rw-r--r--isprime/isprime.oph.s30
-rw-r--r--isprime/kernal.oph.s5
diff --git a/isprime/isprime.oph.s b/isprime/isprime.oph.s
index 262e8f7..30730de 100644
--- a/isprime/isprime.oph.s
+++ b/isprime/isprime.oph.s
@@ -14,29 +14,27 @@ main:
`lowercase
ldx #check_first ; x = check_first
-* jsr printx ; do print x
- lda #32 ; print " "
- jsr putchar
- jsr isprimex_cli ; print isprime(x)
- lda #13 ; print "\n"
- jsr putchar
-
+* jsr isprimex_yn ; do print isprime(x)
inx ; ++x
- txa ; while (x <= check_last)
- cmp #check_last
+ cpx #check_last ; while (x <= check_last)
bcc -
beq -
_end: rts
.scend
-isprimex_cli:
- jsr isprimex ; a = isprime(number)
- beq + ; if (a != 0)
- `print yes ; print "Yes"
- rts ; return
-* `print no ; else print "No"
- rts ; return
+; prints "$x Yes\n" when x is prime and "$x No\n" otherwise
+isprimex_yn:
+ jsr printx ; print x
+ `printchar 32 ; print " "
+ jsr isprimex ; a = isprime(number)
+ beq + ; if (a != 0)
+ `print yes ; print "Yes"
+ `printchar 13 ; print "\n"
+ rts ; return
+* `print no ; else print "No"
+ `printchar 13 ; print "\n"
+ rts ; return
max: .byte 0
diff --git a/isprime/kernal.oph.s b/isprime/kernal.oph.s
index 8d4a69e..2082d6b 100644
--- a/isprime/kernal.oph.s
+++ b/isprime/kernal.oph.s
@@ -14,6 +14,11 @@
tax
.macend
+.macro printchar
+ lda #_1
+ jsr putchar
+.macend
+
; print value (byte) at address as a number
.macro printm
lda _1