我在 Commodore 64 模拟器上输入了“hello world”。我必须将其打印为 hello world HELLO WORLD Hello World
我怎样才能只使用一个打印语句来做到这一点?
我在 Commodore 64 模拟器上输入了“hello world”。我必须将其打印为 hello world HELLO WORLD Hello World
我怎样才能只使用一个打印语句来做到这一点?
这是一个答案,下面有解释
10 a$="hello world" : rem your string goes here
20 c$=a$:gosub100:d$=a$:gosub200:printc$;" ";a$;" ";d$ : rem the one print
30 end
100 a0$=a$:a$="" :a2$=" ":rem in capital-case subroutine
110 for i=1tolen(a0$):a1$=mid$(a0$,i,1):ifa2$=" "thena1$=chr$(asc(a1$)or128)
120 a2$=a1$:a$=a$+a1$:next:return
200 a0$=a$:a$="": rem all in uppercase subroutine
210 for i=1tolen(a0$):a1$=mid$(a0$,i,1):a$=a$+chr$(asc(a1$)or128):next:return
它符合您只有一个打印语句的规则。它的工作原理是复制所有小写字符串,然后转换为首字母大小写并复制该字符串,最后将其余部分转换为大写,然后在单张打印中以正确的顺序使用副本陈述。
PETSCII 中的大写非常简单,因为您只需在每个字符上设置高位 (128) 即可。但是,由于 BASIC 2.0 还没有这方面的功能,因此需要对 a$ 进行操作的子例程。
您可以在字符串和打印语句中使用控制字符。其中一些记录在 C64 BASIC 手册和程序员参考指南中(即,反向字符,以及使用CTRL
andC=
键的颜色字符代码)
这是一个简单的例子(必须屏幕截图才能显示) - 当您打开一个字符串时,按CRTL
-N
它将显示一个反转的 N 字符,这是从 CBM 图形字符和 CBM 商业模式字符切换的。按CTRL
andH
将在字符串中添加一个反转H
,这是禁用SHIFT
+C=
键以阻止您在这两种字符模式之间手动切换。如果您想在Business Mode和Graphics Mode之间轻松切换,请忽略这一点。
据我所知,没有简单的控制字符可以从商业模式切换到图形模式,您可以在此处描述的开放字符串中使用它。要切换回图形模式,请使用:
print chr$(142)
这也可以添加到字符串中,即
let a$ = chr$(142) + "hello world"
您也不需要LET
Commodore BASIC 中的语句。我在这里仅用于说明目的。
资料来源:PETSCII - C64-Wiki