Skip to content

Code Builder

Generate TMPx code (Turbo Assembler) in seconds.

Documentation

Option Your Decision Additional Details
Add BASIC line to execute with ‘RUN’ Execute your code by typing RUN within BASIC
Code location in memory Where should your code reside in memory? Hexadecimal values please! 0000 – FFFF.
Set up for screen splits Use $D012 to split the screen into sections. EG to change colours or play SID music from HVSC.
Character set filename Leave blank if you will use the stock character set. This file must exist in your project’s folder for TMPx to find it.
Character set location in memory Where in memory will this reside? 2000, 2800, 3000, 3800 are most common.
Screen RAM filename To copy your text or map directly to the screen at $0400. Can leave it blank.
Screen RAM file’s location in memory We’ll be nice. You don’t HAVE to put it at $0400 if you don’t want to display it immediately 😉
Colour RAM filename Want to add colour to your screen grab from the previous 2 lines? Here’s your chance! Otherwise leave it blank.
Colour RAM location in memory Stick it at $d800 to colour the screen immediately. Stick it in available RAM if you’re saving it for later.
Sprite set filename Can leave blank if you will not use sprites
Sprite set location in memory Where should your sprites be located in memory?
Koala pic filename Can leave blank if you will not use sprites
Koala location in memory Where should your sprites be located in memory?
Music filename You can download files from HVSC but must extract the C64 data / remove the .SID player header.
Music location in memory If you don’t know these values you can use https://www.hvsc.c64.org/search to find the Load, Init and Play addresses.
Music initialization location
Music player routine
Split 1 Did you press the checkbox for setting up for screen splits? If so, now’s your chance to add code tidbits for each split. Leave blank if you didn’t check the screen split box above.
Split 2 Can leave blank if only 1 screen split.
Split 3 Can leave blank if only 2 screen splits. You can additional splits manually if you need more 🙂
CPU detection Identify if computer NTSC/PAL/SCPU/Ultimate64 and set a value to variable cputype.
Clean the screen $D800-$DBFF to #$00, $0400-$07FF to blank space. Note, this may overwrite data if you specified screen RAM to $0400 and colour RAM to $d800 above.
Additional setup / init routines If you have some init routines you like, copy and paste them in here. Again, don’t press enter after your last entry! A blank line will break the assemble process. To be fixed soon.
1×1 scroller Add code for a 1×1 text scroller.
1×2 scroller Add code for a 1×2 text scroller. Enter “1×2” in the split boxes or “jsr scroller1x2” to activate! Use < and > in your text to increase and decrease speeds.
2×2 scroller Add code for a 2×2 text scroller. Enter “2×2” in the split boxes or “jsr scroller2x2” to activate! Use < and > in your text to increase and decrease speeds.
FLI display code
Scroll text filename Can leave blank if you will not use scroll text.
Scroll text location in memory Where in memory do you want your text?
Joystick port 1 Add some basic support for joystick in port 1. Checks firebutton first, then branches to direction joystick is tilting.
Joystick port 2 Add some basic support for joystick in port 2. Checks firebutton first, then branches to direction joystick is tilting.
Memory copy routine Easy memory copy routine
VIC bank selector Usage: lda #0/1/2/3 jsr vicbank
Chart showing beginning address of each text line Useful if you need a reference chart to look up values when plotting text to the screen.
Sine data – number of points Can leave blank if you will not use data for a sine pattern.
Sine data – amplitude 1-255, answer in decimal please.
Cosine data – number of points Same as above, but a different pattern! Can leave blank if you don’t need data for a cosine pattern.
Cosine data – amplitude 1-255, answer in decimal please.
You can use the Fuzzbouncer to generate more sprite/scroller/swing data if preferred.