Jump to content

Recommended Posts

Here is another small demo of software sprites, where they are moving around.

 

post-35226-0-81918600-1431584340_thumb.png

 

Note that I'm drawing to a CPU RAM buffer and copying the whole thing to the VDP. The speed is not impressive, but perhaps it could be used for something?

SOFTSPRITE.dsk

SoftSprites.a99

  • Like 3

You will need ti either mount the .dsk file into the DSK1 slot, or you can break the files out into FIAD format and put them into the DSK1 folder in the Classic99 subdirectory.

 

Then I think it is an EA3 file... Editor Assembler option 3... But I have not tried it yet...

Edited by Opry99er

You will need ti either mount the .dsk file into the DSK1 slot, or you can break the files out into FIAD format and put them into the DSK1 folder in the Classic99 subdirectory.

 

Then I think it is an EA3 file... Editor Assembler option 3... But I have not tried it yet...

 

It is, in fact, an EA3 file.

 

...lee

  • 2 weeks later...

General question: how do I know what is the name of the file to be used for loading a EA3 file?

After having typed 3 in the editor/assembler, I try to type DSK1.SOMENAME but I haven't the faintest idea of how to get this "somename" from the dsk file.

Is there a DIR command or something similar ?

The file is called: SOFT

 

It's an absolute mystery for me why Texas Instruments did not provide a DIR/CAT command in Extended Basic, or at least in Editor/Assembler.

 

There is a BASIC program you can load, but it's really lame that you have to change the disk to see what's on another disk.

 

With emulation you can use TI99Dir or TIImageTool on the host system (both, I think, are linked from the development resources thread).

 

If you use my emulator, Js99er.net, you can just go to the Disk Manager tab.

 

On the TI you have to open Disk Manager 2000 or equivalent (that has a a catalog command) and then remember the name and go back to Editor/Assembler to run it

 

Gazoo has added a CAT command to the menu of the XB 2.7 cartridge - probably the most useful utility ever. You can just press 1-9 to catalog disk DSK1-9. (Js99er.net contains an older version of the XB27 cartridge without this feature).

The file is called: SOFT

 

It's an absolute mystery for me why Texas Instruments did not provide a DIR/CAT command in Extended Basic, or at least in Editor/Assembler.

 

There is a BASIC program you can load, but it's really lame that you have to change the disk to see what's on another disk.

 

With emulation you can use TI99Dir or TIImageTool on the host system (both, I think, are linked from the development resources thread).

 

If you use my emulator, Js99er.net, you can just go to the Disk Manager tab.

 

On the TI you have to open Disk Manager 2000 or equivalent (that has a a catalog command) and then remember the name and go back to Editor/Assembler to run it

 

Gazoo has added a CAT command to the menu of the XB 2.7 cartridge - probably the most useful utility ever (Js99er.net contains an older version of the XB27 cartridge without this feature).

 

Course in RXB/REA you get a directory function and if you hit enter on a program it loads it into the proper load screen.. EA3 EAprog or XB

 

Greg

  • Like 1
I certainly agree that TI should have built in a directory/catalog function into TI Basic and TI Extended Basic; but, you can build your own routine quite easily. The directory or catalog is a function of the DSR and can be reached by opening “DSKn.”, where ‘n’ is the disk number, or “DSK.diskname.” for INPUT as an INTERNAL, RELATIVE file. Each record is exactly 38 bytes long and contains one string (10 chars max) and three floating point numbers (8 bytes each). Each entry is preceded by a byte count, which is the reason for the 38-byte record size: 1 + 10 + 3 * ( 1 + 8 ) = 38.


For a catalog of “DSK1” in TI Basic and TI Extended Basic, you can open the directory listing with


OPEN #1:"DSK1.",INPUT,INTERNAL,RELATIVE


and get the information for each entry with


INPUT #1:FNAME$,FTYPE,FSECTORS,RECBYTES


The first record (record 0) is the volume inforamtion for the disk:


FNAME$ = diskname,

FTYPE = 0,

FSECTORS = sectors on disk excluding VIB and FDIR sectors,

RECBYTES = free sectors on disk


Each record thereafter is


FNAME$ = filename,

FTYPE = filetype number

FSECTORS = sectors occupied by the file on disk, including the FDR sector,

RECBYTES = bytes per record (0 for memory image files)


You can read until FNAME$ has zero length, indicating no more file entries in the FDIR.


It's a little more difficult in Assembly Language because of the floating-point format of the numbers in each record.


Both @Willsy (TurboForth) and I (fbForth 2.0) have provided loadable DIR words for a directory/catalog listing in Forth.


Note: The above information was extracted from Functional Specification for the 99_4 Disk Peripheral V3.0 03-28-1983.pdf and Thierry Nouspikel's site's Device Service Routines page (scroll down to “0 Open directory”).


...lee




Not very user friendly...

 

About as friendly as on the Commodore. You do pretty much the same thing in BASIC, or you

 

LOAD"$",8

 

which is destructive to the program in memory. This is where I think systems of the era with a DOS (Apple, Atari, etc.) or BASIC DOS commands (Apple, Atari, Commodore 128, etc.) really shined. Commodore systems have numerous different DOS wedges, in the form of software wedges, "overlay" ROMs like JiffyDOS, or fast load cartridges (Warp Speed being my favorite,) each providing a special command for directory listing.

Who wants to bang out the XB cataloguing proggy based on the above info?

 

I am sure some already exist... But it would be fun to write another. ;)

 

The following program works in both TI Basic and XB. It can, of course, be reworked into a subroutine or subprogram:

 

 

 

100 FTYPE$(1)=" D/F"
110 FTYPE$(2)=" D/V"
120 FTYPE$(3)=" I/F"
130 FTYPE$(4)=" I/V"
140 FTYPE$(5)=" PRG"
150 FTYPE$(6)=" ???"
160 SPACE$="           "
170 CALL CLEAR
180 INPUT "Disk number: ":D$
190 IF LEN(D$) = 0 THEN 1000
200 D$=SEG$(D$,1,1)
210 FILE$="DSK"&D$&"."
220 OPEN #1:FILE$,INPUT,INTERNAL,RELATIVE
230 INPUT #1:FN$,FT,SEC,BPR
235 LCT=7
240 PRINT "Disk Name: ";FN$
250 PRINT "  ";SEC;"sectors  ";BPR;"free"
260 PRINT
270 PRINT "Filename   Secs Type B/R P"
280 PRINT "---------- ---- ---- --- -"
290 INPUT #1:FN$,FT,SEC,BPR
300 IF LEN(FN$) = 0 THEN 1000
310 P$="  "
320 IF FT >= 0 THEN 350
330 P$=" P"
340 FT=ABS(FT)
350 FT$=FTYPE$(6)
360 IF FT > 5 THEN 380
370 FT$=FTYPE$(FT)
380 SEC$=STR$(SEC)
390 BPR$="   "
400 IF BPR = 0 THEN 420
410 BPR$=STR$(BPR)
420 LN$=FN$&SEG$(SPACE$,1,10-LEN(FN$))&SEG$(SPACE$,1,5-LEN(SEC$))&SEC$&FT$&SEG$(SPACE$,1,5-LEN(BPR$))&BPR$&P$
430 PRINT LN$
440 LCT=LCT+1
450 IF LCT < 23 THEN 290
460 PRINT "..tap <enter> for next page"
470 CALL KEY(0,K,S)
480 IF S = 0 THEN 470
490 LCT = 3
500 CALL CLEAR
510 GOTO 270
1000 CLOSE #1
1010 END 

 

 

 

...lee

There was no reason to have a DIR command as standard on the TI99, as 'disks' came later on. the system shipped with 'cassette tape' not like you can do a 'catalog' on a tape! :)

 

All tho when TI released their 'disk controller' they should had added a CALL CAT or CALL DIR command in the DSR, but space was tight, and they thought have a few lines in basic was good enough and more useful, a basic program could expand on the listing, format it the way it wants, allow you to view or load a file afterwards, etc. if the programmer was willing to add the extra lines to the sample code in the manual.

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