Search found 395 matches

by Bill B
16 Feb 2018 23:12
Forum: NEW HARDWARE
Topic: Keyboard replacement
Replies: 45
Views: 66432

Re: Keyboard replacement

Dave, The open collector / open drain buffers were mandated by your requirement of being able to connect the Propeller interface in parallel with the MTX keyboard. Without them you could have the situation of no keys on the add-on keyboard pressed, so the Propeller outputting a logic high on all the...
by Bill B
16 Feb 2018 09:46
Forum: NEW HARDWARE
Topic: Keyboard replacement
Replies: 45
Views: 66432

Re: Keyboard replacement

Tony,

The Propeller output cog does a "waitpne" on nine pins, not eight. The ninth pin is toggled by the keyboard decode cog whenever the state of the keyboard matrix changes. This causes the output cog to update the sense lines, even if the drive lines don't change.

Bill.
by Bill B
15 Feb 2018 20:57
Forum: NEW HARDWARE
Topic: Keyboard replacement
Replies: 45
Views: 66432

Re: Keyboard replacement

Dave,

The issue is not multiple keys pressed simultaneously. Existing code will cope with that. The problem comes with any games that activate more than one keyboard matrix drive lines at the same time. Tony suggested that some games may do that to speed detection of "any key" presses.
by Bill B
15 Feb 2018 15:07
Forum: NEW HARDWARE
Topic: Keyboard replacement
Replies: 45
Views: 66432

Re: Keyboard replacement

Tony, Interesting. It had not occurred to me to pack the results from multiple scan rows in order to minimise reads from hub RAM. This will be slower than what we currently have, but probably still OK for the MTX. For the MTX+ at full speed it will increase the number of wait states required. I had ...
by Bill B
12 Feb 2018 21:07
Forum: NEW HARDWARE
Topic: Keyboard replacement
Replies: 45
Views: 66432

Re: Keyboard replacement

Tony, The MTX ROM certainly only activates one drive line at a time. Not being a game programmer / player I don't have any real feel for whether games might activate multiple drive lines. Perhaps Dave's trials might identify any issues. It would not be too expensive to add one more test for all eigh...
by Bill B
12 Feb 2018 14:57
Forum: NEW HARDWARE
Topic: Keyboard replacement
Replies: 45
Views: 66432

Re: Keyboard replacement

The USB protocol is far more demanding than PS/2. Using the USB driver that I have found requires three cogs to read the keyboard. There are also some differences in the electrical connection required. Dave's current plan is to have a link (or links) which adapt the electrical interface appropriatel...
by Bill B
10 Feb 2018 00:13
Forum: NEW HARDWARE
Topic: Keyboard replacement
Replies: 45
Views: 66432

Re: Keyboard replacement

Dave wanted a description of the Propeller code ... The Propeller chip is a fast 32 bit micro-controller, designed for hardware interfacing, with eight largely independent cores, called "Cogs" in Propeller speak. It can be programmed in assembler, a high level language designed specificall...
by Bill B
08 Feb 2018 14:58
Forum: NEW HARDWARE
Topic: Keyboard replacement
Replies: 45
Views: 66432

Re: Keyboard replacement

Just to get the attributions right (as per Dave's web page):

Original idea - Dave
Suggestion of using Propeller - Martin
Propeller firmware - Me
First hardware test - Martin
PCB concept design - Dave
by Bill B
09 Dec 2017 22:06
Forum: PROGRAMMING
Topic: Coding in Assembler on the MTX
Replies: 7
Views: 11214

Re: Coding in Assembler on the MTX

I too first learnt Z80 programming on a Sinclair ZX81. The books I used at the time were: Machine Language Programming made simple for your Sinclair - Anonymous Understanding your ZX81 ROM - Ian Logan Sinclair ZX81 ROM Disassembly Part A - Ian Logan Sinclair ZX81 ROM Disassembly Part B - Ian Logan &...
by Bill B
03 Dec 2017 18:46
Forum: SOFTWARE
Topic: Cleaning Game Audio Files
Replies: 24
Views: 27380

Re: Cleaning Game Audio Files

The timing does not have to be exactly cycle accurate, however the MTX tape input routine uses a Z80 busy loop to measure the time between CTC interrupts. If there is too much latency in the emulated interrupt response, then this timing becomes inaccurate, and cannot reliably distinguish between zer...