prog8/examples/screencodes.p8
2020-03-13 00:50:30 +01:00

51 lines
1.1 KiB
Lua

%import c64lib
%import c64utils
%zeropage basicsafe
main {
sub start() {
c64.VMCSB |= 2 ; switch to lowercase charset
str s1 = "HELLO hello 1234 @[/]" ; regular strings have default encoding (petscii on c64)
str s2 = @"HELLO hello 1234 @[/]" ; alternative encoding (screencodes on c64)
c64scr.print("\n\n\n\nString output via print:\n")
c64scr.print("petscii-str: ")
c64scr.print(s1)
c64scr.print("\nscrcode-str: ")
c64scr.print(s2)
c64scr.print("\n\nThe top two screen lines are set via screencodes.\n")
ubyte i
for i in 0 to len(s1)-1
@($0400+i) = s1[i]
for i in 0 to len(s2)-1
@($0400+40+i) = s2[i]
ubyte c1 = 'z'
ubyte c2 = @'z'
c64scr.print("\npetscii z=")
c64scr.print_ub(c1)
c64scr.print("\nscreencode z=")
c64scr.print_ub(c2)
c64scr.print("\n")
check_eval_stack()
}
sub check_eval_stack() {
if X!=255 {
c64scr.print("stack x=")
c64scr.print_ub(X)
c64scr.print(" error!\n")
}
}
}