This forums is for OS project announcements including project openings, new releases, update notices, test requests, and job openings (both paying and volunteer).
BASIC variable assignment enhanced: can now take multiple values and variables, eg "x = a + 2 * b + 3"
Two new system calls: os_port_byte_out and os_port_byte_in -- send/receive bytes from ports
os_serial_port_enable system call: now takes 0 in AX for normal mode (9600 baud as before), or 1 for a new slow mode (1200 baud)
New SERIAL command in BASIC: "SERIAL ON 1200" or "SERIAL ON 9600" to enable, "SERIAL SEND X" or "SERIAL SEND 50" to send a byte, and "SERIAL REC X" to receive a byte into a variable
New PORT command in BASIC: "PORT OUT 1234 X" or "PORT OUT 1234 20" to send byte to a port, and "PORT IN 1234 X" to receive a byte
source/features/serial.asm renamed to source/features/ports.asm as it now contains new non-serial routines
os_get_random rewritten: now takes low and high values in AX and BX, and returns random int between them (inclusive) in CX; also has new os_seed_random routine used by the kernel
New RAND command in BASIC: generates a random number between two values and stores the result in a variable
CLI command checking code simplified -- no need to point SI to the input string each time
BASIC CURSORCHAR command is now CURSCHAR, so that it doesn't look like a superset of the CURSOR command
API bumped to version 13
Handbook updates and fixes
Thanks to Paulo Valongo, Ian Seyler and Steve for their work. It's available at:
I tried your floppy image, and everything seems to work fine.
I could however crash the system by typing in an invalid opcode in the debugger, but since it's real mode I don't know if you planned on fixing that.
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
Thanks for testing Combuster. Yes, the machine code monitor doesn't have any sanity checks, as it assumes the user knows exactly what he/she is doing -- as opposed to the BASIC interpreter which does a few checks to cover obvious errors
Just a small update. We've released MikeOS 4.1.2, which contains a few bugfixes, but I also wanted to note the increased use of MikeOS BASIC. It has been ported to a few other operating systems (eg DexOS, BareMetal) and we have some new applications, eg Memory Editor:
This shows what MikeOS BASIC is capable of. The source code is in source/features/basic.asm for anyone who wants to try porting it. There's also a detailed handbook describing the (quite limited) interpreter at: http://mikeos.berlios.de/handbook-appdev-basic.html
Great work mike, your OS just gets better and better, MikeOS has inspired many OS's, including the project you mentioned "BareMetal" which i also follow closely.