![]() |
Supercharger
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() I like it, and don't know why. |
Have a look at the Supercharger Plus The never released x286 extension! ![]() |
What is it for? | What's in the box? | |
It's a box inserted in the DMA/ACSI chain. The mother board is built around a NEC V30 8Mhz (the best 8086 compatible),
a slot for a FPU 8087 and 1Mb RAM. It's a really good PC XT emultor. A "parasite" card on the Atari:
|
![]() |
Publisher, PC Gem system, Hercules mode. |
![]() |
Windows 3.0 running Write, the control panel and my setup. |
Games with Windows 3.0, 8 balls in JezzBall and it's not over! |
![]() |
The FORTH provides some dialog instructions with the Supercharger. This is how to do:
|
Download the source code. |
![]() |
The word install loads the Tool_Box using sc_load. If everything is OK then sc_boot installs the system on the PC side and initializes the dialog. Last, the word verif is called, it uses sc_check to check that the installation is correct. It returns the Tool_Box's version number (currently 1.50). |
A buffer is required in ST-Ram, this because transferring data to the SuperCharger uses the DMA that can't access the TT-Ram.
The word pc_prog loads into the bbuffer a binary file A_FPU (see below "On the PC side") containing the x86 program. This program is sent to the NecV30 thanks to sc_sendm. Note the address format 0x0300000 corresponding to segment=0x0300 and offset=0x0000, this is address 0x3000 for the PC. Then it is executed using sc_exec, note that this instruction is given the start address of the program. If everything is OK, the word ends with an execution message. |
![]() |
![]() |
The word racine (root in french) takes a real number from the stack, stores it using if! (Intel Float Store) because on the PC side
the byte order is reverted.
The eight bytes of the real number are sent using sc_xsendm. Then, it's the PC program that computes the square root. The eight bytes of the result are taken back using sc_xgetm and reordered with if@ (Intel Float Recall). On the right, the execution window with computation of the square roots of 1024 and 3. |
![]() |
![]() |
The directive >export allows you to save the following lines as a text into "A_FPU.S" until the directive >comp is encountered.
At start, the ToolBox initializes the Code Segment (CS), this one is copied into ES and DS to access data. Then, Finit initializes the FPU. The call Int 60h with ah=4 is the "receive data" of the eight bytes that are stored into variable real. Then, this real is loaded into the fpu, its absolute value and then its square root are computed and the result is stored back into real. Finally, the call int 60h with ah=5 corresponds to "send data" of the eight bytes of the variable real. This code is assembled by the external assembler NASM.TTP that is called by the directive >exec. It will output the binary file A_FPU loaded by the word pc_prog. |
Here is the result in CGA after a quarter of an hour (depth 240, not improved with the visible symetry to be adaptable to other coordinates). |
![]() |