prog8/examples/hello.p8

46 lines
1.1 KiB
Plaintext
Raw Normal View History

2018-11-25 00:17:39 +00:00
%import c64lib
%import c64utils
2019-01-24 20:45:50 +00:00
%import c64flt
%zeropage basicsafe
2019-01-24 20:45:50 +00:00
2018-11-25 00:17:39 +00:00
~ main {
2018-12-18 14:12:56 +00:00
sub start() {
2018-11-25 00:17:39 +00:00
2019-01-24 20:45:50 +00:00
; set text color and activate lowercase charset
c64.COLOR = 13
2018-12-18 14:12:56 +00:00
c64.VMCSB |= 2
2018-11-25 00:17:39 +00:00
; use optimized routine to write text
c64scr.print("Hello!\n")
2018-12-18 14:12:56 +00:00
; use iteration to write text
str question = "How are you?\n"
for ubyte char in question
2018-12-18 14:12:56 +00:00
c64.CHROUT(char)
; use indexed loop to write characters
2018-12-18 14:12:56 +00:00
str bye = "Goodbye!\n"
for ubyte c in 0 to len(bye)
2018-12-18 14:12:56 +00:00
c64.CHROUT(bye[c])
2018-11-25 00:17:39 +00:00
2019-01-24 20:45:50 +00:00
float clock_seconds = ((mkword(c64.TIME_LO, c64.TIME_MID) as float) + (c64.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
; @todo implement strcpy/strcat/strlen?
c64scr.print("system time in ti$ is ")
c64flt.print_f(hours)
2019-01-24 20:45:50 +00:00
c64.CHROUT(':')
c64flt.print_f(minutes)
2019-01-24 20:45:50 +00:00
c64.CHROUT(':')
c64flt.print_f(clock_seconds)
2019-01-24 20:45:50 +00:00
c64.CHROUT('\n')
}
2018-11-25 00:17:39 +00:00
}