|
Joined: Mar 2001
Posts: 17,217 Likes: 234
Very Senior Member
|
Very Senior Member
Joined: Mar 2001
Posts: 17,217 Likes: 234 |
Great. I've checked in a fix that should prevent the debugger from stomping most of the read-activated soft switches.
|
|
|
|
Joined: Feb 2014
Posts: 1,102 Likes: 173
Very Senior Member
|
Very Senior Member
Joined: Feb 2014
Posts: 1,102 Likes: 173 |
One of the things I had been lamenting was that the apple II+ keyboard couldn't type all of the characters. Turns out there was a cool device called the Videx Enhancer II that would do this, and in addition, also provide macro keys. There was also a function key strip that would plug into it called the Videx FunctionStrip. This board would install in between the keyboard and the apple ii. It had a 6502 processor on board with 1k of memory to monitor the apple 2 keyboard and pass the keystrokes along. It's cool that there was great documentation providing full source code and schematics. I wanted to look at the code and figured out by pausing the apple II driver, I could load the rom file into memory at $1800 and use the mame debugger to do the disassembly. load "Videx Enhancer II ROM - 2716.BIN",1800 dasm "VidexEnhancer.txt",1800,800 The rom file doesn't exactly match up with the assembly listing given in the manual, but it's pretty close. The following are some of the Enhancer ]['s features: *Full ASCII keyboard (128 ASCII codes) *The complete printable ASCII character set —including lower case — may be displayed *User definable keys — with down loading from disc [section: 5.f] *Type ahead buffer [section: 5.g]*Auto repeat [section: 5.a.3] *Fast repeat [section: 5.a.3] *Normal Apple ][ mode [section: 5.d] *Typewriter like operation [section: 5.e] *Shift—lock feature [section: 5.e.1] *Control — Reset protection (section: 5.c.1] *Simple installation [chapter two] *Microprocessor controlled (6500 series) *Self test diagnostics [section: 5.h] *A 2716 EPROM is used for on board firmware
*Complete firmware listings [appendix Y] *Complete schematic [appendix Z]
*Dvorak keyboard option
Your new keyboard Enhancer ][ utilizes a sophisticated microprocessor with its own RAM. Although the Enhancer ][ is more sophisticated than it’s predecessor, the Keyboard & Display Enhancer, it is significantly easier to install. The microprocessor extends the features of the Enhancer ][ beyond those of the original Keyboard & Display Enhancer with features such as user definable keys and a type ahead buffer. The caps lock, caps unlock, shift lock and control — reset features are preserved, thus supporting the normal Apple ][ keyboard as well as a typewriter like mode.
Ul—2716 EFROM (Enhancer ][ Firmware) U2—6504 Microprocessor (6502 instruction set) U3—2114 1K x 4 RAM U4—2114 1K x 4 RAM U5—74LS05Hex inverter, open collector U6—74LS373Octal D latch U7—74LS139Dual 2—4 line decoder U8—74LS05Hex inverter, open collector U9—74LS373Octal D latch U10—74LS374Octal D flip—flop Ull—Keyboard output 2N3904 — Reset logic
|
|
|
|
Joined: Feb 2004
Posts: 2,598 Likes: 301
Very Senior Member
|
Very Senior Member
Joined: Feb 2004
Posts: 2,598 Likes: 301 |
Why didn't you just use unidasm to disassemble the ROM?
|
|
|
|
Joined: Mar 2001
Posts: 17,217 Likes: 234
Very Senior Member
|
Very Senior Member
Joined: Mar 2001
Posts: 17,217 Likes: 234 |
Because, and I might as well give out the secret: unidasm doesn't actually do anything, it just prints usage text no matter what arguments you give.
Or at least that's my experience.
|
|
|
|
Joined: Feb 2004
Posts: 2,598 Likes: 301
Very Senior Member
|
Very Senior Member
Joined: Feb 2004
Posts: 2,598 Likes: 301 |
./build/mingw-gcc/bin/x64/Debug/unidasm.exe -arch m6805 -skip 0x100 -count 39 -basepc 0x100 roms/Tiger-Heli_with_MCU/68705brian.bin
100: 9c rsp
101: a6 ff lda #$FF
103: b7 04 sta $04
105: b7 05 sta $05
107: b7 01 sta $01
109: b7 00 sta $00
10b: a6 00 lda #$00
10d: b7 06 sta $06
10f: 15 01 bclr 2, $01
111: a6 73 lda #$73
113: b7 00 sta $00
115: 14 01 bset 2, $01
117: 9a cli
118: 20 fe bra $118
11a: 9d nop
11b: 9d nop
11c: 9d nop
11d: 9d nop
11e: 9d nop
11f: 9d nop
120: cd 01 30 jsr $0130
123: cd 01 50 jsr $0150
126: 80 rti Works just fine. As long as you give it a recognised -arch and a filename it will produce disassembly. The usage message tells you you need to give it -arch and a filename.
|
|
|
|
Joined: Feb 2014
Posts: 1,102 Likes: 173
Very Senior Member
|
Very Senior Member
Joined: Feb 2014
Posts: 1,102 Likes: 173 |
I tried it and yes, you can get a disassembly with
./unidasm -arch m6502 -basepc 1800 "../../Videx Enhancer II ROM - 2716.BIN" -lower
There are slight differences where you've got the replacement of addresses with labels.
diff -b unidasmlowercase.txt videxlowercase.txt 216c216 < 1981: a4 a5 ldy $a5 --- > 1981: a4 a5 ldy <arg 955c955 < 1f45: 20 00 fa jsr $fa00 --- > 1f45: 20 00 fa jsr f8rom:mnemr 971c971 < 1f62: c5 d8 cmp $d8 --- > 1f62: c5 d8 cmp <errflg
|
|
|
|
Joined: Feb 2014
Posts: 1,102 Likes: 173
Very Senior Member
|
Very Senior Member
Joined: Feb 2014
Posts: 1,102 Likes: 173 |
Thanks to quart de pomme I now have a Silentype 3 manual!!! Yes! I've been looking for this for so long and it answers a lot of questions about it such as how to vary the intensity of the thermal print as well as the meaning and subtleties of the ESC codes.
|
|
|
|
Joined: Jan 2012
Posts: 1,179 Likes: 17
Very Senior Member
|
OP
Very Senior Member
Joined: Jan 2012
Posts: 1,179 Likes: 17 |
NCR DMV- DEC Rainbow- Siemens PCD- ITT 3030-Oly People- Acorn A5000- Olivetti M20
|
|
|
|
Joined: Jan 2012
Posts: 1,179 Likes: 17
Very Senior Member
|
OP
Very Senior Member
Joined: Jan 2012
Posts: 1,179 Likes: 17 |
I'm trying to add another Apple II clone mainboard ... if I just re-use another chargen ROM, the text is readable, but this is what I get if I add the ROM that came with the mainboard. It looks like the bit order is reversed, and one column is missing. Is this necessarily a bad dump, or is there a ROM loading parameter that'll correct this presentation of data?
NCR DMV- DEC Rainbow- Siemens PCD- ITT 3030-Oly People- Acorn A5000- Olivetti M20
|
|
|
|
Joined: Mar 2001
Posts: 17,217 Likes: 234
Very Senior Member
|
Very Senior Member
Joined: Mar 2001
Posts: 17,217 Likes: 234 |
Different Apple IIs have different font ROM bit orders. The screen_update function for the driver differs in which text update function it calls across different models for that reason. In general, text_update() is IIe/IIc/IIgs order and text_update_orig() is II/II Plus order. For clones, there are IIe clones with II/II Plus video ROMs and vice-versa so things get weird.
|
|
|
Forums9
Topics9,320
Posts121,944
Members5,074
|
Most Online1,283 Dec 21st, 2022
|
|
These forums are sponsored by Superior Solitaire, an ad-free card game collection for macOS and iOS. Download it today!
|
|
|
|