mb-audit's People
Forkers
xotmatrixmb-audit's Issues
mb-audit hangs if run directly from Phasor native mode
A simple repro for this is:
- use a Phasor card
- CALL-151
- C0C5 ; select Phasor native
- 2000G
Problems:
Detect6522
only detects 6522-B at $80 and not 6522-A.- This is because 6522-A is mapped to $10.
- After calling
DetectSSI263
the code hangs due to infinite IRQs.- This is because the SSI263 generates a direct IRQ to the 6502, and not via the 6522-B.
NB. On a setup with Slot-1=Phasor, Slot-4=MB-C, then after the MB-C detection is done first, you'll get the following msg:
Slot #1 : Warning: Unknown card (no AYs)
This is because DisplayCardUpdate
gets called after each card has had sub-system detection done.
T6522_1: hangs in IIgs-ROM3 (MAME)
It hangs in this code:
+ lda #0
sta isrIFR
- lda #IxR_TIMER1 ; T1 int from one-shot mode
and isrIFR
beq -
I think the IIgs interrupt handling code is longer than 0x0202 cycles, so the timer has already expired... and so the timer1 interrupt never fires after setting isrIFR = 0.
Support MB in slot 3
One immediate issue is that the //e ROM's 6502 IRQ (=BRK) vector at $FFFE will vector to $C3FA.
(RESET goes to $FA62 and NMI goes to $3FB)
Not an issue with the II/II+, since IRQ goes to $FA40 (there is in C3 ROM).
Perhaps the best solution is to enable the LC's HIGH RAM and change IRQ to vector to my code.
(Fine for IIe/IIc/IIgs since they all have LC's)
NB. After each RESET then re-enable LC and slot 3 ROM.
UI improvements
- For
mba
: at the "Tone" test stage:- state that keys 1,2,3... (and Q,W,E...) toggle the AY channels
- visually show when a channel is on (INVERSE) or off (NORMAL)
- For "(C) SPEECH" test show a message if there are no speech chips + "Press any key"
- currently it just returns immediately back to the main menu
- For "(E) 6522 T2C_H" test show a message if it doesn't run the test + "Press any key"
- currently it just returns immediately back to the main menu
NMI and mockingboard
Hi @tomcw
is there a reference that describes which mockingboards used NMI?
How was a programmer to know which boards used only IRQ?
Tone test not working for first card with MB C & S/SI combo
With a Mockingboard C and a Sound Speech I installed at the same time. The detection works correctly and the multi card tests pass. When mb-audit gets to the tone test, the tone test does not work for the card in the highest slot. It does work ok for the next card. If I swap the cards around, the card in the highest slot is always the one that does not work.
This work ok in AppleWin with its MB C pair, so feels like its something to do with the S/SI and MB C combo. I have another MB A, but its failing the 6522 test 10 (10:00:00) so can't test this with another combo at the moment.
tested with v0.4-beta.
Sorry, this is a bit of an edge case, but had me puzzled for awhile when trying the tone tests until I worked out what was happening.
After playing tune on Phasor, get a bit of noise when testing Phasor
Repro:
- mb-audit v1.1 (preview 0.2)
- do 'Music Test' for a few seconds (perhaps until it uses the AY noise channel?)
- ESC to exit, then do 'Audit & Diagnostics'
- the MB-C (s4) makes no extra noise
- the Phasor (s1) make ~1s of noise before saying 'Classic Adventure'
- NB. doesn't happen everytime
With Sound/Speech I exits to monitor after inital detection check
Using version v0.2, and a Sound Speech I in a IIe, exits to monitor after the initial check. I get this output:
mb-audit v0.2-beta, 2021
1 2 3 4 5 6 7
$00: ?
$80: ?
SP:
65C02 detected
*
Support 'SD Music Deluxe' Mockingboard compatible card
On cea2, Johnson reported:
my card is SD Music Deluxe [...] from Ian Kim that only compatible with Mockingboard, this is a good test to see how good it is, this card can play SkyFox but the tempo or sound not perfect in Music Construction Set.
:
Since it's OPL3 emulate AY8913, it fail is reasonable, maybe you can add this to the record later, the card is using W65C22S (PLCC).
Music test: Add support for Echo+ card
It currently detects Echo+ as an SDM, and on real h/w the playback is silent.
Improve support for Phasor's Echo+ mode
Since I can't read the AY regs, then I don't even know the AY writes are working!
EDIT: I can read the Echo+ AY regs (and this is now implemented in mb-audit).
NB. the Echo+ has a single 6522 and 2x AY's.
- try to play a tone on the AY channels
- try to read AY regs using different four MSB bits...
From Wikipedia:
Although there are only 16 registers, the four MSB bits of the 8-bit bus must be set to the factory default '0000' value when selecting a register. Incorrectly setting the MSB bits causes the chip to ignore the register change. General Instruments did take orders for customized MSB bits (factory set to other than '0000'). The chips made with customize-set MSB register bits allow the same processor to control more than one AY chip on the same bus (e.g. Mockingboard sound card for Apple or TurboSound for ZX Spectrum). There are many new-old-stock (NOS) chips on the secondary market with MSB bits factory set to a non-'0000' value. The non-0000 value can cause significant developmental troubles for designers and repair technicians. Software must be written to identify the correct value of the MSB bits on any given chip. Also, software must be changed or hardware added to allow these factory set MSB chips to be used in place of the default '0000' chips.
Phasor card reactivemicro issue on stereo
Hi,
I have a stereo issue on IIe (enh), the reactivemicro phazor card gives me the following result with mb-audit .
$00 = 1 in slot 4 $80 nothing SP nothing 65C02 detected.
Original reference of the issue :
a2-4am/4cade#538
IIgs: Improve 6522 Test 1
From cea2, Kent Dickey said: (after running against v0.7-beta)
I have two more requests, both low priority: Can you change T6522_1
so that it doesn't hang if the interrupt doesn't arrive? Just put in a
timeout of some sort?
And second, can you change the T6522_1 Timer1 value from $0303 to $0404?
I like to run KEGS in a special forced 1MHz mode when running Apple II
programs, where it ignores the SPEEDREG and always runs at 1MHz and never
2.8MHz. And when I do that with mb-audit v0.7-beta, then T6522_1
hangs since I'm slowing down the ROM interrupt handler (which manipulates the
speed register and so would normally run at 2.8MHz) and so the interrupt
occurs before the T6522_1 code wants it to, and mb-audit hangs.
MEGA Audio card fails with "No Mockingboard detected!"
MEGA Audio configured just for slot 4:
NB. Register $E (IER) reads back with b7=0
(Also: Timer1-Latch is $0000, but the Timer1 count isn't constrained & Timer2 seems to always read as $00FF!)
After patching Detect6522()
to ignore the check for IER.b7==1 and use Timer1 (not Timer2):
Test: 10:02:00
Expected:E0 Actual:60
The test is failing, as again, register $E reads back with b7=0
Use local copy of WAIT, not monitor ROM's
On cea2, ("mb-audit: a Mockingboard test suite for emulators") Kent Dickey said:
I have a suggestion for 11:0E:00: you call the monitor routine WAIT to wait
a number of cycles--and you care about the exact number of cycles elapsed
(well, really you care about cycles mod 2, so if it's off by a multiple of
2 it's fine). WAIT on a IIgs is not cycle accurate, and it might not be
on other monitor ROMs either since the WAIT description says it waits a
minimum number of microseconds. So the IIgs ROM has extra code to ensure
the CPU is running at slow speed, and this adds extra time. You would be
better off creating your own WAIT in your code so that it's consistent
regardless of the monitor code in ROM.
Support MB4c card
From the MB4c User Manual (https://quick09.tistory.com/1385):
Mockingboard 4c needs to use Slot#4, but, APPLE //c already occupied and mouse firmware there.
It shouldn’t be removed some cases it need for software.
For this, I used an switching function to make it vacant Slot#4 for Mockingboard 4c.
Basically, If some data wrote to $C400(In fact C400-C4ff) the CPLD make vacant the Slot#4 and set the Mockingboard
to use it.
Many of cases it works properly, but, some of Mockingboard detecting S/W it failed to detect. Hence, You may need to
Turn it ON manually by put data as below.
]CALL-151
*C403:FF FF
And French Touch code here shows some magic writes to $C403 & $C404 to "wake up MB4C for IIc".
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.