90年代后期步步高生产的软驱一号(又称步步高多媒体学生电脑)和98型学生电脑都带了软驱,一按电源件, 都从软盘启动(98型可以从内置的电子盘启动)
步步高提供了直接在学习机上写汇编开发的工具 BASM. BASM 可以用来写 6502 汇编,并可以编译成 CMD 小型可执行程序 不支持 EXC 程序. CMD 格式的头两个字节指定了程序装入的内存地址.之后就是程序和数据连续的放一起. 由于CPU可以访问从 $6100 到 $FFFA 的内存地址,所以一个CMD程序的最大大小为 $FFFA-$6100
只需要 basm.cmd 一个文件就可以编译 汇编.可以在中文或者西文的BBGDOS下都可以运行 basm.cmd. 如果命令行参数是 /cmd 则生成的文件就是 *.cmd 如果命令行参数是否 /obj 则生成的是中间代码 *.obj (暂时不知道这个 *.obj 有什么用)
在步步高学生电脑上, 你可以使用 WPS.exc 或者 edit.cmd 来编辑文本程序.两个程序都需要在中文DOS环境下才可以运行. edit.cmd 需要运行内存驻留程序 emm386.cmd
下面的程序演示了怎么输出一个字符:
1 2 3 4 5 6 7 8 9 10 | ; https://HelloACM.com include xnrdef.h org $8000 jmp start start: lda #"A" jsr putc lda #$00 jmp exit include tstputc.lnk |
; https://HelloACM.com include xnrdef.h org $8000 jmp start start: lda #"A" jsr putc lda #$00 jmp exit include tstputc.lnk
org $8000 命令指定了从 内存 $8000 开始汇编.include 则可以导入另一文件(则可以把一些常用的程序定义什么的放在单独的一个文件里)
文件 xnrdef.h (下载) 定义了一些常量,所以你就不用记住那些数值,比如 DOS调用号是:
DosIOEntry equ $580c
putc 和 exit 在 tstputc.lnk 中定义如下:
;************************************************ ; A: char * ;************************************************ putc: tax lda #DosDisplayChar jmp DosIOEntry ;************************************************ ; A : exit mode . (0 or ff) * ;************************************************ exit: tay lda #DosProgramReturn jmp DosIOEntry
tax 把寄存器 A 拷贝到 X 中, tay 指令则类似把 A 拷贝到 Y.分号用于注释.
在BBGDOS下 basm /cmd tstputc.asm 则可以编译生成 tstputc.cmd
类似, basm /obj tstputc.asm 会生成 tstputc.obj
编译过程中 map 文件 tstputc.map 将会被生成, 里面含有键值对:
编译成功之后 tstputc.cmd 则可以直接在BBGDOS下运行,输出一个字符A.
大家可以看到, 可以直接在学习机上开发汇编程序是步步高的一大优势,很多地方都很像PC.但是8位CPU毕竟是慢,再加上软盘只有 1.44M 空间不够存放大量的程序,因此我猜用并行线联接PC硬盘估计当时是为了加速开发而引进的技术.
遗憾的EXC程序不知道如何开发.只能先写写小型CMD程序玩玩了.
loading...
上一篇: 步步高多媒体学生电脑(软驱1号) 或者98 DOS操作系统版本说明
下一篇: 在步步高软驱1号或者98型学生电脑上算圆周率
