HA 8 3 - sebhc/sebhc GitHub Wiki
TANG NANO 9K AND HDMI COMPATIBILITY. There's a known issue with the Tang Nano 9K where it will not work with some HDMI TVs. If you plug in your graphics board and you don't see anything on the screen try plugging it into a different monitor/TV.
GO HERE FOR V1.0R8 JUMPER SETTINGS: V1.0R8 JUMPERS
Default I/O addresses
VDP @ 270Q (0xB8)
PSG @ 272Q (0xBA)
APU @ 274Q (0xBC)
A/D @ 276Q (0xBE)
F18A DOCUMENTATION PDF for accessing the extended features of the F18A FPGA graphics
ATARI PADDLE CONTROLLER MOD HERE
HDMI RIGHT ANGLE so you can cleanly exit the cable to the left side
HDMI REPEATER to prevent the monitor from powering the Tang Nano F18
DB9 RIBBON CABLE for joystick adapter
ATARI JOYSTICKS Atari clone joystick
RANGER GAMEPAD gamepad style controller (paddles do not seem to work)
AD7501JNZ QTY 10 for $15 from China
AD7501JN/KN QTY 10 for $5.00 from AliExpress
AD7574JN QTY 2 for $20 from U.S. supplier
AD7574JN/KN QTY 10 for $25 from China
AD7574KN QTY 5 for $3.20 from AliExpress
HA8-3 KIT for $18 from China - includes AD7501, AD7574, AY3-8910, TMS9918, 4116s
YM-2149F QTY 5 - AY-3-8910 compatible - lot 5 pcs for $4 from AliExpress
UA747CN OP AMP for $1/ea from Jameco
UA747CN QTY 5 for $1 from AliExpress
TANG NANO 9K for $15 from AliExpress
For mounting the Tang Nano to the PCB I usually use female headers on the Tang and male header pins on the PCB. For the female headers you can get the 24 pin female headers from Phoenix Enterprises:
24 PIN FEMALE HEADERS from Phoenix for $1/each
Or get 20 pieces of the 40 pin variety and carefully cut them down to 24 pins:
QTY 20 FROM AMAZON for $8
HA-8-3 User Manual
885-1098 COLOR GRAPHICS SOFTWARE H17 H8D DISK IMAGE
HA-8-3 DISTRIBUTION SOFTWARE H17 H8D DISK IMAGE
KALEIDO for CP/M - press 'Q' on the keyboard to quit
MUSICK for CP/M - press 'Q' to quit - KALEIDO but with music
A/D TEST - analog to digital test - press 'Q' to quit
COLOR BARS for CP/M - displays color bars and returns to the command prompt
HA-8-3 DIAG - test graphics, audio and joysticks (8MHZ max speed)
BREAKOUT GAME for CP/M 4MHZ - (COMPLETED) paddle controller test game (8MHZ max speed) - press paddle button or '8' on the H8 keypad to launch the ball
WARLORDS ARCADE for CP/M 4MHZ - (COMPLETED) 2, 4 or 8 MHZ only - Warlords game based on the arcade version by Atari video
SPACE INVADERS for CP/M 8MHZ - (COMPLETED) Space Invaders clone. Use joystick to move and fire
PACMAN83 for CP/M 16MHZ (in-progress) RomWBW 16MHz CPU
How to play PACMAN83:
Use the H8 keypad to move Pacman
8
|
4 <- -> 6
|
2
Or use the arrow keys on the keyboard
Press 'Q' on the keyboard to quit the game
Since the graphics board has a lot of the same hardware as the MSX computer, many of the MSX games can be run on the Heathkit computer using my MSX8 launcher. More information and download links can be found on my Github: MSX8 GITHUB PAGE
The controller ports work as follows:
- Joystick ports are on the AY3-8910 digital ports at address 272Q and register 14 (port A) and 15 (port B)
- Port A (register 14) reports UP/DOWN:
- bits 1 and 2 for player 1
- bits 3 and 4 for player 2
- bits 5 and 6 for player 3
- bits 7 and 8 for player 4
- bits 1 and 2 for player 1
- Port B (register 15) reports LEFT/RIGHT:
- bits 1 and 2 for player 1
- bits 3 and 4 for player 2
- bits 5 and 6 for player 3
- bits 7 and 8 for player 4
- bits 1 and 2 for player 1
- Analog values are on the A/D port at 276Q
DIGITAL PORT READ
01H player 1 UP on port A or LEFT on port B
02H player 1 DOWN on port A or RIGHT on port B
04H player 2 UP on port A or LEFT on port B
08H player 2 DOWN on port A or RIGHT on port B
10H player 3 UP on port A or LEFT on port B
20H player 3 DOWN on port A or RIGHT on port B
40H player 4 UP on port A or LEFT on port B
80H player 4 DOWN on port A or RIGHT on port B
TRIGGER will report UP+DOWN simultaneously
* SET UP PORT A/B FOR INPUT
INIT EQU $
MVI A,07
OUT 272Q+1
MVI A,38H
OUT 272Q
* READ PLAYER 1 UP VALUE (RETURNS 0 IF TRUE, NZ IF FALSE)
RDUP1 EQU $
MVI A,14 ; PORT A (USE 15 TO READ PORT B)
OUT 272Q+1
IN 272Q+1
ANI 01H ; TEST PLAYER 1 UP BIT (PORT A BIT 1)
RET
A/D ANALOG READ
00H player 1 channel 1 (X axis)
01H player 1 channel 2 (Y axis)
02H player 2 channel 1 (X axis)
03H player 2 channel 2 (Y axis)
04H player 3 channel 1 (X axis)
05H player 3 channel 2 (Y axis)
06H player 4 channel 1 (X axis)
07H player 4 channel 2 (Y axis)
* READ PLAYER 1 ANALOG VALUE (RETURNS 0 TO 255)
RDAD1 EQU $
MVI A,00H ; PLAYER 1 ANALOG CHANNEL 1
OUT 276Q
* SHORT DELAY TO ALLOW MUX TO SWITCH AND OP-AMP TO SLEW
MVI A,08H
RDAD1D EQU $
DCR A
JNZ RDAD1D
IN 276Q
RET
New graphics card with integrated F18A clone on a Tang Nano 9K

For I/O address VDP at 240Q (0xA0) and PSG at 100Q (0x40) for playing NABU ported MSX games







F18A SIGNON SCREEN

PACMAN83 SCREENSHOT

WARLORDS SCREENSHOT

BREAKOUT SCREENSHOT

INVADERS SCREENSHOT

Wire a potentiometer as follows for paddle type controls for the HA-8-3 (view from front of potentiometer)

Center of potentiometer goes to pin 10: ANA IN
Left arm of potentiometer goes to pin 1: GND
Right arm of potentiometer goes to pin 3: VREG
If control movement in the game is reversed then swap pins 1 and 3
I used a 500ohm but the HA-8-3 schematics suggest using a 10K ohm.
2024 PADDLE CONTROLLERS
Locate the open connector on the potentiometer and the RED wire on the button

Solder a wire from the open connector to the RED wire. This needs to be done for both controllers.

VINTAGE PADDLE CONTROLLERS
Solder a wire from the BLK wire connected to the button to the open connector on the potentiometer as shown here:
Wire up a connector on the other end of the cable to be connected to the HA-8-3 as shown here:
And here is the wiring diagram:


