8-Bit Labs

Experiments in retro computers, assembly language and electronics

Game Boy Color Palettes

26 Dec 2023

I’d managed to get colour working on the GBC using GDBK-2020 but for some reason I ran into a mental block setting the map attributes. I also had trouble exporting the palette and map attributes from the popular Game Boy Tile Designer (GBTD) and Game Boy Map Builder (GBMB). Source code from this post is on GitHub at rprouse/GBC-Samples. I won’t go into detail on using GBTD and GBMB, but I will highlight some of the export settings that I found non-intuitive. Game Boy Tile Designer Start by setting the Color set to Game Boy Color then editing the Palettes…...

Supermon+64 v1.2

13 Nov 2023

Supermon+64 V1.2 Supermon64 is a machine-language monitor for the Commodore 64 originally written by Jim Butterfield. The following was take and modified from the instructions at jblang/supermon64. I copied them here for my reference. Usage Instructions Number Bases Prefix Base $ Hex + Decimal & Octal % Binary Overview g go (run) j jump (subroutine) l load from tape or disk m memory display r register display s save to tape or disk x exit to basic a simple assembler d disassembler f fill memory h hunt memory t transfer memory c compare memory @ disk status/command Number Conversion $2000...

Clear Screen Utility for CP/M

19 Jul 2023

Occasionally after playing a game or running a program that uses color in CP/M, my terminal isn’t reset and isn’t using my default colors. Even worse is when it leaves the terminal with dark text on a black background! CP/M has the CLS command, but it does not reset the default colors, so I decided to write a quick assembly program to reset the terminal using ANSI Escape Sequences. ; Clear the screen and reset colors org 100H ; CPM Program start address ; ============================================================================= ; Definitions and methods for CP/M development bdos equ $5 ; CP/M BDOS vector address...

Using the HI-TECH C II Compiler in CP/M

15 Jun 2023

The HI-TECH C is a nearly ANSI C compliant compiler that runs on Z80 based CP/M machines. Version 3.09 was last released in March 1989 but the company has since made it freely available for both commercial and non-commercial use. Tony Nicholson has picked up development of the compiler and has released 17 patched versions of HI-TECH C on GitHub at agn453/HI-TECH-Z0-C. You can download the latest binary distrubtion from htc-bin.lbr. A Z280 version is also available, z280bin.lbr. Each of these are uncompressed LBR files, so you should be able to copy them to a disk and extract them using...

Z80 Assembly Instruction Set

31 May 2023

As I am refreshing my Z80 assembly skills I realized that I don’t have a good understanding of some of the less popular instructions. To make sure that I understand how everything works I’ve gone through all of the instructions and made notes on how they work. This will be a living document that I will update as I find errors or ommisions. It is intended to be a quick reference. Each of the instructions has the information that I find useful, not a full explanation. I hope that others find it valuable too. Data Load Instruction Destination Source LD...

Learning Z80 Assembly on the RC2014

20 May 2023

I am reading Programming the Z80 by Rodnay Zaks to refresh my knowledge of Z80 assembly. I usually develop and compile the code on my laptop, but this time I wanted to experience writing and testing the code on my RC2014 computer running CP/M. The assembler that ships with CP/M uses 8080 instructions, so instead I am using Z80ASM by SLR Systems. I edit the files using ZDE 1.6. The book provides sample code like this for 8-bit addition, LD A,(ADR1) ; LOAD OP1 INTO A LD HL,ADR2 ; LOAD ADDRESS OF OP2 INTO HL ADD A,(HL) ; ADD OP2...

Initializing 8-Bit Subsytems

09 May 2023

Journey Back to the 8-Bit Era: Welcome to My Lab! Hello, fellow retro enthusiasts! Welcome you to my digital sanctuary, the 8-Bit Labs. This is more than just a blog; it’s a personal journey back to the time when 8-bit computers ruled the world. If you, like me, have a passion for retro computers, 6502 and Z80-based home-built systems, Game Boy hardware and programming, and RC2014 computers, you’ve come to the right place! From a young age, I’ve been fascinated by the technological wonders of the 8-bit era. The 6502 and Z80 microprocessors, the powerful hearts that pumped life into...