在Freedos中运行Turbo C++
Run Turbo C++ in Freedos
我想在FreeDos中运行Turbo C++。我曾经在DosBox中运行它,但现在我决定在我的台式PC上测试FreeDos。
但是每次我尝试运行它时,光标都会闪烁并且没有任何反应(在我输入命令并按回车键后),提示不返回( C:> ),我必须通过按电源按钮重新启动系统。我的问题是:
-
我怎样才能实际运行它?它是否需要额外的驱动程序或文件?
-
如果无法运行,您是否还有其他C++ IDE?也许你自己的 IDE?
附言我已经使用 Rufus 的 freedos 选项安装了 FreeDos。
FreeDOS不是MS-DOS,所以不兼容是意料之中的。然而,我没有接触过FreeDOS,但这里有一些提示(来自MS-DOS,所以它们应该或多或少也适用于FreeDOS)。
-
没有
himem.sys
你就没有高记忆力所以你只有 640 KB 而不是 1 MByte。这还不多,因为有些程序甚至需要 540 KB...
-
没有
Emm386.exe
或QEMM386
你就没有XMS内存如果我的记忆效果很好,那么DPMI驱动程序将无法工作,涡轮增压器需要。
-
没有适当的
autoexec.bat
和config sys
什么都行不通您没有路径、设备驱动程序(鼠标、CDROM等)和集(如声卡)。如果您不知道要放入什么,请从DOSBOX复制它们(减去DOSBOX安装行)。没有路径通常也意味着没有
command.com
所以你没有 shell,所以没有命令可以工作 -
您使用什么文件系统?
我不会为旧的DOS使用FAT16。仅将FAT32用于较新的MS-DOS版本(来自 win98)。不要使用NTFS或EXT,即使您有驱动程序一直导致问题......
-
计算机速度
许多DOS程序基于BorlandsCRT库。随着计算机的加速,这在后来引起了很多问题。如果我没记错的话,这是由它引起的
runtime error 200
。要纠正此类程序,您可以做两件事。修补或重新编译其中的CRT库(有一些修复程序)或转到BIOS并关闭CPU缓存(L1,L2..)。这将使您的现代计算机变成非常快的 386 它仍然应该通过 CRT 初始化。否则时间关闭,程序崩溃/挂起等...DOSBOX模拟器旨在以原始速度而不是尽可能快的速度运行程序,因此如果使用它,则无需进一步调整。 -
记忆
旧的DOS不能处理超过64 MByte,即使这样,有些程序也存在问题。最安全的方法是将可用内存限制为 32 MByte。我通常使用RAMDISC和/或SMARTDRIVE缓冲区来做到这一点,因此只剩下32 MByte的内存留给DOS程序。(如果您看到负数,您可以使用
mem
命令查看您的状态,您正在跨越障碍并需要增加SMARTDRIVE或RAMDISK的使用)。不要忘记不时和退出之前保存SMARTDRIVE缓冲区,以避免在发生重置或崩溃/挂起/冻结时丢失数据...最好将Volcov指挥官(或诺顿指挥官)与预定义的菜单一起使用以进行此类操作。您甚至可以将文件扩展名与查看器编辑器和IDE相关联。因此,如果您执行
asm
或cpp
它会在您喜欢的IDE端被编译或打开,依此类推......
以下是autoexec.bat
和config.sys
的例子(取自我古老的MS-DOS救援光盘):
自动执行.bat
@echo off
PROMPT $P$G
PATH e:rescue;e:rescuedos98;e:rescuevcnew;e:rescuepack;e:rescueviews
e:
cd rescue
SET TEMP=e:rescuetemp
SET BLASTER=A220 I5 D1 H5 P330 E620 T6
SET SOUND=e:rescueSB16
SET MIDI=SYNTH:1 MAP:E MODE:0
e:rescueSB16DIAGNOSE /S
e:rescueSB16AWEUTIL /S
e:rescueSB16MIXERSET /P /Q
goto %config%
:a
:b
:c
:d
:e
lh gmouse
LH vc
配置.sys
;devicehigh=e:rescuedos98interlnk.exe
shell e:rescuedos98command.com e:rescuedos98 /P
lastdrive=M
files=50
buffers=8
stacks=0,0
DOS=HIGH,UMB
[menu]
menuitem=a,QEMM
menuitem=b,EMM EMS
menuitem=c,EMM NOEMS
menuitem=d,STANDART
menuitem=e,RAMDISK 32MB
menudefault=d,1
[a]
device=e:rescuedos98qemm386.sys RAM BE:N
[b]
device=e:rescuedos98himem.sys
devicehigh=e:rescuedos98emm386.exe rammax
[c]
device=e:rescuedos98himem.sys
devicehigh=e:rescuedos98emm386.exe noems
[d]
device=e:rescuedos98himem.sys
[e]
device=e:rescuedos98himem.sys
devicehigh=e:rescuedos98ramdrive.sys 32767 /e
它具有启动菜单,您可以在其中选择所需的配置。只需更改驱动器号和路径即可。当心:a,:b,...
,[a],[b],...
不是驱动器号,而是菜单项。
shell
是 command.com 位置。gmouse
是鼠标驱动程序(不是DOS的一部分,您需要下载它),vc
是Volcov commander文件管理器(你并不真正需要它,它也不是DOS的一部分,但拥有它确实是一个好主意。您可以忽略SB16和声音冲击波设置,因为您不太可能获得相同的声卡,甚至完全兼容SB而没有任何仿真/驱动程序。
e:rescuedos98
是我的MS-DOS命令的位置,因此请将其替换为您的位置。
cd
命令更改目录,lh
加载到高内存而不是基本内存中以保留基本内存。
如果我在哪里避免兼容性问题,我会尝试获得MS-DOS 6.22。
所以我敢打赌,你得到了提到的所有问题的任何组合,使你的操作系统无法运行。
- C++读取用户输入而不按回车键(Mac OS X),与Turbo Pascal中的读取键相同
- Turbo C++ cin() 不能与 gets() 一起使用
- 如何将 libjpeg-turbo Android NDK 添加为静态库
- 如何从文件中检索链表(在 Turbo C++ 中)
- turbo 为什么我的C++代码中出现错误类型名称预期"错误?
- 在Visual Studio C++2017中链接libjpeg-turbo要包含哪些文件
- 在turbo c++中编译.不在视觉工作室
- 如何在 turbo C++ 中增加类数组的大小?
- 如何使用 Turbo C++并行运行两个功能,一个用于键盘,一个用于鼠标?
- 在 turbo c++ 中使用 TCC 从 cmd 编译C++程序
- 如何在 Turbo C++ 3.2 编译器中使用 long long 关键字
- Turbo 如何在 Tubo C++ 中制作一个可变大小的数组
- 为什么一个简单的"Hello World"风格的程序不能用Turbo C++编译?
- 从Turbo转移到Code :: Blocks
- strcpy() 和 strcat() 在 Turbo C++ 中无法正常工作(从字符串 litteral 初始化数组时
- 无法从 turbo c 程序中的文件检索文件数据
- Turbo我试图制作C TIC TAC TOE游戏,但没有获得正确的输出
- COUT不适用于我的其他Turbo C 合并
- 标头文件未在Linux上链接到Turbo C 中
- 检查 int 的输入,如果是字符,请再次请求输入(Turbo C++)