diff options
| Commit | aa7744345ba871dbee244acb6c64b7e6878bdd90 (patch) | |
|---|---|---|
| Author | 2025-08-01 12:48:02 +0300 | |
| Committer | 2025-08-01 12:48:02 +0300 | |
| Files | d20192e94fdf88f6684796f04c3b540268a0044b | |
| c64-programs-aa7744345ba871dbee244acb6c64b7e6878bdd90.tar c64-programs-aa7744345ba871dbee244acb6c64b7e6878bdd90.tar.gz c64-programs-aa7744345ba871dbee244acb6c64b7e6878bdd90.zip | ||
| Parent | 4b4c1a130a3ef64f3f788e2ebd46cfc3b0e121fc (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.s | 30 | ||||
| -rw-r--r-- | isprime/kernal.oph.s | 5 |
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 |
