PC1500最有意思的命令:POKE PEEK
本帖最后由 Aline744 于 2025-2-10 17:37 编辑POKE PEEK是两个basic指令,前者用于写地址区域,后者用于读地址区域。
POKE PEEK可以说是BASIC语言中最有用最有趣的命令了,因为只有这两命令才能操作计算机的底层硬件。不管你是什么八位计算机,是VCI-20,C64或是PC-1500,ZX81,POKE PEEK都是必学的命令。不过由于这两个指令比较难理解,需要对计算机结构有一定的理解,很多basic教学都不介绍这两个指令。
对于PC-1500,我们可以使用以下三行代码,利用POKE指令,向内存中写数据
5 A = &2000
10 FOR I= 0TO &2000
20 POKE A+I, 55
30 NEXT I
这个程序有什么效果呢?将第一行A的值改为0,程序运行不久便会报错,此时按MODE CL ↑ 三个按键检查程序,发现程序全部乱码,这说明内存中的basic语言被覆盖了。
将A改为 &2000 &4000 后,程序无明显错误,改为 &6000后,可以看见显示屏上出现横条,说明此时数据写到显存里了。
将A改为 &8000后,程序不久出错,按键功能紊乱,按MODE键,显示屏上出现F0:,按OFF键,显示屏出现字符J。此时PC-1500的basic解释程序已经错误了,计算器完全不能使用。即便扣掉电池,由于PC-1500的内存漏电很慢,计算器仍然无法正常工作,此时只能用圆珠笔按压计算器背后的复位按钮,同时按住ON键 ,才能让计算器恢复正常。
POKE还可以往内存中写入汇编代码,写入后,用户可以用CALL指令执行汇编代码,然后用PEEK指令,直接从内存里读取结果,具体代码如下(选自pc1500系统分析扩展技术及其应用集锦) 本帖最后由 girlexplorer 于 2025-2-10 17:48 编辑
好像AI把这个当成了汇编语言。可能确实是汇编语言,但是也是basic语言,basic语言内嵌。
Prompt: 请问下面一段代码的含义:
5 A = &2000
10 FOR I= 0TO &2000
20 POKE A+I, 55
30 NEXT I
Response: 这段代码的含义是使用 `POKE` 指令将值 55 写入内存地址从 A 开始,步长为 1 的连续区域。具体来说:
1. 第 5 行:定义变量 A,并将其赋值为地址 2000。
2. 第 10 行:开始一个循环,从 I=0 到 I=&2000(即 I=0 到 I=4096)。
3. 第 20 行:在内存地址 A+I 处写入值 55。由于 A 是地址 2000,所以当 I=0 时,A+I 就是 2000;当 I=1 时,A+I 就是 2001,依此类推。
4. 第 30 行:循环结束。
总结一下,这段代码的作用是从地址 2000 开始,每隔一个字节(即步长为 1)写入值 55。
Prompt: 这是什么语言
Response: 这段代码使用的是汇编语言。汇编语言是一种低级编程语言,通常用于与硬件进行直接交互和优化性能。在计算机科学中,汇编语言是编写操作系统、驱动程序和其他系统软件的常用工具之一。
文曲星用过PEEK,读取密码 文曲星用过peek 用来给电子宠物加血条 现在还有用PC1500的吗?我那台都不知道扔哪里了!连怀旧都轮不到它!:$ 作为收藏还有几台。另外同档次的有卡西欧PB-700,感觉更好用一些。 本帖最后由 mao_zj 于 2025-2-10 21:55 编辑
楼主玩PC1500很到家,从BASIC语言、到汇编语言都研究,现在玩夏普PC1500计算机的人估计极少了,都当收藏品了,用它来怀旧还是不错的。在地摊上偶尔还能看到。当初那机子还是个高档货,只有研究机构、单位才有那高档的货。 当年还和同事一起用PC1500开发过单片机。
peek/poke不如说是最无奈的办法 我最早使用的计算机就是PC1500,是1985年单位购置的。 卡西欧PB-700显示图形比较好,但是没有机器码调用语句。PC1500 有POKE PEEK这2个命令,功能很强大。 lxa000 发表于 2025-2-10 23:56
当年还和同事一起用PC1500开发过单片机。
RAM寸土寸金,EEPROM反而不值钱吧
误,EPROM不是EEPROM,懂了 PC1500从86年用到95年,整整10年,是用到收购夏粮,需要处理结算和各村的交粮进度,极大的提高了效率,极大的减少了结算统计的工作量; 那是 1985 年夏天,俺得到了人生中第一台属于自己的电脑,它就是 PC1500 的小弟弟 PC1246,从此开启了俺的码农生涯。
我的SHARP PC-G813计算器屏幕坏了,不然就试一下这个命令。
页:
[1]
2