参考Programming with Ophis-Producing Commodore 64 programs

PRG程序文件的前两个字节是一个小端序的数字,指向程序起始地址(不会拷贝入内存),接下来的所有内容将被拷贝到0x0800(2048)后的内存区域以供BASIC执行。而为了使该程序可被BASIC执行,PRG的入口地址应存放一条BASIC语句,用以加载后续汇编代码。因此PRG的开头一般如下

位置  xx xx   01 02   03 04   05   06 07 08 09   0a   0b 0c
数据 [01 08] [0b 08] [1e 00] [9e] [32 30 36 31] [00] [00 00]

上面一行对应的BASIC语句为

30 SYS 2061

按位置分析如下

地址 解释
[01-02] 指向下一行BASIC语句首地址,即0x080b
[03-04] BASIC行号,值为30
[05] SYS命令,加载机器代码
[06-09] 字符串"2061",十进制表示的内存地址
[0a] 行结尾标志'\0'
[0b-0c] 指向下一行BASIC语句首地址,即0x000,代表终止程序

因此,接下来的机器代码将开始于2061,即0x080d

位置 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e ...
数据 0b 08 1e 00 9e 32 30 36 31 00 00 00 a0 00 ...

有关机器代码的分析,详见后续博客。

Commodore 64 programs PRG 程序文件结构分析相关推荐

  1. 利用 Ophis 编写 Commodore 64 programs PRG 程序(一)

    参考Producing Commodore 64 programs.Writing the actual code 本节将实现简单的hello world程序,从而形成对ophis的初步认识 准备工作 ...

  2. 利用 Ophis 编写 Commodore 64 programs PRG 程序(四)

    在上一节中,我们理解了字符映射与.data段的用法.接下来我们将看看另外两个好用的功能:表达式和零页 本节参考了Expressions.Advanced Memory Segments 表达式 Oph ...

  3. 利用 Ophis 编写 Commodore 64 programs PRG 程序(三)

    在上一节中,我们理解了标签.别名.头文件/库以及宏定义的用法.接下来我们将看看另外两个好用的功能:字符映射与.data段 本节参考了Character maps.Local variables and ...

  4. 利用 Ophis 编写 Commodore 64 programs PRG 程序(二)

    在上一节中,我们利用ophis实现了简单的hello world程序.接下来我们将进一步了解ophis的更多出色功能,它们能大大降低开发难度. 本节参考了Labels and aliases.Head ...

  5. 利用 Ophis 编写 Commodore 64 programs PRG 程序(五)

    在上一节中,我们理解了表达式和零页,接下来让我们一起来看看一些汇编代码与高级语言的对应关系:分支.循环与栈 本节参考了Structured Programming.The stack.Procedur ...

  6. 知乎周源微信_每周源代码39-Silverlight 3中的Commodore 64仿真器

    知乎周源微信 I had the pleasure of interviewing Pete Brown this last week and talking about the Silverligh ...

  7. midi文件结构分析及生成方法_移动短信技术

    从网上找的,已经将用BC写的改成了VC的,由于对音乐的理解比乐盲还差,对于程序中转换是否有问题我也不得而知,反正用VC生成的MIDI文件听起来惨不忍睹. 对于制作MIDI音乐来说,比播放MIDI文件本 ...

  8. MIDI文件结构分析及生成方法大全

    从网上找的,已经将用BC写的改成了VC的,由于对音乐的理解比乐盲还差,对于程序中转换是否有问题我也不得而知,反正用VC生成的MIDI文件听起来惨不忍睹. 对于制作MIDI音乐来说,比播放MIDI文件本 ...

  9. 计算机二级执行程序,计算机二级VFP程序文件的建立与执行

    程序文件也称命令文件,它是由命令组成的ASCII文本文件,所以可以用任何文本编辑程序或字处理软件来建立和修改.在Visual F.xPro中建立程序文件的最简便的方法是用visual FoxPro本身 ...

最新文章

  1. 微信小程序点击右下角的图片移动到当前位置
  2. PSM-省电模式(PowerSaving Mode)
  3. DataTable.DataRow的复制
  4. codeforces-73C. LionAge II
  5. 后勤与FI集成的几个配置地方
  6. [linux-nopage]内存映射虚拟字符设备驱动【P119】
  7. 脚本配置文件(通过一个案例解释下什么叫脚本配置文件)
  8. php cdi_Quarkus的其他(非标准)CDI功能
  9. web导入excel数据
  10. 谷歌开源量子计算框架Cirq
  11. 马尔可夫随机场数学原理理解
  12. 小米笔记安装双系统linux,小米笔记本电脑怎么安装双系统?-小米win7
  13. 数据库三大范式、BCNF范式、反范式
  14. manul_css.css:1 Failed to load resource: the server responded with a status of 404 ()
  15. 《掌控习惯》学习总结
  16. build/envsetup.sh 简介
  17. 高三老师给大一学生的一封信
  18. uniapp 下载文件却变成了跳转
  19. java中utp_5类UTP比3类UTP扭矩_______。
  20. one 主格 复数 宾格_主格与宾格.ppt

热门文章

  1. 2022年度新星,4款一见倾心的黑马软件,让你找不到拒绝的理由
  2. 数据结构系列——先进先出队列queue
  3. 中国物种物候和地面物候数据获取方法
  4. Keithley吉时利2182A/Keysight是德34420A纳伏表测量软件-纳伏表软件
  5. 初中计算机兴趣小组教学计划,电脑兴趣小组photoshop教学计划.doc
  6. 计算机房的能耗指标,数据中心四大能效指标详解-pPUE
  7. Flutter 中文文档网站 flutter.cn 正式发布!
  8. 激活社保卡去哪个地方的银行都可以吗?
  9. QQ空间的没落,代表一个时代的结束
  10. Windows Sockets Error Codes