⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 teach.txt

📁 实现GBA上看电子束实现GBA上看电子束
💻 TXT
字号:
应文档可能存在错误,最新文档请访问我们的网址
http://redboy.512j.com
http://202.113.13.169/site/redboy/gba
RBASIC编程指导
0.相关说明:
 0.1 语句行
  RBASIC语句行由行号与语句构成,如 10 cls.语句行最大长度为80.
  语句行中可包含多条语句,和语句由:分开。如 20 locate 2,3:print A$.
  注意:由于设计上的缺陷,如果多条语句同行,语句中不能有无参数的语句,
  否则可能会报错,如 10 cls:printf "RBASIC".
 0.2 数学运算
 RBASIC可对任意正确的数学表达式进行运算.系统提供了6种基本运算:
  + - * / ^ %.其中^表示幂运算,如2^3=8. %是模除运算,如4/3=1. 
  其中,^运算优先级最高,* / % 次之,+ -最后。运用括号()可改变运算
 优先级.
 数学表达式可以数字,运算符,括号,函数(包括自定义函数),变量组成,如:
 1+2*5+(2+sin(3+x))*LEN(A$).如果x=1,A$="ADB",则上面的表达示的值为:
  12.72959251.
 0.3 比较运算
  RBASIC共提供6种比较运算,分别为: >,<,>=,<=,=,<>,即:大于,小于,大于
 或等于,小于或等于,等于,不等于.其返回值为1(真)或0(假).
 0.4 逻辑运算
  RBASIC提供三种逻辑运算:NOT,AND,OR.优先级依次递减。
  逻辑表达式可以比较运算,变量,括号组成,如:
  1>2 OR A=B AND C AND NOT (23+B>M || LEN(A$))
 注: 比较运算与逻辑运算用于条件判断,不能参加数学运算.但比较运算与逻辑运算
 式中可包含数学运算,反之则不可.
1. 常量
 RBASIC中规定了两种常量:数字常量与字符串常量。字符串常量由"内容"
 表示,如"ABCDFRG".数字常量以10进制表示,如1.234E34.
2. 变量
 RBASIC共定义了三种变量:整形变量,实形变量和字符串变量。
 整形变量范围:-4294967296~4294967296,整形变量由#标识,如NUM#
 实型变更范围:-1.0e300~1.0e300,指数范围:-300~300,12位有效数字。
 字符串变量最大长度:80,字符串变量由$标识,如WORD$.
 变量名不区分大小写.可由字母,数字和下划线组成,但变量名第一个字符必须
 为字母。变量名不能与RBASIC的关健字及标准函数名相同。如无标识,变量将被
 视不实型变量。不同形式的变量可以同名,如A$,A#,A.
3. 数组
 RBASIC提供实型变量和整型变量的一维数组,数组由DIM定义。
 如 DIM A[10],DIM B#[12] 分别表示定义一个含有10个元素的实型数组A和定义
 一个含12个元素的整形数组B.数组定义后,数组名[N]就表示数组的第N个元素,
 可以对其进行读/写值。
 字符串变量不提供数组,但可以数组的形式对其某个字符对其单独操作。如:
 A$[2]="A"表示将字符串A的第二个字符置为A.
2. 标准数学函数
 RBASIC提供了丰富的数学函数。可以用于数学运算。
 2.1 SIN(x),COS(X),TAN(X) 三角函数,X以弧度表示。
 2.2 ARCSIN(X),ARCCOS(X),ARCTAN(x) 反三角函数,返回值以弧度表示
 2.3 LOG(X),LN(X) 常对数函数与自然对数函数
 2.4 POW(X),EXP(X) 10的指数函数与E的指数函数
 2.5 SINH(X),COSH(X),TANH(X) 双曲线函数
 2.6 SQR(X) 开方运算
 2.7 ABS(X) 绝对值运算
 2.8 SGN(X) 取符号运算,正数返回1,负数返回-1,零返回0
 2.9 INT(X) 取整函数。
 2.a RND(X) 随机数函数,返回一个小于X的非负数
 2.b TIME(X) 取系统时间,返回值为当前系统时间与X的差。
 2.c MAX(x,y) 取x,y的最大值。
 2.d MIN(X,Y) 取X,Y的最小值
 2.e RGB(R,Y,B) 求红黄蓝分量分别为R,Y,B的颜色值。可用于着色.
 2.f CALCU(exp) 对表达式EXP运算并返回结果。exp为字符串形式。
 数学函数可嵌套使用。如:sin(cos(x)).
3. 统计函数:
 3.1 AVER(arratname[]) 统计函数,返回数组各元素的平均值。
     请注意格式!如VAR(A[]),VAR(B#[]).
 3.2 VAR(arrayname[]) 统计函数,返回数组方差.
 3.3 SORT arrayname[],对数组各元素进升序排序。
4. 字符串函数
 RBASIC同样也提供了强大的字符串处理函数.
 4.1 LEN(str) 返回字符串长度.
 4.2 STR$(x) 将X的值转化为字符串
 4.3 VAL(str) 与STR$相反,将字符串转化为数字
 4.4 LEFT$(str,num),RIGHT$(str,num),MID$($str,loc,num) 取子串
     str是母串,num表字串长度,loc表子串在母串的开始位置。
     如:A$="ABCDEFG"
     则 LEFT$(A$,3)的值为"ABC",RIGHT$(A$,3)的值为"EFG",
     MID$(A$,2,3)的值为"BCD".
 4.5 CHR$(num) 得到ASCII码值为num的字符。如CHR$(48)得到字符"0".
 4.6 ASC(str) 求字符串首个字符对应的ASCII码值
 4.7 STRING$(n,A$) 产生n次重复A$的字符串 
 4.8 REVERSE$(A$) 取得A$的颠倒字符串 
 4.9 UPSTR$(A$)/LOWSTR$(A$) 取得A$的大/小写字符串 
 4.a REPLACE$(str$,index$,re$) 将str串中的index串用re串替换
     如REPLACE("REDBOYBASIC","REDBOY","R") 返回的是"RBASIC"
 4.b COVER$(A$,B$,loc) 以覆盖模式在A串的loc号位置插入B串
 4.c CVSTR$(A$,B$,loc,n) 将A串中第LOC个位置起的n个字符用B串代替
 4.d INSERT$(A$,B$,loc) 以插入模式在A$的loc号位置插入B串
 4.e NOBLANK$(str) 去除字符串中所有空白 
 4.f TROP$(str) 去除字符串中的连续空白 
 4.g CAT$(A$,B$) 将A串与B串合并为另一字符串 
 4.h CMP(A$,B$) 按各字符的ASCII大小比较两字符串的大小.返回值为i,0,-1.
 4.i STRMV$(str,dre,step) 将字符串str循环移动,dre为0表右移,为1时左移.
     step表位移量.
 注意,各字符串函数并不改变作为参数的字符串内容。如执行
 B$=STRMV(A$,1,1)后,A$的内容并没有改变,而是将相关内容赋与B串.字符串函
 数也同样可嵌套使用。
5 绘图函数
 5.1 LINE X1,Y1,X2,Y2,color,mod 画直线
     (x1,y1),(x2,y2)为直线两端点坐标
 5.2 BOX x1,y1,x2,y2,color,mod 画矩形
     (x1,y1),(x2,y2)分别为矩形左上角与右下角坐标
 5.3 CIRCLE x,y,r,color,mod 画圆
   (x,y)为圆心坐标,R为半径
 5.4 DRAW x,y,color,mod 描点
 注:color为绘图颜色,取值范围为0-32767,也可以用红黄蓝分量RGB(R,Y,B)表示。如:
     DRAW 100,100,RGB(30,0,21),0.
     红黄蓝分量取值范围为0-31,分别表示各色素的色深.
     坐标取值范围:X 0-239; Y 0-159
     MOD为绘图模式,取值范围为0-5.下面为MOD值与绘图模式的对应关系:
   MOD=0 覆盖模式描点,矩形和圆为空模式(只含边框)
     MOD=1 覆盖模式描点,矩形和圆为实模式
     MOD=2 与模式描点,矩形和圆为实模式
     MOD=3 或模式描点,矩形和圆为实模式
     MOD=4 异或模式描点,矩形和圆为实模式
     MOD=5 非模式描点(反色),矩形和圆为实模式
5. 输入输出及屏幂控制语句
 5.1 PRINT 屏幂输出
     在当前光标位置显示字符或者数字,一个PRINT可显示多个字符和数字,显示多个字符或
     数字时,可用";"或者","分开,如 print A$,"1234",1+34,"sin(23)=";sin(23)
     ";"表示前后两次输出无间隔,用","时则前后两次输出之间有两个字符的间隔.
 5.2 LOCATE X,Y 设置当前光标语句
     X取值范围:0-29 Y取值范围:0-15
 5.3 WRITE 自由输出语句
     格式:WRITE X,Y,COLOR,STR
     此语句的功能和PRINT差不多,但只能用于显示单个字符串(不过可以显示中文咯^-^).
     X,Y为字符显示的坐标,其取值范围为:x 0-239;Y 0-159(比PRINT自由吧),也就是说你可以
     在屏幂的任何位置显示字符。CORLOR为字符的颜色,可以用RGB(R,Y,B)的形式给出.
 5.4 INPUT 输入语句
     格式:INPUT 变量名
     可以通过按键输入信息。不过一个INPUT只能输入一个字符串或者数字。
 5.5 INKEY$ 读取按键函数
     格式:INKEY$(MOD)
     读取按键值,返回的是字符。MOD=0时,机器会一直等待外部按键.MOD为正时则不等待,如果
     有按键,则返回按键对应的字符,否则返回空值.
 5.5 GETKEY
     格式:GETKEY(MOD)
     与GETKEY$同,不过返回的是数字而非字符
 5.6 COLOR 设置字符颜色语句
     格式:COLOR color  设置由PRINT显示的字符颜色,color可由数字或RGB(R,Y,B)指出.
 5.7 SCREEN 设置背景颜色
     格式:COLOE color
 5.8 CSRLIN
     格式 CSRLIN(NUM) NUM值任意,返回当前光标Y值.
 5.9 POS
     格式 POS(NUM) 返回当前光标X值
 5.a GETBG(),GETCOR() 返回当前背景/字符显示颜色
 5.b GETPET(x,y) 返回屏幂坐标为(x,y)的点的颜色.
 5.c CLS 清屏
6.赋值语句
 6.1 LET 基本赋值语句,如 LET A$="ADBG", LET B=12.3, LET C[3]=12 ...
     LET通常可以省略,如 A$=B$与LET A$=B$等价.
 6.2 DIM 定义数组函数,如 DIM A[12].
     DIM 可连续定义多个数组,各数组之间用','号分开,也可以组数组赋初值.如:
     DIM A[3]={3,5,6},B[4]
7.循环语句
 7.1 FOR-NEXT
     格式:FOR VAR=BE TO ED STEP SP
          LINE1
          ...
          NEXT
     其中,VAR为变量名(只能是实型变量!),BE为初值,ED为终值,SP为步长. STEP可以省略,此时
     步长使用默认值:1或-1(BE<ED时为1,反之为-1).
     每执行一行循环体,循环变量按步长递增(减),当循环变量的值不在(BE,ED)或(ED,BE)之间时,
     则停止循环而接着运行NEXT后面的语句.
 7.2 WHILE-WEND
     格式 WHILE EXP
           LINE1
           ...
           WEND
     当逻辑表达示EXP为真时,运行循环体内的程序,否则运行WEND后面的语句.
 注:循环语句可以嵌套,但要注意次序。由于设计上的缺陷,无论条件是否满足,FOR-NEXT与
  WHILE-WEND循环体内的语句在开始的时候都会执行一次,编程的时候请特别注意运用适当的方法
  避免这种情况造成的不正确执行。
8.转子与分支语句:
 8.1 GOSUB 转子语句
     格式:GUSUB LINE 其中LINE是要转入子程序的行号。该行号应该存在,且在子程序中该RET语句
     返回.
 8.2 RET 子程序返回语句
     格式:RET 只要在调用GOSUB语句后,RET程序才能让程序返回转子语句处接着运行.
 8.1 GOTO 无条件转移语句
     格式:GOTO LINE 其中LINE是要跳转到的行号,该行号应该存在,否则会出错.
 8.2 ON 条件分支语句
     格式:ON VAR GOTO/GUSUB LINE1,LINE2,.....
     其中VAR是一个变量或者数字表达示,当其值分别为1,2,3,4..的时候跳转/转子到对应该的行号
     LINE1,LINE2,LINE3...处运行
9.IF 条件判断语句:
  IF EXP THEN ... [ELSE ...]
  其中EXP为逻辑表达示,当其为真时执行THEN后面的语句,否则执行ELSE后面的语句.ELSE为可选项。
  如果要执行多个操作,各操作以:分开,并包含在同一括号内,如:
  IF A>10 (A=A+1:GOTO 30) ELSE A=A-1
a.DEAMON-DEND 伺机守候语句
  格式:DEAMON count,freq
       LINE1
       ...
       DEND
  此语句可以让指定的语句行在指定的时间独立运行.其中count为运行的次数,其值为1-65535,freq为
 运行频率,即指定的语句行在freq秒的时间间隔内运行一次。DEAMON与DEND中间的语句就是指定重复
 运行的语句.
  DEAMON指定的语句将独立于其它语句行,无论当前程序运行到哪里,只要时间间隔一到且count值
 为正,DEAMON-DEND体指定的语句将准时运作而不影响当前程序的运行.
b.置/读/清数据语句
 b.1 DATA 置数据语句
    格式:DATA DAT1,DAT2,....
     其中DATn可以为数字,字符串或者表达式,DATA语句可将这些数据的值保存在数据区然后供
     READ语句批量读取.
     如:DATA 123.3,"AEDHJ",34,"HJKG".
     在RBASIC中,数字型与字符型的数据存放在不同的区域。因些在读数据的时,不必考虑置数据的
    先后顺序而分别对数字和字符读取。
 b.2 READ 读数据语句
     格式:DATA VAR1,VAR2,VAR3....
     其中VARn为变量名,变量可以是三种变量中的任意一种或多种,也可以是数组元素.
     如:READ A[1],M$,B 分别从数据区内读取相应的内容并写入这三个变量.在读取数据的时候,
     相应的指针会指向后一个数据,如果数据区无数据或者数据已经读完,则不能再继续用READ
     读取数据.
 b.3 RESTORE
     格式:RESTORE NUM/STR
     当要重复读取数据区的数据时,应用RESTORE语句将相应的数据指针复位。
     RESTORE NUM将数字型数据区指针复位,RESTORE STR则是复位字符开型数据区指针.
     数据区指针复位后,可对数据区数据重新读入
 b.4 CLEAN
     格式:CLEAN NUM/STR
     当数据区内数据无用处时,可用CLEAN语句将其清除,以节省内存.另一方面也可以动态载入
     数据
c.DEF 自定义函数
 RBASIC允许用户自行定义数学函数,函数定义后,可以用于数学运算.
 格式:DEF FNAME(p1,p2,p3,...)=exp
 其中FNAME为自定义函数名,其命名与变量命名相同。pn为参数名,参数名只能由单个字母表示,
 如:x,y,z等等.参数个数可变,在1个到8个之间,参数之间应由,号分隔.exp为函数的表达式.
 例: DEF myfun(x,y,z,a,b,c)=sin(x/a)+cos(y/b)+tan(z/c)
d.其它
  END 程序结束语句,REM 注释语句,STOP 暂停语句,SYSTEM,NEW 清空所有变量和程序
  LOAD 装载语句.LIST列语句
e.文件操作函数
 暂不支持.
本软件尚未开发完全,可能存在诸多的错误,期待您的指导。同时,敬请关注完全版本。
由于动态分配内容存在的缺陷,在定义数组后可能会引起一些错误(是指重复运行多次)。
现已经找到了解决方案但未实施,在完全版中将彻底解决这个问题)
完全版本新功能(预定)
1.完善的LOAD,NEW,STOP,CONT(继续运行STOP引起的中断),LIST,EDIT命令功能
2.更为方便快捷的INPUT输入功能.(方案已经的制定)
3.超长文本显示(TEXT)功能
4.音乐播放功能(PLAY)
5.图片显示功能(IMAGE)
6.屏幂保护与恢复功能(SVSCR,LDSCR)
7.文件读取功能(OPEN,FREAD,GET,CLOSE)
8.丰富的系统调用功能(CALL)
 
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -