掌握Quick Basic编程的,都是OS操作系统自编程的精英人才
序言
在DOS时期,Basic还是非常受欢迎的,几乎是操作系统的必带,后来微软又靠Visual Basic很成功的火了一把。学过BASICA, GWBASIC, Quick Basic的人对BASIC的平民化感觉很友好,相信有一批人后来成了VB的主力军。知识获取不容易,不要轻言过时或放弃,也不要听信他人之言觉得QBASIC不高大尚,也不要过度痴迷于Assembler和二进制代码,今天说一说用QBasic语言自己编写操作系统,让QBasic继续发挥其无以比拟的优势。
1. 下载并安装DevOS Studio IDE
下载地址:
https://sourceforge.net/projects/devos-studio/
安装过程无需人为干预,就不细写了,注意安装时以管理员身份安装、安装过程中若发现.NET有些部件已有会让退出关闭,说的是安装.NET过程关闭,不是安装程序关闭,点击关闭后它继续安装后续其它的。安装完成后,界面是下图的样子(如果不是以管理员身份安装的,这时程序读写Program files (x86)下的文件会出错,真是如此也没关系,点继续就是了)。
2. 编写Hello World操作系统
打开左上角的Project,选New Project,选文件夹和项目名称。
现在开始编程,语言就是QBasic语言(原基础上增加了几个新语句),见下面的图。
编写好程序后,选Compile/Emulate,可以 Compile 编译,然后点选DOSBox模拟器(程序自带的)进行模拟。
如果模拟结果满意,可进入部署 Deploy,部署在软盘上或高密2.88MB软盘上。
先选个Floppy Disk吧,出现下面的界面,自己定义img映像文件名,保存,让程序生成自启动的软盘映像。
至此,简单的操作系统就制作完成了。可以找个DOSBOX虚拟机试一下。
在DOSBox-x虚拟机里 Mount a disk or CD image file,加载刚才生成的映像文件。然后,在虚拟机中执行 boot -l a ,让虚拟机从A盘重新启动,即启动你自己的OS,屏幕会显示出 Your OS has been booted! ,表明你编写的OS已经成功了。
3. 再来两个复杂一点的
Do
Input "Num1: ", n1
Input "Num2: ", n2
Print n1 + n2
Pause
Loop
上面是输入数据进行相加运算的OS,下面的一个是类似Command.com提示符的OS
Do
Input “command> “, cmd$
If cmd$ = “about” then
Print “Hello World! - v1.0”
ElseIf cmd$ = “cls” then
CLS
ElseIf cmd$ = “shutdown” then
Shutdown
ElseIf cmd$ = “reboot” then
Reboot
ElseIf cmd$ = “bcolor” then
Input “BColor: “, bcnum
Color , bcnum
CLS
ElseIf cmd$ = “fcolor” then
Input “FColor: “, fcnum
Color fcnum
ElseIf cmd$ = “help” then
Print " about:”; " Show info”
Print " bcolor:”; " Change background color”
Print " clock:”; " Clear the screen”
Print " cls:"; " Clear the screen"
Print " fcolor:"; " Change foreground color"
Print " help:"; " Show commands"
Print " reboot:"; " Restart computer"
Print " shutdown:"; " Turn off computer"
Print
ElseIf cmd$ = “clock” then
Print Time$
Print Date$
Print
Else
Print “Invalid Command”
End If
Loop
4. 支持的语句
· ABS
· ABSOLUTE
· ACCESS
· AND
· ANY
· APPEND
· AS
· ASC
· ATN
· BASE
· BEEP
· BINARY
· BLOAD
· BSAVE
· CALL
· CASE
· CDBL
· CHAIN
· CHDIR
· CHR$
· CINT
· CIRCLE
· CLEAR
· CLNG
· CLOSE
· CLS
· COLOR
· COM
· CONST
· COS
· CSNG
· CSRLIN
· CVD
· CVDMBF
· CVI
· CVL
· CVS
· CVSMBF
· DATA
· DATE$
· DECLARE
· DEF FN
· DEF SEG
· DEFDBL
· DEFINT
· DEFLNG
· DEFSNG
· DEFSTR
· DEFtype
· DIM
· DO
· DOUBLE
· DRAW
· ELSE
· ELSEIF
· END
· ENDIF
· ENVIRON$
· EOF
· EQV
· ERASE
· ERDEV$
· ERL
· ERR
· ERROR
· EXIT
· EXP
· FIELD
· FILEATTR
· FILES
· FIX
· FOR
· FRE
· FREEFILE
· FUNCTION
· GET
· GOSUB
· GOTO
· HEX$
· IF
· IMP
· INKEY$
· INP
· INPUT
· INPUT$
· INSTR
· INT
· INTEGER
· IOCTL
· IOCTL$
· IS
· KEY
· KILL
· LBOUND
· LCASE$
· LEFT$
· LEN
· LET
· LINE
· LINE INPUT
· LIST
· LOC
· LOCATE
· LOCK
· LOF
· LOG
· LONG
· LOOP
· LPOS
· LPRINT
· LPRINT USING
· LSET
· LTRIM$
· MID$
· MKD
· MKDIR
· MKDMBF$
· MKI$
· MKL$
· MKS$
· MKSMBF$
· MOD
· NAME
· NEXT
· NOT
· OCT$
· OFF
· ON
· ON COM
· ON ERROR
· ON KEY
· ON PEN
· ON PLAY
· ON STRIG
· ON TIMER
· OPEN
· OPTION
· OR
· OUT
· OUTPUT
· PAINT
· PALETTE
· PALETTE USING
· PCOPY
· PEEK
· PEN
· PLAY
· PMAP
· POINT
· POKE
· POS
· PRESET
· PRINT
· PRINT USING
· PSET
· PUT
· RANDOM
· RANDOMIZE
· READ
· REDIM
· REM
· RESET
· RESTORE
· RESUME
· RETURN
· RIGHT$
· RMDIR
· RND
· RSET
· RTRIM$
· RUN
· SCREEN
· SEEK
· SELECT CASE
· SGN
· SHARED
· SHELL
· SIN
· SINGLE
· SLEEP
· SOUND
· SPACE$
· SPC
· SQR
· STATIC
· STEP
· STICK
· STOP
· STR$
· STRIG
· STRING
· STRING$
· SUB
· SWAP
· SYSTEM
· TAB
· TAN
· THEN
· TIME$
· TIMER
· TO
· TROFF
· TRON
· TYPE
· UBOUND
· UCASE$
· UNLOCK
· UNTIL
· USING
· VAL
· VARPTR
· VARPTR$
· VARSEG
· VIEW
· VIEW PRINT
· WAIT
· WEND
· WHILE
· WIDTH
· WINDOW
· WRITE
· XOR
· $DYNAMIC
· $STATIC
5. 增加的新语句
· CURSORPOSITION
· CURSORSIZE
· DELAY
· HALT
· HIDECURSOR
· INITMOUSE
· MOUSE
· PAUSE
· REBOOT
· SCREENMODE
· SCREENSIZE
· RESETSCREEN
· SHOWCURSOR
· SHUTDOWN
6. 其它
DevOS还支持图形化OS
学重要,学以致用更重要,学过的不用或弃用就太可惜了。
哈哈,QBasic神工具,到处可用的。
CSDN-Ada助手: 不知道 C 技能树是否可以帮到你:https://edu.csdn.net/skill/c?utm_source=AI_act_c
Mongnewer: 有益就好。谢谢!
江城开朗的豌豆: 博文使用通俗易懂的语言,避免了过于专业术语的使用,并提供了清晰的解释和说明,使读者能够轻松理解和跟随。支持
CSDN-Ada助手: 恭喜你这篇博客进入【CSDN每天值得看】榜单,全部的排名请看 https://bbs.csdn.net/topics/617368974。
梓木竹: 赞,成功了!