2023-05-30SHARP PC-1500机器语言的输入和执行

SHARP PC-1500A如果不插内存卡,仅靠内置的内存也能正常使用。

输入NEW0 指令会清空内存。这时,它的内存地图如下

40C5 :0xFF BASIC程序结束标志

如果在PRO状态下,编写一小段BASIC程序,会占用一小段内存。

10 PRINT A

20 END

这时,它的内存地图如下:

40C5 :0x00   语句行号10(高字节)

40C6 :0x0A   语句行号10(低字节)

40C7 :0x04  语句字节长度

40C8 :0xF0  PRINT(高字节)

40C9 :0x97 PRINT(低字节)

40CA :0x41   A (PRINT 语句的参数)

40CB :0x0D 语句10结束标志

......

40D2 :0xFF   BASIC程序结束标志



====================

BASIC语言中将十进制数转换为十六进制数的代码示例:


todo 有待修改。 下列程序不能运行,由CHATGTP @Claude生成,

伪代码 转换步骤:

十进制数字除以16。取余数,取商。

余数加入 “十六进制数字 字符串

整数商 进入下一次迭代。

重复这些步骤, 获取其余的十六进制数字 。直到商等于0。

10 REM 将十进制数转换为十六进制数

20 INPUT "请输入一个十进制数:",D :  REM 提示用户输入十进制数

30 REM 计算十六进制数的位数和各位上的数值   , 逐位计算十六进制数 

50 N=0:H$=""

70 N=N+1

80 K= INT(D/16^N)

90 D=D-K*16^N

100 IF K>9 THEN H$=CHR$(K+55)+H$ ELSE H$=STR$(K)+H$

110 IF D=0 THEN 140

120 IF N<=4 THEN GOTO 70

130 PRINT "超出范围,无效输入。":GOTO 20

140 PRINT "对应的十六进制数是:";H$

150 END

===========================

PC-1500 命令

 NEW

 STATUS

 PEEK            

 POKE

 CSAVE M     

 CLOAD M

 CALL

---------------------------------------  

MEM显示内存


STATUS0 显示剩余的程序步  --0 空洞,未使用

STATUS1 显示已用程序步数   --1 占用,使用

PC-1500主机裸机,最大1850

4K   RAM模块   5K 

8K   RAM模块 10K

16K RAM模块 22K(大约)


PEEK address    --读ME0内存数据

PEEK #address  --读ME1内存数据


POKE address,VALUE1,VALUE2,.......     --写ME0内存数据

    例子: POKE &4700,&01,&02,&03   --向ME0内存,地址 0x4700  写入数据  

POKE #address,VALUE1,VALUE2,.......    --写ME1内存数据,注意ME1 区域包含IO口控制器,防止误操作


CSAVE M  "file name" ,address_start,address_end , address_autorun , --M  是Machine language. --address_autorun 是下次装载到内存时自动运行的地址。

CSAVE M-1    --Tape control will be set to the REMOTE-1 side.


CLOAD M  "file name" ,expression , --M  是Machine language  --expression 优先于CSAVE  的 address_autorun

CLOAD M-1    --Tape control will be set to the REMOTE-1 side.



==========================

运行机器语言方法

1, 在PC上完成机器码语言编程 (汇编语言??)

2,用POKE命令(非语句)写SHARP PC-1500主机

3,直接使用CALL命令,或在BASIC 程序里使用CALL命令 执行上述编程


==========================

导出内存数据的方法

可以用CSAVE 将数据移动到磁带,再用Pocket Tools 工具 解析数据。 

可以用汇编语言MOV,将数据移动到用户内存区域,再用BASIC PAUSEPRINT LPRINT命令打印出来

可以将PEEK嵌入BASIC编程 ,虽然PEEK是命令,也可以用于编程。例如,

    例如, 

100   "A": POKE 30873, PEEK 16375,PEEK 16376 

    例如,  From    PC2AssemblyLanguage.pdf  page 24

10 DATA &??, &??, &??, &??, &??, &??,

20 M=&40C0

100  FOR I=1 TO 30

110 READ A

120 POKE M+I ,A

130 NEXT I

例如,原创的

10 A=&4000

20 A=A+1

30 PAUSE PEEK A

40 GOTO 20

例如,

10 A=&4000

20 A=A+8 

30 PAUSE "ADDR=";  A;  PEEK A ;PEEK (A+1); PEEK (A+2); PEEK (A+3); PEEK (A+4); PEEK (A+5); PEEK (A+6); PEEK (A+7) --必须带括号

40 GOTO 20

===============================

BASIC 语句


DATA  后跟 多个数据项表构成,由逗号隔开,

可以先写READ语句,后写DATA语句,但是最好不要这样。

DATA 语句除了用行号标记之外,还可加上“字符”标记,便于 RESTORE 语句重置指针

10   DATA  "MOBY DICK" , 20000, "WHITE" , "M" , 112


READ 语句使数据项从 DATA读出, 并赋给变量

120 READ N$, WT, C$ , SX$, L


 RESTORE 语句重置DATA指针,可以将指针移动到第一个 DATA 数据项,或从中间某个语句DATA数据项 


REM 编译器 见到 REM关键字时,就忽略 这一行中剩下的任何字符.


PRINT   USING 

 &  规定一个数字显示域,实行左对齐.

 # 规定一个数字显示域,实行右对齐.

PRINT USING “&&&&&&”; X

这台计算机处理10个有效数字,当用超过10 位数时,PRINT、LPRINT 语句显示的末位不正确


GPRINT &F, 54, &3E            --todo 不能正确执行??

GPRINT “&F 54 &3E”           --todo 不能正确执行??  


STOP 语句能使计算机中止程序的执行,

CONT 命令 可以 接着运行

修改BASIC 命令 的时候,  注意: 需要重新写一遍,不能仅仅改动或添加或删除个别字母


INPUT#   从磁带到内存   Data transmission command .  

PRINT#  从内存到磁带


===========================

十六进制数的前 带有&号.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容