BalCheck ("Modified") --------------------- By Richard Degler March 5, 2010 Overview -------- This is a compilation of three postings that Richard made to the Bally Alley message board. This document describes running the modified version of BalCheck with the MESS emulator and changes that were made to the ROM images. The BallyCheck software WORKS without the BalCheck "unit" with its twin 7- segment LED displays, it's just not as useful. The modified version of BalCheck (X_BALCHK.bin) doesn't even need a real Bally, it works in MESS. BalCheck - What Has Been Changed in Machine Language ---------------------------------------------------- The BalCheck unit only overrides the Cartridge slot and displays status. It should keep running with NO controllers plugged in, as it is testing the Arcade hardware only and assumes the handles are off. Trouble with using MESS is the knob is simulated by Z & X keys and only if you slow the rate down can you get it to $00 or $FF. NOP'ed out this test at $235C so it runs without a Knob Error: JR NZ,A23CF ; Error 14 Then found out it does a checksum on ITSELF, so I had to change its check-sum byte to $C8 so it would pass and get beyond that. Now it does just four passes then loops waiting for key entries showing only the byte mid-screen it used for Shift/Flop/etc tests (first pass might be black-on-black, give it a few seconds) : A23BD JR A23BD ; Loop forever, but process interrupts Keypad Commands --------------- You can enter keypad commands using this key translation: MESS = Keypad - Command (Comment) ---- ------ ----------------- C = 1 - Memory Read (4-Hex digits Address, loops reading) Up = 2 - Memory Write (2-digit Data, 4-digit Address, loops) Dn = 3 - Input Port Read (2-digit Port number, loops reading) O = 4 - Output Port Write (2-digit Data, 2-digit Port, loops) R = 5 - Memory Read and Write (2-digit Data, 4-digit Address) S = 6 - Display all Input Devices (Crashes in MESS 0.126 ?) H = 7 - Rainbow Color Display (almost as nice as RAINBOW v3) kp/ = 8 - Enter Machine Code From Keypad (see * note below) 7 = 9 8 = A 9 = B kp* = C 4 = D 5 = E 6 = F kp- = 0 1 = Q/S (select Burn-in mode or 4-pass Bench mode) E = CE (Clear Entry - unless already looping) kpEnter = Go (Run, but crashes on bad code!) and ... F3 or = RESET button (only way to restart) Once it starts one of the routines it keeps looping that function so the repairman can hook up an oscilloscope and see what's what. Holding the Q/S key (Quit/Stop ??) at the right time will make it loop the tests forever - but it is also supposed to bail out ??/? * note: when entering machine code 4444 is a nice place to start. Clear Entry only erases the first digit of the byte, be careful. Happy Bal-Checking!! Have up-loaded it as X_BALCHK.bin - save to: MESS/software/astrocdw/ for WHITE.ROM - WON'T work for Astrocades. Remember to lower your sound, it almost as bad as Muncher's noise. Part III - Starting Gunfight from BalCheck -------- Here's how to play Gunfight... This may seem a little advanced to some, but really it's just a cookbook method. If you follow the directions, then it will work. Gunfight kinda works in MESS. Hit 'kp/' with NumLock on, then 'C','H','4','5' and hit 'kpEnter' and it asks for "Max Score" - you just cant read it. Enter two digits and it starts up until it gets lost in a PAWS since Interrupts have not been set yet. Here's a better way to do it. Create a stub that will CALL MACTINT then JP GFSTRT using '8' then "4444" and enter "CD","8B","01","C3","DE","17" then 'GO'. Those routines are in the same place throughout all three BIOS, and the other on-board games should work, replacing after "C3": "28","13" for CMSTRT (CheckMate) "20","10" for CALCST (Calculator) "19","0E" for SCBST (Scribbling) but ... For MESS that's "/","OOOO","*4","/9","-C","*v","45","CH" where those are letter 'O's, numbers are in the top row, arithmetic symbols are from the keypad ONLY and 'v' is the Page Down key. Run with 'keypadEnter' - and for the others replace after "*v": "^/","Cv" for CMSTRT (CheckMate) "^-","C-" for CALCST (Calculator) "C7","-5" for SCBST (Scribbling) What key does the '^' stand for? You got it, the Page Up key! That's a lot of work when you could have pressed RESET instead, plus you have to guess at what the Options menu is asking for. Just don't say it can't be done.