| Post Your Message | |
| |
| Previous Messages | Posted By
BushRat on 2002-08-10
| Quote...
Maybe this will help, guys, I typed it in from the annoted technical papers when they upgraded the kernal Rom from Version 4 to Version 5
Starting at $932C...
"The main purpose of the following routines is to read in the ASCII text of BASIC expressions, seperate the operators and terms of the expression, check them for errors, combine the individual terms by performing the indicated operations, and obtain a single value which the BASIC program can use. This is a very complex task, as expressions can be of the string or numeric type, and can contain any type of variable, as well as constants. At the end, the flag which shows whether the resulting value is string or numeric at 13 ($D) is set, and if the the value is numeric, the flag at 14 ($E) is set as well, to show if it is an interger or floating point number. The Label EVAL (decimal 37911), but mainly the EVAL (decimal 38001), routine reduces a single arithmetic term which is part of an expression from ASCII text to its floating point equivalent. If the term ia a constant, the routine sets the data type flag to number, sets the text pointer to the first ASCII numeric character, and jumps to the routine which converts the ASCII string to a floating point number. If the term ia a variable, the variable value is retreived. If it is the PI character, the value of PI is moved to the Floating Point Accumulator. This routine is vectored through RAM at 778 ($30A), IEVAL"
|
|
Posted By
BushRat on 2002-08-10
| Good project...
I pulled Mike's rom file as a text. As time permits I will add what I have. My listing is an annoted printout that I have in a binder. I was busy with a pkzip conversion, ZipPacker, DiskCruncher and TextPacker, for the Plus4, the last time I used it (1997). James C has some of this on the CD I sent him. The only stuff I put in text format was a listing of Plus4-C64-C128 crossreference points. The original files were to be printed in condensed mode on a Commie printer. I converted them to ascii format, but the formatting is crappy! If you want, they are at:
http://home.gci.net/~ace/files
There is, also, a bunch of alternate font sets, viewer and editor, in a D81 image, there.
|
|
Posted By
SVS on 2002-08-10
| Jim: hoping you too could send to me
your disassembly list for.... (see message to Mike), OK? Thanks again.
S\_/S
|
|
Posted By
SVS on 2002-08-10
| Mike: I've just see on yr. site, but I was not...
able to download it. Could you be so kind to send it to me by e-mail? (In XCL format, if it's possible) Then, we can merge our informations with yours and built the ultimate ROM disassembly list ever! ) Wait for your reply. Thanx. Greetz.
S\_/S
|
|
Posted By
mike on 2002-08-10
| (no topic)
Sound like what would be used during an "IF" or "WHILE" etc...
Check these functions and see if it calls somewhere in this routine...
Are you doing a complete disassembly? I started one (its on plus4.org) and I update it every now and then... Still very empty though...
|
|
Posted By
BushRat on 2002-08-10
| Register Functions
Sub-routine for dealing with the values in the registers. $95F8 is Evaluate OR $95FB is Evaluate AND
The C128 uses the same internal commands.. the C64 was too dumb! Don't know what new command structure you guys are planning, but I guess you are also using the PERFORM commands back in the $8AFF -> areas?
Don't have my full disassembly printout handy, but where is the routine pointing? Basic or Kernal?
|
|
Posted By
SVS on 2002-08-09
| New command on Plus4? :-0
I'm working with the collaboration of NightBird on a complete map of O.S. routines of Plus/4 and C16. Well: at address $9628 is placed a routine named "evaluating of COMPARE" in one of our sources. Is possible this is an unknow command/function? Have anybody more knowledge on it? Greetz.
S\_/S
|
|
| |
Copyright © Plus/4 World Team, 2001-2024. Support Plus/4 World on Patreon |