Hello to everyone,
i'm in develop phase of o.s. and utilities for my home-microcomputer 65C816-based and i want share with friends here my work (of course is really a "work in progress"):
Attachment:
B16_LAST.zip [1.65 MiB]
Downloaded 91 times
In this archive all sources are inside directories named : SRC/F8, SRC/F9, SRC/FA...SRC/FF (these strangers named because any section occupy a 64 bank from F80000 to FFFFFF in 16 Mb space). In INC directory live includes files, in LST directory are the listing generated from the assembler.
The start routine is in F8/start.asm and F8/reset.asm. F8/vdc.asm contain the video routines, F8/vprint.asm implement C-like function sprintf() while F8/ata,asm and F8/fdc.asm implement ata and floppy disk routines.
In F9 live some starting sources in an attempt to implement a FAT file system, while F9/fscbm.asm implement a nearly full commodore 1581 file system (no relative files).
Directory FA should be devoted to some library functions: at this time a C-like function getopt() (for get command line options: getopt.asm) and some string functions (string.asm) with a way to pass parameters on stack and clean stack when function exit.
In FD directory just one source: qedt.asm, that implement a full screen text editor multiwindow that can use all memory addressed by cpu. This source was adapted by the old Power-C text editor for the commodore 128, but memory is not limited just to 64k (i used a 16 bit link in any block of 256 bytes instead of an 8 bit link). It need to access directly the video ram.
In FE directory i have implemented a pascal compiler adapted from the old "Oxford Pascal Compiler for C64": for this reason some kernal C64 function was emulated (look at kcbm.asm and float.asm): in main.asm a first attempt to implement the basic editor, while pcode.asm implement the pascal interpreter, pcerr.asm error messages, pcstd.asm some standard names used by pascal.
FF directory contain the (incomplete) monitor with assembler/disassembler (masmx.asm) that can assemble/disassemble code for 6502, 65C02 and of course 65C816 (syntax very near to syntax of C128 monitor).
Much code is commented, some parts are commented in italian, some part are a bit confused or not clear, but as told is a work in progress.
Marco
_________________
http://65xx.unet.bz/ - Hardware & Software 65XX family