Jump to content
fabrice montupet

TI994W emulator problem

Recommended Posts

I launch the emulator, enable the "All free time CPU" option and press 1 for TI Basic. When I press the key ";"  I get a ".;" and when I press the key ":", I get "/:".

Here is the debug window

Quote

Command line = <>
Windows Version 6.02.02
Ini file = <C:\Users\Utilisateur\Downloads\Ti994w\Ti994w.ini>
Load file: SMEM   @ >0000 <.\system\994arom.bin>
Load file: VDP    @ >0800 <.\system\chara1.vdp>
Load file: VDP    @ >0380 <.\system\colortable.vdp>
Load file: GROM   @ >0000 <.\system\994agrom.gpl>
Load file: DSR    @ >1000 <.\system\Dsr1000.bin>
Load file: DSR    @ >1100 <.\system\Disk.bin>
Load file: SPEECH @ >0000 <C:\Users\Utilisateur\Downloads\Ti994w\system\speechrom.bin>
Load file: GROM   @ >6000 <.\system\Exbas_G1.gpl>
Load file: GROM   @ >8000 <.\system\Exbas_G2.gpl>
Load file: GROM   @ >A000 <.\system\Exbas_G3.gpl>
Load file: GROM   @ >C000 <.\system\Exbas_G4.gpl>
Load file: SMEM   @ >6000 - Page 0 <.\system\Exbas_B0.bin>
Load file: SMEM   @ >6000 - Page 1 <.\system\Exbas_B1.bin>
Interrupt level 00 granted
Keyboard  KEY: '.' >2E 046 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN
Keyboard  KEY: ';' >3B 059 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_CHAR
Keyboard  KEY: '/' >2F 047 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN
Keyboard  KEY: ';' >3B 059 : Caps=off Shft=on  Fnct=off Ctrl=off Msg=WM_CHAR
Keyboard  KEY: '.' >2E 046 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN
Keyboard  KEY: ';' >3B 059 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_CHAR
Keyboard  KEY: '/' >2F 047 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN
Keyboard  KEY: ';' >3B 059 : Caps=off Shft=on  Fnct=off Ctrl=off Msg=WM_CHAR

 

Share this post


Link to post
Share on other sites
14 hours ago, fabrice montupet said:

I launch the emulator, enable the "All free time CPU" option and press 1 for TI Basic. When I press the key ";"  I get a ".;" and when I press the key ":", I get "/:".

And what about the "," and the "$" now you complained about in your previous message?

 

And what KB messages do you get when pressing just '.' and '/' ?

 

In a previous message you said:

pressing "," causes display ",,"

pressing "." causes display ";."

pressing "/" causes display "/:"

 

Getting really confusing now:

";" -> ".;"

"." -> ";."

 

Is the first KB message always a WM_KEYDOWN message that gives the wrong character at your side?

 

Please investigate, I can only make guesses here.

Share this post


Link to post
Share on other sites
Posted (edited)

Things are changing over the versions. After tries and tries, I can conclude that 3 keys still have problem:
";"
":"
"$"
As I said in my previous message:
- Pressing the ";" key gives ".; on the screen
- Pressing the ":" key gives "/:"
In addition, I noticed that:
- Pressing the "$" key gets a strange thing but not at each time: the 1st press gives well "$" on the screen but pressing the "$" key a second time gives ";$". But most of the time I get ";$" directly on the screen when I press the "$" key.

The Debugger windows gives this after I reset the emulator, I press the "Space" key to get the main screen, I press the "1" key for TI Basic, then the ";" key  then the ":" key, then the "$" key and I press the "$" a second time.

Keyboard  KEY: ' ' >20 032 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_CHAR
Keyboard  KEY: '1' >31 049 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_CHAR
Keyboard  KEY: '.' >2E 046 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN
Keyboard  KEY: ';' >3B 059 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_CHAR
Keyboard  KEY: '/' >2F 047 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN
Keyboard  KEY: ';' >3B 059 : Caps=off Shft=on  Fnct=off Ctrl=off Msg=WM_CHAR
Keyboard  KEY: ';' >3B 059 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN     NOT ALLOWED
Keyboard  KEY: '4' >34 052 : Caps=off Shft=on  Fnct=off Ctrl=off Msg=WM_CHAR
Keyboard  KEY: ';' >3B 059 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN
Keyboard  KEY: '4' >34 052 : Caps=off Shft=on  Fnct=off Ctrl=off Msg=WM_CHAR

 

Edited by fabrice montupet
error when pasting the debugger text

Share this post


Link to post
Share on other sites
Posted (edited)
On 6/24/2022 at 8:05 PM, fabrice montupet said:

Things are changing over the versions. After tries and tries, I can conclude that 3 keys still have problem:
";"
":"
"$"
As I said in my previous message:
- Pressing the ";" key gives ".; on the screen
- Pressing the ":" key gives "/:"
In addition, I noticed that:
- Pressing the "$" key gets a strange thing but not at each time: the 1st press gives well "$" on the screen but pressing the "$" key a second time gives ";$". But most of the time I get ";$" directly on the screen when I press the "$" key.

The Debugger windows gives this after I reset the emulator, I press the "Space" key to get the main screen, I press the "1" key for TI Basic, then the ";" key  then the ":" key, then the "$" key and I press the "$" a second time.

Keyboard  KEY: ' ' >20 032 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_CHAR
Keyboard  KEY: '1' >31 049 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_CHAR
Keyboard  KEY: '.' >2E 046 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN
Keyboard  KEY: ';' >3B 059 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_CHAR
Keyboard  KEY: '/' >2F 047 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN
Keyboard  KEY: ';' >3B 059 : Caps=off Shft=on  Fnct=off Ctrl=off Msg=WM_CHAR
Keyboard  KEY: ';' >3B 059 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN     NOT ALLOWED
Keyboard  KEY: '4' >34 052 : Caps=off Shft=on  Fnct=off Ctrl=off Msg=WM_CHAR
Keyboard  KEY: ';' >3B 059 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN
Keyboard  KEY: '4' >34 052 : Caps=off Shft=on  Fnct=off Ctrl=off Msg=WM_CHAR

 

The reaction on the $ key is not strange in this Ti994w version.

Pressing the ; key sends a / and a ; The / (WM_KEYDOWN message) is accepted and the ; send with a WM_CHAR message is accepted.

Pressing the $ key sends a ; and a $ This time the ; is rejected because the previous ; send by a WM_CHAR message was allready accepted therefore this ; send by a WM_KEYDOWN message is not allowed ... ; was allready handled. The $ key is translated to TI key SHIFT-4.

 

If the keyboard you are using with Windows is sending a ; or a / with a WM_KEYDOWN/WM_KEYUP message for every key you type then the TI keyboard methode seems to be impossible for you. The TI keyboard method relies on the WM_KEYDOWN  / WM_KEYUP messages to file a keyboard bit array scanned by CRU instructions.

 

What kind of keyboard are you using ? (second time I ask this) Can you post a picture here of your keyboard?


I have rearranged the whole TI-key conversion table for the PC keyboard method. The PC keyboard method is now only using WM_CHAR messages accept for virtual keys (all special keys and keys typed in with the ALT key down), these keys only send WM_KEYDOWN/UP messages. WM_KEYUP messages are ignored with this method and for the special keys (the keys that don't send a WM_CHAR message) the WM_KEYDOWN message is changed to a WM_CHAR message.

 

The PC keyboard method only uses the WK_KEYDOWN and WM_KEYUP message of every key.

 

Here is version 6.3a (not available on my website yet).

I removed the [VKEY] part from the code and ini file ... this can't be used anymore and always was a bit useless.

;-) Also added the original key code to the debug message for the debug window.

 

 

Ti994w63a.zip

Edited by F.G. Kaal
  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Thank you Fred! This new version works fine 🙂

I have tested all the keys and they return the good character.

I'm sorry, I have forgot to answer to your question about my keyboard model.  For programming, I use a laptop Lenovo P50 i7 2.7GHz ,32Go RAM, 2 x 512Gb RAID SSD, NVIDIA Quadro M2000/4 Gb, 15.6" IPS screen Ultra HD 4K (3 840 x 2 160), MS-Windows11Pro with a french keyboard (so AZERTY). Here is a picture of the keyboard:

lenovo-p50-p70-scaled.jpg

 

  • Like 3

Share this post


Link to post
Share on other sites
Posted (edited)

... But when I use the "TI Keyboard" mode with the "all free CPU time" option, I always have a problem: in XB Editor mode The keys pressed are randomly  repeatedly displayed :(  And it seems that the time before a character is displayed again after a longer keypress is too short.

So, for the moment, I will only use the "PC Keyboard" mode even it can't handle all the TI keyboard modes,sadly.

 

I am very sorry for all the trouble I give you to correct your emulator. I have found some other bugs but I prefer to distill them for fear of you end to hate me 😛

Edited by fabrice montupet
  • Sad 1

Share this post


Link to post
Share on other sites
21 hours ago, fabrice montupet said:

... But when I use the "TI Keyboard" mode with the "all free CPU time" option, I always have a problem: in XB Editor mode The keys pressed are randomly  repeatedly displayed :(  And it seems that the time before a character is displayed again after a longer keypress is too short.

So, for the moment, I will only use the "PC Keyboard" mode even it can't handle all the TI keyboard modes,sadly.

 

I am very sorry for all the trouble I give you to correct your emulator. I have found some other bugs but I prefer to distill them for fear of you end to hate me 😛

I allready predicted this. See my last message.

I am not sure how this works, but I suppose that every key sends hopefully some unique WM_KEYDOWN / WM_KEYUP message. And then these kind of keyboards must be mapped to the correct TI key.

 

What you could do is send me a list with codes that every key sends in TI keyboard mode. Then I can think about how to create some mapping for AZERTY keyboard and add this to the Ti994w ini file.

 

Forgot to mention that in the menu Options /  Set system speed dialog a new slider is added for slowing down the TI keyboard scan rate.

 

Now for creating a list with scan codes:

 

Select: Options / Keyboard setup / Use TI keyboard.

Select: View / Debug

In the debug window select menu option Devices / Keyboard (every thing else unselected)

In the debug window select menu option: File / Open debug.txt. The debug.txt file wil be saved in the directory where Ti994w.exe is.

 

Now just press every key on your keyboard ones from left to right row after row in the same order as in the photo you posted here. I see that some keys have three characters on them ... I don't know how those are selected so you must explain that to me.

 

Now just press with capslock off, no shift no alt or altgr just the key. If a key has more characters I type for example [email protected] then I mean just that 0 key ... nothing else.

 

1 2 3 4 5 6 7 8 9 [email protected] )]  +=}

 

a z e r t y u i o p ^ $

 

q s d f g h j k l m % *

 

>< w x c v b n  ?,  .;  /:  !

 

space enter backspace shift ctrl

 

F1 F2 F3 F4 F5 F7 F8 F9 F10 F11 F12

 

left-arrow up-arrow down-arrow right-arrow

 

then with numlock on the keys from the numeric keypad:

 

/ * - +

7 8 9

4 5 6

1 2 3

0 . enter

 

this will give a nice list with scan codes and WM_KEYDOWN / WM_KEYUP / WM_SYSKEYDOWN / WM_SYSKEYUP messages and how these are connected to a key on the TI keyboard like so:

 

Keyboard  KEY: (049) -> '1' >31 049 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (049) -> '1' >31 049 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      

 

here 049 happens to be the ASCII code for a '1', but for example a shift key send something different:

 

Keyboard  KEY: (016) -> '.' >01 001 : Caps=off Shft=on  Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (016) -> '.' >01 001 : Caps=off Shft=on  Fnct=off Ctrl=off Msg=WM_KEYUP      

 

If you post that debug.txt file here then I can see if I can make any chocolate out of that list you created then I can think of some scheme to create a translation table for the TI keyboard mode.

 

(I have a dutch keyboard witch will have the same problems as you encounter but the receiver is lost 😞 so I can't test this)

 

 

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
59 minutes ago, F.G. Kaal said:

Forgot to mention that in the menu Options /  Set system speed dialog a new slider is added for slowing down the TI keyboard scan rate

... And it changes everything! 🙂

I set the delay between TI keyboard scans to 1206us and it works great! Now the emulator reacts like a charm in TI Keyboard mode with "all free CPU time" enabled. Thank you so much Fred.  At this point, I am fulfilled.
Getting an AZERTY PC keyboard layout in TI Keyboard mode would be the cherry on the cake but absolutely non essential. Nerveless, if you like to add this feature to your emulator, this weekend I will be happy to create the list with scan codes for all the AZERTY keys.
Thank you again.

 

  • Like 3

Share this post


Link to post
Share on other sites
Posted (edited)

That's done 🙂

 

Spoiler

Debugfile opened [DEBUG.TXT]
Keyboard  KEY: (049) -> '1' >31 049 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (049) -> '1' >31 049 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (050) -> '2' >32 050 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (050) -> '2' >32 050 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (051) -> '3' >33 051 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (051) -> '3' >33 051 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (052) -> '4' >34 052 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (052) -> '4' >34 052 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (053) -> '5' >35 053 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (053) -> '5' >35 053 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (054) -> '6' >36 054 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (054) -> '6' >36 054 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (055) -> '7' >37 055 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (055) -> '7' >37 055 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (056) -> '8' >38 056 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (056) -> '8' >38 056 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (057) -> '9' >39 057 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (057) -> '9' >39 057 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (048) -> '0' >30 048 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (048) -> '0' >30 048 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (219) -> 'R' >52 082 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (219) -> 'R' >52 082 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (187) -> '=' >3D 061 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (187) -> '=' >3D 061 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (065) -> 'A' >41 065 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (065) -> 'A' >41 065 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (090) -> 'Z' >5A 090 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (090) -> 'Z' >5A 090 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (069) -> 'E' >45 069 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (069) -> 'E' >45 069 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (082) -> 'R' >52 082 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (082) -> 'R' >52 082 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (084) -> 'T' >54 084 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (084) -> 'T' >54 084 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (089) -> 'Y' >59 089 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (089) -> 'Y' >59 089 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (085) -> 'U' >55 085 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (085) -> 'U' >55 085 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (073) -> 'I' >49 073 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (073) -> 'I' >49 073 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (079) -> 'O' >4F 079 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (079) -> 'O' >4F 079 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (080) -> 'P' >50 080 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (080) -> 'P' >50 080 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (221) -> 'T' >54 084 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (221) -> 'T' >54 084 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (186) -> ';' >3B 059 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (186) -> ';' >3B 059 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (081) -> 'Q' >51 081 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (081) -> 'Q' >51 081 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (083) -> 'S' >53 083 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (083) -> 'S' >53 083 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (068) -> 'D' >44 068 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (068) -> 'D' >44 068 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (070) -> 'F' >46 070 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (070) -> 'F' >46 070 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (071) -> 'G' >47 071 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (071) -> 'G' >47 071 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (072) -> 'H' >48 072 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (072) -> 'H' >48 072 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (074) -> 'J' >4A 074 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (074) -> 'J' >4A 074 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (075) -> 'K' >4B 075 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (075) -> 'K' >4B 075 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (076) -> 'L' >4C 076 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (076) -> 'L' >4C 076 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (077) -> 'M' >4D 077 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (077) -> 'M' >4D 077 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (192) -> 'C' >43 067 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (192) -> 'C' >43 067 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (220) -> 'Z' >5A 090 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (220) -> 'Z' >5A 090 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (087) -> 'W' >57 087 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (087) -> 'W' >57 087 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (088) -> 'X' >58 088 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (088) -> 'X' >58 088 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (067) -> 'C' >43 067 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (067) -> 'C' >43 067 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (086) -> 'V' >56 086 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (086) -> 'V' >56 086 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (066) -> 'B' >42 066 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (066) -> 'B' >42 066 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (078) -> 'N' >4E 078 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (078) -> 'N' >4E 078 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (188) -> ',' >2C 044 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (188) -> ',' >2C 044 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (190) -> '.' >2E 046 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (190) -> '.' >2E 046 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (191) -> '/' >2F 047 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (191) -> '/' >2F 047 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (032) -> ' ' >20 032 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (032) -> ' ' >20 032 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (013) -> '.' >0D 013 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (013) -> '.' >0D 013 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (008) -> 'S' >53 083 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (008) -> 'S' >53 083 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (016) -> '.' >01 001 : Caps=off Shft=on  Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (016) -> '.' >01 001 : Caps=off Shft=on  Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (017) -> '.' >04 004 : Caps=off Shft=off Fnct=off Ctrl=on  Msg=WM_KEYDOWN    
Keyboard  KEY: (017) -> '.' >04 004 : Caps=off Shft=off Fnct=off Ctrl=on  Msg=WM_KEYUP      
Keyboard  KEY: (112) -> '1' >31 049 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (112) -> '1' >31 049 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (113) -> '2' >32 050 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (113) -> '2' >32 050 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (114) -> '3' >33 051 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (114) -> '3' >33 051 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (115) -> '4' >34 052 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (115) -> '4' >34 052 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (116) -> '5' >35 053 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (116) -> '5' >35 053 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (117) -> '6' >36 054 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (117) -> '6' >36 054 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (118) -> '7' >37 055 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (118) -> '7' >37 055 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (119) -> '8' >38 056 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (119) -> '8' >38 056 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (120) -> '9' >39 057 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (120) -> '9' >39 057 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (121) -> 'Y' >59 089 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_SYSKEYDOWN
Keyboard  KEY: (121) -> 'Y' >59 089 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_SYSKEYUP   
Keyboard  KEY: (122) -> '1' >31 049 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (122) -> '1' >31 049 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (123) -> '2' >32 050 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (123) -> '2' >32 050 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (037) -> 'S' >53 083 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (037) -> 'S' >53 083 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (038) -> 'E' >45 069 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (038) -> 'E' >45 069 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (040) -> 'X' >58 088 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (040) -> 'X' >58 088 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (039) -> 'D' >44 068 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (039) -> 'D' >44 068 : Caps=off Shft=off Fnct=on  Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (111) -> '/' >2F 047 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (111) -> '/' >2F 047 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (106) -> '8' >38 056 : Caps=off Shft=on  Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (106) -> '8' >38 056 : Caps=off Shft=on  Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (109) -> '/' >2F 047 : Caps=off Shft=on  Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (109) -> '/' >2F 047 : Caps=off Shft=on  Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (107) -> '=' >3D 061 : Caps=off Shft=on  Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (107) -> '=' >3D 061 : Caps=off Shft=on  Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (103) -> '7' >37 055 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (103) -> '7' >37 055 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (104) -> '8' >38 056 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (104) -> '8' >38 056 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (105) -> '9' >39 057 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (105) -> '9' >39 057 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (100) -> '4' >34 052 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (100) -> '4' >34 052 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (101) -> '5' >35 053 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (101) -> '5' >35 053 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (102) -> '6' >36 054 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (102) -> '6' >36 054 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (097) -> '1' >31 049 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (097) -> '1' >31 049 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (098) -> '2' >32 050 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (098) -> '2' >32 050 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (099) -> '3' >33 051 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (099) -> '3' >33 051 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (096) -> '0' >30 048 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (096) -> '0' >30 048 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP      
Keyboard  KEY: (110) -> '.' >2E 046 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYDOWN    
Keyboard  KEY: (110) -> '.' >2E 046 : Caps=off Shft=off Fnct=off Ctrl=off Msg=WM_KEYUP   

   

Note that when I pressed the key "!" nothing appeared on the screen.

Edited by fabrice montupet
additional information.
  • Like 1

Share this post


Link to post
Share on other sites
On 7/2/2022 at 4:30 PM, fabrice montupet said:

Note that when I pressed the key "!" nothing appeared on the screen.

Thanks Fabrice.

It is strange that the ! key does not send an code. Maybe the emulator skips this for now for some reason which I can't figure out because I don't know what that keycode is  (?)

 

I also see that a lot of key codes are mapped to the correct TI keyboard key. Now I am going to try to think of some plan to map any kind of keyboard to the TI-keyboard 🙂

  • Like 2

Share this post


Link to post
Share on other sites

An other (minor) bug found: Sometimes, when I launch the emulator, the menu "Modules" is absent: I only get the menus bar "File/View/options/Interrupt" instead of "File/Modules/View/options/Interrupt" and, by consequence, only the "TI Basic" choice is proposed, the selected module during the previous emulator launch has disappeared.
To correct the problem, I quit the emulator and launch it again.

Share this post


Link to post
Share on other sites
Posted (edited)

A major bug found using XB256 XB29GEM20220623 (strangely the folder found in it is called XB29GEM20220317) :

In video native mode (32 columns), I write this little program (it's just an example, it could be everything else) :             

 * Extended Basic v2.9 G.E.M.           
                                        
>10 CALL CLEAR                          
>20 FOR T=1 TO 10000::CALL LINK("DISPLY",10,10,str$(t)):: NEXT T                                          

All is OK, the program counts and displays the T value. I break the program, no needs that it reaches 10000.

Then, I decide to use the video 40 columns mode:

>CALL EDIT40  

It's still OK, the editor uses now the 40 columns mode.

Then I run again the program and stop it after a few seconds. I obtain:

* BREAKPOINT IN 20                     
                                        
>                                       

The editor has hanged....

The problem can also be reproduced if I use CALL EDIT80 (video 80 columns mode).

Edited by fabrice montupet

Share this post


Link to post
Share on other sites
Posted (edited)

A critical bug with XB256 XB29GEM20220623 (already discovered with the previous version ). I don't know how you'll be able to correct it as the information about this bug are thin:

Sometimes, when I launch a XB256 program (no matter which of them), I get error messages like "MEMORY FULL" or "STRING-NUMBER MISMATCH"

Without modify the program I run it again one, two or three times and... it works!

But sometimes, it's worse... I get a "LINE NOT FOUND IN xxxx" and when I list the program, it has be cleared from memory.

 

Edited by fabrice montupet

Share this post


Link to post
Share on other sites
4 hours ago, fabrice montupet said:

A critical bug with XB256 XB29GEM20220623 (already discovered with the previous version ). I don't know how you'll be able to correct it as the information about this bug are thin:

Sometimes, when I launch a XB256 program (no matter which of them), I get error messages like "MEMORY FULL" or "STRING-NUMBER MISMATCH"

Without modify the program I run it again one, two or three times and... it works!

But sometimes, it's worse... I get a "LINE NOT FOUND IN xxxx" and when I list the program, it has be cleared from memory.

 

And how and in what way are all these XB256 problems a bug in Ti994w ?

Share this post


Link to post
Share on other sites
20 hours ago, fabrice montupet said:

I suppose the Ti994w has problem since this new version of XB256 works fine both on the real hardware and with Classic99.

This is what I get when selecting XB256 and after a CALL EDIT40 or CALL EDIT80 and RUN and FCTN-4.

Something wrong with XB256. Have to go back to extended basic 2.9, do a CALL EDIT32 and then all is fine again.

The problom doesn't occur when EDIT40 or EDIT80 is not used.

 

Spoiler

Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3DE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := FAE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 05E0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 10E0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 1BE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 26E0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 31E0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3CE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 47E0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 52E0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 5DE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 68E0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 73E0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 7EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 89E0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 94E0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 9FE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := AAE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := B5E0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := C0E0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := CBE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := D6E0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := E1E0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := ECE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := F7E0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 3EE0
Illegal write at PC=089E to address >0000 := 00E0
Illegal write at PC=08A0 to address >0000 := 02E0

 

 

The code executed there is.

 

Spoiler

>0528: >06A0               BL     @>0880                    [ to PC:>0880 ]
>0880: >020A >4000         LI     R10,>4000                 [ >4000 := >4000 ]
>0884: >D1E0               MOVB   @>837F ,R07               [ >1200 := >4100 ]
>0888: >23A0               COC    @>0072,R14                [ >0002 COC >0000 ]
>088C: >130E               JEQ    >0E                       [ to PC:>08AA, FALSE { EQ=0 } ]
>088E: >0A37               SLA    R07,03                    [ >1200 << 03 := >9000 ]
>0890: >0987               SRL    R07,08                    [ >9000 >> 08 := >0090 ]
>0892: >D1E0               MOVB   @>837E ,R07               [ >0090 := >C900 ]
>0896: >0937               SRL    R07,03                    [ >0090 >> 03 := >0012 ]
>0898: >A1CA               A      R10,R07                   [ >0012 + >4000 := >4012 ]
>089A: >D7E0               MOVB   @>83EF ,*R15              [ >83E0 := >00E0 ]
Illegal write at PC=089E to address >0000 := 00E0
>089E: >D7C7               MOVB   R07,*R15                  [ >83E0 := >C9E0 ]
Illegal write at PC=08A0 to address >0000 := C9E0
>08A0: >61CA               S      R10,R07                   [ >4012 - >4000 := >0012 ]
>08A2: >045B               B      *R11                      [ to PC:>052C ]
>052C: >0588               INC    R08                       [ >FFFF := >0000 ]
>052E: >13DB               JEQ    >DB                       [ to PC:>04E6, TRUE { EQ=1 } ]
>04E6: >D21D               MOVB   *R13,R08                  [ >0000 := >8300 ]
>04E8: >020C >8373         LI     R12,>8373                 [ >8373 := >8373 ]
>04EC: >C148               MOV    R08,R05                   [ >050A := >0000 ]
>04EE: >0A38               SLA    R08,03                    [ >0000 << 03 := >0000 ]
>04F0: >09B8               SRL    R08,11                    [ >0000 >> 11 := >0000 ]
>04F2: >0548               INV    R08                       [ >0000 := >FFFF ]
>04F4: >09C5               SRL    R05,12                    [ >0000 >> 12 := >0000 ]
>04F6: >C165               MOV    @>0CDC(R05),R05           [ >0000 := >050A ]
>04FA: >0202 >050A         LI     R02,>050A                 [ >050A := >050A ]
>04FE: >0704               SETO   R04                       [ >FFFF := >FFFF ]
>0500: >0455               B      *R05                      [ to PC:>050A ]
>050A: >D19D               MOVB   *R13,R06                  [ >AD67 := >8300 ]

 

I am not going to spend more time on this.

Share this post


Link to post
Share on other sites
On 7/6/2022 at 5:24 PM, fabrice montupet said:

And about the other problems?

You mean the cherry on the cake? ... I am still thinking how to add this feature 🙂

Share this post


Link to post
Share on other sites

LOL ! 😂

I rather thought about the program cleared from memory. Anyway, I use a previous version of XB256 that works fine and still sufficient for my needs.

Share this post


Link to post
Share on other sites
8 minutes ago, fabrice montupet said:

LOL ! 😂

I rather thought about the program cleared from memory. Anyway, I use a previous version of XB256 that works fine and still sufficient for my needs.

This reinforces my idea that the problem is en XB256 and not the emulator 😁

Share this post


Link to post
Share on other sites

I trust in you 🙂

Maybe I was very very lucky, the problems can be real with the last version of XB256 but the chance willed that they didn't end to show up during the tests on the real hardware and Classic99. I will do them again a next time.

I realized that the tests have been made with the Tiny99/4Av3 but not with a stock 99/4A computer, this could explain that? Wait and see.

Share this post


Link to post
Share on other sites
Posted (edited)

Some precision about the bug announced in the message posted July 5:

I launch the emulator, select a cartridge (no matter the one) then I go to full screen mode then I do a left click to get the contextual menu then I choose to Exit.

Now I launch again the emulator that opens in full screen mode... But the cartridge previously selected has disappeared like the "Cartridge" menu.

To correct, I leave the full screen mode by left click to get the contextual menu and choose to Restore. Then I exit and relaunch the emulator. The "Cartridge" menu is back here.

 

Edited by fabrice montupet
Typing error
  • Like 1

Share this post


Link to post
Share on other sites
2 hours ago, fabrice montupet said:

Some precision about the bug announced in the message posted July 5:

I launch the emulator, select a cartridge (no matter the one) then I go to full screen mode then I do a left click to get the contextual menu then I choose to Exit.

Now I launch again the emulator that opens in full screen mode... But the cartridge previously selected has disappeared like the "Cartridge" menu.

To correct, I leave the full screen mode by left click to get the contextual menu and choose to Restore. Then I exit and relaunch the emulator. The "Cartridge" menu is back here.

 

Tank you Fabrice ... this is a good hint 🙂

 

I suppose that when the emulator is started in full screen mode that there is no menu to add the module menu to. Think that loading the menu is a bit to late or I have to think about some other plan to make this possible.

 

In the mean while I am busy with this:

 

afbeelding.png.e3fa4275c115227d361c1f99ec1c1a6f.png

 

The dialog is almost working properly, then I have to add some code that does something with this TI key map list.

0xDC is a keydown scan code. Not every key can be translated to the correct character (only a-z and 0-9) because that makes things confusing again, on my keyboard 0xDC is the '\' key an can be something else on your keyboard. The idea is that only the keys that function not properly must be mapped to the correct key.

 

 

  • Like 3

Share this post


Link to post
Share on other sites

There is a new version of Ti994w version 7.1a

 

I have finished the Keyboard mapper ... I have no keyboard to check this though.

Also fixed the module menu bug ... this was wat I allreadu suspected; the module menu was added after maximizing the screen and was to late because the menu was allready hidden.

Ti994w71a.zip

 

  • Like 2
  • Thanks 1

Share this post


Link to post
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...