I’m getting burnt out but what happened is I found out that Turbo Pascal 5.5 is now FREE!

Which I thought was VERY cool.. So after a while of googling around for neat & interesting Pascal stuff, I came across this BBS door game, called TradeWars, that included the source!

While going through the source it seemed it could be easily ported to C so I started late Friday (or was it Saturday AM?)…

Anyways I’d feel safe with a tentative ‘public’ release of the source..

My C is based on the Pascal, which is in turn based on the BASIC code.. I’ve tried to keep it true to the pascal so there is a LOT of 2 letter variables, and a lot of WTF’s? BUT I did add comments as I was going through it.

It *SHOULD* be somewhat portable C, and I haven’t included binaries just yet… It’s still a work in progress, but I wanted to let out a WIP thing…

When it made mention that for multiuser operations to work on Unix v7 you have to enable modem control… I’ve never gotten the DZ to work on 32v so seeing that it’s basically just Unix v7 on the VAX it probably worked in the same manner.

So I changed the following line from my 32v’s dboot.ini from:

set dz lines=8

to

set dz lines=16

att dz -m 2311

And now SIMH will listen on TCP port 2311 and allow me to connect into it’s serial ports!

To commemorate the occasion Burger King of Japan is releasing…. a 7 patty burger.

Windows 7 Whopper

Yeah, i know… weird.

Anyways for the people that will be upset about the whole XP mode thing, when they find out they need a cpu that supports visualization extensions (as not all new ones do!) Don’t forget that Virtual PC 2007 sp1 is still an option.

Another interesting thing is that you can install from a USB stick instead of the DVD media if you have some machines without working DVD ROM’s or perhaps NO optical media at all…

For a while I was unsure of the syntax of printing from within Qemu. I know for the Xenix crowd this is kind of ‘a big deal’. Along with more serial ports for consoles & stuff…

Anyways for the printer I found an example on line, and it’s quite easy:

qemu xenix_hard_disk.vhd -parallel file:lpt1: -M isapc -m 16 -k en-us

Now I’ve seen it actually spool stuff to the printer once the emulator is exited… I’m sure there is some way to kick these jobs better… I’ve also been trying to keep it as dumb as possible and there is a chance my HP printer /scanner thing doesn’t talk like a 1970’s style printer.. I’ll know more tomorrow..

But at the moment this should serve enough to get people started. Also you could redirect the parallel port out to a file, and then open that file in say word and print from there as well.

This is becoming a bigger deal now that future versions of Virtual PC no longer support things like parallel ports, floppy disks & sound blasters…. Qemu will be the only out for a few people.

.TYPE V4USER.TXT
Welcome to RT-11 Version 4. RT-11 V04 provides new hardware support
and some major enhancements over Version 3B.

Please use the HELP command; it describes the new options in many
of the utilities.

If you are using a terminal that requires fill characters,
modify location 56 with a Deposit command before proceeding with
system installation. LA36 DECwriter II and VT52 DECscope terminals
do NOT require such modification.

A maximum of 56 lines are allowed per listing page.
Is this acceptable? YA maximum of 136 characters are allowed in a formatted
(ASCII) record. Is this acceptable? YA maximum of 6 channels may be open at a given time.
Is this acceptable? YThe FORTRAN compiler can compile system-specific OPEN and CLOSE
statement keywords for RT-11, RSX-11, and RSTS/E systems. These
statements are currently compiled for the following system: RT-11
Is this acceptable? YFORTRAN can produce inline code for EAE, EIS or FIS hardware,
or it can produce threaded (THR) code which is hardware independent.
Should the compiler produce EAE code? NShould the compiler produce EIS code? N
Should the compiler produce FIS code? NShould the compiler produce THR code? YThe inline compiler can optimize for SPEED or for SIZE. These
optimizations are mutually exclusive. Do you want
the optimization to be for SPEED? NDo you wish a threaded only compiler? Y
Compiler options selection complete.

Now with that out of the way, we build a test program to make sure our compiler & library are working.

.COMPILE DEMO.FOR
.MAIN.

.LINK DEMO,FORLIB

.RUN DEMO
***** RT11 FORTRAN IV V2 DEMONSTRATION TEST *****

INSTALLATION SUCCESSFUL IF NO ERROR MESSAGES
WERE PRINTED ABOVE.

**** FORTRAN DEMONSTRATION TEST COMPLETE *****

Ok everything looks fine! Now onward to Dungeon! First we copy everything to the RK0 disk…

.COPY RK1:*.* *.* Files copied:
RK1:ACTORS.FTN to DK:ACTORS.FTN
RK1:CLOCKR.FTN to DK:CLOCKR.FTN
RK1:DEMONS.FTN to DK:DEMONS.FTN
RK1:DGAME.FTN to DK:DGAME.FTN
RK1:DINIT.FTN to DK:DINIT.FTN
RK1:DMAIN.FTN to DK:DMAIN.FTN
RK1:DSUB.FTN to DK:DSUB.FTN
RK1:DUNGEO.DOC to DK:DUNGEO.DOC
RK1:DVERB1.FTN to DK:DVERB1.FTN
RK1:DVERB2.FTN to DK:DVERB2.FTN
RK1:GDT.FTN to DK:GDT.FTN
RK1:OBJCTS.FTN to DK:OBJCTS.FTN
RK1:RRND.MAC to DK:RRND.MAC
RK1:RSXTIM.MAC to DK:RSXTIM.MAC
RK1:SVERBS.FTN to DK:SVERBS.FTN
RK1:VERBS.FTN to DK:VERBS.FTN
RK1:VMSRND.MAC to DK:VMSRND.MAC
RK1:BALLOP.FOR to DK:BALLOP.FOR
RK1:DINDX.DAT to DK:DINDX.DAT
RK1:DSO1.FOR to DK:DSO1.FOR
RK1:DSO2.FOR to DK:DSO2.FOR
RK1:DSO3.FOR to DK:DSO3.FOR
RK1:DSO4.FOR to DK:DSO4.FOR
RK1:DSO5.FOR to DK:DSO5.FOR
RK1:DSO6.FOR to DK:DSO6.FOR
RK1:DSO7.FOR to DK:DSO7.FOR
RK1:LIGHTP.FOR to DK:LIGHTP.FOR
RK1:NOBJS.FOR to DK:NOBJS.FOR
RK1:NP.FOR to DK:NP.FOR
RK1:NP1.FOR to DK:NP1.FOR
RK1:NP2.FOR to DK:NP2.FOR
RK1:NP3.FOR to DK:NP3.FOR
RK1:NROOMS.FOR to DK:NROOMS.FOR
RK1:ROOMS.FOR to DK:ROOMS.FOR
RK1:RTTIM.FOR to DK:RTTIM.FOR
RK1:SOBJS.FOR to DK:SOBJS.FOR
RK1:VILLNS.FOR to DK:VILLNS.FOR
RK1:VMSTIM.FOR to DK:VMSTIM.FOR
RK1:D.ODL to DK:D.ODL
RK1:DTEXT.DAT to DK:DTEXT.DAT
RK1:RSTSCB.CTL to DK:RSTSCB.CTL
RK1:RSXBLD.CMD to DK:RSXBLD.CMD
RK1:RSXCMP.CMD to DK:RSXCMP.CMD
RK1:RTBLD.COM to DK:RTBLD.COM
RK1:RTCMP.COM to DK:RTCMP.COM
RK1:VMSBLD.COM to DK:VMSBLD.COM
RK1:VMSCMP.COM to DK:VMSCMP.COM

Well there you have it, the Fortran installation, compilation, linking & execution of the oldest source version I can find at the moment of Dungeon/Zork. Who knows, maybe someday this may help someone revive other old programs.

I was looking around for some old compilers as a side project of mine has stalled looking for some TS-11 Fortran compiler with overlays…

Anyways I found mention of this DOS-Minix. It does NOT comply with things like DPMI, VCPI as it will not run in nice things like emm386 & other v86 switchers. However it will run in DOSBox.

Digging through the kernel & the boot program, you’ll find the basics of a DOS Extender. The boot program will allocate as much memory as it can from the XMS driver, and then switch to protected mode & transfer control to the kernel. Likewise the kernel then uses MS-DOS & BIOS calls for video, disk access etc as you can find it’s int86 calls that switch from protect to real mode, (doshead.s) or even in the disk driver dosfile.c

Installation is SUPER simply, just download the file DOSMINIX.ZIP unzip it somewhere then either use the great DOSBox, or any other pc emulation etc that you could want to use… The NTVDM from Windows NT is not good enough as you’ll get an error message about not being able to load the 386 kernel on an 8086. This again probably stems from dosminix not using DPMI calls, but the old fashioned raw XMS calls.. I guess it *could* be updated…

Start it up is simple you just run the boot program and point it to a diskfile:

boot minix.mnx

Then you’ll get greeted by the boot loader.. For me hitting any key doesn’t do anything, so I just press escape, then type in boot.

And in NO time you’ll be up and running MINIX!

The ‘best’ way to shut it down I’ve found is to type in ‘reboot’ then press escape like wild, and you’ll interrupt the boot loader. Then you can type in ‘exit’ and you’ll get dumped back into MS-DOS.

I think it’s an interesting example of how to use the ancient MS-DOS to bootstrap yourself into protected mode… And the source seem somewhat straight forward…