Jump to content
Tursi

Classic99 Updates

Recommended Posts

2 hours ago, Tursi said:

Hmm.. makes it seem unlikely. Is it possible that the instruction before the decrement is responsible? It's unlikely, but sometimes I don't trust the internal PC in debug statements, the cause can be an instruction or two earlier.

 

I just noticed I was focused on A074, cause that's where the arrow is, but the debug says A072. Definitely look at the previous instruction. The PC needs to be incremented before the hardware access occurs. ;)

 

I was thinking the  it must be something like that.

 

(I am your favourite pain in the _ss I think.)

 

It was happening in my key scan loop which was calling the 9901 timer to determine when to flash the cursor or flash the space character. {called BL in Forth (blank)}

: KEY      ( -- char)
            BEGIN                 \ start the loop
              PAUSE               \ Essential for Multi-tasking with Console
\ *BAD*       [email protected] 1FFF <         \ compare harware timer to 1FFF
\ *good*      8378 @ 0F AND 7 <   \ compare interrupt counter to 7
              IF   CURS @         \ true? fetch the cursor char
              ELSE BL             \ false? get the screen char
              THEN VPUT           \ then put on screen
              KEY?                \ check the keyboard
              ?DUP                \ DUP IF <> 0
            UNTIL                 \ loop until a key pressed
            BL VPUT ;             \ put the space char on screen

Here is VPUT which does the talking to the 9918.  The BL to WMODE sets LIMI 0 on entry.

variable: VPG   \ holds address of VDP page ( >400 increments only)
CODE: VPUT  ( char -- )  \ put a char at cursor position
             TOS PUSH,
             R1         STWP,    \ workspace is USER area base address
             32 (R1) R3  MOV,    \ vrow->r3
             2E (R1) R3  MPY,    \ vrow*c/l->tos
             34 (R1) TOS ADD,    \ add vcol
             VPG @@  TOS ADD,    \ add video page address
l: _VC!  ( char Vaddr  -- )      \ VSBW in Forth style  pronounced "Vee-Cee-store"
             TOS  R0 MOV,
             WMODE @@ BL,
            *SP SWPB,
            *SP+ VDPWD @@ MOV,   \ write char & POP
             2 LIMI,
             TOS POP,            \ refill TOS
             NEXT,
             END-CODE

 

Here is that code to read the 9901 timer, which you have seen before. 🙂 

CODE: [email protected]   ( -- n)         \ read the TMS9901 timer
             0 LIMI,
             TOS PUSH,
             R12 2 LI,      \ cru = 1 (honest, 2=1)
            -1 SBO,         \ SET bit 0 TO 1, Enter timer mode
             TOS 0E STCR,   \ READ TIMER (14 bits)
            -1 SBZ,         \ RESET bit 1, exit timer mode
             2 LIMI,
             NEXT,
             END-CODE

First I remove the call to [email protected] above and voila!  Problem solved.

So then I remove the  LIMI 2 instruction at the end of this and it flashed the warning once, but only once for the 2 ..3 minutes that I tried to make it happen.

Not sure why calling the timer did it.

Share this post


Link to post
Share on other sites

That's why debugging is fun. ;)

 

(I am your favourite pain in the _ss I think.)

 

Hehe, right now that's Turbo Pascal.... ;)

 

  • Like 3

Share this post


Link to post
Share on other sites

Any chance of adding a 99/2 mode to classic99? ;-)

You already support /4a and /4, /2 would be a nice touch.

Edited by jrhodes

Share this post


Link to post
Share on other sites
3 hours ago, jrhodes said:

Any chance of adding a 99/2 mode to classic99? ;-)

You already support /4a and /4, /2 would be a nice touch.

4A and 4 are the same hardware. I don't think there's much overlap with the 2.

 

But if I get a free 2 for a few years to learn it before I start, I'll consider it. ;)

 

  • Like 5

Share this post


Link to post
Share on other sites

Classic99 399.027


- fix disk full on image disks (would just keep overwriting the same sector)
- fix crash bug in debug of writing very large files
- fix recorded length of variable-length record files (would be off by 1)
- fix reporting of errors on CLOSE (/all/ disk types suffered here)
- updated Tunnels of Doom in CartPack to describe how to load the built-in games
 

I made the mistake of playing with disk images on my own this time. Serves me right. ;)

 

https://harmlesslion.com/software/classic99

 

 

  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites

I like updating the Classic99, because it just takes seconds, without any risk for my config files. :thumbsup:

(But I make backups from time to time, of course, by just zipping the whole folder)

 

  • Like 1

Share this post


Link to post
Share on other sites
Posted (edited)

ah, and I have one question:

 

If I press ->Help & ->Open Manual I get this message.

Maybe I have a path wrong in my INI ? (Prerequisites from the message are met)

(But I only use the older Acrobat Reader 9.5)

 

(Not dramatic, as I know how to open the PDF manually) :grin:

 

grafik.thumb.png.09b17a46ca4d689c6a3b33c7e9edb210.png

Edited by Schmitzi

Share this post


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

Classic99 399.027


- fix disk full on image disks (would just keep overwriting the same sector)
- fix crash bug in debug of writing very large files
- fix recorded length of variable-length record files (would be off by 1)
- fix reporting of errors on CLOSE (/all/ disk types suffered here)
- updated Tunnels of Doom in CartPack to describe how to load the built-in games
 

I made the mistake of playing with disk images on my own this time. Serves me right. ;)

 

https://harmlesslion.com/software/classic99

 

 

Whats better then fresh apple pie?

Fresh Classic99 release.

Share this post


Link to post
Share on other sites
1 hour ago, Schmitzi said:

I like updating the Classic99, because it just takes seconds, without any risk for my config files. :thumbsup:

(But I make backups from time to time, of course, by just zipping the whole folder)

 

Unlike too many modern systems, I believe in backwards compatibility. Even if I do change the configuration file, I will always provide an upgrade path, as automatic as is reasonable. This has happened several times and nobody has noticed, which means I did my job right. ;)

 

  • Like 2

Share this post


Link to post
Share on other sites
1 hour ago, Schmitzi said:

ah, and I have one question:

 

If I press ->Help & ->Open Manual I get this message.

Maybe I have a path wrong in my INI ? (Prerequisites from the message are met)

(But I only use the older Acrobat Reader 9.5)

 

(Not dramatic, as I know how to open the PDF manually) :grin:

 

grafik.thumb.png.09b17a46ca4d689c6a3b33c7e9edb210.png

Your working folder is probably wrong. Can happen if you started Classic99 from a shortcut with a starting folder that isn't the one containing the exe and the pdf. Or you have come up with a sequence of file operations that I didn't anticipate and there's a hole I didn't know about. (This is not the case if it happens as soon as you open the emulator). I can't reproduce it here.

 

As always, the debug log would provide insight - it reports the Windows error code from ShellExecute. But it does rely on the working folder containing the manual.

 

  • Like 1

Share this post


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

Your working folder is probably wrong. Can happen if you started Classic99 from a shortcut with a starting folder that isn't the one containing the exe and the pdf. Or you have come up with a sequence of file operations that I didn't anticipate and there's a hole I didn't know about. (This is not the case if it happens as soon as you open the emulator). I can't reproduce it here.

 

As always, the debug log would provide insight - it reports the Windows error code from ShellExecute. But it does rely on the working folder containing the manual.

 

 

I start it from the folder where it resides, just with a double-click on the Classic99.exe

Where do I find the Debug log ?

 

Is it this ?

 

grafik.png.ca0af03d7515a6980328c02c32963692.pnggrafik.png.b46c72d24ee6ee171d9d47a747c98c93.png

 

 

 

 

Share this post


Link to post
Share on other sites

Are you running this as administrator if not you may have a rights issue in the folder

Sent from my LM-G820 using Tapatalk

  • Like 1

Share this post


Link to post
Share on other sites
3 hours ago, Schmitzi said:

 

I start it from the folder where it resides, just with a double-click on the Classic99.exe

Where do I find the Debug log ?

 

Is it this ?

 

grafik.png.ca0af03d7515a6980328c02c32963692.pnggrafik.png.b46c72d24ee6ee171d9d47a747c98c93.png

 

 

 

 

Found this:

Please download Windows Installer clean up utility from the below link,
http://download.microsoft.com/download/e/9/d/e9d80355-7ab4-45b8-80e8-983a48d5e1bd/msicuu2.exe

After installing, run the tools by clicking on Start --> Programs --> Windows Clean up.
Inside the window, you will see different installed versions of .NET Framework. You should select & remove only that versions of .NET Framework, which is failing to deploy each time \ for which you are receiving error code.

Now, download the Microsoft .NET Framework Version 1.1 Redistributable Package from the following link and save it to the C drive (C:\)
Microsoft .NET Framework Version 1.1 Redistributable Package
 http://download.microsoft.com/download/a/a/c/aac39226-8825-44ce-90e3-bf8203e74006/dotnetfx.exe

Now, try to install your stuffs.

 

Share this post


Link to post
Share on other sites

And GOOGLE says this:

1155 Error Code is caused in one way or another by misconfigured system files in your windows operating system. So, If you got 1155 Error then We strongly recommend that you Download (Error 1155) Repair Tool.

 

  • Thanks 1

Share this post


Link to post
Share on other sites
1 minute ago, RXB said:

Found this:

Please download Windows Installer clean up utility from the below link,
http://download.microsoft.com/download/e/9/d/e9d80355-7ab4-45b8-80e8-983a48d5e1bd/msicuu2.exe

After installing, run the tools by clicking on Start --> Programs --> Windows Clean up.
Inside the window, you will see different installed versions of .NET Framework. You should select & remove only that versions of .NET Framework, which is failing to deploy each time \ for which you are receiving error code.

Now, download the Microsoft .NET Framework Version 1.1 Redistributable Package from the following link and save it to the C drive (C:\)
Microsoft .NET Framework Version 1.1 Redistributable Package
 http://download.microsoft.com/download/a/a/c/aac39226-8825-44ce-90e3-bf8203e74006/dotnetfx.exe

Now, try to install your stuffs.

 

 

yeah thanks, but I never ever touch (uninstall/clean) a dotNET if it seems to work.

This did some very very bad things to some customers machines in the past.

And the problems occured a long time later. But I will have a manual look at the registry.

 

 

 

 

 

Share this post


Link to post
Share on other sites
3 minutes ago, RXB said:

And GOOGLE says this:

1155 Error Code is caused in one way or another by misconfigured system files in your windows operating system. So, If you got 1155 Error then We strongly recommend that you Download (Error 1155) Repair Tool.

 

 

Same same, no fixup tools from Microsoft for me, on a single, small problem.

:)

but thanks a lot :thumbsup:

 

 

  • Like 1

Share this post


Link to post
Share on other sites
Posted (edited)

 

I think, "1155" is an internal error number from Classic99 (?)

 

uuh :)

Edited by Schmitzi
  • Haha 1

Share this post


Link to post
Share on other sites
Just now, Schmitzi said:

 

I think, "1155" is an internal error number from Classic99, not coming from Windows  (?)

 

 

 

  • Like 1

Share this post


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

 

Yea if Classic99 is loaded into wrong folder or bad folder permissions or group permissions or antivirus folder options this all crops up as 1155 error.

 

  • Like 1

Share this post


Link to post
Share on other sites

Hey guys, go slow on decoding the error codes when you haven't looked at the source code to see where they come from. Even I always check before I try to decode them.

 

The 1155 is actually an erroneous value off the stack - that debug statement does not use FormatMessage. I've fixed that for next release. Error 31 is the actual return from ShellExecute. It's a strange error, it's a general error.

 

Permissions are unlikely - if he can launch Classic99 he should be able to read the PDF in the same folder. ;) Please don't run Classic99 as Administrator - if you need to you probably should run it from a different folder. Remember you are responsible for the security of your system.

 

Anyway, the manual open literally just does an "Open" verb on the manual file, which must be named "Classic99 Manual.pdf". As a test, you can right-click the PDF and see if Windows provides you an "Open" verb at the top of the list, and click that (rather than double-click). If that works, in theory that is the same thing Classic99 is trying to do.

 

One thing I wonder about is localization... are you on an English version of Windows, Schmitzi? Is the verb different otherwise?

 

Only other thing I can do is add some extra debug to say where it's trying to open it from. ;)

 

  • Like 2

Share this post


Link to post
Share on other sites

Last night I gave this a try and AVG's cyberprotection thingie (cannot remember what that is called, shame on me) caught Classic 99 and put it in a "sand box."  Once it determined all was good*, it restarted Classic99 -- apparently this is a common complaint.  The restart notwithstanding, I am curious if an anti-virus program is detecting Classic99 calling out to another program and putting the kibosh on the process.

 

* It did open the PDF on the second attempt.

Share this post


Link to post
Share on other sites
Posted (edited)
49 minutes ago, Tursi said:

 

...

 

One thing I wonder about is localization... are you on an English version of Windows, Schmitzi? Is the verb different otherwise?

 

Only other thing I can do is add some extra debug to say where it's trying to open it from. ;)

 

 

HA !! My Windows is german, but the (standard) command is "Read" :)  :) (and should be "Öffnen")

Maybe some struggle on my PC, from older times ;)

 

 

 

 

Edited by Schmitzi

Share this post


Link to post
Share on other sites
3 hours ago, Tursi said:

Hey guys, go slow on decoding the error codes when you haven't looked at the source code to see where they come from. Even I always check before I try to decode them.

 

The 1155 is actually an erroneous value off the stack - that debug statement does not use FormatMessage. I've fixed that for next release. Error 31 is the actual return from ShellExecute. It's a strange error, it's a general error.

 

Permissions are unlikely - if he can launch Classic99 he should be able to read the PDF in the same folder. ;) Please don't run Classic99 as Administrator - if you need to you probably should run it from a different folder. Remember you are responsible for the security of your system.

 

Anyway, the manual open literally just does an "Open" verb on the manual file, which must be named "Classic99 Manual.pdf". As a test, you can right-click the PDF and see if Windows provides you an "Open" verb at the top of the list, and click that (rather than double-click). If that works, in theory that is the same thing Classic99 is trying to do.

 

One thing I wonder about is localization... are you on an English version of Windows, Schmitzi? Is the verb different otherwise?

 

Only other thing I can do is add some extra debug to say where it's trying to open it from. ;)

 

Ummm if folder permissions are bad for say like /DSK4./ and you get stack overflow and other errors, learned this one the hard way on Classic99.

I was using GPL Assembler and could not figure out what the problem was and Debug was not helping.

Also my Classic99 is in the Documents folder along with everything TI related and every time I open Classic99 Windows 10 asks for permission to open it.

Also with the latest Windows 10 updated it crashes with a protection error if Classic99 writes to a folder.

But I have to give it permissions again after each Windows 10 updates.

Share this post


Link to post
Share on other sites
3 hours ago, OLD CS1 said:

Last night I gave this a try and AVG's cyberprotection thingie (cannot remember what that is called, shame on me) caught Classic 99 and put it in a "sand box."  Once it determined all was good*, it restarted Classic99 -- apparently this is a common complaint.  The restart notwithstanding, I am curious if an anti-virus program is detecting Classic99 calling out to another program and putting the kibosh on the process.

 

* It did open the PDF on the second attempt.

It's probably just hooking any call to ShellExecute... I still need to investigate if signing my software will make AV less paranoid.

 

Share this post


Link to post
Share on other sites
3 hours ago, Schmitzi said:

 

HA !! My Windows is german, but the (standard) command is "Read" :)  :) (and should be "Öffnen")

Maybe some struggle on my PC, from older times ;)

Hmmm.

 

Well, the documentation notes that I can pass NULL instead of a string for the "default" action, and since the default action is probably what we want, that may still be safe enough while working on international versions. Since Windows ties to the extension I can't think of a way that could easily go south, so I guess I'll do it.

 

  • Like 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.

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...