luckybuck Posted September 12, 2016 Share Posted September 12, 2016 (edited) 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%20Basichttps://atariwiki.org/wiki/Wiki.jsp?page=ACTION%20source%20codehttps://atariwiki.org/wiki/Wiki.jsp?page=Basic%20XEhttps://archive.org/details/ColleenCalculatorhttps://archive.org/details/ColleenFloatingPointRoutineshttp://www.virtualdub.org/altirra.htmlhttp://www.xl-project.com/downloads.htmlEnjoy 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 September 15, 2016 by luckybuck 13 Quote Link to comment Share on other sites More sharing options...
Savetz Posted September 12, 2016 Share Posted September 12, 2016 To clarify: this is the OSS Integer BASIC, which was never released. Kevin 5 Quote Link to comment Share on other sites More sharing options...
Kr0tki Posted September 20, 2016 Share Posted September 20, 2016 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 7 Quote Link to comment Share on other sites More sharing options...
luckybuck Posted September 20, 2016 Author Share Posted September 20, 2016 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. :-))) Quote Link to comment Share on other sites More sharing options...
luckybuck Posted September 20, 2016 Author Share Posted September 20, 2016 Hi KrOtki, have uploaded to the Wiki, with all credits to you. This time with the correct name. Sorry again. Quote Link to comment Share on other sites More sharing options...
+Larry Posted September 20, 2016 Share Posted September 20, 2016 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. Quote Link to comment Share on other sites More sharing options...
Kr0tki Posted September 20, 2016 Share Posted September 20, 2016 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. 2 Quote Link to comment Share on other sites More sharing options...
luckybuck Posted September 20, 2016 Author Share Posted September 20, 2016 @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. :-))) Quote Link to comment Share on other sites More sharing options...
+Larry Posted September 21, 2016 Share Posted September 21, 2016 Yes, about 1987. Larry Quote Link to comment Share on other sites More sharing options...
+MrFish Posted September 21, 2016 Share Posted September 21, 2016 (edited) 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. Edited September 21, 2016 by MrFish Quote Link to comment Share on other sites More sharing options...
luckybuck Posted September 21, 2016 Author Share Posted September 21, 2016 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? Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted September 21, 2016 Share Posted September 21, 2016 Perhaps it has code or data at a fixed address in low RAM, as does TBXL. Quote Link to comment Share on other sites More sharing options...
Kr0tki Posted September 21, 2016 Share Posted September 21, 2016 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. 4 Quote Link to comment Share on other sites More sharing options...
+MrFish Posted September 21, 2016 Share Posted September 21, 2016 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. Quote Link to comment Share on other sites More sharing options...
+MrFish Posted September 21, 2016 Share Posted September 21, 2016 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 2 Quote Link to comment Share on other sites More sharing options...
luckybuck Posted September 21, 2016 Author Share Posted September 21, 2016 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? :-))) Quote Link to comment Share on other sites More sharing options...
+MrFish Posted September 21, 2016 Share Posted September 21, 2016 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? Quote Link to comment Share on other sites More sharing options...
luckybuck Posted September 21, 2016 Author Share Posted September 21, 2016 https://atariwiki.org/wiki/Wiki.jsp?page=Mac65 Manuals MAC_XL_CARTRIDGE_©_1985_Stephen_D._Lawrow.txt ; size: 660 KB ; text file from a printout of the assembling of the MAC XL... Quote Link to comment Share on other sites More sharing options...
+MrFish Posted September 21, 2016 Share Posted September 21, 2016 (edited) https://atariwiki.org/wiki/Wiki.jsp?page=Mac65 Manuals MAC_XL_CARTRIDGE_©_1985_Stephen_D._Lawrow.txt ; size: 660 KB ; text file from a printout of the assembling of the MAC XL... I misunderstood you. I thought you were saying you did a Mac/65 assembly listing for Integer BASIC already. I get you now. Never mind. Edited September 21, 2016 by MrFish Quote Link to comment Share on other sites More sharing options...
+MrFish Posted September 21, 2016 Share Posted September 21, 2016 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 ; 1 Quote Link to comment Share on other sites More sharing options...
luckybuck Posted September 21, 2016 Author Share Posted September 21, 2016 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. Quote Link to comment Share on other sites More sharing options...
+MrFish Posted September 21, 2016 Share Posted September 21, 2016 (edited) 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 September 21, 2016 by MrFish 1 Quote Link to comment Share on other sites More sharing options...
Kr0tki Posted September 22, 2016 Share Posted September 22, 2016 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. 2 Quote Link to comment Share on other sites More sharing options...
Alfred Posted September 22, 2016 Share Posted September 22, 2016 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. Quote Link to comment Share on other sites More sharing options...
luckybuck Posted September 22, 2016 Author Share Posted September 22, 2016 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.