【发布时间】:2010-07-21 18:27:13
【问题描述】:
我在编译我用 BASIC 编写的程序时遇到问题。这是一个 DOS 模拟器,我正在尝试查看是否可以完全用 BASIC 编写操作系统。每次我尝试编译时,都会收到以下消息:
!SYNTAX ERROR IN LINE 15, COLUMN 50
UNEXPECTED E
EXPECTING : OR END OF LINE
我该怎么做才能解决这个问题?
10 PRINT
11 PRINT "Starting..."
12 PRINT
13 PRINT
14 INPUT "Type the location of the Command Interpretter:"; I$
15 IF I$ = "C:\WINDOWS\COMMAND.COM" THEN GOTO 14 ELSE GOTO 13
16 INPUT "C:\>"; D$
17 IF D$ = "FORMAT" GOTO 25
18 IF D$ = "FDISK" GOTO 47
19 IF D$ = "HELP" GOTO 16
20 IF D$ = "DIR" GOTO 16
21 IF D$ = "MKDIR" GOTO 16
22 IF D$ = "WIN" GOTO 16
23 IF D$ = "CD" GOTO 16
24 IF D$ = "DEL" GOTO 16
25 PRINT "WARNING, ALL DATA ON REMOVABLE DISK"
27 PRINT "DRIVE A: WILL BE LOST!"
28 INPUT "Proceed with Format (Y/N)"; F$
29 IF F$ = "Y" THEN GOTO 28
30 IF F$ = "N" THEN GOTO 16
31 PRINT
32 PRINT
33 PRINT
34 PRINT "Fotmatting 1.44MB"
35 PRINT "Format complete."
36 PRINT "Writing out file allocation table"
37 PRINT "Complete."
38 PRINT "Calculating free space (this may take several minutes)...................."
39 PRINT "Complete."
40 PRINT
41 INPUT "Volume Label (11 charchters, ENTER for none)"
42 PRINT
43 PRINT " 1,440MB total disk space"
44 PRINT " 1,440MB available on disk"
45 PRINT
46 PRINT " 512 bytes in each allocation unit."
47 PRINT " 32,624 allocation units available on disk."
48 PRINT "Volume Serial Number is 326A-1312"
49 GOTO 16
50 PRINT "Incorrect DOS Version"
51 PRINT
52 GOTO 16
我使用 Vintage BASIC 1.0.1 作为编译器。有谁知道发生了什么? 打盹新台币
【问题讨论】:
-
Shell 不是操作系统.. 众所周知。
-
当心...如果用户键入的内容未检查(不同于关键字 DIR、HELP、...),它将直接进入格式化磁盘选项 :) 未实现是所以否问题,但是当它起作用时可能很危险:) 如果他在继续格式上回答
anything but Y or N也是如此。将第 27 行更改为GOTO 16将解决该问题。 -
@laurent-rpnet 我想我会重新编号 FORMAT 并将 HELP 放在它的位置,以便用户知道要输入什么。 @Fosco 我现在不制作操作系统。我正在通过制作一个模拟的 DOS shell 来练习它。一旦我掌握了这一点,那就是操作系统时间了。可能是 Windows 模仿,我一直想做但谁知道呢?我们将拭目以待! WindozeNT