Mercurial > hg > Members > kono > nitros9-code
changeset 2349:f506d1905781
Added Level 3
author | boisy |
---|---|
date | Sun, 17 Jan 2010 21:35:51 +0000 |
parents | 8132c03a36cf |
children | 12d835665f89 |
files | level1/modules/clock.asm level3/Level3.doc level3/ReadMe.l3 level3/coco3/bootfiles/makefile level3/coco3/cmds/defsfile level3/coco3/cmds/makefile level3/coco3/cmds/sfree.asm level3/coco3/defs/Defsfile level3/coco3/defs/makefile level3/coco3/defsfile level3/coco3/makefile level3/coco3/modules/defsfile level3/coco3/modules/end.asm level3/coco3/modules/kernel/defsfile level3/coco3/modules/kernel/makefile level3/coco3/modules/makefile level3/coco3/startup level3/coco3/sys/makefile level3/coco3/sys/motd |
diffstat | 19 files changed, 1500 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/level1/modules/clock.asm Sat Jan 16 20:32:16 2010 +0000 +++ b/level1/modules/clock.asm Sun Jan 17 21:35:51 2010 +0000 @@ -659,22 +659,22 @@ DelVIRQ pshs x,y DelVLup - ifgt Level-2 + IFEQ H6309-1 ldq ,y++ move entries up in table leay 2,y stq -8,y bne DelVLup puls x,y,pc - else + ELSE ldx ,y++ move entries up in table stx -4,y bne DelVLup puls x,y leay -2,y rts - endc + ENDC - ifgt Level-1 + IFGT Level-1 *------------------------------------------------------------ * * Handle F$Alarm call
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/level3/Level3.doc Sun Jan 17 21:35:51 2010 +0000 @@ -0,0 +1,208 @@ +The Level III modifications are Copyright 1996 by Alan T. DeKok, all rights +reserved. + + +Level III +========= + + It's what everybody's been asking for, so here goes. + + One warning: Level III is VERY dependant on the order of modules in the +OS9Boot file. If you do NOT follow the directions below exactly, your +system will NOT BOOT. I'm willing to answer questions and perform support, +but Level III is not for the faint of heart or the OS-9 beginner. + + When you install Level III, you MUST do it on a system using NitrOS-9. + + When you build a Level III OS9Boot, be aware that you WILL NOT be able +to cobbler a disk once LIII is booted. You must copy the OS9Boot by hand, +and use 'ezgen' to update LSN0, or use OS9Gen. + +****************************************************************************** +** DO NOT COBBLER DISKS WITH LEVEL III! IT WILL COBBLER BUT WILL NOT BOOT! ** +****************************************************************************** + + Your OS9Boot file MUST be magically formatted as follows. The reasons for +this are long and detailed. I'll just say that if it isn't done this way, +Level III will NOT work. + +****** start of the OS9Boot file. +NitrOS9 (from the NitrOS9.L3 file.) +SCF + (other SCF modules, i.e. SACIA, Printer, VRN) + ( NOT CC3IO or WindInt or VDGInt. Never!) + (up to a limit of 15k of modules) +_end <--- specifies the end of SCF information, from the _end.L3 file. +RBF + (other RBF modules, i.e. CC3Disk, Rammer, RamPak, CCHDisk, etc.) +_end <--- specifies the end of RBF information + (everything else. Order does not matter here.) + (ALL descriptors, Clock, IOMan, OS9p2, Init, CC3IO, Windint, + PipeMan, etc.) +****** End of the OS9Boot file. + + Late tests indicate it is possible to put CC3IO inside the SCF local memory. +Whether or not it works is dependent on local system configurations. Either +way, there's plenty of system memory, and it doesn't appear to make any +difference to anything. + + Similarly, PipeMan may be put in SCF local memory between SCF and the first +_end module. Note that PipeMan may NOT be put in with RBF! + + An 'ident -s' of my Level III OS9Boot file (with comments) looks like this: + + 1 $C7 $389B28 . NitrOS9 + 16 $D1 $E2B0EB . SCF \ + 12 $E1 $82D6D3 . SACIA | SCF and SCF device drivers + 1 $E1 $329D69 . VRN | + 13 $E1 $3389A4 . PRINTER / + 1 $C7 $BB7259 . _end + 30 $D1 $753C86 . RBF \ + 4 $E1 $3AB3AA . Rammer | RBF and RBF device drivers + 2 $E1 $BCE29D . RamPak | + 11 $E1 $CFAA38 . CC3Disk / + 1 $C7 $BB7259 . _end + 1 $C1 $BFF958 . OS9p3 everything else + 67 $C0 $680456 . Init + 82 $F1 $7EBD63 . DD DEVICE DESCRIPTORS GO HERE + 82 $F1 $93C195 . D0 + 82 $F1 $F09A9D . D1 + 82 $F1 $323E4F . D2 + 82 $F1 $092A49 . MD + 82 $F1 $B31A99 . R0 + 114 $F1 $FD590E . T2 + 83 $F1 $C9B7C1 . P + 19 $C1 $67D5A0 . WindInt OUTSIDE SCF local memory! + 20 $E1 $B4F1E2 . CC3IO perhaps here, perhaps in SCF local memory + 83 $F1 $17FBEF . Term + 83 $F1 $F8D0CB . W + 83 $F1 $5EA5AA . W1 WINDOW DESCRIPTORS HERE! + 83 $F1 $691BAA . W2 + 83 $F1 $FB498B . W3 + 83 $F1 $05BFAA . W4 + 83 $F1 $97ED8B . W5 + 83 $F1 $E30B59 . W6 + 83 $F1 $710B78 . W7 + 83 $F1 $9F0B78 . W8 + 83 $F1 $0D0B59 . W9 + 18 $C0 $826A54 . OS9p2 All these modules MUST come after the '_end' + 12 $C1 $1B5CA4 . IOMan module, or your system will crash. + 9 $C1 $402FE2 . Clock + 4 $D1 $ED94CC . PipeMan + 2 $E1 $ADB22E . Piper + 80 $F1 $CC06AF . Pipe + 1 $F1 $B2004F . Nil + + + OK, now the theory behind the magic. + + When booting OS-9, the startup routine in OS9p1 calls the Boot module to +load in the OS9Boot file. OS9p1 then looks for a module named 'NitrOS9 +as the FIRST module of the OS9Boot file. If it exists, that module is called +BEFORE verifying the OS9Boot file. + + The NitrOS9 module allocates memory, and moves the SCF modules (up to +the _end module) into 'SCF local memory', and verifies the modules. The +same procedure is followed for RBF modules, and when I get the chance later, +for PipeMan and SBF modules. + + Extra memory is allocated in 16k chunks, and mapped into address $2000 +to $5FFF of the system map. An 'smap' will show you that this memory is +allocated. + + IOMan intercepts EVERY system call, and EVERY request/return system call. +Any module inside 'local memory' asking for system RAM gets allocated +RAM from that local memory. Any module in 'system global memory' asking +for system RAM gets allocated RAM from the global memory pool. + + The net result of this is that you lose 16k of memory from the bottom +of the system memory map, but you move about 16k of modules into system local +memory. On my setup, I had about 14K free after booting, and now 'smap' +usually gives me 11k of _global_ memory free. And I still have 8k of SCF +memory, and 9k of RBF memory left! + + The ONLY things that take memory out of 'system global memory' are process +descriptors (.5k each) and path descriptors (.0625K, 64 bytes). 11K is +room for another 20 processes, each with STDIN, STDOUT, and STDERR going +to a window. And 8k of SCF memory is just about enough memory for SCF +buffers for each of those 20 processes. + + i.e. Level III enables you to have about 25 _different_ processes +running in different windows, all at the same time! The only way that this +is possible on a Level II system is to strip your OS9Boot file down to almost +nothing. Level III allows you to keep all of your favorite modules in your +OS9Boot. + + VDG windows come out of system global memory, too. That's why I added the +'largest free block' display to the 'sfree' command, below. If you have +less than 6k free in one block, you can't run many old Coco2 games. + + The local 16k memory map is saved and restored across every system call, +and changed whenever a call to SCF/RBF is done. Because only IOMan knows +about the changes, only it (and clock) have to be modified. All of the +old file managers and drivers work perfectly. This includes programs +like 'winfo' and 'wdir'. + + I got the idea from thinking that it's perfectly possible to boot OS-9 +with NO SCF modules, and likewise with NO RBF modules. If that's possible, +why not map SCF and RBF into the same area of memory, and switch between +them on the fly? So far, I would say it's taken me the equivalent of 4 weeks +full-time work, as I ran into HORRIBLE problems. Level III is sufficiently +different from Level II that you can't really think the same way about it. + + Anyways, here's an 'sfree' of my current system, with OSTerm running +in another window, and 3 'shell' windows: + + ----- Level III System Memory ----- System memory: +37 free pages, largest block 37 pages. +9K of free RAM. + +SCF local memory: +21 free pages, largest block 21 pages. +5K of free RAM. + +RBF local memory: +31 free pages, largest block 31 pages. +7K of free RAM. + +---- + That's 89 pages (22K) of free RAM, and my OS9Boot file is $73E2 bytes long! +Even with a 4K SACia buffer open, 8 processes, and 4 windows! I like it... + + Here's an 'smap': + + 0 1 2 3 4 5 6 7 8 9 A B C D E F + # = = = = = = = = = = = = = = = = + 0 U U U U U U U U U U U U U U U U + 1 U U U U U U U U U U U U U U U U + 2 U U U U U U U U U U U U U U U U + 3 U U U U U U U U U U U U U U U U + 4 U U U U U U U U U U U U U U U U + 5 U U U U U U U U U U U U U U U U + 6 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + 7 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ + 8 _ _ _ _ _ U U U U U U U U U U U + 9 U U U U U U U U U U U U U U U U + A U U U U U U U U U U U U U U U U + B U U U U U U U U U U U U U U U U + C U U U U U U U U U U U U U U U U + D U U U U U U U U U U U U U U U U + E U U U U U U U U U U U U U U U U + F U U U U U U U U U U U U U U U . + + Number of Free Pages: 37 + Ram Free in KBytes: 9 + + +--- + This is enough room to format a disk (greater than 7K), even with many +processes and OSTerm running! + + I've been running Level III for just under a year, and I've had it in +beta test on 10+ systems for 8 months. One system was running a BBS, and +at one report was up and running for 2 months without a reboot. I think +it's stable enough to release to the general public. + + Have fun! + + Alan DeKok.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/level3/ReadMe.l3 Sun Jan 17 21:35:51 2010 +0000 @@ -0,0 +1,46 @@ + My version of Level III! + + The file 'LevelIII.lzh' has a previous (8k block) version, along with +much documentation as to how to set it up. + + Quick theory: + +The system map has 64k available, of which memory can be mapped in and out +in 8k blocks. + +SCF and RBF (and all other file managers) are completely independent. You +can boot OS-9 without ANY SCF modules, and likewise without any RBF modules. + +Next idea: map SCF and RBF in and out of the system map dynamically, so that +only one of them is in the map at a time. + +The memory map looks like this: + +$0000-$1FFF block 0, system direct page, etc. +$2000-$3FFF File Manager Local memory. Mapped in and out as appropriate. +$4000-$ECFF Process/path/device descriptors, Clock, IOMan, etc. +$ED00-$FEFF Kernel track: REL Boot OS9p1 + + On every system call and IRQ, the 16k block starting at $2000 is mapped +in or out, and the system DAT image changed also. + + On boot up, the module 'NitrOS-9' (nitro.a here) sets up the various +maps, and moves up to 16k of SCF or RBF modules into the FM local memory. + + Once the system is running, IOMan intercepts F$SRqMem and F$SRtMem calls +from all modules, and allocates FM local memory if the call originates from +there. i.e. RBF allocates a drive buffer, and IOMan gives it local memory, +so a 'smap' would show no change in the number of free pages. + + One problem: CC3IO and Windint CANNOT be in FM local memory, as they are +both called via tha D.AltIRQ vector. Every time I try to put them in local +memory, the system crashes, despite all precautions I take. So don't. + + The version of OS9p1 here is Level II OR Level III compliant. + + IOMan is ONLY Level III, and Nitro.a is the Level 3 File Manager setup +module. '_end' is a dummy module, just a place-holder. + + I've just discovered that CC3Disk11 will crash on trying to format a floppy +disk under Level III. It's probably the memory extensions I made to CC3Disk, +and I'm checking it out.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/level3/coco3/bootfiles/makefile Sun Jan 17 21:35:51 2010 +0000 @@ -0,0 +1,119 @@ +include $(NITROS9DIR)/rules.mak + +# Module directory +MD = ../modules +# Commands directory +CD = ../cmds + +DEPENDS = ./makefile + +KERNEL_1773 = $(MD)/rel_80 $(MD)/boot_1773_6ms $(MD)/krn +KERNEL_1773_50HZ = $(MD)/rel_80_50hz $(MD)/boot_1773_6ms $(MD)/krn +KERNEL_DW3 = $(MD)/rel_80 $(MD)/boot_dw3 $(MD)/krn + +# NitrOS-9 disk bootfile to allow booting from DriveWire 3 server +BOOTFILE_DW3 = $(MD)/krnp2 $(MD)/ioman $(MD)/init \ + $(MD)/rbf.mn \ + $(MD)/rbdw3.dr $(MD)/dw3.sb \ + $(MD)/ddx0.dd $(MD)/x1.dd $(MD)/x2.dd $(MD)/x3.dd \ + $(MD)/rb1773.dr $(MD)/d0_40d.dd $(MD)/d1_40d.dd \ + $(MD)/d2_40d.dd $(MD)/ddd0_40d.dd \ + $(MD)/scf.mn $(MD)/vtio.dr \ + $(MD)/keydrv_cc3.sb $(MD)/joydrv_joy.sb $(MD)/snddrv_cc3.sb \ + $(MD)/cowin.io $(MD)/covdg.io \ + $(MD)/term_win80.dt \ + $(MD)/w.dw $(MD)/w1.dw $(MD)/w2.dw $(MD)/w3.dw $(MD)/w4.dw \ + $(MD)/w5.dw $(MD)/w6.dw $(MD)/w7.dw \ + $(MD)/scdwp.dr $(MD)/p_scdwp.dd \ + $(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \ + $(MD)/clock_60hz $(MD)/clock2_dw3 + +# NitrOS-9 disk bootfile to allow booting from WD1773 disk controller +BOOTFILE_40D = $(MD)/krnp2 $(MD)/ioman $(MD)/init \ + $(MD)/rbf.mn \ + $(MD)/rb1773.dr $(MD)/d0_40d.dd $(MD)/d1_40d.dd \ + $(MD)/d2_40d.dd $(MD)/ddd0_40d.dd \ + $(MD)/scf.mn $(MD)/vtio.dr \ + $(MD)/keydrv_cc3.sb $(MD)/joydrv_joy.sb $(MD)/snddrv_cc3.sb \ + $(MD)/cowin.io $(MD)/covdg.io \ + $(MD)/term_win80.dt \ + $(MD)/w.dw $(MD)/w1.dw $(MD)/w2.dw $(MD)/w3.dw $(MD)/w4.dw \ + $(MD)/w5.dw $(MD)/w6.dw $(MD)/w7.dw \ + $(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \ + $(MD)/clock_60hz $(MD)/clock2_soft + +BOOTFILE_80D = $(MD)/krnp2 $(MD)/ioman $(MD)/init \ + $(MD)/rbf.mn \ + $(MD)/rb1773.dr $(MD)/d0_80d.dd $(MD)/d1_40d.dd \ + $(MD)/d2_40d.dd $(MD)/ddd0_80d.dd \ + $(MD)/scf.mn $(MD)/vtio.dr \ + $(MD)/keydrv_cc3.sb $(MD)/joydrv_joy.sb $(MD)/snddrv_cc3.sb \ + $(MD)/cowin.io $(MD)/covdg.io \ + $(MD)/term_win80.dt \ + $(MD)/w.dw $(MD)/w1.dw $(MD)/w2.dw $(MD)/w3.dw $(MD)/w4.dw \ + $(MD)/w5.dw $(MD)/w6.dw $(MD)/w7.dw \ + $(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \ + $(MD)/clock_60hz $(MD)/clock2_soft + +BOOTFILE_40D_50HZ = $(MD)/krnp2 $(MD)/ioman $(MD)/init \ + $(MD)/rbf.mn \ + $(MD)/rb1773.dr $(MD)/d0_40d.dd $(MD)/d1_40d.dd \ + $(MD)/d2_40d.dd $(MD)/ddd0_40d.dd \ + $(MD)/scf.mn $(MD)/vtio.dr \ + $(MD)/keydrv_cc3.sb $(MD)/joydrv_joy.sb $(MD)/snddrv_cc3.sb \ + $(MD)/cowin.io $(MD)/covdg.io \ + $(MD)/term_win80.dt \ + $(MD)/w.dw $(MD)/w1.dw $(MD)/w2.dw $(MD)/w3.dw $(MD)/w4.dw \ + $(MD)/w5.dw $(MD)/w6.dw $(MD)/w7.dw \ + $(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \ + $(MD)/clock_50hz $(MD)/clock2_soft + +BOOTFILE_80D_50HZ = $(MD)/krnp2 $(MD)/ioman $(MD)/init \ + $(MD)/rbf.mn \ + $(MD)/rb1773.dr $(MD)/d0_80d.dd $(MD)/d1_40d.dd \ + $(MD)/d2_40d.dd $(MD)/ddd0_80d.dd \ + $(MD)/scf.mn $(MD)/vtio.dr \ + $(MD)/keydrv_cc3.sb $(MD)/joydrv_joy.sb $(MD)/snddrv_cc3.sb \ + $(MD)/cowin.io $(MD)/covdg.io \ + $(MD)/term_win80.dt \ + $(MD)/w.dw $(MD)/w1.dw $(MD)/w2.dw $(MD)/w3.dw $(MD)/w4.dw \ + $(MD)/w5.dw $(MD)/w6.dw $(MD)/w7.dw \ + $(MD)/pipeman.mn $(MD)/piper.dr $(MD)/pipe.dd \ + $(MD)/clock_50hz $(MD)/clock2_soft + +BOOTFILES = bootfile_40d bootfile_40d_50hz bootfile_80d bootfile_80d_50hz bootfile_dw3 +KERNELS = kernel_1773 kernel_1773_50hz kernel_dw3 + +ALLOBJS = $(BOOTFILES) $(KERNELS) + +all: $(ALLOBJS) + +# Bootfiles +bootfile_40d: $(BOOTFILE_40D) $(DEPENDS) + $(MERGE) $(BOOTFILE_40D)>$@ + +bootfile_40d_50hz: $(BOOTFILE_40D_50HZ) $(DEPENDS) + $(MERGE) $(BOOTFILE_40D_50HZ)>$@ + +bootfile_80d: $(BOOTFILE_80D) $(DEPENDS) + $(MERGE) $(BOOTFILE_80D)>$@ + +bootfile_80d_50hz: $(BOOTFILE_80D_50HZ) $(DEPENDS) + $(MERGE) $(BOOTFILE_80D_50HZ)>$@ + +bootfile_dw3: $(BOOTFILE_DW3) $(DEPENDS) + $(MERGE) $(BOOTFILE_DW3)>$@ + +# Kernels +kernel_1773: $(KERNEL_1773) $(DEPENDS) + $(MERGE) $(KERNEL_1773)>$@ + +kernel_1773_50hz: $(KERNEL_1773_50HZ) $(DEPENDS) + $(MERGE) $(KERNEL_1773_50HZ)>$@ + +kernel_dw3: $(KERNEL_DW3) $(DEPENDS) + $(MERGE) $(KERNEL_DW3)>$@ + +clean: + $(RM) $(ALLOBJS) +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/level3/coco3/cmds/defsfile Sun Jan 17 21:35:51 2010 +0000 @@ -0,0 +1,2 @@ + use ../defsfile + use scfdefs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/level3/coco3/cmds/makefile Sun Jan 17 21:35:51 2010 +0000 @@ -0,0 +1,68 @@ +PORT = coco3 +include $(NITROS9DIR)/rules.mak + +vpath %.asm $(LEVEL3)/cmds:$(LEVEL2)/cmds:$(LEVEL1)/cmds:$(NITROS9DIR)/3rdparty/packages/basic09 + +DEPENDS = ./makefile +AFLAGS += -i=$(NITROS9DIR)/3rdparty/packages/basic09 + +CMDS = asm attr backup binex build cmp cobbler copy cputype \ + date dcheck debug ded deiniz del deldir devs dir dirsort disasm \ + display dmem dmode dsave dump echo edit error exbin \ + format free grfdrv help ident iniz irqs link list load login \ + makdir mdir megaread merge mfree mmap modpatch montype mpi os9gen padrom park \ + pmap proc procs prompt pwd pxd reboot rename save setime \ + shell_21 sleep smap sfree tee tmode touch tsmon tuneport unlink verify wcreate xmode + +CMDS_D2 = basic09 runb gfx2 gfx inkey syscall copy del echo format \ + merge os9gen prompt tmode + +SHELLMODS = shellplus date deiniz echo iniz link load save unlink +UTILPAK1 = attr build copy del deldir dir display list makdir mdir \ + merge mfree procs rename tmode + +# Files not compilable by os9asm: config +all: $(CMDS) $(CMDS_D2) shell utilpak1 $(DEPENDS) + +runb: runb.asm + $(AS) $(AFLAGS) $< $(ASOUT)$@ -aPWD=1 + $(MERGE) $@ $(SUBS)>$@.tmp + $(RM) $@ + $(MOVE) $@.tmp $@ + +tmode: xmode.asm + $(AS) $(AFLAGS) $< $(ASOUT)$@ -aTMODE=1 + +xmode: xmode.asm + $(AS) $(AFLAGS) $< $(ASOUT)$@ -aXMODE=1 + +pwd: pd.asm + $(AS) $(AFLAGS) $< $(ASOUT)$@ -aPWD=1 + +pxd: pd.asm + $(AS) $(AFLAGS) $< $(ASOUT)$@ -aPXD=1 + +shell: $(SHELLMODS) $(DEPENDS) + $(MERGE) $(SHELLMODS)>$@ + @$(ECHO) "*** Be sure the size of this file is less than 7681 bytes! ***" + @ls -l $@ + @$(ECHO) "" + +utilpak1: $(UTILPAK1) $(DEPENDS) + $(MERGE) $(UTILPAK1)>$@ + @$(ECHO) "*** Be sure the size of this file is less than 7681 bytes! ***" + @ls -l $@ + @$(ECHO) "" + +clean: + $(RM) shell utilpak1 $(SUBS) $(SHELLMODS) $(CMDS) $(CMDS_D2) + +# Only $(CMDS) are shown here +showobjs: + @$(ECHO) shell utilpak1 $(CMDS) + +showobjs_d2: + @$(ECHO) $(CMDS_D2) + +identify: + $(IDENT_SHORT) $(ALLOBJS)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/level3/coco3/cmds/sfree.asm Sun Jan 17 21:35:51 2010 +0000 @@ -0,0 +1,216 @@ +******************************************************************** +* SFree - Show free memory for NitrOS-9 Level 3 +* +* $Id$ +* +* Edt/Rev YYYY/MM/DD Modified by +* Comment +* ------------------------------------------------------------------ +* 1 ????/??/?? Alan DeKok +* Written from scratch. + + nam SFree + ttl program module + + + ifp1 + use defsfile + endc + +tylg set Prgrm+Objct +atrv set ReEnt+rev +rev set $01 +edition set 1 + + mod eom,name,tylg,atrv,start,size + +Cnt rmb 1 number of free blocks found +MaxCnt rmb 1 size of maximum free block + +u000F rmb 256 + rmb 200 for the stack +size equ . + +name fcs /SFree/ + fcb edition + +L005A fcb $00 temporary DAT image + fcb $00 + +Global fcb C$LF + fcc /----- Level III System Memory -----/ + fcb C$LF + fcc /System memory:/ + fcb C$CR + +SCF fcb C$LF + fcc /SCF local memory:/ + fcb C$CR + +RBF fcb C$LF + fcc /RBF local memory:/ + fcb C$CR + +skip leax 1,x +start lda ,x + cmpa #C$SPAC + beq skip + cmpa #C$CR CR? (no parameters) + lbne Help no, print out help + + leax >L005A,pcr + tfr x,d + ldx #D.SysMem ptr to system global memory map + ldy #$0002 2 bytes + ldu #u000F to a buffer + os9 F$CpyMem copy the memory + lbcs Exit exit on error + ldx ,u grab the offset to the buffer + leax $40,x ignore the first 2 8k blocks + ldy #$00C0 grab the rest of the page + os9 F$CpyMem copy the buffer + lbcs Exit exit on error + + leax >Global,pc + lbsr Print + lda #$C0 maximum number of pages to check + bsr Dump + + leax >L005A,pc + tfr x,d + ldx #$0660 Level III blocks + leas -2,s reserve 2 bytes on-stack + leau ,s point to the bytes + ldy #2 copy 2 bytes over + OS9 F$CpyMem + + lda ,s get SCF block number + ora 1,s and RBF block number + beq Level.2 if none, we're on a Level II system + + clr ,-s make a temporary DAT image + leax SCF,pc + bsr Local + + leas 1,s + clr ,s + leax RBF,pc + bsr Local + +Level.2 leas 2,s + +ClnExit clrb +Exit OS9 F$Exit + +Local lbsr Print print out the header + leax 2,s + tfr x,d + ldu #u000F + ldx #$0000 from the start of the block + ldy #$0040 64 bytes only + OS9 F$CpyMem + lda #$40 64 pages, and fall through to DUMP + +Dump clr <MaxCnt no maximum count of free blocks yet + clr <Cnt total count is zero, too. + ldx #u000F point to the buffer where the blocks are + pshs a save number of pages to check + clra we haven't found a free block yet + +d.skip ldb ,x+ grab a page flag + beq d.loop this page is free, go check it +d.skip1 dec ,s done one more byte + bne d.skip if we're not done them all yet, continue + bra d.done go to the 'done' routine + +d.loop inca found a maximum series of free page + inc <Cnt another total free page + dec ,s count down by one byte + beq d.done exit if we're done everything + + ldb ,x+ grab a page flag + beq d.loop if it's free, increment counters, etc. + cmpa <MaxCnt is this block larger than the previous free block? + bls d.skip1 if not, exit + sta <MaxCnt it's larger, so save it. + clra reset the count to zero + bra d.skip1 decrement counters, and find another free block + +d.done leas 1,s kill counter off of the stack + cmpa <MaxCnt A=maximum series of free pages + bls d.done1 + sta <MaxCnt + +d.done1 ldb <Cnt get total count of free pages + bsr PNum print out a decimal number in B + leax MSize,pc + ldy #MLen + lda #$01 STDOUT + OS9 I$Write dump it out + + ldb <MaxCnt get maximum size of the free area + bsr PNum print out the number + + leax ZSize,pc to maximum free size message + bsr Print go print it out + + ldb <Cnt get size again + lsrb + lsrb get number of K free + bsr PNum print it out + leax KFree,pc + bra Print + +PNum pshs a save a junk byte + ldx #$2F3A other data + pshs x +do.100 inc ,s + subb #100 + bcc do.100 +do.10 dec 1,s + addb #10 + bcc do.10 + addb #$30 + stb 2,s + + leax ,s point to the numbers + ldy #3 number of bytes to print out + ldd ,s + cmpa #'0 leading 0? + bne pn.ok no, go print + leax 1,x skip this byte + leay -1,y one less to print + cmpb #'0 another leading 0? + bne pn.ok no, go print + leax 1,x skip this byte + leay -1,y one less to print. + +pn.ok lda #1 + OS9 I$Write dump it out + puls a,x,pc dump 3 bytes off of the stack, and return + +MSize fcc / free pages, largest block / +Mlen equ *-MSize +ZSize fcc / pages./ + fcb C$CR +KFree fcc /K of free RAM./ + fcb C$CR + +Print ldy #$0200 + lda #$01 to STDOUT + OS9 I$WritLn + rts + +Help leax HMsg,pc point to the message + bsr Print dump it out + lbra ClnExit and exit + +HMsg fcc /SFree: Level III utility to show free system memory./ + fcb C$LF + fcc / Beta version 0.9/ + fcb C$CR + + emod +eom equ * + end +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/level3/coco3/defs/Defsfile Sun Jan 17 21:35:51 2010 +0000 @@ -0,0 +1,8 @@ +Level equ 3 + + ifp1 + use /dd/defs/os9defs + use /dd/defs/rbfdefs + use /dd/defs/scfdefs + use /dd/defs/systype + endc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/level3/coco3/defs/makefile Sun Jan 17 21:35:51 2010 +0000 @@ -0,0 +1,32 @@ +PORT = coco3 +include $(NITROS9DIR)/rules.mak + +DEPENDS = ./makefile + +DEFOPTS = -ls -x -z -aLevel=3 +PERMDEFS = Defsfile +DEFS = OS9Defs RBFDefs SCFDefs SysType VTIODefs +ALLOBJS = $(DEFS) $(PERMDEFS) + +all: $(ALLOBJS) + +OS9Defs: $(DEFSDIR)/os9defs + $(AS) $(AFLAGS) $(DEFOPTS) -aOS9DEFS=0 $< > $@ + +RBFDefs: $(DEFSDIR)/rbfdefs + $(AS) $(AFLAGS) $(DEFOPTS) -aRBFDEFS=0 $< > $@ + +SCFDefs: $(DEFSDIR)/scfdefs + $(AS) $(AFLAGS) $(DEFOPTS) -aSCFDEFS=0 $< > $@ + +SysType: $(DEFSDIR)/systype + $(AS) $(AFLAGS) $(DEFOPTS) -aSYSTYPE=0 $< > $@ + +VTIODefs: $(DEFSDIR)/vtiodefs_cc3 + $(AS) $(AFLAGS) $(DEFOPTS) -aVTIODEFS=0 $< > $@ + +clean: + $(RM) $(DEFS) + +showobjs: + @$(ECHO) $(ALLOBJS)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/level3/coco3/defsfile Sun Jan 17 21:35:51 2010 +0000 @@ -0,0 +1,7 @@ +Level equ 3 + + use os9defs + use scfdefs + use rbfdefs + use systype + use vtiodefs_cc3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/level3/coco3/makefile Sun Jan 17 21:35:51 2010 +0000 @@ -0,0 +1,331 @@ +PORT = coco3 +include $(NITROS9DIR)/rules.mak + +CPU = 6809 +LEVEL = 3 + +DISTRO = $(CPU)L$(LEVEL) +DISTRONAME = nos9$(CPU)l$(LEVEL) +DISTROVER = $(DISTRONAME)$(NITROS9VER)$(PORT) +BOOTFILE_DW3 = bootfiles/bootfile_dw3 +BOOTFILE_40D = bootfiles/bootfile_40d +BOOTFILE_80D = bootfiles/bootfile_80d +BOOTFILE_40D_50HZ = bootfiles/bootfile_40d_50hz +BOOTFILE_80D_50HZ = bootfiles/bootfile_80d_50hz +KERNELFILE = bootfiles/kernel_1773 +KERNELFILE_50HZ = bootfiles/kernel_1773_50hz +KERNELFILE_DW3 = bootfiles/kernel_dw3 +DIRS = cmds modules defs sys bootfiles + +CMDS = $(shell $(CD) cmds; make showobjs) +CMDS_D2 = $(shell $(CD) cmds; make showobjs_d2) +BOOTTRACK = $(shell $(CD) modules; make showboottrack) +KERNEL = $(shell $(CD) modules; make showkernel) +SYSMODS = $(shell $(CD) modules; make showsysmods) +CLOCKS = $(shell $(CD) modules; make showclocks) +RBF = $(shell $(CD) modules; make showrbf) +SCF = $(shell $(CD) modules; make showscf) +PIPE = $(shell $(CD) modules; make showpipe) +MODULECMDS = shell grfdrv del echo format makdir merge os9gen prompt tmode + +DEFS = $(shell $(CD) defs; make showobjs) +SYSBIN = $(shell $(CD) sys; make showbinobjs) +SYSTEXT = $(shell $(CD) sys; make showtextobjs) +STARTUP = startup +SYSGO = sysgo_dd + +PACKAGENAME = $(DISTROVER).zip +DSKDW3 = $(DISTROVER)_dw3.dsk +LDSKDW3 = $(DISTRONAME)_dw3.dsk +DSK360K_1 = $(DISTROVER)_40d_1.dsk +LDSK360K_1 = $(DISTRONAME)_40d_1.dsk +DSK360K_1_50HZ = $(DISTROVER)_40d_1_50hz.dsk +LDSK360K_1_50HZ = $(DISTRONAME)_40d_1_50hz.dsk +DSK360K_2 = $(DISTROVER)_40d_2.dsk +LDSK360K_2 = $(DISTRONAME)_40d_2.dsk +DSK720K = $(DISTROVER)_80d.dsk +LDSK720K = $(DISTRONAME)_80d.dsk +DSK720K_50HZ = $(DISTROVER)_80d_50hz.dsk +LDSK720K_50HZ = $(DISTRONAME)_80d_50hz.dsk +TESTDSK = test.dsk + +DSKS = $(DSKDW3) $(DSK360K_1) $(DSK360K_1_50HZ) $(DSK360K_2) $(DSK720K) $(DSK720K_50HZ) +LDSKS = $(LDSKDW3) $(LDSK360K_1) $(LDSK360K_1_50HZ) $(LDSK360K_2) $(LDSK720K) $(LDSK720K_50HZ) + +# Make all components +all: + @$(ECHO) "**************************************************" + @$(ECHO) "* *" + @$(ECHO) "* NitrOS-9/$(CPU) Level 2 Distribution *" + @$(ECHO) "* *" + @$(ECHO) "**************************************************" + $(foreach dir, $(DIRS), ($(CD) $(dir); make);) + +# Clean all components +clean: dskclean + $(foreach dir, $(DIRS), ($(CD) $(dir); make clean);) + +dskclean: + -$(RM) $(PACKAGENAME) $(DSKS) $(LDSKS) + +dsk: all $(PACKAGENAME) + +dskcopy: dsk + $(CP) $(DSKS) $(DSKDIR) + +scp: dsk + scp $(PACKAGENAME) boisy@cvs.nitros9.org:/home/nitros9/public_html + +$(PACKAGENAME): $(DSKS) ../../ReadMe ../../ChangeLog + $(ARCHIVE) $@ $^ + +$(DSKDW3): + -$(RM) $@ + $(OS9FORMAT_DW3) -q $@ -n"NitrOS-9/$(CPU) Level 2" + $(OS9GEN) $@ -b=$(BOOTFILE_DW3) -t=$(KERNELFILE_DW3) + $(MAKDIR) $@,CMDS + $(MAKDIR) $@,SYS + $(MAKDIR) $@,DEFS + $(CP) modules/$(SYSGO) $@,sysgo + $(OS9ATTR_EXEC) $@,sysgo + $(CD) cmds; $(CP) $(CMDS) ../$@,CMDS + $(foreach file, $(CMDS), $(OS9ATTR_EXEC) $@,CMDS/$(file);) + $(CD) sys; $(CP) $(SYSBIN) ../$@,SYS + $(foreach file, $(SYSBIN), $(OS9ATTR_TEXT) $@,SYS/$(file);) + $(CD) sys; $(CPL) $(SYSTEXT) ../$@,SYS + $(foreach file, $(SYSTEXT), $(OS9ATTR_TEXT) $@,SYS/$(file);) + $(CD) defs; $(CPL) $(DEFS) ../$@,DEFS + $(foreach file, $(DEFS), $(OS9ATTR_TEXT) $@,DEFS/$(file);) + $(CPL) $(STARTUP) $@,. + $(foreach file, $(STARTUP), $(OS9ATTR_TEXT) $@,$(file);) + $(MAKDIR) $@,NITROS9 + $(MAKDIR) $@,NITROS9/$(DISTRO) + $(MAKDIR) $@,NITROS9/$(DISTRO)/CMDS + $(CD) cmds; $(CP) $(MODULECMDS) ../$@,NITROS9/$(DISTRO)/CMDS + $(foreach file, $(MODULECMDS), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/CMDS/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/BOOTTRACK + $(CD) modules; $(CP) $(BOOTTRACK) ../$@,NITROS9/$(DISTRO)/MODULES/BOOTTRACK + $(foreach file, $(BOOTTRACK), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/BOOTTRACK/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/KERNEL + $(CD) modules; $(CP) $(KERNEL) ../$@,NITROS9/$(DISTRO)/MODULES/KERNEL + $(foreach file, $(KERNEL), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/KERNEL/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/SYSMODS + $(CD) modules; $(CP) $(SYSMODS) ../$@,NITROS9/$(DISTRO)/MODULES/SYSMODS + $(foreach file, $(SYSMODS), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/SYSMODS/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/CLOCKS + $(CD) modules; $(CP) $(CLOCKS) ../$@,NITROS9/$(DISTRO)/MODULES/CLOCKS + $(foreach file, $(CLOCKS), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/CLOCKS/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/RBF + $(CD) modules; $(CP) $(RBF) ../$@,NITROS9/$(DISTRO)/MODULES/RBF + $(foreach file, $(RBF), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/RBF/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/SCF + $(CD) modules; $(CP) $(SCF) ../$@,NITROS9/$(DISTRO)/MODULES/SCF + $(foreach file, $(SCF), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/SCF/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/PIPE + $(CD) modules; $(CP) $(PIPE) ../$@,NITROS9/$(DISTRO)/MODULES/PIPE + $(foreach file, $(PIPE), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/PIPE/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/BOOTLISTS + $(CD) bootlists; $(CPL) *.bl ../$@,NITROS9/$(DISTRO)/BOOTLISTS + $(MAKDIR) $@,NITROS9/$(DISTRO)/SCRIPTS + $(CD) scripts; $(CPL) mb* ../$@,NITROS9/$(DISTRO)/SCRIPTS + $(RM) $(LDSKDW3) + $(SOFTLINK) $@ $(LDSKDW3) + +$(DSK360K_1): + -$(RM) $@ + $(OS9FORMAT_DS40) -q $@ -n"NitrOS-9/$(CPU) Level 2 Disk 1" + $(OS9GEN) $@ -b=$(BOOTFILE_40D) -t=$(KERNELFILE) + $(MAKDIR) $@,CMDS + $(MAKDIR) $@,SYS + $(MAKDIR) $@,DEFS + $(CP) modules/$(SYSGO) $@,sysgo + $(OS9ATTR_EXEC) $@,sysgo + $(CD) cmds; $(CP) $(CMDS) ../$@,CMDS + $(foreach file, $(CMDS), $(OS9ATTR_EXEC) $@,CMDS/$(file);) + $(CD) sys; $(CP) $(SYSBIN) ../$@,SYS + $(foreach file, $(SYSBIN), $(OS9ATTR_TEXT) $@,SYS/$(file);) + $(CD) sys; $(CPL) $(SYSTEXT) ../$@,SYS + $(foreach file, $(SYSTEXT), $(OS9ATTR_TEXT) $@,SYS/$(file);) + $(CD) defs; $(CPL) $(DEFS) ../$@,DEFS + $(foreach file, $(DEFS), $(OS9ATTR_TEXT) $@,DEFS/$(file);) + $(CPL) $(STARTUP) $@,. + $(foreach file, $(STARTUP), $(OS9ATTR_TEXT) $@,$(file);) + $(RM) $(LDSK360K_1) + $(SOFTLINK) $@ $(LDSK360K_1) + +$(DSK360K_1_50HZ): + -$(RM) $@ + $(OS9FORMAT_DS40) -q $@ -n"NitrOS-9/$(CPU) Level 2 Disk 1" + $(OS9GEN) $@ -b=$(BOOTFILE_40D_50HZ) -t=$(KERNELFILE_50HZ) + $(MAKDIR) $@,CMDS + $(MAKDIR) $@,SYS + $(MAKDIR) $@,DEFS + $(CP) modules/$(SYSGO) $@,sysgo + $(OS9ATTR_EXEC) $@,sysgo + $(CD) cmds; $(CP) $(CMDS) ../$@,CMDS + $(foreach file, $(CMDS), $(OS9ATTR_EXEC) $@,CMDS/$(file);) + $(CD) sys; $(CP) $(SYSBIN) ../$@,SYS + $(foreach file, $(SYSBIN), $(OS9ATTR_TEXT) $@,SYS/$(file);) + $(CD) sys; $(CPL) $(SYSTEXT) ../$@,SYS + $(foreach file, $(SYSTEXT), $(OS9ATTR_TEXT) $@,SYS/$(file);) + $(CD) defs; $(CPL) $(DEFS) ../$@,DEFS + $(foreach file, $(DEFS), $(OS9ATTR_TEXT) $@,DEFS/$(file);) + $(CPL) $(STARTUP) $@,. + $(foreach file, $(STARTUP), $(OS9ATTR_TEXT) $@,$(file);) + $(RM) $(LDSK360K_1_50HZ) + $(SOFTLINK) $@ $(LDSK360K_1_50HZ) + +$(DSK360K_2): + -$(RM) $@ + $(OS9FORMAT_DS40) -q $@ -n"NitrOS-9/$(CPU) Level 2 Disk 2" + $(MAKDIR) $@,CMDS + $(CD) cmds; $(CP) $(CMDS_D2) ../$@,CMDS + $(foreach file, $(CMDS_D2), $(OS9ATTR_EXEC) $@,CMDS/$(file);) + $(MAKDIR) $@,NITROS9 + $(MAKDIR) $@,NITROS9/$(DISTRO) + $(MAKDIR) $@,NITROS9/$(DISTRO)/CMDS + $(CD) cmds; $(CP) $(MODULECMDS) ../$@,NITROS9/$(DISTRO)/CMDS + $(foreach file, $(MODULECMDS), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/CMDS/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/BOOTTRACK + $(CD) modules; $(CP) $(BOOTTRACK) ../$@,NITROS9/$(DISTRO)/MODULES/BOOTTRACK + $(foreach file, $(BOOTTRACK), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/BOOTTRACK/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/KERNEL + $(CD) modules; $(CP) $(KERNEL) ../$@,NITROS9/$(DISTRO)/MODULES/KERNEL + $(foreach file, $(KERNEL), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/KERNEL/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/SYSMODS + $(CD) modules; $(CP) $(SYSMODS) ../$@,NITROS9/$(DISTRO)/MODULES/SYSMODS + $(foreach file, $(SYSMODS), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/SYSMODS/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/CLOCKS + $(CD) modules; $(CP) $(CLOCKS) ../$@,NITROS9/$(DISTRO)/MODULES/CLOCKS + $(foreach file, $(CLOCKS), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/CLOCKS/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/RBF + $(CD) modules; $(CP) $(RBF) ../$@,NITROS9/$(DISTRO)/MODULES/RBF + $(foreach file, $(RBF), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/RBF/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/SCF + $(CD) modules; $(CP) $(SCF) ../$@,NITROS9/$(DISTRO)/MODULES/SCF + $(foreach file, $(SCF), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/SCF/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/PIPE + $(CD) modules; $(CP) $(PIPE) ../$@,NITROS9/$(DISTRO)/MODULES/PIPE + $(foreach file, $(PIPE), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/PIPE/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/BOOTLISTS + $(CD) bootlists; $(CPL) *.bl ../$@,NITROS9/$(DISTRO)/BOOTLISTS + $(MAKDIR) $@,NITROS9/$(DISTRO)/SCRIPTS + $(CD) scripts; $(CPL) mb* ../$@,NITROS9/$(DISTRO)/SCRIPTS + $(RM) $(LDSK360K_2) + $(SOFTLINK) $@ $(LDSK360K_2) + +$(DSK720K): + -$(RM) $@ + $(OS9FORMAT_DS80) -q $@ -n"NitrOS-9/$(CPU) Level 2" + $(OS9GEN) $@ -b=$(BOOTFILE_80D) -t=$(KERNELFILE) + $(MAKDIR) $@,CMDS + $(MAKDIR) $@,SYS + $(MAKDIR) $@,DEFS + $(CP) modules/$(SYSGO) $@,sysgo + $(OS9ATTR_EXEC) $@,sysgo + $(CD) cmds; $(CP) $(CMDS) ../$@,CMDS + $(foreach file, $(CMDS), $(OS9ATTR_EXEC) $@,CMDS/$(file);) + $(CD) cmds; $(CP) $(CMDS_D2) ../$@,CMDS + $(foreach file, $(CMDS_D2), $(OS9ATTR_EXEC) $@,CMDS/$(file);) + $(CD) sys; $(CP) $(SYSBIN) ../$@,SYS + $(foreach file, $(SYSBIN), $(OS9ATTR_TEXT) $@,SYS/$(file);) + $(CD) sys; $(CPL) $(SYSTEXT) ../$@,SYS + $(foreach file, $(SYSTEXT), $(OS9ATTR_TEXT) $@,SYS/$(file);) + $(CD) defs; $(CPL) $(DEFS) ../$@,DEFS + $(foreach file, $(DEFS), $(OS9ATTR_TEXT) $@,DEFS/$(file);) + $(CPL) $(STARTUP) $@,. + $(foreach file, $(STARTUP), $(OS9ATTR_TEXT) $@,$(file);) + $(MAKDIR) $@,NITROS9 + $(MAKDIR) $@,NITROS9/$(DISTRO) + $(MAKDIR) $@,NITROS9/$(DISTRO)/CMDS + $(CD) cmds; $(CP) $(MODULECMDS) ../$@,NITROS9/$(DISTRO)/CMDS + $(foreach file, $(MODULECMDS), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/CMDS/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/BOOTTRACK + $(CD) modules; $(CP) $(BOOTTRACK) ../$@,NITROS9/$(DISTRO)/MODULES/BOOTTRACK + $(foreach file, $(BOOTTRACK), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/BOOTTRACK/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/KERNEL + $(CD) modules; $(CP) $(KERNEL) ../$@,NITROS9/$(DISTRO)/MODULES/KERNEL + $(foreach file, $(KERNEL), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/KERNEL/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/SYSMODS + $(CD) modules; $(CP) $(SYSMODS) ../$@,NITROS9/$(DISTRO)/MODULES/SYSMODS + $(foreach file, $(SYSMODS), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/SYSMODS/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/CLOCKS + $(CD) modules; $(CP) $(CLOCKS) ../$@,NITROS9/$(DISTRO)/MODULES/CLOCKS + $(foreach file, $(CLOCKS), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/CLOCKS/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/RBF + $(CD) modules; $(CP) $(RBF) ../$@,NITROS9/$(DISTRO)/MODULES/RBF + $(foreach file, $(RBF), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/RBF/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/SCF + $(CD) modules; $(CP) $(SCF) ../$@,NITROS9/$(DISTRO)/MODULES/SCF + $(foreach file, $(SCF), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/SCF/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/PIPE + $(CD) modules; $(CP) $(PIPE) ../$@,NITROS9/$(DISTRO)/MODULES/PIPE + $(foreach file, $(PIPE), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/PIPE/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/BOOTLISTS + $(CD) bootlists; $(CPL) *.bl ../$@,NITROS9/$(DISTRO)/BOOTLISTS + $(MAKDIR) $@,NITROS9/$(DISTRO)/SCRIPTS + $(CD) scripts; $(CPL) mb* ../$@,NITROS9/$(DISTRO)/SCRIPTS + $(RM) $(LDSK720K) + $(SOFTLINK) $@ $(LDSK720K) + +$(DSK720K_50HZ): + -$(RM) $@ + $(OS9FORMAT_DS80) -q $@ -n"NitrOS-9/$(CPU) Level 2" + $(OS9GEN) $@ -b=$(BOOTFILE_80D_50HZ) -t=$(KERNELFILE_50HZ) + $(MAKDIR) $@,CMDS + $(MAKDIR) $@,SYS + $(MAKDIR) $@,DEFS + $(CP) modules/$(SYSGO) $@,sysgo + $(OS9ATTR_EXEC) $@,sysgo + $(CD) cmds; $(CP) $(CMDS) ../$@,CMDS + $(foreach file, $(CMDS), $(OS9ATTR_EXEC) $@,CMDS/$(file);) + $(CD) cmds; $(CP) $(CMDS_D2) ../$@,CMDS + $(foreach file, $(CMDS_D2), $(OS9ATTR_EXEC) $@,CMDS/$(file);) + $(CD) sys; $(CP) $(SYSBIN) ../$@,SYS + $(foreach file, $(SYSBIN), $(OS9ATTR_TEXT) $@,SYS/$(file);) + $(CD) sys; $(CPL) $(SYSTEXT) ../$@,SYS + $(foreach file, $(SYSTEXT), $(OS9ATTR_TEXT) $@,SYS/$(file);) + $(CD) defs; $(CPL) $(DEFS) ../$@,DEFS + $(foreach file, $(DEFS), $(OS9ATTR_TEXT) $@,DEFS/$(file);) + $(CPL) $(STARTUP) $@,. + $(foreach file, $(STARTUP), $(OS9ATTR_TEXT) $@,$(file);) + $(MAKDIR) $@,NITROS9 + $(MAKDIR) $@,NITROS9/$(DISTRO) + $(MAKDIR) $@,NITROS9/$(DISTRO)/CMDS + $(CD) cmds; $(CP) $(MODULECMDS) ../$@,NITROS9/$(DISTRO)/CMDS + $(foreach file, $(MODULECMDS), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/CMDS/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/BOOTTRACK + $(CD) modules; $(CP) $(BOOTTRACK) ../$@,NITROS9/$(DISTRO)/MODULES/BOOTTRACK + $(foreach file, $(BOOTTRACK), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/BOOTTRACK/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/KERNEL + $(CD) modules; $(CP) $(KERNEL) ../$@,NITROS9/$(DISTRO)/MODULES/KERNEL + $(foreach file, $(KERNEL), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/KERNEL/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/SYSMODS + $(CD) modules; $(CP) $(SYSMODS) ../$@,NITROS9/$(DISTRO)/MODULES/SYSMODS + $(foreach file, $(SYSMODS), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/SYSMODS/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/CLOCKS + $(CD) modules; $(CP) $(CLOCKS) ../$@,NITROS9/$(DISTRO)/MODULES/CLOCKS + $(foreach file, $(CLOCKS), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/CLOCKS/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/RBF + $(CD) modules; $(CP) $(RBF) ../$@,NITROS9/$(DISTRO)/MODULES/RBF + $(foreach file, $(RBF), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/RBF/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/SCF + $(CD) modules; $(CP) $(SCF) ../$@,NITROS9/$(DISTRO)/MODULES/SCF + $(foreach file, $(SCF), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/SCF/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/MODULES/PIPE + $(CD) modules; $(CP) $(PIPE) ../$@,NITROS9/$(DISTRO)/MODULES/PIPE + $(foreach file, $(PIPE), $(OS9ATTR_EXEC) $@,NITROS9/$(DISTRO)/MODULES/PIPE/$(file);) + $(MAKDIR) $@,NITROS9/$(DISTRO)/BOOTLISTS + $(CD) bootlists; $(CPL) *.bl ../$@,NITROS9/$(DISTRO)/BOOTLISTS + $(MAKDIR) $@,NITROS9/$(DISTRO)/SCRIPTS + $(CD) scripts; $(CPL) mb* ../$@,NITROS9/$(DISTRO)/SCRIPTS + $(RM) $(LDSK720K_50HZ) + $(SOFTLINK) $@ $(LDSK720K_50HZ) + +info: + @$(ECHO) "*** NitrOS-9/6809 Level 2 for the Tandy Color Computer 3 ***" + @$(foreach dsk, $(DSKS), $(ECHO) $(dsk);)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/level3/coco3/modules/defsfile Sun Jan 17 21:35:51 2010 +0000 @@ -0,0 +1,1 @@ + use ../defsfile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/level3/coco3/modules/end.asm Sun Jan 17 21:35:51 2010 +0000 @@ -0,0 +1,33 @@ +******************************************************************** +* End - OS-9 Level 3 End Marker +* +* $Id$ +* +* Edt/Rev YYYY/MM/DD Modified by +* Comment +* ------------------------------------------------------------------ +* 1 ????/??/?? Alan DeKok +* Created. + + nam End + ttl OS-9 Level 3 End Marker + + IFP1 + use defsfile + ENDC + +tylg set Systm+Obj6309 +attrev set ReEnt+rev +rev set 4 +edition set 1 + + mod eom,name,tylg,attrev,start,0 + +name fcs /_end/ + fcb Edition + +start rts + + emod +eom equ * + end
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/level3/coco3/modules/kernel/defsfile Sun Jan 17 21:35:51 2010 +0000 @@ -0,0 +1,1 @@ + use ../../defsfile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/level3/coco3/modules/kernel/makefile Sun Jan 17 21:35:51 2010 +0000 @@ -0,0 +1,39 @@ +PORT = coco3 +include $(NITROS9DIR)/rules.mak + +vpath %.asm $(LEVEL3)/modules/kernel:$(LEVEL2)/modules/kernel:$(LEVEL1)/modules/kernel + +DEPENDS = ./makefile +AFLAGS += -I$(LEVEL2)/modules/kernel -I$(LEVEL1)/modules/kernel + +KERNEL = krn +KERNELP2 = krnp2 +SYSCALLS = fallimg.asm fallram.asm falltsk.asm faproc.asm fcmpnam.asm \ + fcpymem.asm fdatlog.asm fdelram.asm ffmodul.asm ffreehb.asm \ + fld.asm fldabx.asm flink.asm fmove.asm fnproc.asm fprsnam.asm \ + freboot.asm fsrqmem.asm fssvc.asm fvmodul.asm \ + fallbit.asm fallprc.asm fchain.asm fclrblk.asm fcrcmod.asm \ + fdelimg.asm fexit.asm ffind64.asm ffork.asm fgblkmp.asm \ + fgcmdir.asm fgmoddr.asm fgprdsc.asm fgprocp.asm ficpt.asm \ + fid.asm fmapblk.asm fmem.asm fsend.asm fsleep.asm fsprior.asm \ + fsswi.asm fstime.asm fsuser.asm funlink.asm funload.asm + +ALLOBJS = $(KERNEL) $(KERNELP2) + +all: $(ALLOBJS) + +$(KERNEL): krn.asm $(SYSCALLS) + +$(KERNELP2): krnp2.asm $(SYSCALLS) + +clean: + $(RM) $(ALLOBJS) + +showobjs: + @$(ECHO) $(ALLOBJS) + +showcopyobjs: + @$(ECHO) $(COPYOBJS) + +identify: + $(IDENT_SHORT) $(ALLOBJS)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/level3/coco3/modules/makefile Sun Jan 17 21:35:51 2010 +0000 @@ -0,0 +1,311 @@ +PORT = coco3 +include $(NITROS9DIR)/rules.mak + +vpath %.asm kernel:$(LEVEL2)/modules/kernel:$(LEVEL2)/modules:$(LEVEL1)/modules + +AFLAGS += -I$(LEVEL1)/modules + +CLOCKELIM = -aRTCElim=1 +CLOCKDISTO2 = -aRTCDsto2=1 +CLOCKDISTO4 = -aRTCDsto4=1 +CLOCKBNB = -aRTCBB=1 +CLOCKSMART = -aRTCSmart=1 -aMPIFlag=1 +CLOCKHARRIS = -aRTCHarrs=1 +CLOCKCLOUD9 = -aRTCCloud9=1 +CLOCKSOFT = -aRTCSoft=1 +CLOCKMESSEMU = -aRTCMessEmu=1 +CLOCKJVEMU = -aRTCJVEmu=1 + +DEPENDS = ./makefile +TPB = ../../3rdparty/booters + +BOOTERS = boot_1773_6ms boot_1773_30ms \ + boot_burke boot_rampak boot_wd1002 boot_dw3 +BOOTTRACK = rel_32 rel_40 rel_80 rel_32_50hz rel_40_50hz rel_80_50hz $(BOOTERS) krn +KERNEL = krnp2 krnp3_perr krnp4_regdump +SYSMODS = ioman init sysgo_h0 sysgo_dd +CLOCKS = clock_60hz clock_50hz \ + clock2_elim clock2_disto2 clock2_disto4 clock2_bnb \ + clock2_smart clock2_harris clock2_cloud9 clock2_soft \ + clock2_jvemu clock2_messemu clock2_dw3 + +RBF = rbf.mn \ + rbdw3.dr dw3.sb \ + rb1773.dr rb1773_scii_ff74.dr rb1773_scii_ff58.dr \ + d0_35s.dd d1_35s.dd d2_35s.dd d3_35s.dd \ + d0_40d.dd d1_40d.dd d2_40d.dd d0_80d.dd \ + d1_80d.dd d2_80d.dd \ + ddd0_35s.dd ddd0_40d.dd ddd0_80d.dd \ + rammer.dr r0_8k.dd r0_96k.dd r0_128k.dd r0_192k.dd \ + ddr0_8k.dd ddr0_96k.dd ddr0_128k.dd ddr0_192k.dd md.dd \ + ddx0.dd x0.dd x1.dd x2.dd x3.dd + + +SCF = scf.mn \ + vtio.dr vrn.dr scbbp.dr scbbt.dr scdwp.dr sspak.dr sc6551.dr \ + cowin.io cogrf.io covdg.io covdg_small.io \ + keydrv_cc3.sb snddrv_cc3.sb \ + joydrv_joy.sb joydrv_6551L.sb joydrv_6552L.sb \ + joydrv_6551M.sb joydrv_6552M.sb \ + nil.dd p_scbbp.dd p_scdwp.dd \ + t1_scbbt.dd t2_sc6551.dd t3_sc6551.dd \ + ftdd.dd vi.dd ssp.dd term_scbbt.dt term_sc6551.dt \ + term_vdg.dt term_win40.dt term_win80.dt w.dw w1.dw w2.dw \ + w3.dw w4.dw w5.dw w6.dw w7.dw \ + w8.dw w9.dw w10.dw w11.dw w12.dw w13.dw w14.dw w15.dw \ + v1.dw v2.dw v3.dw v4.dw v5.dw \ + v6.dw v7.dw \ + scdwn.dr term_scdwn.dt n0_scdwn.dd n1_scdwn.dd n2_scdwn.dd n3_scdwn.dd \ + n4_scdwn.dd n5_scdwn.dd n6_scdwn.dd n7_scdwn.dd \ + n8_scdwn.dd n9_scdwn.dd n10_scdwn.dd n11_scdwn.dd \ + n12_scdwn.dd n13_scdwn.dd n14_scdwn.dd + +PIPE = pipeman.mn pipeman_named.mn \ + piper.dr \ + pipe.dd + +# +# The following macros represent a collection of modules for various +# kernel tracks and bootfile configurations. +# +KERNEL_1773 = rel_32 boot_1773 krn +KERNEL_RAMPAK = rel_32 $(TPB)/boot_rampak krn +KERNEL_KENTON = rel_32 $(TPB)/boot_kenton krn +KERNEL_IDE = rel_32 $(TPB)/boot_ide krn + +ALLOBJS = $(BOOTTRACK) $(KERNEL) $(SYSMODS) $(CLOCKS) $(RBF) $(SCF) $(PIPE) + +all: $(ALLOBJS) + +# Kernel +krn krnp2: + $(CD) kernel; make $@ + $(CP) kernel/$@ . + +# Special cases +cogrf.io: cowin.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aCoGrf=1 + +rb1773_scii_ff74.dr: rb1773.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aSCII=1 + +rb1773_scii_ff58.dr: rb1773.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aSCII=1 -aSCIIALT=1 + +rel_32: rel.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aWidth=32 + +rel_40: rel.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aWidth=40 + +rel_80: rel.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aWidth=80 + +rel_32_50hz: rel.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aWidth=32 -aTkPerSec=50 + +rel_40_50hz: rel.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aWidth=40 -aTkPerSec=50 + +rel_80_50hz: rel.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aWidth=80 -aTkPerSec=50 + +boot_1773_6ms: boot_1773.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aSTEP=0 + +boot_1773_30ms: boot_1773.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aSTEP=3 + +sysgo_dd: sysgo.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aDD=1 + +sysgo_h0: sysgo.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) + +# Floppy descriptors +SSDD35 = -aCyls=35 -aSides=1 -aSectTrk=18 -aSectTrk0=18 \ + -aInterlv=3 -aSAS=8 -aDensity=1 +DSDD40 = -aCyls=40 -aSides=2 -aSectTrk=18 -aSectTrk0=18 \ + -aInterlv=3 -aSAS=8 -aDensity=1 +DSDD80 = -aCyls=80 -aSides=2 -aSectTrk=18 -aSectTrk0=18 \ + -aInterlv=3 -aSAS=8 -aDensity=1 -aD35 + +ddd0_35s.dd: rb1773desc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) $(SSDD35) -aDNum=0 -aDD=1 + +d0_35s.dd: rb1773desc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) $(SSDD35) -aDNum=0 + +d1_35s.dd: rb1773desc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) $(SSDD35) -aDNum=1 + +d2_35s.dd: rb1773desc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) $(SSDD35) -aDNum=2 + +d3_35s.dd: rb1773desc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) $(SSDD35) -aDNum=3 + +ddd0_40d.dd: rb1773desc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD40) -aDNum=0 -aDD=1 + +d0_40d.dd: rb1773desc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD40) -aDNum=0 + +d1_40d.dd: rb1773desc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD40) -aDNum=1 + +d2_40d.dd: rb1773desc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD40) -aDNum=2 + +ddd0_80d.dd: rb1773desc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD80) -aDNum=0 -aDD=1 + +d0_80d.dd: rb1773desc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD80) -aDNum=0 + +d1_80d.dd: rb1773desc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD80) -aDNum=1 + +d2_80d.dd: rb1773desc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) $(DSDD80) -aDNum=2 + +# RAM Disk descriptors +r0_8k.dd: r0.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aRAMSize=8 + +ddr0_8k.dd: r0.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aRAMSize=8 -aDD=1 + +r0_96k.dd: r0.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aRAMSize=96 + +ddr0_96k.dd: r0.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aRAMSize=96 -aDD=1 + +r0_128k.dd: r0.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aRAMSize=128 + +ddr0_128k.dd: r0.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aRAMSize=128 -aDD=1 + +r0_192k.dd: r0.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aRAMSize=192 + +ddr0_192k.dd: r0.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aRAMSize=192 -aDD=1 + +# DriveWire 3 SCF descriptors +term_scdwn.dt: scdwndesc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aTERM=1 -aAddr=0 + +n0_scdwn.dd: scdwndesc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aAddr=0 + +n1_scdwn.dd: scdwndesc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aAddr=1 + +n2_scdwn.dd: scdwndesc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aAddr=2 + +n3_scdwn.dd: scdwndesc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aAddr=3 + +n4_scdwn.dd: scdwndesc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aAddr=4 + +n5_scdwn.dd: scdwndesc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aAddr=5 + +n6_scdwn.dd: scdwndesc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aAddr=6 + +n7_scdwn.dd: scdwndesc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aAddr=7 + +n8_scdwn.dd: scdwndesc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aAddr=8 + +n9_scdwn.dd: scdwndesc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aAddr=9 + +n10_scdwn.dd: scdwndesc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aAddr=10 + +n11_scdwn.dd: scdwndesc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aAddr=11 + +n12_scdwn.dd: scdwndesc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aAddr=12 + +n13_scdwn.dd: scdwndesc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aAddr=13 + +n14_scdwn.dd: scdwndesc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aAddr=14 + +# DriveWire 3 RBF descriptors +ddx0.dd: dwdesc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aDD=1 -aDNum=0 + +x0.dd: dwdesc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aDNum=0 + +x1.dd: dwdesc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aDNum=1 + +x2.dd: dwdesc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aDNum=2 + +x3.dd: dwdesc.asm + $(AS) $< $(ASOUT)$@ $(AFLAGS) -aDNum=3 + +# VDGInt Modules +covdg.io: covdg.asm + $(AS) $(AFLAGS) $(ASOUT)$@ $< -aCOCO2=1 + +covdg_small.io: covdg.asm + $(AS) $(AFLAGS) $(ASOUT)$@ $< + +# Clocks +clock_60hz: clock.asm + $(AS) $(AFLAGS) $(ASOUT)$@ $< -aPwrLnFrq=60 + +clock_50hz: clock.asm + $(AS) $(AFLAGS) $(ASOUT)$@ $< -aPwrLnFrq=50 + +clock2_cloud9: clock2_ds1315.asm + $(AS) $(AFLAGS) $(ASOUT)$@ $< -aCLOUD9=1 + +clock2_bnb: clock2_ds1315.asm + $(AS) $(AFLAGS) $(ASOUT)$@ $< -aBNB=1 + +clean: + $(CD) kernel; make $@ + $(RM) $(ALLOBJS) + +showobjs: + @$(ECHO) $(ALLOBJS) + +showboottrack: + @$(ECHO) $(BOOTTRACK) + +showkernel: + @$(ECHO) $(KERNEL) + +showsysmods: + @$(ECHO) $(SYSMODS) + +showclocks: + @$(ECHO) $(CLOCKS) + +showrbf: + @$(ECHO) $(RBF) + +showscf: + @$(ECHO) $(SCF) + +showpipe: + @$(ECHO) $(PIPE) + +identify: + $(IDENT_SHORT) $(ALLOBJS)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/level3/coco3/startup Sun Jan 17 21:35:51 2010 +0000 @@ -0,0 +1,10 @@ +* Echo welcome message +echo * Welcome to NitrOS-9 Level 3 * +echo * on the Color Computer 3 * +* Lock shell and std utils into memory +link shell +load utilpak1 +* Start system time from keyboard +setime </1 +date -t +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/level3/coco3/sys/makefile Sun Jan 17 21:35:51 2010 +0000 @@ -0,0 +1,61 @@ +PORT = coco3 +include $(NITROS9DIR)/rules.mak + +vpath %.hp $(LEVEL2)/sys:$(LEVEL1)/sys +vpath %.asm $(LEVEL2)/sys + +DEPENDS = ./makefile + +L1TXTFILES = errmsg password +L2TXTFILES = motd +BINFILES = stdfonts stdpats_2 stdpats_4 stdpats_16 stdptrs \ + ibmedcfont isolatin1font +HELPFILES = asm.hp attr.hp \ + backup.hp basic09.hp binex.hp build.hp \ + chd.hp chx.hp cmp.hp cobbler.hp config.hp copy.hp cputype.hp \ + date.hp dcheck.hp debug.hp ded.hp deiniz.hp del.hp deldir.hp devs.hp \ + dir.hp dirsort.hp disasm.hp display.hp dmem.hp dmode.hp dsave.hp dump.hp \ + echo.hp edit.hp error.hp ex.hp exbin.hp \ + format.hp free.hp \ + gfx.hp gfx2.hp grfdrv.hp \ + help.hp \ + ident.hp iniz.hp inkey.hp irqs.hp \ + kill.hp \ + link.hp list.hp load.hp login.hp \ + makdir.hp mdir.hp megaread.hp merge.hp mfree.hp mmap.hp modpatch.hp \ + montype.hp mpi.hp os9gen.hp \ + padrom.hp park.hp pmap.hp proc.hp procs.hp prompt.hp pwd.hp pxd.hp \ + reboot.hp rename.hp runb.hp \ + save.hp setime.hp setpr.hp shell.hp sleep.hp smap.hp \ + tee.hp tmode.hp touch.hp tsmon.hp tuneport.hp \ + unlink.hp \ + verify.hp \ + wcreate.hp \ + xmode.hp + +#HELPFILES = make.hp maketerm.hp rdump.hp rlink.hp rma.hp scred.hp + +HELPMSG = helpmsg + +TEXTFILES = $(L2TXTFILES) $(HELPMSG) $(L1TXTFILES) +ALLOBJS = $(TEXTFILES) $(BINFILES) + +all: $(ALLOBJS) $(DEPENDS) + +$(HELPMSG): $(HELPFILES) + $(MERGE) $^ > $@ + +$(L1TXTFILES): $(LEVEL1)/sys/$@ + -$(SOFTLINK) $(LEVEL1)/sys/$@ + +clean: + $(RM) $(HELPMSG) $(L1TXTFILES) $(BINFILES) + +showbinobjs: + @$(ECHO) $(BINFILES) + +showtextobjs: + @$(ECHO) $(TEXTFILES) + +showobjs: + @$(ECHO) $(ALLOBJS)