Jump to content
IGNORED

Sound List Demo in XBasic


Kurt_Woloch

Recommended Posts

My TIImageTool has a GPL disassembler. You could use a GROM dump and create the source code from it. However, I had the problem that there was no standard for GPL syntax. My diassembler, for example, uses a different argument order than shown in TI Intern listings. In fact, the official GPL source files (which I have for the TI-99/8) also adhere to the version I implemented. Moreover, the official GPL sources contain constructs that disappear in the object code (like loops).

 

So it depends on which GPL assembler you plan to use whether the output of TIImageTool is useful or not.

 

I use the RYTE DATA GPL Assembler for that reason.

 

The only code that would not run from the original XB source had a couple of Macro Commands that were very easy to rewrite and only used a few times.

These are noted in the GPL XB Source I included in RXB Source files.

 

TI Intern used a backwards listing like most GPL Disassemblers do. To bad no one fixed this issue.

Link to comment
Share on other sites

OCR? Not really.

 

This is what I get from GROM0. As I said, it is just a matter of creating a syntax that is understood by the GPL assembler Rich is going to use.

 

 

Well I was thinking more of what I am doing typing in by hand real source code that will work:

 

* TI INTERN


********************************************************************************
* *
* CONSOLE GROM 0 ANALYSIS TI99/4A *
* *
* 9.6.84 H. Martin *
* *
********************************************************************************
* Header:
Header DATA   >AA02
       DATA   >0000
       DATA   >0000 Power-up (isn't here)
       DATA   >0000 Program (isn't here)
       DATA   >1310 DSR
       DATA   >1320 Subroutine
       DATA   >0000 Interupt (isn't here)
       DATA   >0000
* Jump Table:
       BR     G@G03D9 GROM DSRLNK
       BR     G@G0439 GSR return
       BR     G@G09A5 Number to string
       BR     G@>0393 Load standard character set
       BR     G@G039B Load small capital letters
       BR     G@G0443 Warning information
       BR     G@G0446 Error information
       BR     G@G0449 Execution of a Basic program in GROM
       BR     G@G004F Power-up routine
       BR     G@G11FA Greatest integer
       BR     G@G0C7E Involution routine
       BR     G@G0D55 Square root
       BR     G@G0DB0 Exponent
       BR     G@G0E60 LOG
       BR     G@G0EF5 COS
       BR     G@G0EFD SIN
       BR     G@G0F5B TAN
       BR     G@G0F7C ATN
       BR     G@G03CB Accept tone
       BR     G@G03D3 Bad response tone
       B      G@G4D12 Get string space
       BR     G@G2844 Reserved space in VDP RAM
       B      G@G37B4 Set program pointers
       BYTE   >60
       BYTE   >0D
       BYTE   >00
       BYTE   >11
       BYTE   >00
       BR     G@G03BF Load lower case set
       BYTE   >B0 Here change in some GROMS: Set pointers to the
       BYTE   >B0 character blocks. The other routines are shifted
       BYTE   >70 3 bytes upwards.
* Power up routine
       DCLR   @>83CE Clear sound bytes
       ST     >70,@>9400 Load speech write
       ST     >9F,@>8400 Set sound generators
       ST     >BF,@>8400 
       ST     >DF,@>8400 
       ST     >FF,@>8400
       DST    >FF7E,@>8372 Load data/substack
       MOVE   >0007,G@G044E,#1 Load VDP register
       CLR    @>8300
       MOVE   >0071,@>8300,@>8301 Clear scratch pad >00->71
       MOVE   >003E,@>8300,@>8382 >82->C0
* - 100 -

Of course after done I have to put in all the EQU and adddress references also. This is going to take some time as I am doing GROM0, GROM1 and GROM2.

Link to comment
Share on other sites

OCR? Not really.

 

This is what I get from GROM0. As I said, it is just a matter of creating a syntax that is understood by the GPL assembler Rich is going to use.

Don't be snarky. ;)

 

A disassembly doesn't preserve the comments, which are the far more valuable part of such a work.

Link to comment
Share on other sites

BTW, as I said, the "official" GPL sources look a bit different to the source code in TI Intern or other GPL listings. Take this as an example of how TI engineers wrote GPL programs (taken from the 99/8 sources, power-up routine):

 

 

 

PWRUP$
DCLR @>CE CLEAR SOUND LIST INDICATOR
* RESET SPEECH 9 TIMES, IN CASE IN SPEAK EXTERNAL ATA
ST 9,@FAC ATA
SPRSET ATA
ST >70,@>1100 TURN OFF SPEECH
DEC @FAC ATA
BR SPRSET ATA
ST >9F,@>100 TURN OFF SOUND ATA
ST >BF,@>100 ATA
ST >DF,@>100 ATA
ST >FF,@>100 ATA
DST >FF7E,@STACK INITIALIZE THE SUBROUTINE STACK ATA
CLR @GMODE ATA
CALL MODE$$ ATA
* DST >021C,@SCLEFT USE 28 COLUMNS GFH 8/08
MOVE 7 FROM ROM(#VDPRG$+1) TO VDP(0) but now move sgt,pct ATA
MOVE 7 FROM ROM(#VDPRG$+1) TO @SHAD0 ATA
*
* LAST POWER UP ROUTINE DOES SCREENS AND MENUS
*
*
*** THIS INITIALIZATION IS FOR THE ARMADILLO BREADBOARD #2 ONLY ATA
*
CLR @0 CLEAR CPU RAM
MOVE >71 FROM @0 TO @1
MOVE >3E FROM @>00 TO @>82
MOVE >B FROM @>00 TO @>74
MOVE 22 FROM @0 TO @>C2 ATA
DST >0605,@CRLIST+1 DISABLE KBD INTERRUPTS ATA
I/O @CRLIST,3
DST >1801,@CRLIST+1 TURN ON AUDIO GATE ATA
I/O @CRLIST,3
INV @CLEARU WRITE A ONE TO CRU
DST >0102,@CRLIST+1 ENABLE VDP AND EXTERNAL INTERRUPTS
I/O @CRLIST,3
DST >1601,@CRLIST+1 TURN ON CASSETTE MOTOR ATA
I/O @CRLIST,3
CALL TON1$$ BEEP AT PERSON
ST 8,@>FD INDICATE 16K RAM ATA
DST #>3FFF,@MEMTOP WE ALWAYS HAVE 16K OF RAM ATA
MOVE 1 FROM ROM(#H20) TO VDP(1)
DATA XML2,FILLV,#>300,#>D00,0 CLEAR 4K OF VIDEO RAM ATA
* (LESS SCREEN) ATA
DATA XML2,TIMVDP Determine Euro/USA model GFH
CALL INITC1 CLEAR SCREEN AND LOAD LARGE CHARS ATA
MOVE 32 FROM ROM(#TABLE$) TO TABLE(0)
**** MOVE 512 FROM ROM(#CHAR1$) TO CHAR(>20) ATA
MOVE 80 FROM ROM(#TIBUG$) TO CHAR(1)
**** ALL : : ATA
ST 5,YPT
RSCAN
ST YPT,@KEYBD RESET ALL KEYBOARDS FOR SCAN ATA
SCAN
DEC YPT
BR RSCAN
DCLR YPT
$REPEAT
ST >60,@RKEY ATA
$REPEAT
FMT 2('@RKEY'),>11^,30<,2('@RKEY') ATA
SUB >12,YPT
ADD >8,@RKEY ATA
$UNTIL @RKEY .EQ. >E0 ATA
$UNTIL YPT .EQ. 3
HOME
UNLM ATA
FMT 5^,15<,'1,2,3',29<,'4,5,6',29<,'7,8,9';
8^,16<,':READY-PRESS ANY KEY TO BEGIN:'
LISTM ATA
MOVE 17 FROM ROM(#TI) TO RAM(296)
MOVE 29 FROM ROM(#TI1979) TO RAM(706) ATA
MOVE 8 FROM ROM(#HC) TO RAM(364) ATA 8/12

Link to comment
Share on other sites

BTW, as I said, the "official" GPL sources look a bit different to the source code in TI Intern or other GPL listings. Take this as an example of how TI engineers wrote GPL programs (taken from the 99/8 sources, power-up routine):

Yes, of course, but it's easy to massage the text into something compliant once we have it.

 

Sorry, Rich, I forgot to check the PDF last night, I ended up tied up all night. I have sent myself a note to check tonight, and let you know. Maybe save some typing at least.

Link to comment
Share on other sites

Here Rich... with luck this might save you some typing. This is all the code from TI Intern copied into text files and reformatted with a script to match the GPL syntax sample that you posted. Have a look and see, you may still need to fix some stuff up, but hopefully much less than starting from scratch.

 

The ROM code I assembled with Asm994A and it looks correct. The GPL code I didn't assemble, so you'll have to review and see how it looks. The included readme file lists exactly what my script changed.

 

Hope that helps!

 

TIIntern_ROMSrc.zip

Link to comment
Share on other sites

BTW, as I said, the "official" GPL sources look a bit different to the source code in TI Intern or other GPL listings. Take this as an example of how TI engineers wrote GPL programs (taken from the 99/8 sources, power-up routine):

 

 

 

PWRUP$

DCLR @>CE CLEAR SOUND LIST INDICATOR

* RESET SPEECH 9 TIMES, IN CASE IN SPEAK EXTERNAL ATA

ST 9,@FAC ATA

SPRSET ATA

ST >70,@>1100 TURN OFF SPEECH

DEC @FAC ATA

BR SPRSET ATA

ST >9F,@>100 TURN OFF SOUND ATA

ST >BF,@>100 ATA

ST >DF,@>100 ATA

ST >FF,@>100 ATA

DST >FF7E,@STACK INITIALIZE THE SUBROUTINE STACK ATA

CLR @GMODE ATA

CALL MODE$$ ATA

* DST >021C,@SCLEFT USE 28 COLUMNS GFH 8/08

MOVE 7 FROM ROM(#VDPRG$+1) TO VDP(0) but now move sgt,pct ATA

MOVE 7 FROM ROM(#VDPRG$+1) TO @SHAD0 ATA

*

* LAST POWER UP ROUTINE DOES SCREENS AND MENUS

*

*

*** THIS INITIALIZATION IS FOR THE ARMADILLO BREADBOARD #2 ONLY ATA

*

CLR @0 CLEAR CPU RAM

MOVE >71 FROM @0 TO @1

MOVE >3E FROM @>00 TO @>82

MOVE >B FROM @>00 TO @>74

MOVE 22 FROM @0 TO @>C2 ATA

DST >0605,@CRLIST+1 DISABLE KBD INTERRUPTS ATA

I/O @CRLIST,3

DST >1801,@CRLIST+1 TURN ON AUDIO GATE ATA

I/O @CRLIST,3

INV @CLEARU WRITE A ONE TO CRU

DST >0102,@CRLIST+1 ENABLE VDP AND EXTERNAL INTERRUPTS

I/O @CRLIST,3

DST >1601,@CRLIST+1 TURN ON CASSETTE MOTOR ATA

I/O @CRLIST,3

CALL TON1$$ BEEP AT PERSON

ST 8,@>FD INDICATE 16K RAM ATA

DST #>3FFF,@MEMTOP WE ALWAYS HAVE 16K OF RAM ATA

MOVE 1 FROM ROM(#H20) TO VDP(1)

DATA XML2,FILLV,#>300,#>D00,0 CLEAR 4K OF VIDEO RAM ATA

* (LESS SCREEN) ATA

DATA XML2,TIMVDP Determine Euro/USA model GFH

CALL INITC1 CLEAR SCREEN AND LOAD LARGE CHARS ATA

MOVE 32 FROM ROM(#TABLE$) TO TABLE(0)

**** MOVE 512 FROM ROM(#CHAR1$) TO CHAR(>20) ATA

MOVE 80 FROM ROM(#TIBUG$) TO CHAR(1)

**** ALL : : ATA

ST 5,YPT

RSCAN

ST YPT,@KEYBD RESET ALL KEYBOARDS FOR SCAN ATA

SCAN

DEC YPT

BR RSCAN

DCLR YPT

$REPEAT

ST >60,@RKEY ATA

$REPEAT

FMT 2('@RKEY'),>11^,30<,2('@RKEY') ATA

SUB >12,YPT

ADD >8,@RKEY ATA

$UNTIL @RKEY .EQ. >E0 ATA

$UNTIL YPT .EQ. 3

HOME

UNLM ATA

FMT 5^,15<,'1,2,3',29<,'4,5,6',29<,'7,8,9';

8^,16<,':READY-PRESS ANY KEY TO BEGIN:'

LISTM ATA

MOVE 17 FROM ROM(#TI) TO RAM(296)

MOVE 29 FROM ROM(#TI1979) TO RAM(706) ATA

MOVE 8 FROM ROM(#HC) TO RAM(364) ATA 8/12

 

BTW, as I said, the "official" GPL sources look a bit different to the source code in TI Intern or other GPL listings. Take this as an example of how TI engineers wrote GPL programs (taken from the 99/8 sources, power-up routine):

 

 

 

PWRUP$

DCLR @>CE CLEAR SOUND LIST INDICATOR

* RESET SPEECH 9 TIMES, IN CASE IN SPEAK EXTERNAL ATA

ST 9,@FAC ATA

SPRSET ATA

ST >70,@>1100 TURN OFF SPEECH

DEC @FAC ATA

BR SPRSET ATA

ST >9F,@>100 TURN OFF SOUND ATA

ST >BF,@>100 ATA

ST >DF,@>100 ATA

ST >FF,@>100 ATA

DST >FF7E,@STACK INITIALIZE THE SUBROUTINE STACK ATA

CLR @GMODE ATA

CALL MODE$$ ATA

* DST >021C,@SCLEFT USE 28 COLUMNS GFH 8/08

MOVE 7 FROM ROM(#VDPRG$+1) TO VDP(0) but now move sgt,pct ATA

MOVE 7 FROM ROM(#VDPRG$+1) TO @SHAD0 ATA

*

* LAST POWER UP ROUTINE DOES SCREENS AND MENUS

*

*

*** THIS INITIALIZATION IS FOR THE ARMADILLO BREADBOARD #2 ONLY ATA

*

CLR @0 CLEAR CPU RAM

MOVE >71 FROM @0 TO @1

MOVE >3E FROM @>00 TO @>82

MOVE >B FROM @>00 TO @>74

MOVE 22 FROM @0 TO @>C2 ATA

DST >0605,@CRLIST+1 DISABLE KBD INTERRUPTS ATA

I/O @CRLIST,3

DST >1801,@CRLIST+1 TURN ON AUDIO GATE ATA

I/O @CRLIST,3

INV @CLEARU WRITE A ONE TO CRU

DST >0102,@CRLIST+1 ENABLE VDP AND EXTERNAL INTERRUPTS

I/O @CRLIST,3

DST >1601,@CRLIST+1 TURN ON CASSETTE MOTOR ATA

I/O @CRLIST,3

CALL TON1$$ BEEP AT PERSON

ST 8,@>FD INDICATE 16K RAM ATA

DST #>3FFF,@MEMTOP WE ALWAYS HAVE 16K OF RAM ATA

MOVE 1 FROM ROM(#H20) TO VDP(1)

DATA XML2,FILLV,#>300,#>D00,0 CLEAR 4K OF VIDEO RAM ATA

* (LESS SCREEN) ATA

DATA XML2,TIMVDP Determine Euro/USA model GFH

CALL INITC1 CLEAR SCREEN AND LOAD LARGE CHARS ATA

MOVE 32 FROM ROM(#TABLE$) TO TABLE(0)

**** MOVE 512 FROM ROM(#CHAR1$) TO CHAR(>20) ATA

MOVE 80 FROM ROM(#TIBUG$) TO CHAR(1)

**** ALL : : ATA

ST 5,YPT

RSCAN

ST YPT,@KEYBD RESET ALL KEYBOARDS FOR SCAN ATA

SCAN

DEC YPT

BR RSCAN

DCLR YPT

$REPEAT

ST >60,@RKEY ATA

$REPEAT

FMT 2('@RKEY'),>11^,30<,2('@RKEY') ATA

SUB >12,YPT

ADD >8,@RKEY ATA

$UNTIL @RKEY .EQ. >E0 ATA

$UNTIL YPT .EQ. 3

HOME

UNLM ATA

FMT 5^,15<,'1,2,3',29<,'4,5,6',29<,'7,8,9';

8^,16<,':READY-PRESS ANY KEY TO BEGIN:'

LISTM ATA

MOVE 17 FROM ROM(#TI) TO RAM(296)

MOVE 29 FROM ROM(#TI1979) TO RAM(706) ATA

MOVE 8 FROM ROM(#HC) TO RAM(364) ATA 8/12

 

 

I do not think anyone has a GPL Assembler that will run this GPL code.

 

That is why I used the RYTE DATA GPL Assembler as it can handle more LABELS then any other GPL Assembler I have tried.

 

RYTE DATA is the only one that is Endless pass and can resolve complicated References along with all the GPL Labels used.

 

And believe me I have tried them all many times with it being much more complicated to run the others vs RYTE DATA

Link to comment
Share on other sites

Here Rich... with luck this might save you some typing. This is all the code from TI Intern copied into text files and reformatted with a script to match the GPL syntax sample that you posted. Have a look and see, you may still need to fix some stuff up, but hopefully much less than starting from scratch.

 

The ROM code I assembled with Asm994A and it looks correct. The GPL code I didn't assemble, so you'll have to review and see how it looks. The included readme file lists exactly what my script changed.

 

Hope that helps!

 

attachicon.gifTIIntern_ROMSrc.zip

Tursi thank you!

 

What kind of files are these that have a .asm ?

Link to comment
Share on other sites

Is there a description of that GPL assembler? Because in that case I could add a compatibility mode to the GPL disassembler in TIImageTool to produce code that can be assembled.

Here is the entire RXB Package including in the Object File the RYTE DATA GPL Assembler and GPL@LOADER and CSAVE and EDIT.

 

Everything is here for anything you would want to do in the attached ZIP.

 

Rich

 

Here are the demos of using the RYTE DATA GPL Assembler.

 

http://www.youtube.com/watch?v=Cs4D_Gn0Le8

RXB2012.zip.zip

Edited by RXB
Link to comment
Share on other sites

 

ASCII text. :)

 

(Windows format - should open in any PC or Mac text editor - adapt as needed. :) )

Ok it turns out they are Visual Studio files only and I have to load a addon just to read them as I do not have Visual Studio loaded on my computer.

 

When you said they are text that is true but ONLY if you have Visual Studio or a addon specifically loaded to see them and view them.

 

Otherwise you get what I get which is that window that says "You can not load this file as you do not have the proper program to view or load it!"

 

Thanks after some investigation I changed the extension to .txt and they work great. Again big thanks.

 

Rich

Link to comment
Share on other sites

Ok it turns out they are Visual Studio files only and I have to load a addon just to read them as I do not have Visual Studio loaded on my computer.

 

When you said they are text that is true but ONLY if you have Visual Studio or a addon specifically loaded to see them and view them.

 

Otherwise you get what I get which is that window that says "You can not load this file as you do not have the proper program to view or load it!"

 

Thanks after some investigation I changed the extension to .txt and they work great. Again big thanks.

 

Rich

Rich:

 

The extension does not change the content of the file. I wrote them in NOTEPAD. Yes, Visual Studio understands .ASM as an extension, but they did not require any form of extension to be installed. If you had said you were having trouble I would have told you to just rename them. I used ".asm" to try and /avoid/ confusion! :)

 

Glad you sorted it, anyway.

Link to comment
Share on other sites

Rich,

 

Just open them with any text editor.. Notepad or even Wordpad if you have windows.

 

They are text files with an asm extension. Just like xml is a text file.

 

No need to give it a different extension.

I have Windows 7 and did not open. Like I said I got that window that says you need the proper program to load them.

After looking it up on Google I found I could just change the Extensions from .asm to .txt but everyone learns something everyday.

This was mine. I was not complaining just saying exactly what happened.

I always assume that people do not have my programs or my knowledge on things like this.

 

It does create problems as they think I am saying they are stupid or something, but really I am heading off confusions as that is the source of most disagreements.

Like writing a manual or article always assume that they know nothing of the Nomenclator or symbols or abbreviations.

 

So Slinky I assume you have something loaded that I do not have loaded. I keep my OS pretty clean of excess stuff that would slow it down.

But I do have Movie editing software and converter programs. Just no Visual Studio stuff.

Link to comment
Share on other sites

I have Windows 7 and did not open. Like I said I got that window that says you need the proper program to load them.

After looking it up on Google I found I could just change the Extensions from .asm to .txt but everyone learns something everyday.

This was mine. I was not complaining just saying exactly what happened.

I always assume that people do not have my programs or my knowledge on things like this.

 

It does create problems as they think I am saying they are stupid or something, but really I am heading off confusions as that is the source of most disagreements.

Like writing a manual or article always assume that they know nothing of the Nomenclator or symbols or abbreviations.

 

So Slinky I assume you have something loaded that I do not have loaded. I keep my OS pretty clean of excess stuff that would slow it down.

But I do have Movie editing software and converter programs. Just no Visual Studio stuff.

 

Rich...

 

Stop, and take a deep breath! Om-m-m-m... Left-clicking on a file (at least in Windows) causes Windows to try to open the file in whatever program Windows has associated with that extension. Any one of us may have a different program associated with a given file extension because Windows allows us to change it. You could tell Windows to default to TI-ImageTool for TXT files and any time you left-click on a file with that extension TI-ImageTool would be launched to attempt opening it.

 

All you need to do if the wrong program is launched or Windows tells you you don't have the program you need is to RIGHT-click on the file and choose "Open with" and, if the program you want to use isn't one of the options, choose "Choose default program..." to select whatever program you want to open the file. After that, left-clicking that kind of file will open it in your chosen application.

 

The other alternative is to launch the program you want to use to open the file and then choose "Open", find the file and open it.

 

...lee

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