我的启蒙语言 F-BASIC 和 QBasic

2012-06-04  金城  5464

我的编程启蒙语言是F-BASIC。95年,上高中,望子成龙的父母给我买了小霸王学习机。因为那个时候,成龙天天在电视上倒立走楼梯宣传。似乎用那个学习很先进。还有金山词霸也是广告满天飞。我非常想要。而父母只要是在我的学习上的都不惜花钱。于是买了小霸王。啥型号忘了。啥课程也忘了。不爱学习的我,新鲜了几天就腻味了,老想弄游戏卡插上。父母似乎也察觉到了,不知怎么也借到了稀有的游戏卡。当时小镇上不多。只是在学校门口有一两家游戏厅。简单的赛车,超级玛丽,功夫小子,坦克大战,机械警察,魂斗罗之类的就是初高中时期流行的游戏。我玩游戏是受到管制的。借的游戏卡,很好玩,可是不能常借,父母又不买游戏卡,我也不好意思要。学习机自带的推箱子游戏通关之后就再没玩出乐趣。

渐渐的,F-BASIC走进我的心里。在旧书摊上居然看到BASIC语言教程。随着了解的指令越来越多。才发现编程里边另有天地。真是想干什么就干什么。完全能够满足我这准IT男口味。因为当时没有磁盘,程序不能保存。每天编写几百行的代码用字符输出几个形状就乐的屁颠屁颠的。然后连续执行十几回检验成果,再然后关电,上学。

F-BASIC Example:
*  
**
***
****
*****
******
Haha,this is a SanJiao.

后来的代码越编越庞大,最后执行不了了,提示 Memory Overflow,一查是内存溢出(当时的英语不好,成绩经常接近零蛋,得分的基本是蒙的)。真是恨哪。于是对有大内存和软硬磁盘的真正PC产生了无限向往。

后来对纯文字的编程腻味了。发现某些BASIC支持VGA控制语句,可以画出图形。于是又恨哪。后来买了PC用上了Q-Basic后才满足了编程绘图。当时用dos6.22,和win3.1。于是用Q-Basic通过经典的擦除重画的方式绘图,后来发现闪烁太厉害,又研究了局部覆盖和局部擦除,当然相对于现在的DirectX和OpenGL来说那手段太原始了。画窗口、屏保,写游戏,学做系统。算法什么的那几年就吃透了。

F-BASIC的全称是Family Basic。一般中文名称为家用BASIC或游戏BASIC。 它一般是任天堂FC(Family Computer)或兼容机学习机上的编程语言。

指令系统

一、直接指令
1、CLEAR规定BASIC的使用内存,消除所有内存中的变量
2、NEW消除BASIC程序及其变量
3、LIST将内存中程序按行号大小列出于屏幕上
4、RUN执行内存中的程序
5、CONT 继续执行被中断的程序
6、LOAD 从录音机磁带中读程序入内存
7、SAVE 将程序资料写入录音机磁带
8、LOAD 校对磁带中的程序
二、一般指令
9、=给变量赋值
10、PRINT 打印计算结果或数据资料
11、INPTU 从键盘读入数据资料
12、LINPUT 读取下整行的数据,包括","号
13、DIM 定义下标变量
14、GOTO 无条件跳转
15、GOSUB 调用子程序
16、RETURN 由子程序返回BOSUB处的主程序
17、IF~THEN 条件转移
18、FOR~TO~STEP NEXT 循环语句
19、ON 随变量的值不同而跳转不同的子程序
20、STOP 中断被执行程序
21、CLEAR 清除内存变量
22、END 使程序停止执行
23、SWAP 将两个变量的内容互换
24、REM 注释指令
25、READ 读取DATA语句中的数据
26、DATA 数据指令
27、RESTORE 指定READ语句的读指针
28、POKE 将数据写入内存单元或软开关
三、特殊功能指令
29、KEY 设定F1~F8功能键
30、KEYLIST 显示功能键的定义状态
31、PAUSE 暂停程序的执行
32、SYSTEM 从BASIC状态返回原始状态
33、VIEW 调出BG GRAPHIC画面
34、BEEP 使电视发出蜂鸣声
35、PLAY 演奏音乐指令
四、函数指令
36、ABS 绝对值函数
37、SGN 符号(+1,-1,0)判别函数
38、RND 随机函数
39、ASC 将写符转换成ASCⅡ码
40、CHR$ 将ASCⅡ码转换成字符串
41、VAL 将16进制数转换成10进制数
42、STR$ 将10进制数转换成字符串
43、HEX$ 将10进制数转换成16进制数
44、LEFT$ 从字符串左边读取字符
45、RIGHT$ 从字符串右边读取字符
46、MID$ 从字符串中间读取字符
47、LEN 计算字符串长度
48、PEEK 读取内存单元中的值
49、POS 读取光标的水平位置值
50、FRE 读取内存半日元的空余数目
51、STICK 读取手柄的上下左右键值
52、STRIG 读取手柄的SELE、STAR、A、B值
53、CSRLIN 读取兴标的垂直位置值
54、SCR$ 读取BG GRAPHIC画面中的数据
55、INKEY$ 读取键盘输入的值
五、画面控制语句
56.LOCATE 设定显示位置的坐标
56.COLOCK 设定显示位置的颜色
58.CGEN 决定背景面和动画面的角色分配
59.CLS 清除屏幕中的数据
60.CGSET 规定背景或动画面的颜色组合
61.PALET 重新配色指令。可从64种颜色中调出32种
62.DEF MOVE卡通的动作系列
63.MOVE 使卡通行动
64.ERA 令卡通停止并消失
65.CUI 令卡通停止但不消失
66.POSITION 定义卡通的座标
67.XPOS 求卡通的水平座标值
68.YPOS 求卡通的垂直座标值
69.MOVE(n) 判断卡通动作是否完成
70.DEF SPRITE 定义卡通的号码
71.SPRITE 将卡通显示出来或消失
72.SPRITE ON 将卡通画面叠加于背景画上
73.SPRITE OFF 终止卡通画面的显示
74.VCT 求卡通的运行方向
六、未公布的指令
75.INSTR 检索子符串在别一字符串中的位置
76.ONERROR 设置错误转移入口
77.ERL 给出错误语句的行号
78.RESUME 错误处理程序返回
79.TRON 设置程序为跟踪状态
80.TROFF 解除跟踪
81.AUTO 自动给出行号
82.DELETE 删除部分行号
83.RENUM 重编行号
84.BGTOOL 调用BG画面
85.FIND 查找指令
86.GAME 调出4个BASIC程序
87.SCREEN 设定屏幕显示格式
88.FILTER 设定颜色的深浅
89.CRASH 判断卡通是否相遇
90.CAN 令卡通消失并中断程