prog8/examples/hello.p8

58 lines
1.4 KiB
Plaintext
Raw Normal View History

%import syslib
%import textio
%import floats
%zeropage basicsafe
2019-01-24 20:45:50 +00:00
; Note: this program is compatible with C64 and CX16.
2018-11-25 00:17:39 +00:00
2019-07-29 21:11:13 +00:00
main {
2018-11-25 00:17:39 +00:00
2018-12-18 14:12:56 +00:00
sub start() {
2018-11-25 00:17:39 +00:00
txt.lowercase()
2018-11-25 00:17:39 +00:00
; use optimized routine to write text
2020-08-27 16:10:22 +00:00
txt.print("Hello!\n")
2018-12-18 14:12:56 +00:00
; use iteration to write text
str question = "How are you?\n"
ubyte char
for char in question
txt.chrout(char)
2018-12-18 14:12:56 +00:00
; use indexed loop to write characters
2018-12-18 14:12:56 +00:00
str bye = "Goodbye!\n"
for char in 0 to len(bye)-1
txt.chrout(bye[char])
ubyte time_lo
ubyte time_mid
ubyte time_hi
%asm {{
stx P8ZP_SCRATCH_REG
jsr c64.RDTIM ; A/X/Y
sta time_lo
stx time_mid
sty time_hi
ldx P8ZP_SCRATCH_REG
}}
float clock_seconds = ((mkword(time_mid, time_lo) as float) + (time_hi as float)*65536.0) / 60
float hours = floor(clock_seconds / 3600)
clock_seconds -= hours*3600
float minutes = floor(clock_seconds / 60)
clock_seconds = floor(clock_seconds - minutes * 60.0)
2019-01-24 20:45:50 +00:00
txt.print("system time (jiffy clock) is ")
floats.print_f(hours)
txt.chrout(':')
floats.print_f(minutes)
txt.chrout(':')
floats.print_f(clock_seconds)
txt.chrout('\n')
2020-08-27 16:10:22 +00:00
txt.print("bye!\n")
}
2018-11-25 00:17:39 +00:00
}