[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Apple I Integer BASIC dump/listing?



pausch@saaf.se (Paul Schlyter) wrote in message news:<bjung3$f9h$1@merope.saaf.se>...
> In article <dGs8b.326537$cF.99153@rwcrnsc53>,
> Vince Briel <vbriel@comcast.net> wrote:
> >> At least it would have been handy if the disassembler had put in the
> >> computed target addresses of the relative branches (if not generated
> >> labels).  ;-)
> > 
> > Please consider that Woz wrote Integer Basic by hand with no assembler. The
> > fact that there is some reference to instructions specific to their actions
> > is pretty good.
> > 
> > It was done by hand. Achim did it by writing a program to read the tape file
> > and interpet the 1's and 0's into bytes and then into hex thus having the
> > first known text copy of Apple I Integer Basic. There was a lot of work, yet
> > everybody seems to nit pick at the little things. Has anybody considered
> > that English isn't even this guys native language?
> > 
> > Instead of knocking guys who do things like this and blow them out of the
> > vintage community why don't you show some respect.
> > 
> > What have you done?
>  
> Very well written!
>  
> Also: with that disassembler listing available, it shouldn't be too
> hard for anyone who really wanted to to write a program which
> processed the listing such that the relative branches were replaced
> by target addresses.  And by letting the program pass through the
> listing twice, it could also insert labels.
>  
> Who will be the first to post such a processed listing of the Basic
> for the Apple I ????
>  
> And then there's another interesting project: porting Apple I Basic
> to the Apple II .....  :-)
>

(Forgive if this is a duplicate - Google is always good at "Internal
Server Errors" when I go to post a long message...)

I can't agree with the above, because I've seen what _can_ be done. Go
to http://www.99er.net/download.html and download tiintern.pdf.
This guys native language isn't English, so? This is a published book
by Heiner Martin, translated by Peter Coates.
It contains a complete disassembly of the ROM and three GROMS in a
TI-99. This is impressive, considering that in 1985, when this was
published, GPL (the langauge of GROMS) were still a closely guarded
secret. Heiner had to write his own GPL disassembler.
Check out the index:
Index:
Preface ......................................... 8
The ROM ......................................... 9
The ROM Listing ................................ 11
Graphic Programming Language ................... 80
The GPL Commands ............................... 81
The GPL Command formats ........................ 95
The GROM 0 ..................................... 98
The GROM 0 Listing ............................. 99
The Hexdump of Sample GROM .................... 126
The Basic GROM'S .............................. 132
The Basic Value Stack ......................... 134
The Basic Symbol Table ........................ 135
Listing of GROM 1 ............................. 136
Listing of GROM 2 ............................. 171
References to Extended Basic .................. 209

And a sample ROM disassembly (with _useful_ comments):

I/O Sound:
05D6 024E ANDI 14,>FFFE System flag
05D8 FFFE
05DA E380 SOC 0,14 Pointer GROM or VDP in system flag (00 or 01)
05DC C813 MOV *3,@>83CC Load pointer sound list
05DE 83CC
05E0 D80E MOVB 14,@>83CE Load sound byte
05E2 83CE
05E4 0460 B @>0070 To GPL interpreter
05E6 0070

And a sample GPL diassembly (again with _useful_ comments):

Begin Basic:
216F : ST @>8373,>88 Substack
2172 : CALL GROM@>27E3 Prepare VDP
2175 : MOVE >000E TO VDP@>02C2 FROM GROM@>20CB TI Basic ready
217C : CLR @>8388
217F : CALL GROM@>4012 PAB existing, close files
2182 : ST @>8334,>FF Pointer to current data
2185 : DST @>836E,>06F8 Value stack pointer
2189 : DST @>8324,@>836E Basis value stack = top character table
218C : DST @>8332,@>8370 End line table
218F : DST @>8330,@>8332 Start line table
2192 : CALL GROM@>222B Set pointer

Ben