Jantar 0801 - polish clone of Osborne Executive
-
-
Unfortunately, no. CTRL with any key does not show anything
-
Then programs like WordStar will not be usable ... please change the byte at position 3908 to the value 8B: does pressing SHIFT shows ^L?
-
3908 with 8B - shows nothing
But RIGHT ARROW shows ^L
and real SHIFT key on Jantar keyboard with UP ARROW shows ^L too
arrrgghhh...
About non ASCII code:
CTRL and SHIFT keys don't have their own ASCII-Codes
What does this mean in our case? How are these keys read? Does it mean that the Jantar must have had a special version of CP/M?
-
How are these keys read? Does it mean that the Jantar must have had a special version of CP/M?
The Osborne-CP/M keyboard driver will expect CTRL and SHIFT at specific addresses in the keyboard matrix, so an adjustment would have to be made there too ... unfortunately, we can only reassign keys that generate an ASCII code ...
-
Now I understood. That is, the procedure in CP/P "looks" at e.g. address 38C0 and expects e.g. $99, which means that this should be a code e.g. SHIFT. In the case of Jantar everything is mixed up and hence the problem. So it seems that the creators/developers of the Jantar computer wrote their keyboard driver for CP/M? Did I understand that correctly?
-
and real SHIFT key on Jantar keyboard with UP ARROW shows ^L too
after the last change at position 3908? Then please change also the byte at 38C8 to 8B ...
-
So it seems that the creators/developers of the Jantar computer wrote their keyboard driver for CP/M? Did I understand that correctly?
Yes.
-
and real SHIFT key on Jantar keyboard with UP ARROW shows ^L too
after the last change at position 3908? Then please change also the byte at 38C8 to 8B ...
SHIFT = as a real SHIFT key shows ^L
RIGHT ARROW = shows ^L , with no other key pressed. Just RIGHT ARROW
-
So it seems that the creators/developers of the Jantar computer wrote their keyboard driver for CP/M? Did I understand that correctly?
Yes.
uhhhh...
-
I found it, I hope
UP ARROW Q is a probalby CTRL - when dad push UP ARROW Q and C shows ^C on CP/M
-
SHIFT = as a real SHIFT key shows ^L
OK, this works as expected ... now please change the byte value to 8A (Cursor Up) ...
-
byte 38C8 = 8A
byte 3908 = 8A
But SHIFT as real shift not working (no ^L sign), and key UP ARROW working as SHIFT - I can write CAPITAL letters on Jantar keyb
-
Byte 3898 = 03: maps ETX (End Of Text) to ^C
Byte 38CA = 18: maps CAN (Cancel) to ^X
... these are their ASCII values, but the keys can of course be reassigned ...
-
Hi,
Ok. Once dad is awake he will check these keys after changing these bytes.
all the best
Arek
PS. By the way. Thank you for deciphering the abbreviations ETX and CAN My dad and I were wondering what it meant
-
Byte 3898 = 03: maps ETX (End Of Text) to ^C
Byte 38CA = 18: maps CAN (Cancel) to ^X
... these are their ASCII values, but the keys can of course be reassigned ...
Hi,
in our opinion these keys working as expected
all the best
Arek
-
Hi,
a small summary of our search
byte 388B = UP ARROW
byte 389D = DOWN ARROW
byte 389E = RIGHT ARROW
byte 3898 = ETX
byte 38C9 = ESC
byte 38CA = CAN
byte 38C8 = SHIFT
byte 38C0 = CTRL
byte 3899 = CAPSLOCK
byte 38CC = UP ARROW WITH S
byte ???? = HT probably TAB
byte ???? = UP ARROW WITH Q probably CTRL
byte ???? = LEFT ARROW
I know I can find these three missing bytes because when I changed the whole set of bytes from 388B up to 39F3, the three keys stopped working e.g. HT stopped being TAB. It is a tedious job that I will do. Unless one of you can come up with where they are.
all the best
Arek
-
byte ???? = HT probably TAB
byte ???? = LEFT ARROW
HT ("Horizontal Tabulator"?) is already defined at address 389F with ASCII code 09 ... LEFT ARROW and BACKSPACE both have ASCII code 08 on the Osborne Executive ... it's the DEL key on the Jantar for now ...
Found some assembler sources of the Osborne Executive CP/M in http://bitsavers.org/bits/User…e/Executive_Double-Sided/ ...
-
byte ???? = HT probably TAB
byte ???? = LEFT ARROW
HT ("Horizontal Tabulator"?) is already defined at address 389F with ASCII code 09 ... LEFT ARROW and BACKSPACE both have ASCII code 08 on the Osborne Executive ... it's the DEL key on the Jantar for now ...
Found some assembler sources of the Osborne Executive CP/M in http://bitsavers.org/bits/User…e/Executive_Double-Sided/ ...
Ohhh HT apparently I "lost" a byte for this key somewhere. Thank you.
LEFT ARROW and BACKSPACE - now I understand. It's just the delete sign to the left of the cursor. Same function though two keys. All clear! Great!
But we don't have byte for UP ARROW WITH Q probably CTRL
As for the assembler sources. I've "licked" asember for the 6502; the Z80 is the uncharted, dark terrain of Mordor
Now my dad is trying an electrical change to make the SHIFT key work as well and the CTRL key too as it is written on the Jantar keyboard, and it seems that I will be able to present the Jantar in my museum to the public.
Your help is immense and I am very grateful to you.
all the best
Arek
-
the Z80 is the uncharted, dark terrain of Mordor
Of course not ... show me LDIR on the 6502 ... On the 6502: A brilliant or sloppy design?
Now my dad is trying an electrical change to make the SHIFT key work as well and the CTRL key too as it is written on the Jantar keyboard [ ... ]
OK, "the hard way" ... The Ctrl-Codes are still messed up on the Jantar ...
You're welcome ... glad I could be of assistance ... Does the "Meritum I" (in your museum) work?
-
the Z80 is the uncharted, dark terrain of Mordor
Of course not ... show me LDIR on the 6502 ... On the 6502: A brilliant or sloppy design?
Now my dad is trying an electrical change to make the SHIFT key work as well and the CTRL key too as it is written on the Jantar keyboard [ ... ]
OK, "the hard way" ... The Ctrl-Codes are still messed up on the Jantar ...
You're welcome ... glad I could be of assistance ... Does the "Meritum I" (in your museum) work?
hahaha. Concerns by Z80 are obviously due to lack of experience
As for the CTRL and SHIFT codes - so tell me, do you see any chance of finding and changing the codes for Jantar in CPM from Osborne without re-writing the keyboard driver? Then dad wouldn't have to change anything in the keyboard.
Yes - the Meritum (as well as the original TRS 80, which I also have in the museum) are working My younger brother even wrote a game "clone" of asteroids on the Meritum and Z80. Under TRS it works too under the name AstroKawaRoids (AstroCofeeRoids). I can send file here if you want
-
As for the CTRL and SHIFT codes - so tell me, do you see any chance of finding and changing the codes for Jantar in CPM from Osborne without re-writing the keyboard driver? Then dad wouldn't have to change anything in the keyboard.
In the Jantar MAME driver, pressing CTRL-A outputs 01 (which is correct), CTRL-B shows 18 hex: but 02 is the correct ASCII code ... the ASCII codes for each CTRL key can also be changed like above: it remains only to find out the corresponding addresses in the IMD ... The "problem" is still that the CTRL key itself (like SHIFT) cannot be remapped ...
Please post the Meritum I game in the Tandy TRS-80 section ...
-
Found some assembler sources of the Osborne Executive CP/M in http://bitsavers.org/bits/User…e/Executive_Double-Sided/ ...
Hi,
I took a short look into the sources and found the following in "SYSSIMAC.imd.IMG" File "SYSS1.MAC". May be interesting in terms of keyboard. (Attention: The image has a wrong extension, is only .imd not .IMG!)
PAW
P.S.: I have no idea about Osborne computer, but in Z80 programming!
Code
Alles anzeigen;KEYBOARD CONSTANTS KL_LEN EQU 3 ;KEY LIST LENTH KLE_LEN EQU 2 ;KEY LIST ENTRY LENTH KL_USED EQU 7 ;KEYLIST ENTRY USED KY_SRVD EQU 6 ;KEY SERVICED ONCE KROW_M EQU 38H ;ROW NUMBER MASK KCOL_M EQU 7H ;COL NUMBER MASK RPTCTR EQU 1 ;REPEAT COUNT ROW0_M EQU 81H ;MASK FOR ADDRESSING ROW 0 DB_CT EQU 1 ;DEBOUNCE COUNT IRPTCT EQU 24 ;INITIAL REPEAT COUNT (400MS) SRPTCT EQU 3 ;SECOND REPEAT COUNT (100MS) DAB9/17 ;REDUCED TO HALF ORIGINAL VALUE TO ;SPEED REPEAT. TOT_ROW EQU 8 ;TOTAL ROWS TOT_COL EQU 8 CTL_KY EQU 2 ;COLUMN NUMBER OF CTL,ALPHA AND SHIFT KEYS ALPH_KY EQU 3 SHFT_KY EQU 4 PAGE ;BUFFER HANDLING EQUATES MX_CH_BF EQU 10H ;MAX NUMBER OF CHARS IN A BUFFER BF_OV_HD EQU 4 ;NO. BYTES OVERHEAD IN BUFFER D_RT_LEN EQU 6 ;NO OF BYTES IN DEVICE LIST ROOT DATA STRUCTURE NO_DEVS EQU 5 ;NUMBER OF DEVICES NO_BUFS EQU 40 ;NUMBER OF BUFFERS THR_HOLD EQU 4 ;NUMBER OF BUFFERS TO RESERVE FOR HIGH PRIORITY ;DEVICES HI_PRIOR EQU 80H ;HIGH PRIORITY BIT TO INDICATE ;HIGH PRIORITY BUFFERS CAN BE USED PAGE ;CONTROL CHARACTERS CR EQU 0DH ;^M, CR = CARRIAGE RETURN LF EQU 0AH ;^J, LF = LINE FEED CRLF EQU '_'-40H ;^_, CR AND LF BKS EQU 08H ;^H, BACKSPACE CBELL EQU 'G'-40H ;RING THE BELL MCUP EQU 'K'-40H ;MOVE CURSOR UP MCRIGH EQU 'L'-40H ;MOVE CURSOR RIGHT VDWN EQU 'V'-40H ;MOVE CURSOR DOWN VLIN EQU '_'-40H ;NEW LINE (CR,LF) VCLRS EQU 'Z'-40H ;CLEAR AND HOME CURSOR VHOME EQU '^'-40H ;HOME CURSOR ETX EQU 'C' - 40H ;ASCII ETX CHAR ACK EQU 'F' - 40H ;ASCII ACK CHAR XON EQU 'Q' - 40H ;ASCII XON (DC1) CHAR XOFF EQU 'S' - 40H ;ASCII XOFF (DC3) CHAR ;ESCAPE SEQUENCE CHARACTERS ESC EQU 1BH ;^[, ESC = ESCAPE VLOCK EQU '#' ;LOCK KEYBOARD VUNLK EQU '"' ;UNLOCK KEYBOARD VCAD EQU '=' ;CURSOR ADDRESSING VSAD EQU 'S' ;SCREEN ADDRESSING VINC EQU 'Q' ;INSERT CHAR VDELC EQU 'W' ;DELETE CHAR VINL EQU 'E' ;INSERT LINE VDELL EQU 'R' ;DELETE LINE VCEOL EQU 'T' ;CLEAR TO END OF LINE VCEOS EQU 'Y' ;CLEAR TO END OF SCREEN (WINDOW) VSAL EQU 'a' ;START ALTERNATE CHARACTER SET VEAL EQU 'A' ;END VSHI EQU ')' ;START HALF INTENSITY VEHI EQU '(' ;END VSGH EQU 'g' ;START GRAPHICS VEGH EQU 'G' ;END VRON EQU 'b' ;SET REVERSE VIDEO BACKGROUND (BLACK ON WHITE) VROFF EQU 'd' ;CLEAR REVERSE VIDEO BACKGROUND (SET TO WHITE ON BLACK) VCTYP EQU '.' ;CURSOR TYPE DEFINE VSRV EQU 'j' ;START REVERSE VIDEO VERV EQU 'k' ;END REVERSE VIDEO VSUL EQU 'l' ;START UNDERLINE VEUL EQU 'm' ;END UNDERLINE VSBL EQU '^' ;START BLINK VEBL EQU 'q' ;END BLINK EKC EQU '>' ;ENABLE KEY CLICK DKC EQU '<' ;DISABLE KEY CLICK EFKT EQU 'e' ;ENABLE FUNCTION KEY TRANSLATE DFKT EQU 'f' ;DISABLE FUNCTION KEY TRANSLATE VWDEF EQU 'z' ;WINDOW DEFINE VWSET EQU 's' ;WINDOW SET VOFF EQU 'o' ;DEFINE X-Y OFFSET VBACK EQU 'x' ;DEFINE BACKGROUND ATTRIBUTES UNDBIT EQU 00001000B ;UNDERLINE BIT ALTBIT EQU 00010000B ; REVBIT EQU 00000100B ;REVERSE VIDEO BIT BLKBIT EQU 00000010B ;BLINK BIT HAFBIT EQU 00000001B ;HALF INTENSITY BIT PAGE ;BOOT CONSTANTS BOOTADDR EQU 4000H ;BOOT LOAD ADDRESS FOR P-SYSTEM BIOSBANK EQU 00000000B ;BIOS BANK BOOTBANK EQU 00000000B ;BOOT STRAP LOADER BANK TEMPBUF EQU 0CC00H ;TEMPORARY BUFFER IN VIDEO BANK ; USED FOR DMA ADDRESS WHEN BOOTING SYSTEM PROD_CODE EQU 2 ;SHELLY PRODUCT CODE WRITTEN ON BOOT SECTOR PAGE ;INTERRUPT CONSTANTS SIO_I_TBL EQU 0FFE0H ;LOCATION IN RAM OF SIO INTERRUPT VECTOR ;MUST BE IN HIGH RAM AND END IN 0 INTVEC EQU 0FFFEH ;OTHER INTERRUPT'S VECTOR ;INTERRUPT DEVICE NUMBERS KBD_DEV EQU 0 ;KEYBOARD DEVICE NUMBER S_CH_A_I EQU 1 ;DEVICE NUMBER FOR SERIAL CHANNEL A INPUT S_CH_B_I EQU 2 ;DEVICE NUMBER FOR SERIAL CHANNEL B INPUT S_CH_A_O EQU 3 ;DEVICE NUMBER FOR SERIAL CHANNEL A OUTPUT S_CH_B_O EQU 4 ;DEVICE NUMBER FOR SERIAL CHANNEL B OUTPUT PAGE ;ROM'S RAM VALUES ;FLAGS FOR CONSOLE AND FUNCTION KEY TABLE FLAGS SYS_TBL EQU 0 ;USE SYSTEM TABLE APP_TBL EQU 1 ;USE APPLICATION TABLE NO_TBL EQU 2 ;DON'T USE TRANSLATION TABLE (FUNCTION KEY ONLY) PAGE ;TABLE DEFINITION LOCATIONS ;SYSTEM TRACK LOCATIONS KCTRK EQU 2 ;TRACK FOR KEYBOARD AND CHARACTER FONT DEFINITIONS KEYSEC EQU 17 ;SECTOR FOR KEYBOARD DEFINITION CHARSEC EQU 20 ;SECTOR FOR CHARACTER FONT DEFINITION ALTSEC EQU 30 ;SECTOR FOR ALTERNATE CHARACTER FONT DEFINITION ;RAM LOCATIONS RAMTBL EQU 2000H ;KEYBOARD AND CONSOLE TABLE POINTERS CHRFONT EQU 0000H ;CHARACTER FONT RAM LOCATION ALTFONT EQU 800H ;ALTERNATE CHARACTER FONT RAM LOCATION
-
... for the Jantar this should probably be:
-
-
New IMD should fix CTRL A - Z codes ... tested with current patch for MAME ...
arekbr please check the + key again (also with UP for SHIFT): it should display 1 or 2 for testing ...
OK. Sent. Waiting for dad's reply
-
New IMD should fix CTRL A - Z codes ... tested with current patch for MAME ...
arekbr please check the + key again (also with UP for SHIFT): it should display 1 or 2 for testing ...
no SHIFT = 1
with SHIFT = 2
Of course our SHIFT is a UP ARROW
-
Please change: 38D5 = 2B for + and 3915 = 2A for *
... we could map 0x38CC (special UP-ARROWS key on the Jantar) to 8A (Cursor Up) ...
-
OK. Dad will check 38D5 and 3915 modifications, and next I change 38CC to 8A and we will check
-
Modifications 38D5 = 2B for + and 3915 = 2A for * work.
Regarding mod UP ARROW S - I have changed this byte, but I am not sure. In CP/M, is it possible to move the cursor freely between lines, or do I have to start some text editor and only there will the cursor be able to move between lines?