mmruzek
Experienced Member
Hi,
For the last couple of months I have been working with the assembly source code for Palo Alto Tiny Basic (PATB) for the X86 CPU family. The PATB has a long history going back to Dr. Dobb's Journal in the 1970's. The code was an open source alternative for hobbyists to get into the game programming on the cheap.
After the initial publication of the source code a myriad of tweaks, changes and ports appeared. My interest in the 8088 CPU in the IBM 5150 PC and the PC-RETRO (an exact clone) prompted me to investigate creating a version of PATB that could work as a stand-alone boot, much like the CASSETTE BASIC provided by IBM, but with the important difference that we have the source code to modify for our projects and applications.
My coding project began with a version of PATB released by Michael Sullivan for the 8086. His version used DOS INT 21H for Input and Output services. My project replaced those INT 21H calls with calls directly to the BIOS services. I had help with this project, and it was my first major experience with Assembly Language programming.
Right now I am at the point that I want to post an early Beta version of the progress to date, for people to play with. I have managed to get this code to the point that I can burn an EPROM for socket U29 in the 5150 PC and have PATB boot. I have created a compressed zip file of the files and posted it here:
http://www.mtmscientific.com/PATB.zip
Here is a listing from the README file in the ZIP file package:
Here is an explanation of the files in this compressed folder.
PATB.JPG is a photo of the cover of the Interface Age Book
PATBS-SM.JPG is the same photo in a smaller format.
PATB.PDF is a scan of the original source code for Palo Alto
Tiny Basic, from the Interface Age book.
PATB-MTM.ASM is the source code for the MTM version of PATB.
The source code will compile with NASM. Note that no DOS
interrupts are used in the code.
PATB-MTM.COM is a compiled version of the MTM version of PATB.
This version will run on any PC compatible computer. A good way
to start playing with the program...
PATB-MAN.TXT is a short manual about how to use PATB. Note
that the main working difference is how to SAVE and LOAD files.
Note: This would really benefit from a good file system, and
coding modifications to work with larger files.
PATB-ROM.BIN is a binary file, that if burned and placed in
IBM PC socket U-29 will boot PATB instead of CASSETTE BASIC.
This code will fit in a 27128 EPROM without modification, by
using an adapter: http://www.minuszerodegrees.net/5150_u33.htm
RELOC.TXT is the source code for the relocation code in the ROM.
This was compiled using DEBUG. Simply change source and destination
addresses as your application warrants.
README.TXT is this file.
This code has not been extensively error checked. I would appreciate
any and all help to improve the project. Thank You!
PS. PATB expects commands in upper caps only. Here are a few examples:
PRINT "HELLO"
PRINT 2+2
etc.
Michael
For the last couple of months I have been working with the assembly source code for Palo Alto Tiny Basic (PATB) for the X86 CPU family. The PATB has a long history going back to Dr. Dobb's Journal in the 1970's. The code was an open source alternative for hobbyists to get into the game programming on the cheap.
After the initial publication of the source code a myriad of tweaks, changes and ports appeared. My interest in the 8088 CPU in the IBM 5150 PC and the PC-RETRO (an exact clone) prompted me to investigate creating a version of PATB that could work as a stand-alone boot, much like the CASSETTE BASIC provided by IBM, but with the important difference that we have the source code to modify for our projects and applications.
My coding project began with a version of PATB released by Michael Sullivan for the 8086. His version used DOS INT 21H for Input and Output services. My project replaced those INT 21H calls with calls directly to the BIOS services. I had help with this project, and it was my first major experience with Assembly Language programming.
Right now I am at the point that I want to post an early Beta version of the progress to date, for people to play with. I have managed to get this code to the point that I can burn an EPROM for socket U29 in the 5150 PC and have PATB boot. I have created a compressed zip file of the files and posted it here:
http://www.mtmscientific.com/PATB.zip
Here is a listing from the README file in the ZIP file package:
Here is an explanation of the files in this compressed folder.
PATB.JPG is a photo of the cover of the Interface Age Book
PATBS-SM.JPG is the same photo in a smaller format.
PATB.PDF is a scan of the original source code for Palo Alto
Tiny Basic, from the Interface Age book.
PATB-MTM.ASM is the source code for the MTM version of PATB.
The source code will compile with NASM. Note that no DOS
interrupts are used in the code.
PATB-MTM.COM is a compiled version of the MTM version of PATB.
This version will run on any PC compatible computer. A good way
to start playing with the program...
PATB-MAN.TXT is a short manual about how to use PATB. Note
that the main working difference is how to SAVE and LOAD files.
Note: This would really benefit from a good file system, and
coding modifications to work with larger files.
PATB-ROM.BIN is a binary file, that if burned and placed in
IBM PC socket U-29 will boot PATB instead of CASSETTE BASIC.
This code will fit in a 27128 EPROM without modification, by
using an adapter: http://www.minuszerodegrees.net/5150_u33.htm
RELOC.TXT is the source code for the relocation code in the ROM.
This was compiled using DEBUG. Simply change source and destination
addresses as your application warrants.
README.TXT is this file.
This code has not been extensively error checked. I would appreciate
any and all help to improve the project. Thank You!
PS. PATB expects commands in upper caps only. Here are a few examples:
PRINT "HELLO"
PRINT 2+2
etc.
Michael