Jump to content

Photo

At least ! DSK image from my collection


43 replies to this topic

#1 rocky007 OFFLINE  

rocky007

    Moonsweeper

  • 395 posts
  • Location:Belgium

Posted Sat Aug 6, 2011 12:33 PM

At least after nearly 1 year, i converted my first TI 99 into .DSK image !

I was like Mo´se : i tried first to connect in my CF9+ and PEB in same time, designed a PCB to use both in same time, and of course, it didn't worked.

I also bought several 5"25 disk drives for PC to use Omnilfop, but no one worked good. I found a old laptop with 3"1/2 inside, so i decided to buy a 3"1/2 for TI99. I lost many time to connect him to Pebox because something was wrong. I tought first about the disk controller. Thanks again to Marc for his help and the shipment of a disk controller.
After many test, it seems flexcable was defective and not disk controller.

I searched a complete Pebox with flexcable. Found a brand new on Tex Treasure, connected my 3"1/2 and everything at least worked good !

I converted my first disk today : TI Basic compiler ( Peter Kull version, i never saw on internet )

Attached Files


Edited by rocky007, Sat Aug 6, 2011 12:34 PM.


#2 rocky007 OFFLINE  

rocky007

    Moonsweeper

  • Topic Starter
  • 395 posts
  • Location:Belgium

Posted Sat Aug 6, 2011 1:34 PM

and a very beautiful slideshow :

Attached Files



#3 rocky007 OFFLINE  

rocky007

    Moonsweeper

  • Topic Starter
  • 395 posts
  • Location:Belgium

Posted Sat Aug 6, 2011 2:04 PM

a compilation of nice mini memory games... it works on real TI99, but don't find a way to run with classic 99

this compilation is a mystery for me... MM-LOAD is used to load games into mini memory.
To start the game, go to mini memory, option "RUN" , program name : "START"... but for what "MM-SAVE" ??

Attached Files


Edited by rocky007, Sat Aug 6, 2011 2:09 PM.


#4 OLD CS1 OFFLINE  

OLD CS1

    >OLD CS1█

  • 6,027 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Sat Aug 6, 2011 2:07 PM

a compilation of nice mini memory games... it works on real TI99, but don't find a way to run with classic 99

this compilation is a mystery for me... MM-LOAD is used to load games into mini memory, and then start the game with "RUN" option of mini memory... but for what "MM-SAVE" ??


I am hoping it is a program to dump MiniMemory RAM to disk. I need that, badly, for one of my old BASIC games.

#5 rocky007 OFFLINE  

rocky007

    Moonsweeper

  • Topic Starter
  • 395 posts
  • Location:Belgium

Posted Sat Aug 6, 2011 2:14 PM

this i understand... but in that case, the games to load ( & save ) to mini memory are not in basic.

Edited by rocky007, Sat Aug 6, 2011 2:15 PM.


#6 OLD CS1 OFFLINE  

OLD CS1

    >OLD CS1█

  • 6,027 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Sat Aug 6, 2011 2:18 PM

this i understand... but in that case, the games to load ( & save ) to mini memory are not in basic.


Probably, but the code should be CALL LINK'able or at least dissectable.

#7 acadiel OFFLINE  

acadiel

    Stargunner

  • 1,499 posts
  • www.hexbus.com
  • Location:USA

Posted Sat Aug 6, 2011 3:17 PM

a compilation of nice mini memory games... it works on real TI99, but don't find a way to run with classic 99

this compilation is a mystery for me... MM-LOAD is used to load games into mini memory, and then start the game with "RUN" option of mini memory... but for what "MM-SAVE" ??


I am hoping it is a program to dump MiniMemory RAM to disk. I need that, badly, for one of my old BASIC games.


Have you tried using EasyBug to dump the memory to cassette and then using a program like DIskIt to make a disk image?

There's also a nice disk of Mini Memory programs that I have that might have something that will help... see attached.

Attached Files


Edited by acadiel, Sat Aug 6, 2011 3:20 PM.


#8 OLD CS1 OFFLINE  

OLD CS1

    >OLD CS1█

  • 6,027 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Sat Aug 6, 2011 3:54 PM

Have you tried using EasyBug to dump the memory to cassette and then using a program like DIskIt to make a disk image?

There's also a nice disk of Mini Memory programs that I have that might have something that will help... see attached.


I have cassette dumps of the memory, but I never had access to anything which could be used for conversion until recently. What I need is to be able to CALL LOAD() the file into MiniMemory then be able to CALL LINK() the programs. It is a mix of programs and data.

I will give these a shot. Thanks.

#9 rocky007 OFFLINE  

rocky007

    Moonsweeper

  • Topic Starter
  • 395 posts
  • Location:Belgium

Posted Sun Aug 7, 2011 11:02 AM

WOW ! i tested the TI BASIC compilator today... in fact it's not TI BASIC compiler, but TI EXTENDED BASIC compiler !!!
i made some test ( Sprite, display at, etc..), everything worked perfect !

Little video :



So, somebody have a idea how to start the compiled version without through the special loader ?

Here it is the sprite demo compiled.



I also discovered a disk i received very gently from Eric Lafortune ( rockrunner ) when i was young.
There are some nice games ;)

To start : load the game under TI Basic with Mini Memory, then the TI will reset , go to mini memory and selectr "RUN"

Attached Files


Edited by rocky007, Sun Aug 7, 2011 11:25 AM.


#10 OLD CS1 OFFLINE  

OLD CS1

    >OLD CS1█

  • 6,027 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Sun Aug 7, 2011 12:24 PM

WOW ! i tested the TI BASIC compilator today... in fact it's not TI BASIC compiler, but TI EXTENDED BASIC compiler !!!
i made some test ( Sprite, display at, etc..), everything worked perfect !


Could this be the mythical compiler which actually supports sprites, then? I believe this was mentioned in another thread, and if it is and does work, this could preclude my transition to C and GPL. At least for a while.

#11 rocky007 OFFLINE  

rocky007

    Moonsweeper

  • Topic Starter
  • 395 posts
  • Location:Belgium

Posted Sun Aug 7, 2011 1:20 PM

Could this be the mythical compiler which actually supports sprites, then? I believe this was mentioned in another thread, and if it is and does work, this could preclude my transition to C and GPL. At least for a while.


this one support sprites for sure !!!

So i have a question : why some BASIC program are "PROGRAM" filetype, and some other are "INT/VAR" filetype ? Is it depending of the size ?
The compiler only accept "INT/VAR" filetype :(

Edited by rocky007, Sun Aug 7, 2011 1:20 PM.


#12 OLD CS1 OFFLINE  

OLD CS1

    >OLD CS1█

  • 6,027 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Sun Aug 7, 2011 9:25 PM

this one support sprites for sure !!!

So i have a question : why some BASIC program are "PROGRAM" filetype, and some other are "INT/VAR" filetype ? Is it depending of the size ?
The compiler only accept "INT/VAR" filetype :(


I believe that is MERGE format. Anyone?

#13 Tursi OFFLINE  

Tursi

    Quadrunner

  • 5,573 posts
  • HarmlessLion
  • Location:BUR

Posted Mon Aug 8, 2011 1:07 AM

Wow... nice find!

Yeah, PROGRAM image is used up until 12 or 13k, IIRC, then it switches to INT/VAR254. Which one it uses actually depends on how much VDP memory is free, but I'm not sure an easy way to convert from PROGRAM to INT/VAR (unless you use Rich's modified XB, which ONLY saves in INT/VAR format...?)

#14 rocky007 OFFLINE  

rocky007

    Moonsweeper

  • Topic Starter
  • 395 posts
  • Location:Belgium

Posted Mon Aug 8, 2011 3:54 AM

Wow... nice find!

Yeah, PROGRAM image is used up until 12 or 13k, IIRC, then it switches to INT/VAR254. Which one it uses actually depends on how much VDP memory is free, but I'm not sure an easy way to convert from PROGRAM to INT/VAR (unless you use Rich's modified XB, which ONLY saves in INT/VAR format...?)


in fact i wanted the inverse : INT/VAR to PROGRAM ( compiler only recognize PROGRAM )

Edited by rocky007, Mon Aug 8, 2011 3:55 AM.


#15 acadiel OFFLINE  

acadiel

    Stargunner

  • 1,499 posts
  • www.hexbus.com
  • Location:USA

Posted Thu Aug 11, 2011 9:30 PM


Have you tried using EasyBug to dump the memory to cassette and then using a program like DIskIt to make a disk image?

There's also a nice disk of Mini Memory programs that I have that might have something that will help... see attached.


I have cassette dumps of the memory, but I never had access to anything which could be used for conversion until recently. What I need is to be able to CALL LOAD() the file into MiniMemory then be able to CALL LINK() the programs. It is a mix of programs and data.

I will give these a shot. Thanks.

Did any of the Mini memory programs on the disk help, CS1?

Edited by acadiel, Thu Aug 11, 2011 9:31 PM.


#16 OLD CS1 OFFLINE  

OLD CS1

    >OLD CS1█

  • 6,027 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Thu Aug 11, 2011 10:24 PM

Did any of the Mini memory programs on the disk help, CS1?


I sadly have not had the time, yet. Been busy cleaning up the house, garage, working break-fix, and helping a couple of colleagues all week. Maybe this weekend, since I have absolutely nothing planned.

#17 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • 4,222 posts
  • Location:Denmark

Posted Fri Aug 12, 2011 2:15 AM

a compilation of nice mini memory games... it works on real TI99, but don't find a way to run with classic 99

Works fine with Classic99. :)

Posted Image

#18 rocky007 OFFLINE  

rocky007

    Moonsweeper

  • Topic Starter
  • 395 posts
  • Location:Belgium

Posted Fri Aug 12, 2011 4:22 AM

ah yes :) with CALL INIT it works ;)

#19 OLD CS1 OFFLINE  

OLD CS1

    >OLD CS1█

  • 6,027 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Sat Aug 13, 2011 11:31 PM

Did any of the Mini memory programs on the disk help, CS1?


The mm-save and mm-load programs will be useful. They are not anything special, in the sense that mm-save just PEEKs memory and dumps it to a file*. However, mm-load apparently sets up a VDP PAB and calls a short ML routine which loads said files into RAM. That routine will definitely suit my purposes as it is fairly quick to load 4k of memory. Thank you for posting these disks up.

For this old game I just need to clean up the Mini Memory RAM I used for my ML routines and data. I would like to re-write my routines to be relocatable so they can be loaded using CALL LOAD. Ultimately, it would be nice to re-write the game entirely in ML, though I have considered GPL of late.

Though, rather than re-write my old stuff I think I may just compile them and start my foray into ML, GPL, C, and Forth with some new ideas.

* Edit: the mm-save program on the games disk actually uses an ML routine as well to dump memory.

#20 sometimes99er OFFLINE  

sometimes99er

    River Patroller

  • 4,222 posts
  • Location:Denmark

Posted Sun Aug 14, 2011 2:00 AM

There's also a nice disk of Mini Memory programs that I have that might have something that will help... see attached.


Browsing thru mmprogs.dsk.zip

Posted Image

:)

#21 OLD CS1 OFFLINE  

OLD CS1

    >OLD CS1█

  • 6,027 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Mon Aug 15, 2011 2:56 AM

The "Boulder Dash" demo (mmprogs.dsk -> DEMO) is quite interesting. It uses a view-port and has a number of multi-colored beasties. According to the documentation for "Rock Runner" on the other disk, it uses an undocumented graphics mode. Pretty neat-looking game, though I was unable to get "Rock Runner" to start.

GIF of action
Spoiler


(BTW, is there a video capture codec in Classic 99 which does not introduce artifacts? The uncompressed frames mode crashes the program on my system running XP x64.)

#22 OLD CS1 OFFLINE  

OLD CS1

    >OLD CS1█

  • 6,027 posts
  • Technology Samurai
  • Location:Tallahassee, FL

Posted Mon Aug 15, 2011 5:14 PM

The mm-save program is pretty interesting, and simple in many regards. It is also easy to modify for customized usage.

(NOTE: I did not follow the proper program flow below, but the facts are still solid.)

First it makes a "copy" of the top 32 bytes of the MiniMemory cartridge RAM by placing them into variables, then copies into E0-E1 and sets the Last Free Available Memory (LFAM) address just under the REF/DEF table described next. A short routine gets set up which copies all of the MiniMemory RAM into VDP RAM, and REF/DEF entry for the routine, and is then called via CALL LINK("A").

After you give the BASIC program a file name, it replaces the CPU-to-VDP copy routine with a routine which calls DSRLNK with a pointer to the location in VDP RAM which will hold the file name set up next. It then sets up what appears to be a peripheral access block including the file name with "DSK1." prefixing.

I do not know the construction of a PAB nor how DSRLNK works, but I assume that DSRLNK takes >1F09 passed to it and truncates the LSB to ascertain the PAB start (as >1F00,) then >0600 means "SAVE", >2000 is the start address in VDP RAM, >0000 is some kind of flag, >1000 is the length of data to save, and the trailing >0000 is another flag.

Finally, the top 32 bytes of the MiniMemory cartridge RAM destroyed above and the original LFAM pointer are restored.

Below I broke down the BASIC LOAD and VPOKE statements using the mmprogs.dsk:mmdisassem program. Neat program, though it did not correctly disassemble the data after the DSRLNK call (it disassembled into DATA >0000 when it should have been DATA >0008.)

Spoiler


I will play with the mm-load program later, but I suspect it does similar but reversed. These definitely fit my game purpose, though I think I may have a problem getting 4k of buffer space for my data to load. (I actually think I only need about 2k, but even so I should be able to break it down into parts -- maybe 256 or 512 bytes, or 1k at a time.)

I also think there is a more proper way to set up file buffers and PABs than this static method. There is a more proper way to allocate PAB and file buffer by using GPLLNK routine >0038 (Get String Space.)

#23 Tursi OFFLINE  

Tursi

    Quadrunner

  • 5,573 posts
  • HarmlessLion
  • Location:BUR

Posted Mon Aug 15, 2011 5:29 PM

The "Boulder Dash" demo (mmprogs.dsk -> DEMO) is quite interesting. It uses a view-port and has a number of multi-colored beasties. According to the documentation for "Rock Runner" on the other disk, it uses an undocumented graphics mode. Pretty neat-looking game, though I was unable to get "Rock Runner" to start.


The "undocumented" mode is the now-famous "half-bitmap". It is not actually a new graphics mode, but rather bitmap mode configured with (documented, but harder to find) mask registers that make it a 256-character mode instead of a 768-character mode, so you get the convenience of normal Graphics 0 mode with the extra color support of bitmap. (Basically, you get 256 characters each of which can have a different color set per horizontal line).

(BTW, is there a video capture codec in Classic 99 which does not introduce artifacts? The uncompressed frames mode crashes the program on my system running XP x64.)


Classic99 uses the video codecs on your machine, so it's completely dependent on that. However, it uses a 16-bit internal rendering mode that relatively few codecs today support (and even some that do crash). Uncompressed /should/ work, however it's very performance and disk intensive and may be exposing issues elsewhere in the machine. PC Video tends, in my experience, to be flakey at the best of times.

Eventually, when I rework the VDP, the internal rendering will go 32-bit like the rest of the world uses today, but at the time I did it, 16-bit was fastest on my video card. ;)

I've had relatively good luck using XVID, which is open, and you can tune the compression parameters to what you like, but it will still artifact. There may be pixel-perfect compressors out there these days, but I haven't followed PC video much.

#24 rocky007 OFFLINE  

rocky007

    Moonsweeper

  • Topic Starter
  • 395 posts
  • Location:Belgium

Posted Mon Aug 15, 2011 6:06 PM

The "undocumented" mode is the now-famous "half-bitmap". It is not actually a new graphics mode, but rather bitmap mode configured with (documented, but harder to find) mask registers that make it a 256-character mode instead of a 768-character mode, so you get the convenience of normal Graphics 0 mode with the extra color support of bitmap. (Basically, you get 256 characters each of which can have a different color set per horizontal line).


I never noticed this special mode until today... and on CS1 capture, it looks really amazing. Is other games/programs use this special mode ?
Have u some source about docs ?

#25 Tursi OFFLINE  

Tursi

    Quadrunner

  • 5,573 posts
  • HarmlessLion
  • Location:BUR

Posted Mon Aug 15, 2011 9:34 PM

I think Boulder Dash was the only well spread title that used it, it was definately the one that got everyone talking.

In truth it performs about the same speed as regular full bitmap mode does, but it takes less memory, since you only need one character set, while full bitmap needs three. Unfortunately, the masking causes problems with the sprites, leaving you with only 8 fully working sprites.

The masking (and the sprite problem) is briefly mentioned in TI's Video Display Processor's Programmer's Guide, but this document doesn't go to great depth and is provided more for evidence that it WAS documented. ;) I put a copy here: http://harmlesslion.com/temp/Video%20Display%20Processors%20-%20Programmer's%20Guide.pdf

Thierry Nouspikel has a great description of how the masking works and numerous ways to use it on his VDP page here: http://nouspikel.gro...99/tms9918a.htm (scroll down the Hybrid Modes section under Bitmap). It's a little complex, which may be why the Editor/Assembler manual just glossed over it.

I wrote a little test app and showed the sprite issues on real hardware (it doesn't happen in emulation yet) here: , skip ahead to 7:10 or so.




0 user(s) are browsing this forum

0 members, 0 guests, 0 anonymous users