Jump to content
IGNORED

TurboBasicXL problem


bob1200xl

Recommended Posts

Hello guys

 

MyDOS 4.50 seems to come in different flavors. They look the same, feel the same and even taste the same, but seem to be different. Worst is, looking for the culprit who did this is probably gonna be a long process that doesn't lead to anything but frustration.

 

You better try 4.55 beta 4 which can be downloaded from my MyDOS page.

 

Mathy

Link to comment
Share on other sites

If I were just trying to run MyDOS, I would choose 4.55/4, but I am trying to track down what looks like a hardware snafu.

 

It looks like location $26 is corrupted somewhere along the way while the code for $6000 loads. All the code gets loaded (including $2E2,3) but MyDOS checks $26 to see if an INIT is 'allowed' and $26 says 'no'?? MyDOS just does an RTS back into DOS, who then loads DUP back into memory.

 

Now, I am trying find out who steps on $26...

 

Bob

Link to comment
Share on other sites

>MyDOS checks $26 to see if an INIT is 'allowed' and $26 says 'no'??

Where in the source do you see that?

 

127B A526	   7810	 LDA ICPTLZ  ;IF NO INITS,
127D 4A		 7820	 LSR A
127E B025	   7830	 BCS CCFILE  ;SKIP TO NEXT PAGE
1280 8A		 7840	 TXA		 ;ELSE SAVE IOCB
1281 48		 7850	 PHA
1282 A0F4	   7860	 LDY #256-12
1284 B92CFF	 7870 CPSICB LDA ICHIDZ-256+12,Y
1287 9D4003	 7880	 STA ICHID,X ;SAVE 12 BYTE IOCB ENTRY
128A E8		 7890	 INX
128B C8		 7900	 INY
128C D0F6	   7910	 BNE CPSICB
128E 68		 7920	 PLA
128F AA		 7930	 TAX
1290 48		 7940	 PHA
1291 200013	 7950	 JSR DOINIT  ;AND CALL INIT FUNCTION
1294 68		 7960	 PLA
1295 AA		 7970	 TAX
1296 48		 7980	 PHA
1297 A0F4	   7990	 LDY #256-12
1299 BD4003	 8000 CPRICB LDA ICHID,X ;THEN RESTORE THE 12 BYTE IOCB

 

ICPTLZ ($26) gets the value in ICAX1Z at the top of the load routine. This should be $04, so after it's shifted right here, carry should always be clear. As far as I can see, the INIT routine should execute. Unless bit 0 of ICAX1Z is set for some reason???

Edited by flashjazzcat
Link to comment
Share on other sites

Here's a version which (hopefully) solves the problem.

The first INIT block outputs the text via CIO #0 (E:) and changes $26 from $04 to $AF.

This version restores the original value.

It also contains PAL/NTSC detection and adapts the TIME.. functions automatically like in the "TURBO20" version.

Load TURBO15F.COM. Press SHIFT during loading to see the fix version.

Turbo.atr

Link to comment
Share on other sites

Here are two load traces of TBXL as an AUTORUN.SYS file loaded from a 1050 drive. With MyDos 3.07 and the WIDE mode, the load is perfect and complete. (For me, with 3.07 or 3.08 in WIDE mode, TBXL loads perfectly 100% of the time.) With 4.50 it loads, but as Bob1200XL mentions, it always drops back to loading the DUP.SYS menu.

 

Also included is the identical image of the 4.50/TBXL disk, but loaded as an APE image.

 

-Larry

Link to comment
Share on other sites

TURBO15F with SHIFT key dumps me in a hang condition, much the same as the result when I run in 1200XL mode. If I hit RESET, I get a prompt and the LIST command shows two odd lines of code...

 

What is different about TURBO15F? It seems to get farther in the load, but still isn't right.

 

Bob

 

 

 

Here's a version which (hopefully) solves the problem.

The first INIT block outputs the text via CIO #0 (E:) and changes $26 from $04 to $AF.

This version restores the original value.

It also contains PAL/NTSC detection and adapts the TIME.. functions automatically like in the "TURBO20" version.

Load TURBO15F.COM. Press SHIFT during loading to see the fix version.

Link to comment
Share on other sites

After Larry sent the screen shots and after reading a bit about what is different in the 1200 XL, I am fairly sure that all this has nothing to do with MyDOS. I could not find the source/dump of the 1200 XL OS, but I found that (in contrast to the 400/800/XL OS) then 1200 XL OS modifies PORTB bits directly to control two LEDs there. Also the screen shots Larry sent indicate a PORTB issue here, because it looks like a "missing ROM" creates these stray inverse arrows ($FF) to appear in the screen memory location. TBXL heavily relies on being the "owner" of PORTB. Here is a short test program "Turbo-Flicker.xex" to see if the screen garbage displayed on the 1200 XL is due to PORTB changes in it's OS. That would also explain why it does not happen with different OS'es.

 

post-17404-0-90780900-1330287552.jpg

 

>TURBO15F with SHIFT key dumps me in a hang condition

Pressing SHIFT only displays some more characters (my fix version string). If that makes the system hang, oh dear..

post-17404-0-96233100-1330287787_thumb.png

 

>What is different about TURBO15F?

If preserves/restores $26 in the INIT block and adaptes to NTSC on NTSC machines.

Turbo-Flicker.xex

Edited by JAC!
Link to comment
Share on other sites

What is that screen shot with all the garbage on-screen?

 

I never get anything like that...

 

PORTB does not get changed other than by the OS - which is the normal 800XL OS, not the 1200XL OS. (unless I'm in 1200XL mode, which I am not)

 

Bob

 

 

After Larry sent the screen shots and after reading a bit about what is different in the 1200 XL, I am fairly sure that all this has nothing to do with MyDOS. I could not find the source/dump of the 1200 XL OS, but I found that (in contrast to the 400/800/XL OS) then 1200 XL OS modifies PORTB bits directly to control two LEDs there. Also the screen shots Larry sent indicate a PORTB issue here, because it looks like a "missing ROM" creates these stray inverse arrows ($FF) to appear in the screen memory location. TBXL heavily relies on being the "owner" of PORTB. Here is a short test program "Turbo-Flicker.xex" to see if the screen garbage displayed on the 1200 XL is due to PORTB changes in it's OS. That would also explain why it does not happen with different OS'es.

 

post-17404-0-90780900-1330287552.jpg

 

>TURBO15F with SHIFT key dumps me in a hang condition

Pressing SHIFT only displays some more characters (my fix version string). If that makes the system hang, oh dear..

post-17404-0-96233100-1330287787_thumb.png

 

>What is different about TURBO15F?

If preserves/restores $26 in the INIT block and adaptes to NTSC on NTSC machines.

Link to comment
Share on other sites

That is the garbage that I get on the 1200XL side with MyDos 3.07. But TBXL initializes and runs 100% of the time for me with MyDos 3.07 or 3.08. After all the garbage, it goes to the blue screen and "TURBO" prompt.

 

I don't get the garbage on the WIDE side with either 3.07 or 4.50. I don't get the garbage on the 1200XL side with 4.50.

 

-Larry

 

What is that screen shot with all the garbage on-screen?

 

I never get anything like that...

 

PORTB does not get changed other than by the OS - which is the normal 800XL OS, not the 1200XL OS. (unless I'm in 1200XL mode, which I am not)

 

Bob

Link to comment
Share on other sites

I ran the program - no extra characters. If Larry is getting that kind of screen, his ANTIC is bad/out-of-spec. It really has no bearing on the TBXL loading. When you use a very high-speed CPU/memory (even at 1.79MHZ), it drops off the bus or jumps on the bus before ANTIC is finished poking along.

 

I'll see if I can fix Larry's machine and we can try TBXL again.

 

Bob

 

 

 

After Larry sent the screen shots and after reading a bit about what is different in the 1200 XL, I am fairly sure that all this has nothing to do with MyDOS. I could not find the source/dump of the 1200 XL OS, but I found that (in contrast to the 400/800/XL OS) then 1200 XL OS modifies PORTB bits directly to control two LEDs there. Also the screen shots Larry sent indicate a PORTB issue here, because it looks like a "missing ROM" creates these stray inverse arrows ($FF) to appear in the screen memory location. TBXL heavily relies on being the "owner" of PORTB. Here is a short test program "Turbo-Flicker.xex" to see if the screen garbage displayed on the 1200 XL is due to PORTB changes in it's OS. That would also explain why it does not happen with different OS'es.

 

post-17404-0-90780900-1330287552.jpg

 

>TURBO15F with SHIFT key dumps me in a hang condition

Pressing SHIFT only displays some more characters (my fix version string). If that makes the system hang, oh dear..

post-17404-0-96233100-1330287787_thumb.png

 

>What is different about TURBO15F?

If preserves/restores $26 in the INIT block and adaptes to NTSC on NTSC machines.

Link to comment
Share on other sites

ANTIC timings seem to depend on the previous/next cycle, for some reason. If an ANTIC cycle is preceeded immediately by a memory refresh, it throws ANTIC out of sync by something like 50ns. Part of ANTIC is running the 'screen display' code and part of it is running the 'refresh DRAM' code - and, they don't play well together. Some software seems to hold ANTIC off the bus too long and it has to 'force' cycles, either refresh or character data requests. These tend to be so far out of time that the data never gets from the character set into ANTIC. Doesn't seem to happen with RAM character sets, just ROM. Note that 1200XL mode runs only from the stock 1200XL ROM and WIDE modes run only from SRAM. If you look in the CPLD, you will see that access times for SRAM are skewed. May have to do that for the ROM...

 

Bob

Link to comment
Share on other sites

Yes, 1200XLs do have a number of timing/noise problems. Makes you wonder what kind of engineers they had working for them? (to be fair, it could be really bad management...)

 

I tried an ANTIC that is known to fail on a Sweet16 - works normally in all modes with all DOS versions. (3.07 and 3.08 work, 4.5 returns to DOS)

 

No $FFs.

 

Bob

Link to comment
Share on other sites

In 1200XL mode. 3.07 and 3.08 are actually loading data under the ROM once the TBXL screen loads. 4.50 is not (it should, but it is broken)

 

In WIDE mode, there is no ROM, just RAM. Once we 'fix' the 4.50 problem, it will probably give you 3.07/3.08 displays, also.

 

Bob

 

 

 

If it is Antic, why would it only do it with 3.07/3.08 on the 1200XL side?

-Larry

Link to comment
Share on other sites

This is not a problem with a stock 1200XL, just a modified PBI hard drive 1200XL. Can

you describe this 1200XL? Putting a PBI on it and running 800XL OS, which has PBI

code in it. Have you tried, or might you like Tom Hunt's 'Fast BASIC'? It runs on MyDOS

or SpartaDOS or probably other Sparta type DOSes. Are you running TBXL specific

programs?

Edited by russg
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...