[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Two friendly questions to Apple II users...
- Subject: Two friendly questions to Apple II users...
- From: Fabrice Frances <frances@ensica.fr>
- Date: 1997/05/20
- Newsgroups: comp.sys.apple2
- Organization: Ecole Nationale Superieure d'Ingenieurs des Constructions Aeronautiques
...from an Oric user 8-)
I'm trying to trace back the origins of the Microsoft Basic we use on
Oric computers, and I wonder if it comes from the Apple world, could
someone mail me answers ? (I don't read this newsgroup usually)
1) I quite remember the floating point variables were 4 bytes in Apple's
Basic (an accuracy of about 6 and half decimals), am I wrong ? or were
there two Basics, one from Apple and one from Microsoft ? And the one
from Microsoft used 5 bytes floating point values (about 9 and half
decimals) ?
2) Also, can anyone clearly affirm the Microsoft Basic for the Apple II
didn't really use integers ? I mean, there *are* integer variables
(suffixed with a % char), but every computation is done with floating
point computations, so integer variables are converted to and back
from floating point. Is it the case ? (please note I would like sound
answers, not "it seems to me that..." 8-)
3) Easier: names of variable aren't limited in length but only the first
two characters are significative... right or wrong ?
4) More technical: is there a microsoft signature in the code,
consisting of the ascii characters !FTOSORCIM (Microsoft! backwards),
but hidden as two floating point values after the floating point
constants
used for a polynomial (the one for computing TAN I think), that is to
say,
bits 6 and/or 7 of some bytes are inversed. One way to easily verify
this:
mask each byte with a $3F value, then add $40, and search FTOSORCIM...
Oups, that makes *four* questions... 8-)
Thanks in advance for your answers (please answer through email),
--
main(){char*s="@_DOONN_@AJQQDQA@AQQQDAA@OQOODAO@A_QEDAA@AQQIDQA@AQOQNN_";int
i,j,m,n,k;for(i=0;i<7;i++)for(j=0;m=j-6+i,j<55-i;j++)putchar(j==54-i?'\n':j<6-
i?32:s[n=i*8+m/6]&(k=1<<m%6)?(i==6||!(s[n+8]&k)?95:32):k/2&&(s[n]&k/2)?47:32);}