Tandy 64 Jr.
A intro for the IBM PCJr.
Recorded from real hardware: (he, we don't have a way to capture RGBI output yet... sorry)
(The "Tandy 64" for the Tandy 1000HX is here)
Requirements
-
IBM PCJr.
-
Requires at least 256Kb RAM
-
Install jrconfig and use with at least
/v32. eg: in yourconfig.sysadd:device=jrconfig.sys /v32
How to compile it
- Install nasm
- Install alink
- (Optional) Install Python 3
- (Optional) Install DosDox-x
- (Optional) Install upx
And do:
$ make
To run it in the DosBox-x emulator, do:
$ make run
Resources
The /res folder has the music, graphics and fonts in their native formats.
And in the /tools folder are the scripts to convert them to a more optimized
format for the Tandy.
To convert the resources to native do:
$ make res
Source code structure
The /src folder contains the source code and all converted resources.
There are 4 .asm files:
main.asm: setups the stack and calls the pre_intro, intro and post_intro in orderpre_intro.asm: shows the C64 loading screenintro.asm: Everything happens here. The code is somewhat messy. There a few state machines to control and sync the different actions. Some pointers:plasma_tex_*: refers to "plasma textures", the ones that appear at the very beginningplasma_*: (without the_texsuffix): refers to the plasma animation.new_i08_*: there are like 3 different interrupt handlers. They are used in at different partsboy_anim_*: code related to the guy walking/dancingtext_writter_*: code related to the "cursor writting text"letter_state_*: code related to the PVM letters animationstate_*/main_state_*: "main" state machine codescroll_*: scroller coderaster_bars_*: raster bar effect code
post_intro.asm: the final C64 screen
Tools
In tools folder you will find:
convert_vgm_to_pvm.py: Converts VGM music format to PVM (Plays VGM Music) music format- Almost the same as VGM but uses Run-leght encoding. As an example, the music that we use takes ~78K in VGM format, and around ~48K in PVM format. It is good to have it in less than 64k (1 segment)
- A stand-along PVM player could be found here: pvmplay.asm
convert_gfx_to_bios_format.py: Converts graphics to Tandy format.convert_anim_to_frames.py: Quick hack to dump animation frames in tandy format
We also used:
- Deflemask for composing the music
- plasma_generator.py: to visually build the plasma effects
- VChar64 for the charset
- The charset used is based on one used on a c64 intro?? (couldn't find the original intro)
- [IBM PCJr Techinical Reference manual][https://archive.org/details/IbmPcjrTechnicalReference]
- IBM PCJr BIOS dump
- Which is based on based on the disassembled BIOS from the Technical Reference with some comments of our own
Lessons learned
- Comming soon™
Questions and others
Do you have questions? Do you want to collaborate with PVM? We're here:
- http://pungas.space
- On IRC. EFnet . Channel #pvm
