In article <ZTvzk.307$W06.20@flpi148.ffdc.sbc.com>,
David Schmenk <dschmenk@YUCH.gmail.com> wrote:
John B. Matthews wrote:
I'm puzzled by Hello.java setting 80-column mode with "vm02.call(0,
0xC300);" commented out. What switches it to 40-columns after
entering a name?
Ah, yes. Good eye! When adding the device driver code, I cleaned up
some of the work-arounds I had. For the system I/O classes
(System.out/in) I check for an 80 column card during object
initialization and set it automatically. If you choose to use the lower
level conio class, you will have to set 80 column mode explicitly with a
tex80() call. I thought this would be a good compromise. Setting the
mode back to 40 columns required the disable-80-column-mode control
sequence (I send the codes for all the cards I know about). Here's the
rub - I only have the ref manuals for the IIe/IIc video card and a Videx
80 column card. So if you have a different card that uses different
control codes, it probably won't work. Send me the codes and I can add
them. You may see the codes printed out briefly, but I then print
backspaces to cover them up :-) I currently have one monolithic driver
for the console, but when I get more information about the different
cards, I will write a driver for each specific card to reduce the memory
footprint.
[...]
I get similar results on KEGSMAC or KEGS-OSX, which emulate a //e 80
column card (ctrl-Q -> 40-columns, ctrl-R -> 80 columns, ctrl-U -> quit,
etc.) I see LDA #26 in vm02.s under VM_WARMINIT, which does clear line
on the //e 80 column firmware.
I see my MACHID ($BF98) is $B3 (%10110011), suggesting a 128K //e with
80 columns and clock.
110 * (Bit 3 off) BITS 7,6- 00=II 01=II+ 10=IIe 11=/// EMULATION
111 * (Bit 3 on) BITS 7,6- 00=NA 01=NA 10=//c 11=NA
112 * BITS 5,4- 00=NA 01=48K 10=64K 11=128K
113 * BIT 3 - Modifier for MACHID Bits 7,6.
114 * BIT 2 - RESERVED FOR FUTURE DEFINITION.
115 * BIT 1=1- 80 Column card
116 * BIT 0=1- Recognizable Clock Card
I'll poke around in io.s to see if anything jumps out.