Jump to content
IGNORED

TI994W emulator problem


fabrice montupet

Recommended Posts

20 hours ago, fabrice montupet said:

...7.xx! We moved to the new version ?

I tried successfully the mapper, it is very efficient! Thank you Fred.  Even the "!" key can be mapped.

Can you post you Ti994w.ini file here so that I can see how you mapped ?

I did some guessing and now I would like to see if I guessed right.

 

  • Like 1
Link to comment
Share on other sites

I would have liked!

I re-launched the emulator today and I had the surprise to see that all the list of mapped keys had disappeared ?

It seems that the emulator didn't save it.

Note: I don't remember if I quit the program by clicking on the cross at the top right of the window or by clicking on "Exit" in the File menu.

 

Edited by fabrice montupet
Link to comment
Share on other sites

38 minutes ago, fabrice montupet said:

I would have liked!

I re-launched the emulator today and I had the surprise to see that all the list of mapped keys had disappeared ?

It seems that the emulator didn't save it.

Note: I don't remember if I quit the program by clicking on the cross at the top right of the window or by clicking on "Exit" in the File menu.

 

Did you click the OK key when mapping your keys? If you click cancel or click [x] it is not saved.

Mapped keys are only saved in the ini file after clicking ok in the dialog.

 

 

  • Like 1
Link to comment
Share on other sites

I'm really almost sure that I clicked on OK.

Anyway, I began to map again the keys of my french keyboard, not all them because it is a long work but enough for you to see what happens in the .ini file.

Spoiler

;
; This is the INI file used by Ti994W
;

[Ti994w]
;
; Automatically created
;
left=-1711
top=259
open=0
fitalic=0
fheight=-16
fweight=700
fname=Courier
autostart=1
soundon=1
noiseon=1
scroffset=1
unopint=0
joystick1=0
joystick2=0
RS232/1=0 1 0 1 1 0 0 0 1
RS232/2=0 2 0 38400 8 2 1 2 1
cputime=1
;
; VDP Options
;
vdpemul=1
vdp9938=1
fixedsize=1
magnify=2
maximized=1
scrwidth=2556
scrheight=1393
;
; User options [read at power up]
;
; Give a warning when changing modules (and not at title screen)
swmodwarning=1
;
; Give a warning when exiting the emulator (and not at title sceen)
exitwarning=1
;
; Write protect module ram >6020->7FFF
wrpmodram=1
speechon=0
keyboardbuffer=0
errorint=0
tikeyboard=1
breakint=0
vdp43ratio=1
TIBUS=1 3 3 115200 8 0 1 0 1
disablequitkey=1
autosaveini=1

[Vdp]
;
; Automatically created
;
left=1095
top=390
open=0

[Cpu]
;
; Automatically created
;
left=1295
top=165
open=0

[Gpl]
;
; Automatically created
;
left=673
top=234
open=0

[DbgToolWindow]
;
; Automatically created
;
left=1766
top=-958
open=0
status=0
width=923
height=665

[WatchToolWindow]
;
; Automatically created
;
left=200
top=98
width=594
height=544
open=0
var00=CRU    1100 0404 0000
var01=F=2866 2866 0141 0022
var02=KBMODE 8374 0122 0028
var03=ASCII  8375 0122 0028
var04=-      0000 0122 0000
var05=-      0000 0122 0000
var06=STATUS 837c 0122 0000
var07=-      0000 0122 0000
var08=>83e5  83e5 0122 0000
var09=>8379  8379 0122 0000
var10=>834A  834a 0164 0008
var11=>STACK 838a 0164 0006
var12=>836d  836d 0124 0002
var13=>8350  8350 0162 000a
var14=-      0000 0104 0000
var15=>8300  8300 0124 000a
var16=Long1H a050 0124 0002
var17=Long1L a052 0124 0002
var18=Long2H a054 0124 0000
var19=Long2L a056 0124 0000
var20=CRU6   0000 0444 000a
var21=-      0000 0104 0000
var22=-      0000 0104 0000
var23=-      0000 0104 0000
var24=-      0000 0104 0000
var25=-      0000 0104 0000
var26=-      0000 0104 0000
var27=-      0000 0104 0000
var28=-      0000 0104 0000
var29=-      0000 0104 0000
var30=-      0000 0104 0000
var31=-      0000 0104 0000
var32=-      0000 0000 0000

[DEF]
;
; These names are used while single-stepping.
; If an address is found in this list, the symbolname is also
; printed in the dissambled statement.
;
2100=GPLLNK
2104=XMLLNK
2108=KSCAN
210C=VSBW
2110=VMBW
2114=VSBR
2118=VMBR
211C=VWTR
2120=DSRLNK
2124=LOADER
2022=UTLTAB
2024=FSTHI
2026=LSTHI
2028=FSTLOW
202A=LSTLOW
202C=CHKSAV
202E=FLGPTR
2030=SVGPRT
2032=SAVCRU
2034=SAVENT
2036=SAVLEN
2038=SAVPAB
203A=SAVVER
8800=VDPRD
8802=VDPSTA
8C00=VDPWD
8C02=VDPWA
9800=GRMRD
9802=GRMRA
9C00=GRMWD
9C02=GRMWA
8300=PAD
83E0=GPLWS
8400=SOUND
9000=SPCHRD
9400=SPCHWT
000E=SCAN

[PATCHES]
;
; Maximum of 99 ROM patches
; Format PATCHxx=ADDRESS WORD      ; ROM patch
;        PATCHxx=ROM  ADDRESS WORD ; ROM patch
;        PATCHxx=GROM ADDRESS BYTE ; GROM patch
;
;Delay loop keyboard debounce
;
PATCH01=ROM  0498 045B        ; Return (B *R11)
;
;GROM Powerup VDP register R2,R4,R5,R6 values
;(When starting emulator with V9938 VDP and no 80 Colcard DSR
; and no facke DSK1 / PIO / RS232 DSR)
;
PATCH02=GROM 0453 00        ; R2 Screenimage table        @ VDP >0000
PATCH03=GROM 0455 01        ; R4 Pattern descriptor table @ VDP >0800
PATCH04=GROM 0456 06        ; R5 Sprite attribute list    @ VDP >0300
PATCH05=GROM 0457 00        ; R6 Sprite descriptor table  @ VDP >0000
;
;TI-BASIC VDP register R2,R3,R4 values
;
PATCH06=GROM 216C 00        ; R2 Screenimage table        @ VDP >0000
PATCH07=GROM 216D 0C        ; R3 Color table              @ VDP >0300
PATCH08=GROM 216E 00        ; R4 Pattern descriptor table @ VDP >0000

[VKEYS]
;
; Not all Virtual Keys #127 through #255 are defined in Windows or
; have a no function in Ti994w.
; However, if your keyboard doesn't send the right code for
; a particular key, you can define what code the emulator
; should generate. You should use CTRL or the right ALT key
; together with the key you want to define.
; Open the debug window (menu Vieuw->Debug) and enter the
; command KEY. Now if the TI-screen has the focus and you
; press your key combination, i.e. CTRL-. a message like
; "KEYBOARD KEY=.-190 Caps=off Shft=off Fnct=off Ctrl=on UNDEFINED"
; appears. Now you can define your key by assigning a value to the
; ascii code (190) of the key. The value consists of a 1-digit
; function code and a 3 digit decimal character code.
; Ascii code is 127-255
; Function code is the sum of 1=SHIFT + 2=FUNCTION + 4=CONTROL
; Character code is 0-255
; So to define 188 as CTRL-, and 190 as CTRL-. enter:
;
188=4044
190=4046

[SYSTEM]
;
; @xxxx defines start adres for .rom and .vdp (default is >0000)
; .bin is a rom
; .gpl is a grom
; .vdp is a character file with 6 bytes header which is ignored
; .pgm is an E/A program file with 6 bytes header and loaded at the
;         address defined in the header. The second, third and fourth
;         pgm file are loaded automatically
; .obj is an E/A object file (PC-format, autostart is disabled)
;
; The 994Arom.bin and 994Agrom.bin if V9T9 is ok!
; Fdsr4w.obj is a facke DSR with DSK, DSK1, DSK2, DSk3,
;            PIO, PIO/1, RS232, RS232/1 and RS232/2
;
LOAD01=.\system\994arom.bin@0000
LOAD02=.\system\chara1.vdp@0800
LOAD03=.\system\colortable.vdp@0380
LOAD04=.\system\994agrom.gpl@0000
;LOAD05=.\system\Fdsr4w.obj
;
;..
;LOAD99=

[DSR]
; The DSR's to load
DSRMASK=515
;
; Defines the device service routines
; only >1000, >1100 and >1900 at the moment and the DSR's must be .bin
; DO NOT CHANGE
CRU1000=.\system\Dsr1000.bin
CRU1100=.\system\Disk.bin
CRU1600=.\system\Cf7a+.bin
CRU1900=.\system\Video80.bin
;
; Cru >1200 is the IDE space  
; DO NOT CHANGE
CRU1200_P00L=.\system\IDE-P00L.bin
;CRU1200_BQ4852=.\system\IDE-BQ4852.bin
CRU1200_P00H=.\system\IDE-P00H.bin
CRU1200_P01H=.\system\IDE-P01H.bin
CRU1200_P02H=.\system\IDE-P02H.bin
CRU1200_P03H=.\system\IDE-P03H.bin
CRU1200_P04H=.\system\IDE-P04H.bin
CRU1200_P05H=.\system\IDE-P05H.bin
CRU1200_P11H=.\system\IDE-P11H.bin
CRU1200_P12H=.\system\IDE-P12H.bin
CRU1200_P13H=.\system\IDE-P13H.bin
CRU1200_P14H=.\system\IDE-P14H.bin
;
; Cru >1300 is the RS232/HDX space  
; DO NOT CHANGE
CRU1300_P00L=.\system\HDX232-P00.bin
CRU1300_P01L=.\system\HDX232-P01.bin

;
; cru >1500 is the test and debug space
;CRU1500=.\system\Dsr1500.bin

[MODULES]
;
; This is the module list from which a module menu-item will be created.
; LOADMODULE tells the emulator wich is the default and is stored every
; time another module os choosen from the menu. Overy item in this list
; got an own entry with a grom (.gpl) and rom (.bin) list with exactly
; the same name.
;
LOADMODULE=12
MOD01=Editor Assembler
MOD02=Extended Basic
MOD03=Mini Memory
MOD04=TI Writer
MOD05=Demonstration
MOD06=Diagnostic
MOD07=Addition
MOD08=Minus
MOD09=Knight
MOD10=Division
MOD11=Alligator
MOD12=GEM
MOD13=Parsec
MOD14=Shamus
MOD15=RXB2020
MOD16=Multiplan
MOD17=Dm2k24
MOD18=Du2k20
MOD19=MegaMod 2016
MOD20=TurboForth122
MOD21=Editor Assembler V
MOD03=Editor Assembler V (UG)

[Editor Assembler]
;Functional
LOAD01=.\system\Edasm.gpl@6000

[Extended Basicx]
; Functional, you can place all groms in one file though!
; NAME_B0 is bank0 of a banked prom
; NAME_B1 is bank1 of a banked prom
;
LOAD01=.\system\Extbas.gpl@6000
LOAD02=.\system\Extbas_B0.bin@6000
LOAD03=.\system\Extbas_B1.bin@6000

[Extended Basic]
; Functional, you can also read al groms in their own space!
; NAME_B0 is bank0 of a banked prom
; NAME_B1 is bank1 of a banked prom
;
LOAD01=.\system\Exbas_G1.gpl@6000
LOAD02=.\system\Exbas_G2.gpl@8000
LOAD03=.\system\Exbas_G3.gpl@A000
LOAD04=.\system\Exbas_G4.gpl@C000
LOAD05=.\system\Exbas_B0.bin@6000
LOAD06=.\system\Exbas_B1.bin@6000

[Mini Memory]
;Functional
LOAD01=.\system\Minimem.gpl@6000
LOAD02=.\system\Minimem.bin@6000

[TI Writer]
;Functional
LOAD01=.\system\tiwriter.gpl@6000

[Demonstration]
;Functional
LOAD01=.\system\demonstration.gpl@6000

[Diagnostic]
;Functional
LOAD01=.\system\diagnostic.gpl@6000

[Addition]
;Functional
LOAD01=.\system\addition.gpl@6000

[Minus]
;Returns to main (faulty grom?)
LOAD01=.\system\minus.gpl@6000

[Knight]
;Functional
LOAD01=.\system\DARK-E8.bin@6000

[Division]
;Functional
LOAD01=.\system\division.gpl@6000

[Alligator]
;Functional
LOAD01=.\system\alligator.gpl@6000

[GEM]
;FunctionalHelo
LOAD01=.\system\XB29GEM_G.gpl@6000
LOAD02=.\system\XB29GEM_B0.bin@6000

[Parsec]
;Functional
LOAD01=.\system\parsec.gpl@6000
LOAD02=.\system\parsec.bin@6000

[Shamus]
;Different bankswitch scheme, who knows how?
LOAD01=.\system\shamus_B0.bin@6000
LOAD02=.\system\shamus_B1.bin@6000

[RXB]
INVERTED=0
LOAD01=.\system\RXB2020C.bin@6000
LOAD02=.\system\RXB2020D.bin@6000
LOAD03=.\system\RXB2020G.bin@6000

[Multiplan]
;Need the original diskette and files and try again
LOAD01=.\system\Multiplan_6.gpl@6000
LOAD02=.\system\Multiplan_8.gpl@8000
LOAD03=.\system\Multiplan_A.gpl@A000
LOAD04=.\system\Multiplan_C.gpl@C000
LOAD05=.\system\Multiplan_E.gpl@E000

[Dm2k24]
;Load a JohnGuidry style module with banked/paged
;EPROM with a maximum of 4 banks. These modules
;use an inverted banking/paging mechanism.
;
;If two banks then
; MOV @>6000,@>6000 selects bank 1
; MOV @>6002,@>6002 selects bank 0
;
;If four banks then
; MOV @>6000,@>6000 selects bank 4
; MOV @>6002,@>6002 selects bank 3
; MOV @>6004,@>6004 selects bank 2
; MOV @>6008,@>6008 selects bank 1
;
INVERTED=1
LOAD01=.\system\Dm2k24_B0.bin@6000
LOAD02=.\system\Dm2k24_B1.bin@6000
LOAD03=.\system\Dm2k24_B2.bin@6000
LOAD04=.\system\Dm2k24_B3.bin@6000

[Du2k20]
;Load a JohnGuidry style module with banked/paged
;EPROM with a maximum of 4 banks. These modules
;use an inverted banking/paging mechanism.
;It is allowed to read a 32Kb (4 Banks of 8Kb) in
;one go!
;
INVERTED=1
LOAD01=.\system\Du2k20_B0.bin@6000

[MegaMod 2016]
INVERTED=1
LOAD01=.\system\MM2016_B0.bin@6000

[TurboForth122]
INVERTED=1
LOAD01=.\system\TurboForth122_B0.bin@6000

[Editor Assembler V]
INVERTED=0
LOAD01=.\system\eaprom_V_B0.bin@6000

[Editor Assembler V (UG)]
INVERTED=0
FILEBASED=1
LOAD01=.\system\ugprom_V_B0.bin@6000


[DEVICES]
;
; Automatically created when used menuoption [File]->[Foad and Doad]
;
; These are the DSK device. I don't want to implement SCSI and HDS yet.
; You can create subdirs on these.
; Files are in V9T9 format.
; I do need a drive letter here, no relative paths!
;
DSK=C:\TI994W\DSK
DSK1=C:\Users\Utilisateur\Desktop\knight\DSK1
DSK2=C:\Users\Utilisateur\Desktop\TI99-TOOLS\Ti994w\dsk2
DSK3=C:\Users\Utilisateur\Desktop\knight\DSK3
;

; DSKx_TYPE can be FIAD (File In A Directory)
;                  DOAD (Disk On A Disk image)
;                  CF7A (Disk On A CF-card image)
;
DSK_ENABLE=1
DSK1_TYPE=FIAD
DSK2_TYPE=FIAD
DSK3_TYPE=FIAD
;
DOAD1=
DOAD2=
DOAD3=C:\Ti994w\Doads\DSK3.dsk
;
; These are the IDE images on a Disk.
; IDE1 is the master and IDE2 is the slave device.
; If IDEx_ENABLE=1 the IDE device is accesable.
;
IDE1=C:\Ti994w\Doads\test16mb.img
IDE2=
;
IDE1_ENABLE=0
IDE2_ENABLE=0
;
; These is the CF7A+ image on a Disk.
; There is only a CF7A+ master.
; If CF7A_ENABLE=1 the CF7A+ device is accesable.
;
CF7A=C:\Ti994w\Doads\Cf7a_64mb.cf7
CF7A_ENABLE=0

[FunctionKeys]
F01=G 0AC0
F02=M 834a 20
F03=m 068eV 20
F04=
F05=
F06=
F07=
F08=
F09=
F10=
F11=
F12=
F13=
F14=
F15=
F16=
F17=
F18=
[SYSTEMSPEED]
left=0
top=506
open=0
CPUDELAYTIME=0
DSKDELAYTIME=0
KBSCANDELAYTIME=1906
[VdpColor]
COLOR00=-1
COLOR01=-1
COLOR02=-1
COLOR03=-1
COLOR04=13577774
COLOR05=16600906
COLOR06=1846463
COLOR07=-1
COLOR08=3426287
COLOR09=-1
COLOR10=2274269
COLOR11=9556443
COLOR12=-1
COLOR13=-1
COLOR14=12632256
COLOR15=-1
left=323
top=464
open=0
[PcKeyMapping]
left=471
top=186
open=0
KMAP001=0x0031 0x0001
KMAP002=0x0032 0x0002
KMAP003=0x0033 0x0003
KMAP004=0x0034 0x0004
KMAP005=0x0035 0x0005
KMAP006=0x0036 0x0006
KMAP007=0x0037 0x0007
KMAP008=0x0038 0x0008
KMAP009=0x0039 0x0009
KMAP010=0x0030 0x0000
KMAP011=0x00BB 0x000A
KMAP012=0x01BB 0x0034
KMAP013=0x0130 0x002D
KMAP014=0x0139 0x0030
KMAP015=0x0138 0x0076
KMAP016=0x0137 0x0078
KMAP017=0x0136 0x006B
KMAP018=0x0135 0x0033
KMAP019=0x0134 0x0068
KMAP020=0x0133 0x0069
KMAP021=0x0132 0x0061
KMAP022=0x0131 0x0031
KMAP023=0x0238 0x0066
KMAP024=END

 

 

Edited by fabrice montupet
  • Like 1
Link to comment
Share on other sites

12 hours ago, fabrice montupet said:

I'm really almost sure that I clicked on OK.

Anyway, I began to map again the keys of my french keyboard, not all them because it is a long work but enough for you to see what happens in the .ini file.

  Reveal hidden contents

;
; This is the INI file used by Ti994W
;

[Ti994w]
;
; Automatically created
;
left=-1711
top=259
open=0
fitalic=0
fheight=-16
fweight=700
fname=Courier
autostart=1
soundon=1
noiseon=1
scroffset=1
unopint=0
joystick1=0
joystick2=0
RS232/1=0 1 0 1 1 0 0 0 1
RS232/2=0 2 0 38400 8 2 1 2 1
cputime=1
;
; VDP Options
;
vdpemul=1
vdp9938=1
fixedsize=1
magnify=2
maximized=1
scrwidth=2556
scrheight=1393
;
; User options [read at power up]
;
; Give a warning when changing modules (and not at title screen)
swmodwarning=1
;
; Give a warning when exiting the emulator (and not at title sceen)
exitwarning=1
;
; Write protect module ram >6020->7FFF
wrpmodram=1
speechon=0
keyboardbuffer=0
errorint=0
tikeyboard=1
breakint=0
vdp43ratio=1
TIBUS=1 3 3 115200 8 0 1 0 1
disablequitkey=1
autosaveini=1

[Vdp]
;
; Automatically created
;
left=1095
top=390
open=0

[Cpu]
;
; Automatically created
;
left=1295
top=165
open=0

[Gpl]
;
; Automatically created
;
left=673
top=234
open=0

[DbgToolWindow]
;
; Automatically created
;
left=1766
top=-958
open=0
status=0
width=923
height=665

[WatchToolWindow]
;
; Automatically created
;
left=200
top=98
width=594
height=544
open=0
var00=CRU    1100 0404 0000
var01=F=2866 2866 0141 0022
var02=KBMODE 8374 0122 0028
var03=ASCII  8375 0122 0028
var04=-      0000 0122 0000
var05=-      0000 0122 0000
var06=STATUS 837c 0122 0000
var07=-      0000 0122 0000
var08=>83e5  83e5 0122 0000
var09=>8379  8379 0122 0000
var10=>834A  834a 0164 0008
var11=>STACK 838a 0164 0006
var12=>836d  836d 0124 0002
var13=>8350  8350 0162 000a
var14=-      0000 0104 0000
var15=>8300  8300 0124 000a
var16=Long1H a050 0124 0002
var17=Long1L a052 0124 0002
var18=Long2H a054 0124 0000
var19=Long2L a056 0124 0000
var20=CRU6   0000 0444 000a
var21=-      0000 0104 0000
var22=-      0000 0104 0000
var23=-      0000 0104 0000
var24=-      0000 0104 0000
var25=-      0000 0104 0000
var26=-      0000 0104 0000
var27=-      0000 0104 0000
var28=-      0000 0104 0000
var29=-      0000 0104 0000
var30=-      0000 0104 0000
var31=-      0000 0104 0000
var32=-      0000 0000 0000

[DEF]
;
; These names are used while single-stepping.
; If an address is found in this list, the symbolname is also
; printed in the dissambled statement.
;
2100=GPLLNK
2104=XMLLNK
2108=KSCAN
210C=VSBW
2110=VMBW
2114=VSBR
2118=VMBR
211C=VWTR
2120=DSRLNK
2124=LOADER
2022=UTLTAB
2024=FSTHI
2026=LSTHI
2028=FSTLOW
202A=LSTLOW
202C=CHKSAV
202E=FLGPTR
2030=SVGPRT
2032=SAVCRU
2034=SAVENT
2036=SAVLEN
2038=SAVPAB
203A=SAVVER
8800=VDPRD
8802=VDPSTA
8C00=VDPWD
8C02=VDPWA
9800=GRMRD
9802=GRMRA
9C00=GRMWD
9C02=GRMWA
8300=PAD
83E0=GPLWS
8400=SOUND
9000=SPCHRD
9400=SPCHWT
000E=SCAN

[PATCHES]
;
; Maximum of 99 ROM patches
; Format PATCHxx=ADDRESS WORD      ; ROM patch
;        PATCHxx=ROM  ADDRESS WORD ; ROM patch
;        PATCHxx=GROM ADDRESS BYTE ; GROM patch
;
;Delay loop keyboard debounce
;
PATCH01=ROM  0498 045B        ; Return (B *R11)
;
;GROM Powerup VDP register R2,R4,R5,R6 values
;(When starting emulator with V9938 VDP and no 80 Colcard DSR
; and no facke DSK1 / PIO / RS232 DSR)
;
PATCH02=GROM 0453 00        ; R2 Screenimage table        @ VDP >0000
PATCH03=GROM 0455 01        ; R4 Pattern descriptor table @ VDP >0800
PATCH04=GROM 0456 06        ; R5 Sprite attribute list    @ VDP >0300
PATCH05=GROM 0457 00        ; R6 Sprite descriptor table  @ VDP >0000
;
;TI-BASIC VDP register R2,R3,R4 values
;
PATCH06=GROM 216C 00        ; R2 Screenimage table        @ VDP >0000
PATCH07=GROM 216D 0C        ; R3 Color table              @ VDP >0300
PATCH08=GROM 216E 00        ; R4 Pattern descriptor table @ VDP >0000

[VKEYS]
;
; Not all Virtual Keys #127 through #255 are defined in Windows or
; have a no function in Ti994w.
; However, if your keyboard doesn't send the right code for
; a particular key, you can define what code the emulator
; should generate. You should use CTRL or the right ALT key
; together with the key you want to define.
; Open the debug window (menu Vieuw->Debug) and enter the
; command KEY. Now if the TI-screen has the focus and you
; press your key combination, i.e. CTRL-. a message like
; "KEYBOARD KEY=.-190 Caps=off Shft=off Fnct=off Ctrl=on UNDEFINED"
; appears. Now you can define your key by assigning a value to the
; ascii code (190) of the key. The value consists of a 1-digit
; function code and a 3 digit decimal character code.
; Ascii code is 127-255
; Function code is the sum of 1=SHIFT + 2=FUNCTION + 4=CONTROL
; Character code is 0-255
; So to define 188 as CTRL-, and 190 as CTRL-. enter:
;
188=4044
190=4046

[SYSTEM]
;
; @xxxx defines start adres for .rom and .vdp (default is >0000)
; .bin is a rom
; .gpl is a grom
; .vdp is a character file with 6 bytes header which is ignored
; .pgm is an E/A program file with 6 bytes header and loaded at the
;         address defined in the header. The second, third and fourth
;         pgm file are loaded automatically
; .obj is an E/A object file (PC-format, autostart is disabled)
;
; The 994Arom.bin and 994Agrom.bin if V9T9 is ok!
; Fdsr4w.obj is a facke DSR with DSK, DSK1, DSK2, DSk3,
;            PIO, PIO/1, RS232, RS232/1 and RS232/2
;
LOAD01=.\system\994arom.bin@0000
LOAD02=.\system\chara1.vdp@0800
LOAD03=.\system\colortable.vdp@0380
LOAD04=.\system\994agrom.gpl@0000
;LOAD05=.\system\Fdsr4w.obj
;
;..
;LOAD99=

[DSR]
; The DSR's to load
DSRMASK=515
;
; Defines the device service routines
; only >1000, >1100 and >1900 at the moment and the DSR's must be .bin
; DO NOT CHANGE
CRU1000=.\system\Dsr1000.bin
CRU1100=.\system\Disk.bin
CRU1600=.\system\Cf7a+.bin
CRU1900=.\system\Video80.bin
;
; Cru >1200 is the IDE space  
; DO NOT CHANGE
CRU1200_P00L=.\system\IDE-P00L.bin
;CRU1200_BQ4852=.\system\IDE-BQ4852.bin
CRU1200_P00H=.\system\IDE-P00H.bin
CRU1200_P01H=.\system\IDE-P01H.bin
CRU1200_P02H=.\system\IDE-P02H.bin
CRU1200_P03H=.\system\IDE-P03H.bin
CRU1200_P04H=.\system\IDE-P04H.bin
CRU1200_P05H=.\system\IDE-P05H.bin
CRU1200_P11H=.\system\IDE-P11H.bin
CRU1200_P12H=.\system\IDE-P12H.bin
CRU1200_P13H=.\system\IDE-P13H.bin
CRU1200_P14H=.\system\IDE-P14H.bin
;
; Cru >1300 is the RS232/HDX space  
; DO NOT CHANGE
CRU1300_P00L=.\system\HDX232-P00.bin
CRU1300_P01L=.\system\HDX232-P01.bin

;
; cru >1500 is the test and debug space
;CRU1500=.\system\Dsr1500.bin

[MODULES]
;
; This is the module list from which a module menu-item will be created.
; LOADMODULE tells the emulator wich is the default and is stored every
; time another module os choosen from the menu. Overy item in this list
; got an own entry with a grom (.gpl) and rom (.bin) list with exactly
; the same name.
;
LOADMODULE=12
MOD01=Editor Assembler
MOD02=Extended Basic
MOD03=Mini Memory
MOD04=TI Writer
MOD05=Demonstration
MOD06=Diagnostic
MOD07=Addition
MOD08=Minus
MOD09=Knight
MOD10=Division
MOD11=Alligator
MOD12=GEM
MOD13=Parsec
MOD14=Shamus
MOD15=RXB2020
MOD16=Multiplan
MOD17=Dm2k24
MOD18=Du2k20
MOD19=MegaMod 2016
MOD20=TurboForth122
MOD21=Editor Assembler V
MOD03=Editor Assembler V (UG)

[Editor Assembler]
;Functional
LOAD01=.\system\Edasm.gpl@6000

[Extended Basicx]
; Functional, you can place all groms in one file though!
; NAME_B0 is bank0 of a banked prom
; NAME_B1 is bank1 of a banked prom
;
LOAD01=.\system\Extbas.gpl@6000
LOAD02=.\system\Extbas_B0.bin@6000
LOAD03=.\system\Extbas_B1.bin@6000

[Extended Basic]
; Functional, you can also read al groms in their own space!
; NAME_B0 is bank0 of a banked prom
; NAME_B1 is bank1 of a banked prom
;
LOAD01=.\system\Exbas_G1.gpl@6000
LOAD02=.\system\Exbas_G2.gpl@8000
LOAD03=.\system\Exbas_G3.gpl@A000
LOAD04=.\system\Exbas_G4.gpl@C000
LOAD05=.\system\Exbas_B0.bin@6000
LOAD06=.\system\Exbas_B1.bin@6000

[Mini Memory]
;Functional
LOAD01=.\system\Minimem.gpl@6000
LOAD02=.\system\Minimem.bin@6000

[TI Writer]
;Functional
LOAD01=.\system\tiwriter.gpl@6000

[Demonstration]
;Functional
LOAD01=.\system\demonstration.gpl@6000

[Diagnostic]
;Functional
LOAD01=.\system\diagnostic.gpl@6000

[Addition]
;Functional
LOAD01=.\system\addition.gpl@6000

[Minus]
;Returns to main (faulty grom?)
LOAD01=.\system\minus.gpl@6000

[Knight]
;Functional
LOAD01=.\system\DARK-E8.bin@6000

[Division]
;Functional
LOAD01=.\system\division.gpl@6000

[Alligator]
;Functional
LOAD01=.\system\alligator.gpl@6000

[GEM]
;FunctionalHelo
LOAD01=.\system\XB29GEM_G.gpl@6000
LOAD02=.\system\XB29GEM_B0.bin@6000

[Parsec]
;Functional
LOAD01=.\system\parsec.gpl@6000
LOAD02=.\system\parsec.bin@6000

[Shamus]
;Different bankswitch scheme, who knows how?
LOAD01=.\system\shamus_B0.bin@6000
LOAD02=.\system\shamus_B1.bin@6000

[RXB]
INVERTED=0
LOAD01=.\system\RXB2020C.bin@6000
LOAD02=.\system\RXB2020D.bin@6000
LOAD03=.\system\RXB2020G.bin@6000

[Multiplan]
;Need the original diskette and files and try again
LOAD01=.\system\Multiplan_6.gpl@6000
LOAD02=.\system\Multiplan_8.gpl@8000
LOAD03=.\system\Multiplan_A.gpl@A000
LOAD04=.\system\Multiplan_C.gpl@C000
LOAD05=.\system\Multiplan_E.gpl@E000

[Dm2k24]
;Load a JohnGuidry style module with banked/paged
;EPROM with a maximum of 4 banks. These modules
;use an inverted banking/paging mechanism.
;
;If two banks then
; MOV @>6000,@>6000 selects bank 1
; MOV @>6002,@>6002 selects bank 0
;
;If four banks then
; MOV @>6000,@>6000 selects bank 4
; MOV @>6002,@>6002 selects bank 3
; MOV @>6004,@>6004 selects bank 2
; MOV @>6008,@>6008 selects bank 1
;
INVERTED=1
LOAD01=.\system\Dm2k24_B0.bin@6000
LOAD02=.\system\Dm2k24_B1.bin@6000
LOAD03=.\system\Dm2k24_B2.bin@6000
LOAD04=.\system\Dm2k24_B3.bin@6000

[Du2k20]
;Load a JohnGuidry style module with banked/paged
;EPROM with a maximum of 4 banks. These modules
;use an inverted banking/paging mechanism.
;It is allowed to read a 32Kb (4 Banks of 8Kb) in
;one go!
;
INVERTED=1
LOAD01=.\system\Du2k20_B0.bin@6000

[MegaMod 2016]
INVERTED=1
LOAD01=.\system\MM2016_B0.bin@6000

[TurboForth122]
INVERTED=1
LOAD01=.\system\TurboForth122_B0.bin@6000

[Editor Assembler V]
INVERTED=0
LOAD01=.\system\eaprom_V_B0.bin@6000

[Editor Assembler V (UG)]
INVERTED=0
FILEBASED=1
LOAD01=.\system\ugprom_V_B0.bin@6000


[DEVICES]
;
; Automatically created when used menuoption [File]->[Foad and Doad]
;
; These are the DSK device. I don't want to implement SCSI and HDS yet.
; You can create subdirs on these.
; Files are in V9T9 format.
; I do need a drive letter here, no relative paths!
;
DSK=C:\TI994W\DSK
DSK1=C:\Users\Utilisateur\Desktop\knight\DSK1
DSK2=C:\Users\Utilisateur\Desktop\TI99-TOOLS\Ti994w\dsk2
DSK3=C:\Users\Utilisateur\Desktop\knight\DSK3
;

; DSKx_TYPE can be FIAD (File In A Directory)
;                  DOAD (Disk On A Disk image)
;                  CF7A (Disk On A CF-card image)
;
DSK_ENABLE=1
DSK1_TYPE=FIAD
DSK2_TYPE=FIAD
DSK3_TYPE=FIAD
;
DOAD1=
DOAD2=
DOAD3=C:\Ti994w\Doads\DSK3.dsk
;
; These are the IDE images on a Disk.
; IDE1 is the master and IDE2 is the slave device.
; If IDEx_ENABLE=1 the IDE device is accesable.
;
IDE1=C:\Ti994w\Doads\test16mb.img
IDE2=
;
IDE1_ENABLE=0
IDE2_ENABLE=0
;
; These is the CF7A+ image on a Disk.
; There is only a CF7A+ master.
; If CF7A_ENABLE=1 the CF7A+ device is accesable.
;
CF7A=C:\Ti994w\Doads\Cf7a_64mb.cf7
CF7A_ENABLE=0

[FunctionKeys]
F01=G 0AC0
F02=M 834a 20
F03=m 068eV 20
F04=
F05=
F06=
F07=
F08=
F09=
F10=
F11=
F12=
F13=
F14=
F15=
F16=
F17=
F18=
[SYSTEMSPEED]
left=0
top=506
open=0
CPUDELAYTIME=0
DSKDELAYTIME=0
KBSCANDELAYTIME=1906
[VdpColor]
COLOR00=-1
COLOR01=-1
COLOR02=-1
COLOR03=-1
COLOR04=13577774
COLOR05=16600906
COLOR06=1846463
COLOR07=-1
COLOR08=3426287
COLOR09=-1
COLOR10=2274269
COLOR11=9556443
COLOR12=-1
COLOR13=-1
COLOR14=12632256
COLOR15=-1
left=323
top=464
open=0
[PcKeyMapping]
left=471
top=186
open=0
KMAP001=0x0031 0x0001
KMAP002=0x0032 0x0002
KMAP003=0x0033 0x0003
KMAP004=0x0034 0x0004
KMAP005=0x0035 0x0005
KMAP006=0x0036 0x0006
KMAP007=0x0037 0x0007
KMAP008=0x0038 0x0008
KMAP009=0x0039 0x0009
KMAP010=0x0030 0x0000
KMAP011=0x00BB 0x000A
KMAP012=0x01BB 0x0034
KMAP013=0x0130 0x002D
KMAP014=0x0139 0x0030
KMAP015=0x0138 0x0076
KMAP016=0x0137 0x0078
KMAP017=0x0136 0x006B
KMAP018=0x0135 0x0033
KMAP019=0x0134 0x0068
KMAP020=0x0133 0x0069
KMAP021=0x0132 0x0061
KMAP022=0x0131 0x0031
KMAP023=0x0238 0x0066
KMAP024=END

 

 

Well ... allmost sure is not quitte sure ? but thanks for the ini file.

 

I did not expect to be a lot of  work looking at the picture you send from your keyboard.

I see that you also map the keys that are in the same place as a US keyboard like 0,1,2,3,4 etc

You only have to map those keys on your keyboard that give the wrong/unexpected character in the emulator.

It is not forbidden to map every key ;-) ... it is just a bit redundant.

 

 

 

  • Like 1
Link to comment
Share on other sites

I though that you wanted the mapping of all the french Keyboard, this is why I said that the operation was going to take some time to be realized ?

So today I begun to do again the job but only with the keys that need to be mapped. But, alas, I encountered a problem (bug) : sometimes and unexpectedly, when I press a key, the key character is displayed and repeated indefinitely (even I release the key) until it reaches the last character accepted by the program line. And the option "delay between TI keyboard scans" can't resolve this kind of problem.

Link to comment
Share on other sites

19 hours ago, fabrice montupet said:

I though that you wanted the mapping of all the french Keyboard, this is why I said that the operation was going to take some time to be realized ?

So today I begun to do again the job but only with the keys that need to be mapped. But, alas, I encountered a problem (bug) : sometimes and unexpectedly, when I press a key, the key character is displayed and repeated indefinitely (even I release the key) until it reaches the last character accepted by the program line. And the option "delay between TI keyboard scans" can't resolve this kind of problem.

Hi Fabrice, if you have now a complete french keyboard mapping can you post it here so that  I can use that for testing.

Does that enexpected phenomenon appear what a mapped key or is it just random?

This behaviour can happen if the keyup message of a released key is missed (or maybe misinterpreted).

 

 

Link to comment
Share on other sites

Did a little experiment:

1) swapped the 'a' and 'b' characters with the keyboard map function

2) press shift

3) press 'a'            (this displays 'A')

4) released shift     (now 'a' is mapped to 'b')

5) released 'a'        (because now 'a' is mapped to 'b' then 'b' is actualy realeased which was not pressed in the first place so 'a'

got stuck)

 

For now solved this by completely clearing the TI keyboard buffer when the shift, ctrl or alt keys are released.

 

I still want your french keyboard mapping please!

 

Keep your original ti994w.ini file  ?

 

Ti994w71b.zip

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

Here is as I mapped my french keyboard ?

 

Spoiler

[PcKeyMapping]
left=-596
top=615
open=0
KMAP001=0x0131 0x0031
KMAP002=0x0132 0x0061
KMAP003=0x0133 0x0069
KMAP004=0x0134 0x0068
KMAP005=0x0135 0x0033
KMAP006=0x0136 0x003F
KMAP007=0x0137 0x0078
KMAP008=0x0138 0x0066
KMAP009=0x0139 0x0030
KMAP010=0x0130 0x002D
KMAP011=0x01DB 0x002B
KMAP012=0x00BB 0x0034
KMAP013=0x01BB 0x000A
KMAP014=0x00DD 0x0030
KMAP015=0x00BA 0x002E
KMAP016=0x00C0 0x002F
KMAP017=0x00DC 0x0032
KMAP018=0x01BC 0x0067
KMAP019=0x00BE 0x001F
KMAP020=0x01BE 0x0029
KMAP021=0x00BF 0x0049
KMAP022=0x01BF 0x0015
KMAP023=0x00DF 0x002C
KMAP024=0x00E2 0x0052
KMAP025=0x01E2 0x0053
KMAP026=0x0234 0x006E
KMAP027=0x0236 0x006B
KMAP028=0x0238 0x0076
KMAP029=0x02DB 0x0064
KMAP030=0x02BB 0x006F
KMAP031=0x0235 0x0063
KMAP032=0x0237 0x0078
KMAP033=0x0232 0x0061
KMAP034=0x0230 0x002D
KMAP035=0x01BA 0x002E
KMAP036=0x01DC 0x0032
KMAP037=0x01C0 0x002F
KMAP038=END

 

 

  • Like 2
Link to comment
Share on other sites

  • 4 months later...

I found an abnormal behavior of the emulator when I use the full screen mode using the 80 columns mode (with the XB286 command: CALL EDIT80).

I launch ti994aw windowed with the options "Emulate V9938", "Preserve 4:3 ratio" and  "Fixed Size" enabled. Then I start XB256, and I type:

CALL EDIT 80

OK, the emulator now shows fine XB256 in 80 columns, getting black bars to the left and right of the TI screen (as my monitor has 16:9 ratio)

Then I double-clic on the top title bar of the window to toggle in full screen (as I do fine for the 32 or 40 columns modes), the emulator goes full screen but at least 8 characters  aren't visible on each side of the screen.

 

 

Edited by fabrice montupet
  • Like 1
Link to comment
Share on other sites

On 12/4/2022 at 5:39 PM, fabrice montupet said:

I found an abnormal behavior of the emulator when I use the full screen mode using the 80 columns mode (with the XB286 command: CALL EDIT80).

I launch ti994aw windowed with the options "Emulate V9938", "Preserve 4:3 ratio" and  "Fixed Size" enabled. Then I start XB256, and I type:

CALL EDIT 80

OK, the emulator now shows fine XB256 in 80 columns, getting black bars to the left and right of the TI screen (as my monitor has 16:9 ratio)

Then I double-clic on the top title bar of the window to toggle in full screen (as I do fine for the 32 or 40 columns modes), the emulator goes full screen but at least 8 characters  aren't visible on each side of the screen.

 

 

That is a strange phenomenon indeed. Something doesn't know it is in 80 column mode at this point.

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...