qb64 编译器 Readme
qbasic吧
全部回复
仅看楼主
level 5
白芦花 楼主
qb64 编译器 v0.85
===================
v0.85 特点
==============
令人兴奋的 IDE 代码自动格式化完成。
代码将是自动缩进的。
一些语句的间距将被自动安排。
一些名字的大小写将自动转变。
上述是不能关闭的。(本版本没有选项来禁用。)
已尽力确保自动版式/自动套用格式不损害你的代码。
如果你遇到自动版式/自动套用格式相关问题请立即报告。
*注:本 qb64 IDE 现在使用 Windows 剪贴板作复制/粘贴操作(这个非常有用的)
*锁定实施(锁定公共数据但不锁定打开的文件和屏幕状态)
* _CLIPBOARD$ 字符串用于访问Windows剪贴板
PRINT _CLIPBOARD$ '打印剪贴板的内容
_CLIPBOARD$="This is line 1"+CHR$(13)+CHR$(10)+"This is line 2" '设置2行文本到剪贴板
* _EXIT 函数实现让程序知道用户使用了“关闭”按钮或按了 CTRL+BREAK
在调用这个函数后,程序员可以不再手动退出程序。
_EXIT 返回 0 - 没有退出的要求
1 - 退出通过 X 按钮
2 - 退出通过 Ctrl+Break
3 - Ctrl+Break和X 按钮两者都已使用
*一些示例程序(如 samples\original\qb64\ripples.bas)不能运行(在几个版本中)的问题已解决
*许多公开(和未公开)的错误已得到修复
v0.841b 特点
================
实现TCP/IP协议支持。
详细信息请参考QB64论坛 details/documentation(细节/文档)下面:
ttp://http://www.qb64.net/forum/index.php?topic=397.0
进一步的 TCP/IP 的文档可以在qb64维基找到:
ttp://qb64.net/wiki/index.php?title=Keyword_Reference_-_By_usage#TCP.2FIP
v0.841特点
===============
再次,QBASIC的相容性得到了改进。
新的命令支持:DRAW, $INCLUDE, KEY OFF(什么也不做), ENVIRON, LEN(变量/类型/数组)
许多小错误/不兼容问题已解决。
v0.84特点
==============
稳定性和QBASIC的相容性有了明显的提高。这里没有列出的许多问题也得到解决。
新的命令在qb64:
_ICON imagehandle '修改程序的图标
_TITLE string$ '改变标题栏中的文本
_DELAY x '等X秒(精确到毫秒,放弃最近)CPU周期的其他应用
_LIMIT x '限制程序速度,空出的一些 CPU 时间给其他程序
t=TIMER(0.001) '将定时器的值返回到最近的0.001的第二个(最高精度可能是最近的毫秒)
_DISPLAY (无参数) '这个命令手动更新屏幕使用当前选择的显示页的数据。命令还禁用显示页面数据到屏幕(默认)上。
_AUTODISPLAY(无参数) '这个命令允许定义的显示页的数据将自动更新屏幕。
x=_ERRORLINE '返回源代码行号,最近的运行时错误的代码行
添加QBASIC命令支持:
CALL INTERRUPT(调用中断)
CLEAR(清除)
COMMON (在多个模块的程序中使用)
RUN
其他改进:
-严重的内存泄漏
-可以查看定时器字节在 &H46C-E (46c+46d*256+46e*65536)
-除法错误修复 [(tx<2)/2.0 VS print (tx<2)/2]
-INP(&H3C9) 为调色板阅读
-power-of [^] 错误(与操作顺序有关的)
-Reading "" 在 DATA 表中
-许多修正/改进引用/分配变量(包括用户自定义类型)在常规内存
-现在支持 SUBs/FUNCTIONs 在常规内存中注册变量
-调用绝对地址(CALL ABSOLUTE)的问题
IDE的改进:
严重的内存泄漏影响IDE 的修复
-使用50%更少内存 (RAM)
-最小的中央处理器使用
-许多冻结/崩溃相关的问题
一些 QBASIC 库已在 \qb64\samples\ 文件夹。在 \qb64\samples\info.txt 中看详情。
v0.83特点
==============
主要提高跨平台支持。
1)视窗(Windows) 98/ME 恢复支持(2008年底以来打破!)
2)支持改进:
-_INTEGER64 数据类型现在支持(C++编译失败之前)
-READ 从 DATA (读取)数字语句的改正
-EOF() 没有被发现的问题
-\ 自动改变到 / 在OPEN,BLOAD,KILL,CHDIR,等。
(许多示例程序现在正确运行,因为这些更改的结果)
3)编译器和 IDE 许多bug修复;
注意:
-错误的报告,当(在 IDE 中)编辑程序含用户定义的类型时
-GET 从文件获取#可选
v0.82特点
==============
主要实现了:
1)PRINT USING [#] 命令
2)STATIC 命令(所有用法)
3)主要的bug修复的qb64 IDE
4)主要错误修复和改进的qb64编译器
这v0.82版本只发布在 Windows 中,Linux版本将在1-2周的时间变得可用。
v0.81x特点
===============
v0.81x实现2大转变:
1)提供了一个IDE非常相似(在外观和接口)的语言称为qb64.exe IDE
说明:
-qb64.exe可以执行命令行编译(类似于以前版本的qb64)使用C的开关,例如:
qb64 -c mycode.bas
-许多错误/问题仍然是固定的,他们在论坛上的报告(抱怨是太好了!)
-更多的功能规划,目前IDE基本上是一个文本编辑器,检查您的代码作为你的类型
代码可能有“好”的地位却失败的C++编译(F5)由于基础qb64编译器不检查代码不够彻底
-使用下划线的程序(_)符号在IDE线不工作呢
- IDE功能自动保存功能,默默地保存你的代码后每10的变化,你会自动提示恢复后,如果你没有正常退出,重新启动(通过“文件”菜单中的“退出”命令)
C++编译失败,一些预处理错误报告和错误的行号,可能误导
2)Linux 支持
说明:
-你必须从qb64.net论坛下载qb64 Linux版本和遵循必要的安装步骤
-64位Linux系统还不支持(可以编辑。/内部为32位系统编辑力/ C / makeline.txt)
-EOF() 工作不正确
-Type _UNSIGNED INTEGER64 (只有未签名的版本)不能因不使用
-检查正斜杠和反斜杠的Linux文件系统是正确的(qb64将自动在以后的版本)
-检查引用的文件名(qb64仔细的情况下将自动在以后的版本)
-未处理的(即不是由错误…)的错误时,你的代码是运行在目前即时终止程序的结果没有警告
-许多其他兼容性问题的存在,将被固定在以后的版本中,在论坛上报告他们
关于v0.81x一般注意事项:
-compile.exe不v0.81x但将提供在后续版本qb64.exe
-暂时移除支持设置时间/日期
v0.81特点
==============
v0.81初步实现了支持常数(指 CONST 关键字)
用数字处理进行了改进,支持所有类型的符号扩展(甚至更新的qb64类型),这也适用于与H和O ..,..和新实现的二进制前缀和B。(注意,请注意。只有目前的工作时,使用数字直接在您的代码,进一步支持和B。将被添加后)。这提供了计算机处理数字更好的兼容性。
编写有效代码导致失败的错误已被修正,但总是检查程序被编译不包括任何还未实现的功能在本文档后面上市。
在这个版本中没有添加新的示例程序。
V0.8 特点
=============
V0.8初步实现了qb64 2D原型1,一个完全集成的2D图形界面封装和扩展了在QBASIC的标准图形功能。它采用TGA,BMP,PNM。XPM。XCF,PCX,GIF,JPG,TIF,LBM。PNG格式的图形,。TTF(真实)的字体,32位RGBA,Alpha混合绘制,颜色键会调色板索引图像、RGB调色板匹配、拉伸、翻转、镜像等功能。多个图形的表面可以用不同尺寸和格式的同时,和操作可以执行任何这些表面的互换。
的二维原型是完全实现,但仍在被记录的过程中的细节。请参阅以下网页的最新文档:
ttp://http://www.qb64.net/2d
随时询问二维原型及其用法:
ttp://http://www.network54.com/forum/585676/
没有官方的例子程序是可用的,展示了二维原型,但是他们将很快被发布。
谢谢你试用 QB64 !
qb64的目标是建立 BASIC 的源程序,从Windows, Mac OSX和Linux计算机在100%与微软 QBASIC/QB4.5兼容
确保原.bas文件从qb4.5保存在文本格式的压缩文件格式。
阅读 \qb64\samples\info.txt 信息包括BAS的例子程序。
未实现的功能
======================
大多数的QBASIC命令已经可用。
只有以下还没有实现:
-ON ... GOTO/GOSUB EVENTS (然而, ON ERROR GOTO 是实现)
-OPEN 设备 (COM...,SCRN:,LPT...,KYBD:,CONS:)
-CALL INTERRUPT (中断)(INT 33H只有有限的支持)
-CALL ABSOLUTE(绝对)(有限的支持 PUSH/POP/MOV/INT 33h 只)
-CALL INTERRUPT (调用中断)(INT 33H只有有限的支持)
-CALL ABSOLUTE(调用绝对)(有限的支持 PUSH/POP/MOV/INT 33h 只)
-端口访问(有限的支持,包括了与h3c8 /与h3c9和进出H3DA / & H60)
-多模块的支持
-其他命令:TRON/TROFF, CHAIN, FILES, FILEATTR, LPRINT, LPOS, FIELD, LOCK, UNLOCK, IOCTL, IOCTL$, PEN, STICK, STRIG, SETMEM, FRE, FIELD, KEY ON
qb64特异功能(qbasic没有的功能)
===========================================================
输入保护
----------------
“智能”限制键盘输入。避免“从头开始”消息。限制用于固定长度字符串和数字的输入的屏幕空间(例如,整数不能超过6个空格)
新的数据类型
--------------
_BITname` 或 name`1 变量名(name)加符号
_UNSIGNED _BITname~` 或 name~`1
_BIT*4name`4
_UNSIGNED _BIT*4name~`4
_BYTEname%%
_UNSIGNED _BYTEname~%%
INTEGERname%
_UNSIGNED INTEGERname~%
LONGname&
_UNSIGNED LONGname~&
_INTEGER64name&&
_UNSIGNED _INTEGER64name~&&
SINGLEname!
DOUBLEname#
_FLOATname##
STRINGname$
STRING*100name$100
_DEFINE 命令
---------------
而不是defbit,defubt,defbyt,defuby等所有新数据类型有一个简单的命令可以用像新的类型defint(或旧的类型,如果你想)如下:
_DEFINE A-C,Z AS DOUBLE 'the same as DEFDBL A-C,Z
较大的最大随机文件访问字段大小 (RANDOM 文件)
---------------------------------------------
对于随机访问文件,记录长度现在可以大于32767字节。可变长度字符串头允许更大的字符串依然100% QBASIC兼容较小的字符串。
BLOAD/BSAVE 极限
-----------------
可以保存/加载65536个字节,而不仅仅是65535字节。
_mk$(变量类型,值)
-------------------------
像 KI$/MKS$/ 等,这个数字转换成二进制字符串。_MK$()的优势是可以转换成新的数据类型qb64阿布斯只是QBASIC的类型。使用示例:
a$=_MK$(_UNSIGNED _INTEGER64,100)
注:_cv(变量类型,字符串)也可以用。
_round
------
这可用于圆形值为整数(CINT & CLNG在输出的限制)
图形 GET/PUT (获取/放置)
----------------
获取支持一个新的可选参数。如果使用该区域来存储可以部分/所有关闭屏幕和关闭屏幕像素设置为指定的值:
GET (-10,-10)-(10,10),a,3
PUT format has been extended to PUT[{STEP}](?,?),?[,[{_CLIP}][{PSET|PRESET|AND|OR|XOR}][,?]] where _CLIP allows drawing partially/all off-screen and the final optional argument can specify a mask color to skip when drawing.
PUT 格式已扩展到 PUT[{STEP}](?,?),?[,[{_CLIP}][{PSET|PRESET|AND|OR|XOR}][,?]] 在_clip允许绘图部分/所有屏幕和最后的可选参数可以指定要跳过当画脸谱的色彩。
更好的声音/音频支持
--------------------------
支持播放 .MID, .WAV, .MP3 和一些其它格式。
命令包括:
_SNDPLAYFILE简单命令播放一个声音文件(有限的选项)
_SNDOPEN返回的句柄是一个声音文件
_SNDCLOSE卸载一个声音文件(等到播放完成后)
_SNDPLAY播放声音
_SNDSTOP停止播放(或暂停)声音
_SNDPLAYING返回是否有声音正在播放
_SNDLOOP和_SNDPLAY相同但声音是循环的 (循环播放)
_SNDLIMIT停止播放声音后 数秒
_SNDGETPOS返回当前播放位置(秒)
_SNDCOPY复制声音(两个或更多相同的声音可以一次性播放)
_SNDPLAYCOPY播放复制声音,并自动关闭复制动作
_SNDPAUSE暂停声音
_SNDPAUSED检查如果暂停
_SNDLEN返回声音长度 秒
_SNDVOL设置音量
_SNDBAL设置平衡音响平衡/3D位置
_SNDSETPOS改变当前开始播放位置 秒
欲了解更多信息,阅读“AUDIO.TXT”在你的“qb64”文件夹。
看看示例文件夹(samples)中的“AUDIO.BAS”,你需要一些音频文件来测试!
鼠标支持
-------------
_MOUSESHOW显示鼠标光标(sub)
_MOUSEHIDE隐藏鼠标光标(sub)
_MOUSEINPUT必须直到它返回0,它读取下一个鼠标消息并返回1如果新资料另有0 (func)
_MOUSEX(func)
_MOUSEY(func)
_MOUSEBUTTON(n)-1如果按钮N(值为1或更多)按下
改进的2D图形支持
----------------------------
虽然没有完全记录,这些新的二维命令完全实现。
请参考ttp://http://www.qb64.net/2d usage/details(使用/细节)。
2017年03月24日 01点03分 1
1