Jump to content
luckybuck

OSS-D-Day part 3-Integer Basic & source code now in PD

Recommended Posts

Hello together,

Today is a very special day, because a long, long search and work around the world with many users is now over with a final good end after decades.

The community now has a never seen before Integer BASIC from OSS and this time with the source code together!

We are very happy about that, because now, just the source code of TurboBasic XL is missing (we are working on that, too), so we can make a final BASIC for the Atari, let's call it: Ultimate BASIC, else Final BASIC?

Further, we can interbreed with other source codes, for example ACTION! for an enhanced editor (scrolling) or the EXTEND command from the source code of BASIC XE to get used of the additional RAM with now up to 4 MB! All this is now possible and to your feet.

Further, please take into account the source code for the Atari Calculator, wich is now in PD, too for the floating point routines plus the ones from Altirra BASIC and BASIC++.

All links to the software can be found here:

https://atariwiki.org/wiki/Wiki.jsp?page=OSS%20Integer%20Basic
https://atariwiki.org/wiki/Wiki.jsp?page=ACTION%20source%20code
https://atariwiki.org/wiki/Wiki.jsp?page=Basic%20XE
https://archive.org/details/ColleenCalculator
https://archive.org/details/ColleenFloatingPointRoutines
http://www.virtualdub.org/altirra.html
http://www.xl-project.com/downloads.html

Enjoy and have fun. :-)))

This service was brought to you by Kevin, a good soul (who would like to stay anonymously), JAC!, Tomasz 'KrOtki' Krasuski, a still unknown donator of the hex codes, which enabled us to restore the code, the files and later from that, finally, the cart itself.

For those of you, who may ask about the unknown donator: in the very last picture of the microfilm there was a slide with the following sentence:

After digitizing, destroy everything send to you and there will be more!

I did exactly as ordered, and now we are waiting for more… ;-)

 

 

Call for help: who can create a cart out of the source code? ;-) Thank you very much in advance. :-)

Integer_BASIC_1.00_with_DOS_2.5_MD.atr

int-basic-master-03oct86.atr

int-basic-slave-03oct86.atr

Edited by luckybuck
  • Like 13

Share this post


Link to post
Share on other sites

I've used MAC/65 1.02 to assemble it to cartridge. It requires changing lines 130 and 150 in D1:MASTER, to change both PROM and _CART to 0. Then assemble from disk, which results in a binary file that loads to $3000-$6fff, bank order "3M04". Retrieve this data in an appropriate order to create a ROM image.

 

So, Integer BASIC appears to contain the same features as BASIC XE, but with integer arithmetic. And it's blazing fast.

Integer BASIC v1.00 C (1986-11-19)(OSS)(US)034M.bin

Integer BASIC v1.00 C (1986-11-19)(OSS)(US)043M.bin

  • Like 7

Share this post


Link to post
Share on other sites

KrOtki you are wonderful! So great. So many thanky you, the community owe you so much. You really finished the OSS-D-Day, thank you so much.

-> Credits in the Wiki will be made soon. :-)))

Share this post


Link to post
Share on other sites

Visited the site. And sorry to be dense, but I don't understand the "Master" and "Slave" descriptions. Can someone provide a brief explanation?

 

Thanks,

Larry

 

A small anecdote. In the (Analog) Atari 8-bit Extra, there is a program called "Integer Basic" for XL (and XE) computers. It definitely was faster than regular 8K Basic. I tried to apply this for Basic XL, but it did not work -- just locked up as I recall. So I asked Bill Wilkinson if he might be interested in seeing why it would not work with BXL. He said he was interested, and I sent him the Analog disk, but never did hear anything back from him. Looks like they had made their own version.

Share this post


Link to post
Share on other sites

It requires changing lines 130 and 150 in D1:MASTER, to change both PROM and _CART to 0.

Was I unconscious or what? Of course I meant change PROM to 0 and _CART to 1. Roland, please fix the wiki description as well.

Visited the site. And sorry to be dense, but I don't understand the "Master" and "Slave" descriptions. Can someone provide a brief explanation?

The "master" disk contains the file MASTER, ie. the main source file that loads all the other source files during assembly. So you put the master disk in D1:, the slave in D2:, and do assembly of D1:MASTER, which then assembles the whole program.

 

Master and slave also refer to the two ROM chips in the OSS cartridge, as used in comments to the MAC/65 sources. Very roughly speaking, the master and slave disks contain sources of the master and slave ROM chips, respectively.

  • Like 2

Share this post


Link to post
Share on other sites

@KrOtki: Don't worry, have changed it. ;-)

 

@Larry: Bill has left us in November, but I assume, you mean a time in the golden age. ;-) Just try it out, KrOtki has finished the job, so we can find out on ourselfes. :-)))

Share this post


Link to post
Share on other sites

Free memory isn't reported correctly when no DOS is present. The number does decrease as code is added.

 

It seems to be working when a DOS is present, though.

 

post-6369-0-30653300-1474472159_thumb.png

Edited by MrFish

Share this post


Link to post
Share on other sites

Yes, have seen this, too. Well, we really have to investigate all the 4 new carts from OSS. Good start is a look into the source code. Maybe someone can build a new manual with all the advantages?

Share this post


Link to post
Share on other sites

Free memory isn't reported correctly when no DOS is present. The number does decrease as code is added.

Everything is perfectly fine. Integer BASIC is built on 16-bit modulo arithmetic with two's complement representation of negatives. The number you're seeing is negative, because all numbers larger than 32767 are displayed as negative. Add 65536 to get the proper result.

 

I haven't yet studied the available keywords, but I suppose there should be a keyword built in that switches the display mode of numbers, between non-negative and two's complement. Gotta check that out.

  • Like 4

Share this post


Link to post
Share on other sites

Everything is perfectly fine. Integer BASIC is built on 16-bit modulo arithmetic with two's complement representation of negatives. The number you're seeing is negative, because all numbers larger than 32767 are displayed as negative. Add 65536 to get the proper result.

 

I haven't yet studied the available keywords, but I suppose there should be a keyword built in that switches the display mode of numbers, between non-negative and two's complement. Gotta check that out.

 

Makes sense. Thanks for the info.

Share this post


Link to post
Share on other sites

I haven't yet studied the available keywords, but I suppose there should be a keyword built in that switches the display mode of numbers, between non-negative and two's complement. Gotta check that out.

 

Here's the Statement Name Table. I don't see anything for doing that -- unless there's another part to the statement table. This looks to be complete, at first glance, though.

.

10       .PAGE "STATEMENT NAME TABLE"
20 ;
30 ;STATEMENT NAME TABLE
40 ;
50 SNTAB =   *
60       .WORD :SREM-1
70       .CBYTE "REM"
80 ;
90       .WORD :SDATA-1
0100     .CBYTE "DATA"
0110 ;
0120     .WORD :SINPUT-1
0130     .CBYTE "INPUT"
0140 ;
0150     .WORD :SCOLOR-1
0160     .CBYTE "COLOR"
0170 ;
0180     .WORD :SLIST-1
0190     .CBYTE "LIST"
0200 ;
0210     .WORD :SENTER-1
0220     .CBYTE "ENTER"
0230 ;
0240     .WORD :SLET-1
0250     .CBYTE "LET"
0260 ;
0270     .WORD :SIF-1
0280     .CBYTE "IF"
0290 ;
0300     .WORD :SFOR-1
0310     .CBYTE "FOR"
0320 ;
0330     .WORD :SNEXT-1
0340     .CBYTE "NEXT"
0350 ;
0360     .WORD :SGOTO-1
0370     .CBYTE "GOTO"
0380 ;
0390     .WORD :SGOTO-1
0400     .CBYTE "GO TO"
0410 ;
0420     .WORD :SGOSUB-1
0430     .CBYTE "GOSUB"
0440 ;
0450     .WORD :STRAP-1
0460     .CBYTE "TRAP"
0470 ;
0480     .WORD :SBYE-1
0490     .CBYTE "BYE"
0500 ;
0510     .WORD :SCONT-1
0520     .CBYTE "CONT"
0530 ;
0540     .WORD :SDIM-1
0550     .CBYTE "COM"
0560 ;
0570     .WORD :SCLOSE-1
0580     .CBYTE "CLOSE"
0590 ;
0600     .WORD :SCLR-1
0610     .CBYTE "CLR"
0620 ;
0630     .WORD :SBYE-1
0640     .CBYTE "VBLANKWAIT"
0650 ;
0660     .WORD :SBYE-1
0670     .CBYTE "HITCLR"
0680 ;
0690     .WORD :SBYE-1
0700     .CBYTE "       "
0710 ;
0720     .WORD :SDIM-1
0730     .CBYTE "DIM"
0740 ;
0750     .WORD :SERROR-1
0760     .BYTE $80   ; ATARI END
0770 ;
0780     .WORD :SNEW-1
0790     .CBYTE "NEW"
0800 ;
0810     .WORD :SOPEN-1
0820     .CBYTE "OPEN"
0830 ;
0840     .WORD :SLOAD-1
0850     .CBYTE "LOAD"
0860 ;
0870     .WORD :SSAVE-1
0880     .CBYTE "SAVE"
0890 ;
0900     .WORD :SSTATUS-1
0910     .CBYTE "STATUS"
0920 ;
0930     .WORD :SNOTE-1
0940     .CBYTE "NOTE"
0950 ;
0960     .WORD :SPOINT-1
0970     .CBYTE "POINT"
0980 ;
0990     .WORD :SXIO-1
1000     .CBYTE "XIO"
1010 ;
1020     .WORD :SON-1
1030     .CBYTE "ON"
1040 ;
1050     .WORD :SPOKE-1
1060     .CBYTE "POKE"
1070 ;
1080     .WORD :SPRINT-1
1090     .CBYTE "PRINT"
1100 ;
1110     .WORD :SREAD-1
1120     .CBYTE "READ"
1130 ;
1140     .WORD :SREST-1
1150     .CBYTE "RESTORE"
1160 ;
1170     .WORD :SRET-1
1180     .CBYTE "RETURN"
1190 ;
1200     .WORD :SRUN-1
1210     .CBYTE "RUN"
1220 ;
1230     .WORD :SSTOP-1
1240     .CBYTE "STOP"
1250 ;
1260     .WORD :SPOP-1
1270     .CBYTE "POP"
1280 ;
1290     .WORD :SPRINT-1
1300     .CBYTE "?"
1310 ;
1320     .WORD :SGET-1
1330     .CBYTE "GET"
1340 ;
1350     .WORD :SPUT-1
1360     .CBYTE "PUT"
1370 ;
1380     .WORD :SGR-1
1390     .CBYTE "GRAPHICS"
1400 ;
1410     .WORD :SPLOT-1
1420     .CBYTE "PLOT"
1430 ;
1440     .WORD :SPOS-1
1450     .CBYTE "POSITION"
1460 ;
1470     .WORD :SDOS-1
1480     .CBYTE "DOS"
1490 ;
1500     .WORD :SDRAWTO-1
1510     .CBYTE "DRAWTO"
1520 ;
1530     .WORD :SSETCOLOR-1
1540     .CBYTE "SETCOLOR"
1550 ;
1560     .WORD :SLOCATE-1
1570     .CBYTE "LOCATE"
1580 ;
1590     .WORD :SSOUND-1
1600     .CBYTE "SOUND"
1610 ;
1620     .WORD :SLPRINT-1
1630     .CBYTE "LPRINT"
1640 ;
1650     .WORD :SCSAVE-1
1660     .CBYTE "CSAVE"
1670 ;
1680     .WORD :SCLOAD-1
1690     .CBYTE "CLOAD"
1700 ;
1710 QALET .WORD :SILET-1
1720     .BYTE $80
1730 ;
1740     .WORD :SERROR-1
1750     .CBYTE "ERROR- "
1760 ;
1770     .WORD :SWHILE-1
1780     .CBYTE "WHILE"
1790 ;
1800     .WORD :SENDWHILE-1
1810     .CBYTE "ENDWHILE"
1820 ;
1830     .WORD :SNTRACE-1
1840     .CBYTE "TRACEOFF"
1850 ;
1860     .WORD :STRACE-1
1870     .CBYTE "TRACE"
1880 ;
1890     .WORD :SELSE-1
1900     .CBYTE "ELSE"
1910 ;
1920     .WORD :SENDIF-1
1930     .CBYTE "ENDIF"
1940 ;
1950     .WORD :SPOKE-1
1960     .CBYTE "DPOKE"
1970 ;
1980     .WORD :SLOMEM-1
1990     .CBYTE "LOMEM"
2000 ;
2010     .WORD :SDEL-1
2020     .CBYTE "DEL"
2030 ;
2040     .WORD :SVINC-1
2050     .CBYTE "VINC"
2060 ;
2070     .WORD :SVDEC-1
2080     .CBYTE "VDEC"
2090 ;
2100     .WORD :SVCONST-1
2110     .CBYTE "VCONST"
2120 ;
2130     .WORD :SBPUT-1
2140     .CBYTE "BPUT"
2150 ;
2160     .WORD :SBGET-1
2170     .CBYTE "BGET"
2180 ;
2190     .WORD :STAB-1
2200     .CBYTE "TAB"
2210 ;
2220     .WORD :SDOS-1
2230     .CBYTE "CP"
2240 ;
2250     .WORD :SERASE-1
2260     .CBYTE "ERASE"
2270 ;
2280     .WORD :SLOCK-1
2290     .CBYTE "PROTECT"
2300 ;
2310     .WORD :SUNLOCK-1
2320     .CBYTE "UNPROTECT"
2330 ;
2340     .WORD :SDIR-1
2350     .CBYTE "DIR"
2360 ;
2370     .WORD :SRENAME-1
2380     .CBYTE "RENAME"
2390 ;
2400     .WORD :SMOVE-1
2410     .CBYTE "MOVE"
2420 ;
2430     .WORD :SMISSILE-1
2440     .CBYTE "MISSILE"
2450 ;
2460     .WORD :SPMCLR-1
2470     .CBYTE "PMCLR"
2480 ;
2490     .WORD :SPMCOLOR-1
2500     .CBYTE "PMCOLOR"
2510 ;
2520     .WORD :SPMGR-1
2530     .CBYTE "PMGRAPHICS"
2540 ;
2550     .WORD :SPMMOVE-1
2560     .CBYTE "PMMOVE"
2570 ;
2580     .WORD :SPMWIDTH-1
2590     .CBYTE "PMWIDTH"
2600 ;
2610     .WORD :SPOKE-1
2620     .CBYTE "SET"
2630 ;
2640     .WORD :SLVAR-1
2650     .CBYTE "LVAR"
2660 ;
2670     .WORD :RENS-1
2680     .CBYTE "RENUM"
2690 ;
2700     .WORD :SDOS-1
2710     .CBYTE "FAST"
2720 ;
2730     .WORD :SAUTO-1
2740     .CBYTE "NUM"
2750 ;
2760     .WORD :SEND-1
2770     .CBYTE "END" ; XL END
2780 ;
2790     .WORD :SILET-1
2800     .BYTE 0
2810     ;           END OF TABLE

  • Like 1

Share this post


Link to post
Share on other sites

You are on the right track. Did an assembly listing for MAC/65 with all new(!) commands e. g. PHX, PHY... and had printed into a text file and uploaded it on the Wiki. All commands are inside...

So, who is making the new and final manual? :-)))

Share this post


Link to post
Share on other sites

Did an assembly listing for MAC/65 with all new(!) commands e. g. PHX, PHY... and had printed into a text file and uploaded it on the Wiki.

 

I didn't see that on the wiki. Where is it located?

Share this post


Link to post
Share on other sites

Here are the Operator and Function tables:

.

10       .PAGE "OPERATOR TABLE"
20 CFPN  =   $0E
30 CSLIT =   $0F
40 ;
50 OPNTAB
60 ?     .= CSLIT+1  ; FIRST ENTRY = 1
70       ;           PAST STRING CONST
80 CCOM  =   ?
90 JCOM  =   ?
0100     .CBYTE ","
0110 ;
0120 ?   .= ?+1
0130 CEOS =  ?
0140 JEOS =  ?
0150     .CBYTE ":"
0160 ;
0170 ?   .= ?+1
0180 CSC =   ?
0190 JSC =   ?
0200     .CBYTE ";"
0210 ;
0220 ?   .= ?+1
0230 CCR =   ?       ; CARRIAGE RETURN
0240 JCR =   ?
0250     .BYTE CR!$80
0260 ;
0270 ?   .= ?+1
0280 CGTO =  ?
0290 JGTO =  ?
0300     .CBYTE "GOTO"
0310 ;
0320 ?   .= ?+1
0330 CGS =   ?
0340 JGS =   ?
0350     .CBYTE "GOSUB"
0360 ;
0370 ?   .= ?+1
0380 CTO =   ?
0390     .CBYTE "TO"
0400 ;
0410 ?   .= ?+1
0420 CSTEP = ?
0430     .CBYTE "STEP"
0440 ;
0450 ?   .= ?+1
0460 CSOE =  ?
0470 JSOE =  ?
0480 CEQ =   ?
0490 CAASN = ?
0500     .CBYTE "="
0510 ;
0520 ?   .= ?+1
0530 CSASN = ?
0540     .CBYTE "="
0550 ;
0560 ?   .= ?+1
0570 CTHEN = ?
0580 JTHEN = ?
0590     .CBYTE "THEN"
0600 ;
0610 ?   .= ?+1
0620 CPND =  ?
0630 JPND =  ?
0640     .CBYTE "#"
0650     .PAGE 
0660     ; 
0670 JSROP = ?+1     START OF REAL OPS
0680 ;
0690 ?   .= ?+1
0700 CBNAND = ?
0710     .CBYTE "^&"
0720 ;
0730 ?   .= ?+1
0740 CBNOR = ?
0750     .CBYTE "^!"
0760 ;
0770 ?   .= ?+1
0780 CBNEOR = ?
0790     .CBYTE "^%"
0800 ;
0810 ?   .= ?+1
0820 CLSR =  ?
0830     .CBYTE ">>"
0840 ;
0850 ?   .= ?+1
0860 CLSL =  ?
0870     .CBYTE "<<"
0880 ;
0890 ?   .= ?+1
0900 CLE =   ?
0910     .CBYTE "<="
0920 ;
0930 ?   .= ?+1
0940 CNE =   ?
0950     .CBYTE "<>"
0960 ;
0970 ?   .= ?+1
0980 CGE =   ?
0990     .CBYTE ">="
1000 ;
1010 ?   .= ?+1
1020 CLT =   ?
1030     .CBYTE "<"
1040 ;
1050 ?   .= ?+1
1060 CGT =   ?
1070     .CBYTE ">"
1080 ;
1090 ?   .= ?+1
1100 CAEQ =  ?
1110     .CBYTE "="
1120 ;
1130 ?   .= ?+1
1140 CMOD =  ?
1150     .CBYTE "\"
1160 ;
1170 ?   .= ?+1
1180 CMUL =  ?
1190     .CBYTE "*"
1200 ;
1210 ?   .= ?+1
1220 CPLUS = ?
1230     .CBYTE "+"
1240 ;
1250 ?   .= ?+1
1260 CMINUS = ?
1270     .CBYTE "-"
1280 ;
1290 ?   .= ?+1
1300 CDIV =  ?
1310     .CBYTE "/"
1320 ;
1330 ?   .= ?+1
1340 CBEOR = ?
1350 JBEOR = ?
1360     .CBYTE "%"
1370 ;
1380 ?   .= ?+1
1390 CNOT =  ?
1400     .CBYTE "NOT"
1410 ;
1420 ?   .= ?+1
1430 COR =   ?
1440 JOR =   ?
1450     .CBYTE "OR"
1460 ;
1470 ?   .= ?+1
1480 CAND =  ?
1490 JAND =  ?
1500     .CBYTE "AND"
1510 ?   .= ?+1
1520 CBOR =  ?
1530 JBOR =  ?
1540     .CBYTE "!"
1550 ?   .= ?+1
1560 CBAND = ?
1570 JBAND = ?
1580     .CBYTE "&"
1590 ;
1600 ?   .= ?+1
1610 CLPRN = ?
1620 JLPRN = ?
1630     .CBYTE "("
1640 ;
1650 ?   .= ?+1
1660 CRPRN = ?
1670 JRPRN = ?
1680     .CBYTE ")"
1690     .PAGE
1700 ;
1710 ;FOLLOWING ENTRIES ARE COMPRISED
1720 ;OF CHARACTERS SIMILAR TO SOME OF
1730 ;THOSE ABOVE BUT HAVE DIFFERENT
1740 ;SYNTACTICAL OR SEMANTIC MEANING.
1750 ;
1760 ?   .= ?+1
1770 CSLE =  ?
1780     .CBYTE "<="
1790 ;
1800 ?   .= ?+1
1810 CSNE =  ?
1820     .CBYTE "<>"
1830 ;
1840 ?   .= ?+1
1850 CSGE =  ?
1860     .CBYTE ">="
1870 ;
1880 ?   .= ?+1
1890 CSLT =  ?
1900     .CBYTE "<"
1910 ;
1920 ?   .= ?+1
1930 CSGT =  ?
1940     .CBYTE ">"
1950 ;
1960 ?   .= ?+1
1970 CSEQ =  ?
1980     .CBYTE "="
1990 ;
2000 ?   .= ?+1
2010 CUPLUS = ?      UNARY +
2020     .CBYTE "+"
2030 ;
2040 ?   .= ?+1
2050 CUMINUS = ?     UNARY -
2060     .CBYTE "-"
2070 ;
2080 ?   .= ?+1
2090 CSLPRN = ?      STRING (
2100 JSLPRN = ?
2110     .CBYTE "("
2120 ;
2130 ?   .= ?+1
2140 CALPRN = ?      ARRARY (
2150 JALPRN = ?
2160     .BYTE $80   DOES NOT PRINT
2170 ?   .= ?+1
2180 CDLPRN = ?      DIM (
2190 JDLPRN = ?
2200     .BYTE $80   DOES NOT PRINT
2210 ;
2220 ?   .= ?+1
2230 CFLPRN = ?      FUNCTION (
2240 JFLPRN = ?
2250     .CBYTE "("
2260 ;
2270 ?   .= ?+1
2280 CDSLPR = ?      STRING DIM (
2290 JDSLPR = ?
2300     .CBYTE "("
2310 ;
2320 ?   .= ?+1
2330 CACOM = ?       ARRAY COMMA
2340 JACOM = ?
2350     .CBYTE ","
2360 ;
2370 ?   .= ?+1
2380 CACSC = ?       ARRAY SEMI-COLON
2390 JACSC = ?
2400     .CBYTE ";"
2410 ;
2420 ;FNTAB - FUNCTION NAME TABLE
2430 ; PART OF ONTAB
2440 ;
2450 ?   .= ?+1
2460 CFFUN = ?       ; 1ST FUNCTION CODE
2470 ;
2480 CLEFT = ?
2490     .CBYTE "LEFT$("
2500 ?   .= ?+1
2510 CRIGHT = ?
2520     .CBYTE "RIGHT$("
2530 ?   .= ?+1
2540 CMID =  ?
2550     .CBYTE "MID$("
2560 ?   .= ?+1
2570 CSTR =  ?
2580     .CBYTE "STR$("
2590 ?   .= ?+1
2600 CCHR =  ?
2610     .CBYTE "CHR$("
2620 ?   .= ?+1
2630 CUSR =  ?       ;USR FUNCTION CODE
2640     .CBYTE "USR("
2650 ?   .= ?+1
2660 CASC =  ?
2670     .CBYTE "ASC("
2680 ?   .= ?+1
2690 CVAL =  ?
2700     .CBYTE "VAL("
2710 ?   .= ?+1
2720 CLEN =  ?
2730     .CBYTE "LEN("
2740 ?   .= ?+1
2750 CADR =  ?
2760     .CBYTE "ADR("
2770 ?   .= ?+1
2780 CBUMP = ?
2790     .CBYTE "BUMP("
2800 ?   .= ?+1
2810 CFIND = ?
2820     .CBYTE "FIND("
2830 ?   .= ?+1
2840 CHEX =  ?
2850     .CBYTE "HEX$("
2860 ?   .= ?+1
2870 CRANDOM = ?
2880     .CBYTE "RANDOM("
2890 ?   .= ?+1
2900 CNFNP = ?
2910     ;           ***
2920 CDPEEK = ?
2930 ?   .= ?+1
2940 CRUN =  ?
2950     .CBYTE "DPEEK(","RUN("
2960 ?   .= ?+1
2970 CCOS =  ?
2980 ?   .= ?+1
2990 CPEEK = ?
3000     .CBYTE "    ","PEEK("
3010 ?   .= ?+1
3020 CSIN =  ?
3030 ?   .= ?+1
3040 CRND =  ?
3050     .CBYTE "    ","RND("
3060 ?   .= ?+1
3070 CFRE =  ?
3080     .CBYTE "FRE("
3090 ?   .= ?+1
3100 CSQR =  ?
3110 ?   .= ?+1
3120 CSGN =  ?
3130     .CBYTE "SQR(","SGN("
3140 ?   .= ?+1
3150 CABS =  ?
3160 ?   .= ?+1
3170 CINT =  ?
3180     .CBYTE "ABS(","INT("
3190 ?   .= ?+1
3200 CSYS =  ?
3210 ?   .= ?+1
3220 CPADDLE = ?
3230     .CBYTE "SYS(","PADDLE("
3240 ?   .= ?+1
3250 CSTICK = ?
3260 ?   .= ?+1
3270 CPTRIG = ?
3280     .CBYTE "STICK(","PTRIG("
3290 ?   .= ?+1
3300 CSTRIG = ?
3310 ?   .= ?+1
3320 CVSTICK = ?
3330     .CBYTE "STRIG(","VSTICK("
3340 ?   .= ?+1
3350 CHSTICK = ?
3360 ?   .= ?+1
3370 CPMADR = ?
3380     .CBYTE "HSTICK(","PMADR("
3390 ?   .= ?+1
3400 CRR =   ?
3410 ?   .= ?+1
3420 CTAB =  ?
3430 ?   .= ?+1
3440 CPEN =  ?
3450     .CBYTE "ERR(","TAB(","PEN(",0
3460 ;

  • Like 1

Share this post


Link to post
Share on other sites

Sorry, I understood you wrong, my fault.

 

Cool, if you don't mind, I put both lists on the wiki.

 

Then, just BASIC XE 4.2 is missing :-)

 

Thanks.

Share this post


Link to post
Share on other sites

Cool, if you don't mind, I put both lists on the wiki.

 

I wouldn't put anything on the Wiki just yet. I've already found another file with operator and function tables that contain items not listed in the above (for instance "USING", "CLOG", and "LOG").

 

The above are just the first two files I came across. It'll take a closer inspection to be sure everything's covered properly.

Edited by MrFish
  • Like 1

Share this post


Link to post
Share on other sites

Here's the Statement Name Table. I don't see anything for doing that -- unless there's another part to the statement table.

I see. Still possible that it's controlled by a particular SET or PRINT USING command.

 

Here are the Operator and Function tables:

Hmm, makes me wonder, what can the INT() function possibly do? :-)

 

I wouldn't put anything on the Wiki just yet. I've already found another file with operator and function tables that contain items not listed in the above (for instance "USING", "CLOG", and "LOG").

 

The above are just the first two files I came across. It'll take a closer inspection to be sure everything's covered properly.

Try building the cartridge with listing enabled, you'll get full source code in one file, without unused parts that may still be left on the disk.
  • Like 2

Share this post


Link to post
Share on other sites

I've been looking at this to see what size of int is used, and the use of the fp conversion routines all over bothers me. A basic where the largest value is 32767 or even 65535 really isn't very useful.

Share this post


Link to post
Share on other sites

Alfred, I am sorry, but you are wrong here. Take for example the success of Action! Games just have integer lives, normally from 3 to 0 and then game over. There is no need for fp values. But the speed increases very much. If you want to use BASIC scientificly, well then BASIC XE would be best choice with new fp routines, else BASIC++ or Altirra Basic. As I wrote, let's do an Ultimate Basic, where the user can choose: game, science, business mode etc..

 

If you take a look at Pascal, there was something with 32767, too. ;-)

Share this post


Link to post
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.

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