Hot answers tagged

52

The difference between Applesoft BASIC and the other Microsoft 6502 BASIC derivatives can be explained by the fact that Applesoft BASIC was not the first BASIC for the Apple II; the first was Apple II Integer BASIC, in turn derived from Apple I BASIC, which had been independently created by The Woz. Integer BASIC supported only 16-Bit signed integers as a ...


12

The TRS-80 series is Z80 based, and Z80 uses, like all 8080 offspring (*1,3) a separate address space for I/O. It allows easy decoding for I/O. Thus memory address 0000h is different from I/O address 00h. On logical (program) level, access to either address space is selected by the instructions used. Memory instructions always access memory address space ...


10

One approach would be to mirror the BASIC ROM into RAM where it can easily be modified, and then simply NOP the instructions that perform the color change. I outline the technique used to mirror the ROMS into RAM in this post Mapping the 64 seems to indicate the BASIC PRINT routing is located at $AAA0, and eventually calls the Kernal CHROUT. I would start ...


7

In some BASICs integers were signed 16-bit values, so there was no integer higher than 32767. Thus, if you wanted a 16-bit value of $FFFF in an integer variable,you'd have to specify it as -1. You can see this in Commodore 64 BASIC V2: X%=32767 READY X%=32768 ?ILLEGAL QUANTITY ERROR That said, the C64 SYS didn't actually take an integer parameter; it ...


3

Long story short: some BASICs have "two-byte signed integers" all around, so they can work only with numbers between -32768 and +32767. Other BASICs have their own format of numbers (e.g. Sinclair's ZX Spectrum BASIC - it uses 5 bytes to store a simple integer, so it can be -65535..65535). In the second case, it is up to the BASIC interpreter developer, ...


2

The "problem" with a screen text rendering routine that also sets the color of each character cell it outputs is performance. It requires two writes for each character, but only one is required if you want to keep whatever color(s) are already assigned. If you are looking to improve the performance of the PRINT used in BASIC by foregoing unnecessary writes ...


2

Maybe you could peek the color at the specified address before you print it. Else, if color ram has different colors at each character location where you want to print, the next idea would be to poke the characters at screenmem (which does not affect colorram). I also think that you can define a function using DEF FN() that peeks and pokes characters (i.e. ...


2

While not exactly examples of outstanding music, I knew that there was a C128 demo program written in BASIC to show off the capabilities of BASIC 7.0. In addition to graphics, it also demonstrated some music capabilities. I believe the 8-bit Guy featured it in his Commodore 128 video on history of Commodore, but there is also another one that I found from a ...


1

For the records: I just found some C128 BASIC music program using PLAY commands in the Dual Demo by Flexman The music code is at line 7000 and following.


1

How about intercepting CHROUT print routine and fixing the color value: C000 LDA #$0B C002 STA $0326 C005 LDA #$C0 C007 STA $0327 C00A RTS C00B PHA C00C LDA #$01 ; SET COLOR HERE C00E STA $0286 C011 PLA C012 JMP $F1CA SYS49152


Only top voted, non community-wiki answers of a minimum length are eligible