Summary Files Commits Branches @commit @diff @stats
diff options
context:
space:
mode:
Commitaa7744345ba871dbee244acb6c64b7e6878bdd90 (patch)
Author
 Syndamia <kamen@syndamia.com>
2025-08-01 12:48:02 +0300
Committer
 Syndamia <kamen@syndamia.com>
2025-08-01 12:48:02 +0300
Filesd20192e94fdf88f6684796f04c3b540268a0044b
c64-programs-aa7744345ba871dbee244acb6c64b7e6878bdd90.tar
c64-programs-aa7744345ba871dbee244acb6c64b7e6878bdd90.tar.gz
c64-programs-aa7744345ba871dbee244acb6c64b7e6878bdd90.zip
Parent4b4c1a130a3ef64f3f788e2ebd46cfc3b0e121fc (diff)
feat(isprime): Move most print logic from main to isprimex_yn
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