sd:sd-8516_stellar_basic
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| sd:sd-8516_stellar_basic [2026/03/28 13:21] – appledog | sd:sd-8516_stellar_basic [2026/04/05 14:18] (current) – appledog | ||
|---|---|---|---|
| Line 13: | Line 13: | ||
| There are some basic terminal interface commands you may wish to know. These will allow you to make character mode games; see next chapter for graphics mode. | There are some basic terminal interface commands you may wish to know. These will allow you to make character mode games; see next chapter for graphics mode. | ||
| - | * STRXY A$, X, Y -- print string at XY on the screen | + | * STRXY X, Y, A$ -- print string at XY on the screen |
| * CHARXY X, Y, C -- puts character C (0-255) on the screen at location (X,Y). | * CHARXY X, Y, C -- puts character C (0-255) on the screen at location (X,Y). | ||
| * CHARFG X,Y,FG -- changes the foreground color of a single character on the screen | * CHARFG X,Y,FG -- changes the foreground color of a single character on the screen | ||
| Line 240: | Line 240: | ||
| VSTART will resume regular video chip scans of the framebuffer to video memory. | VSTART will resume regular video chip scans of the framebuffer to video memory. | ||
| + | |||
| + | === Mode 4 | ||
| + | Mode 4 is a 256x224 " | ||
| + | |||
| + | < | ||
| + | 10 MODE 4 | ||
| + | 20 FOR C = 0 TO 15 | ||
| + | 30 RECT C * 16, 0, C * 16 + 15, 223, C, 1 | ||
| + | 40 NEXT C | ||
| + | 50 LINE 0, 0, 223, 223, 3 | ||
| + | 60 INPUT "PRESS ENTER"; | ||
| + | 70 MODE 1 | ||
| + | </ | ||
| + | |||
| + | As you can see, it's pretty much more of the same, but you may prefer the aspect ratio for classic 8bit and 16bit console games. | ||
| + | |||
| + | === Mode 8 | ||
| + | Mode 8 is a 128x128 " | ||
| + | |||
| + | < | ||
| + | 10 MODE 8 | ||
| + | 20 FOR C = 0 TO 15 | ||
| + | 30 RECT C * 8, 0, C * 8 + 7, 127, C, 1 | ||
| + | 40 NEXT C | ||
| + | 50 LINE 0, 0, 127, 127, 3 | ||
| + | 60 INPUT "PRESS ENTER"; | ||
| + | 70 MODE 1 | ||
| + | </ | ||
| + | |||
| + | As you can see, it's pretty much more of the same, but you may prefer this aspect ratio for classic " | ||
| + | |||
| == Music | == Music | ||
| Line 379: | Line 410: | ||
| === Further Study | === Further Study | ||
| If you wish to learn more about how the MML system works under the hood, please refer to the Programmer' | If you wish to learn more about how the MML system works under the hood, please refer to the Programmer' | ||
| + | |||
| + | == Benchmarking your Code | ||
| + | You might want to know how fast your code runs. This simple benchmarking program gives you an insight on how to create a simple timer: | ||
| + | |||
| + | <codify BASIC> | ||
| + | 10 BANK 1 | ||
| + | 20 LET T=PEEK($EF06) | ||
| + | 30 FOR I=1 TO 1000 | ||
| + | 40 LET A=I*3+7 | ||
| + | 50 LET B=A/2-1 | ||
| + | 60 LET C=A+B | ||
| + | 70 LET S=S+C | ||
| + | 80 IF C>100 THEN LET P=P+1 | ||
| + | 90 NEXT I | ||
| + | 100 LET U=PEEK($EF06) | ||
| + | 110 LET D=U-T | ||
| + | 120 PRINT D | ||
| + | </ | ||
| + | |||
| + | The memory location $EF06 is the second byte of the hardware clock, which ticks once every .256 seconds. it's a bit rough but if you need a simple timer you can do something like this. On my computer this returns 14, which indicates 7000/ | ||
| + | |||
| + | |||
| + | == Dictionary | ||
| + | === FREE() | ||
| + | This is like MEM in that it calculates the free space in bank 0 between the end of the BASIC program and VARTOP, however it returns it as an integer. Be careful because in BASIC integers are signed. So read the number like this; when it is negative, this shows how much space has been used (the zero page is reserved so it always shows -256 at start). When it is positive, then it shows how much space is left. | ||
| + | |||
| + | Also see: MEM | ||
| + | |||
| + | === MEM | ||
| + | This command calculates the free space in bank 0 between the end of the BASIC program and VARTOP, which roughly estimates how much free space you have left in bank 0 for BASIC. | ||
| + | |||
| + | Also see: FREE() | ||
| + | |||
| + | |||
| + | This command prints a number, expression, variable or string. Examples: | ||
| + | |||
| + | PRINT "HELLO WORLD!" | ||
| + | PRINT A$ | ||
| + | PRINT ASC(" | ||
| + | PRINT 5 | ||
sd/sd-8516_stellar_basic.1774704061.txt.gz · Last modified: by appledog
