(Sorry for the English, I use Google to translate).
Some time ago I raised a challenge: make a PC emulator 80486 in Basic !!!
To achieve this, I used a very old version of PCEM, with the help of "FreeBasic", starting from PCEM-V4.1, about six months ago, I managed to make it work, in 80286 mode only. Then I went little by little adding functionalities of the following versions, until arriving at the V8 (not completely, but if great part). Due to the complexity and lack of speed in BASIC, I have only converted the modules that have interested me the most, eliminating many unnecessary ones, so I have managed to reach an 80486-DX2-66mhz with FPU, 16mb of RAM and VGA TSENG of 2mb.
I have removed many non-necessary modules, such as the sound (it does not have any sound), the LPT port, the PS2 port, the FDC unit and more.
It has many faults, but in general they work VERY well, and it is capable of running "WINDOWS 3.11", "Deluxe Paint", "Wolfstein 3D" and many other programs.
It can reach a resolution of 800x600 to 16 colors, but it moves better in 640x480 16 colors.
The keyboard fails, all the keys do not work, and neither EMM386.EXE nor EXPANDED memory can be used, because it fails and becomes very slow.
It works in both protected mode and real mode, but when entering protected mode, the PC becomes slow.
For now, I can not leave the source code, because I do not know if it can be distributed, because it is based on PCEM
You can see my progress in "https://www.freebasic.net/forum/viewtop ... 96#p258396"
PCEM in FREEBASIC!!!!
- SarahWalker
- Site Admin
- Posts: 2054
- Joined: Thu 24 Apr, 2014 4:18 pm
Re: PCEM in FREEBASIC!!!!
Ok, then, goes to publish it, in freebasic forum.
Re: PCEM in FREEBASIC!!!!
Congratulation for your work jepalza! It seems you have a good knowledge of programming. It would be great if you can contribute with some patches in current PCem.
Nice work again, congrats!
Nice work again, congrats!
Re: PCEM in FREEBASIC!!!!
Maybe I could, but PCEM is already very advanced, and I could not contribute at this stage of the project.
Re: PCEM in FREEBASIC!!!!
I did a quick post about this project and I was left with 2 things....
A rather harsh critique...
It's not from me, and I mean no disrespect....
I think this may be overall about pcem...
A rather harsh critique...
Code: Select all
not used -gen gcc to optimize it (not doing that would be almost equivalent of compiling with -O0 in C)
using “dim shared” instead of the faster “static shared” for global fixed size arrays… using “select case as const” with just 3 options
(thats slow even with -gen gcc) using one line functions instead of macros, using loops instead of memset to set byte arrays, settings
byte arrays byte by byte instead of int by int, for a project of this magnitude using “screen” instead of “screenres” make it feel you
are coding for qbasic, not using “=any” on local variables that dont need to be initialized to 0 (all of them since this was converted
from c), not using freebasic pointers, etc…
I think this may be overall about pcem...
Code: Select all
PCEM 286 可能有BUG,286 gate descriptors type 是 4-7,但是PCEM 支持大于8的descriptors type
PCEM 286 may have a BUG, 286 gate descriptors type is 4-7, but PCEM supports a descriptors type greater than 8.
Re: PCEM in FREEBASIC!!!!
Do not worry about the criticism. I've tried those optimization options, but I do not see any difference, it's hardly noticeable in speed, only a few thousand seconds between them.
This project I have only done for fun, and for demonstrating that it is possible to do it in BASIC, not for winning a programming contest or for making money. Only pure fun. I do not care what others think of it.
What really matters is the final result, which is spectacular
(using google translate, sorry)
This project I have only done for fun, and for demonstrating that it is possible to do it in BASIC, not for winning a programming contest or for making money. Only pure fun. I do not care what others think of it.
What really matters is the final result, which is spectacular
(using google translate, sorry)
Re: PCEM in FREEBASIC!!!!
No need to be sorry, and really It's amazing to watch even just going into the BIOS setup.
I know that after the initial rush of javascript written emulation that something like this is possible, but seeing it, however is simply amazing
great job!