# HG changeset patch # User Shinji KONO # Date 1531707748 -32400 # Node ID 7baffb867d70bf6c7bcf62b2ec837ae029f57436 # Parent cc8c2c2464fed8ba08ced8080d5d6667bc3813bb nitros9 level 1 worked diff -r cc8c2c2464fe -r 7baffb867d70 os9/Makefile --- a/os9/Makefile Sun Jul 15 20:38:49 2018 +0900 +++ b/os9/Makefile Mon Jul 16 11:22:28 2018 +0900 @@ -13,7 +13,7 @@ rm -rf makerom *.rom os9mod *.dSYM os9d.rom : makerom level1/init - ./makerom -o os9d.rom level1/shell level1/mdir level1/dir level1/sysgo level1/ioman level1/term level1/pty level1/pdisk level1/d0 level1/d1 level1/clock level1/scf level1/rbf level1/init level1/boot level1/os9p2 level1/os9p1 + ./makerom -o os9d.rom level1/shell level1/sysgo level1/ioman level1/term level1/pty level1/pdisk level1/d0 level1/d1 level1/clock level1/scf level1/rbf level1/init level1/os9p2 level1/os9p1 os9lv2.rom : makerom level2/init ./makerom -o os9lv2.rom -2 level2/Shell level2/dir level2/d1 level2/ioman level2/os9p3_perr level2/os9p4_regdump level2/pipe level2/piper level2/pipeman level2/scf level2/rbf level2/os9p2 level2/sysgo level2/pdisk level2/d0 level2/pty level2/term level2/init level2/boot level2/os9p1 @@ -24,3 +24,7 @@ level2/init : cd level2 ; make + +# os9m.rom : makerom level1/term +# ./makerom -o os9m.rom modules/Shell level1/sysgo modules/IOMan level1/term level1/pty level1/pdisk level1/d0 level1/d1 level1/SCF modules/rbf.b level1/init modules/OS9p2 modules/OS9 + diff -r cc8c2c2464fe -r 7baffb867d70 os9/level1/Makefile --- a/os9/level1/Makefile Sun Jul 15 20:38:49 2018 +0900 +++ b/os9/level1/Makefile Mon Jul 16 11:22:28 2018 +0900 @@ -2,10 +2,11 @@ OS9SRC=../../../../nitros9-code SRCDIR=$(OS9SRC)/level1/modules SRCCMD=$(OS9SRC)/level1/cmds +SRCDIR2=$(OS9SRC)/level2/modules A09 = ../../a09 -I $(OS9SRC)/defs/ -MOD = pdisk init os9p1 os9p2 ioman pipe piper rbf scf term pty d0 d1 clock shell dir mdir sysgo boot shell +MOD = pdisk init os9p1 os9p2 ioman pipe piper rbf scf term pty d0 d1 clock shell dir mdir sysgo shell all : ${MOD} @@ -20,11 +21,8 @@ pdisk : $(A09) pdisk.asm -o pdisk $(LST) $(LST) -boot : boot.asm - $(A09) boot.asm -o boot $(LST) - -#sysgo : sysgo.asm -# $(A09) sysgo.asm -o sysgo $(LST) +#boot : boot.asm +# $(A09) boot.asm -o boot $(LST) init : init.asm $(A09) ${SRCDIR}/init.asm -o $@ $(LST) diff -r cc8c2c2464fe -r 7baffb867d70 os9/level1/boot.asm --- a/os9/level1/boot.asm Sun Jul 15 20:38:49 2018 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -******************************************************************** -* Boot - V09 Boot module -* -* $Id: boot_1773.asm,v 1.1.1.1 2001/02/21 23:30:54 boisy Exp $ -* -* Ed. Comments Who YY/MM/DD -* ------------------------------------------------------------------ - - nam Boot - ttl v09 Boot module - - ifp1 - use defsfile - use coco.d - endc - -* -* map extended rom on page 0x40- -* first two bytes are extra rom module size - -tylg set Systm+Objct -atrv set ReEnt+rev -rev set $01 -edition set 1 - - mod eom,name,tylg,atrv,start,size - -size equ . - -name fcs /Boot/ - fcb edition - -start - ldx #Bt.Start+Bt.Size-1 - ldy #$ff00 - pshs x,y,u -loop ldb #$87 - cmpb ,x - bne notfound - os9 F$VModul - bcs notfound - ldx ,s - ldu ,u - ldd 2,u size of mulde - leax d,x - bra loop -notfound - leax 1,x - stx ,s - cmpx 2,s - blo loop -last clra - clrb - puls x,y,u,pc - - emod -eom equ * - end diff -r cc8c2c2464fe -r 7baffb867d70 os9/level1/sysgo.asm --- a/os9/level1/sysgo.asm Sun Jul 15 20:38:49 2018 +0900 +++ b/os9/level1/sysgo.asm Mon Jul 16 11:22:28 2018 +0900 @@ -108,9 +108,6 @@ CRtn fcb C$CR ShellPL equ *-ShellPrm -mdirprm fcc "-e" - fcb C$CR - * Default time packet DefTime * dtb @@ -182,7 +179,7 @@ * Show rest of banner SignOn - puls u + ldu ,s leax >Banner,pcr ldy #BannLen lda #$01 standard output @@ -192,7 +189,25 @@ * leax >DefTime,pcr * os9 F$STime set time to default - IFEQ ROM + IFEQ 1 + leax >MDIR,pcr + leau >mdirprm,pcr + ldd #$0100 + ldy #$0003 + os9 F$Fork + bcs mdirend AutoEx failed.. + os9 F$Wait + ldu ,s + bra mdirend +MDIR fcc "mdir" + fcb $0d +mdirprm fcc "-e" + fcb C$CR +mdirend + ldu ,s + ENDC + +* IFEQ ROM * Change EXEC and DATA dirs leax >ExecDir,pcr lda #EXEC. @@ -202,13 +217,12 @@ lda #READ. os9 I$ChgDir change data dir. bcs L0125 - leax >HDDev,pcr - lda #EXEC. - os9 I$ChgDir change exec. dir to HD - ENDC +* leax >HDDev,pcr +* lda #EXEC. +* os9 I$ChgDir change exec. dir to HD +* ENDC L0125 equ * - pshs u,y IFEQ atari+corsham IFEQ Level-1 * Setup BASIC code (CoCo port only) @@ -276,20 +290,8 @@ * bcs L0186 AutoEx failed.. * os9 F$Wait - IFEQ Level-1 - leax >MDIR,pcr - leau >mdirprm,pcr - ldd #$0100 - ldy #$0003 - os9 F$Fork - bcs L0186 AutoEx failed.. - os9 F$Wait - bra L0186 -MDIR fcs "mdir" - fcb $0d - ENDC L0186 equ * - puls u,y + ldu ,s FrkShell leax >ShellPrm,pcr leay ,u ldb #ShellPL diff -r cc8c2c2464fe -r 7baffb867d70 os9/level2/Makefile --- a/os9/level2/Makefile Sun Jul 15 20:38:49 2018 +0900 +++ b/os9/level2/Makefile Mon Jul 16 11:22:28 2018 +0900 @@ -17,8 +17,8 @@ boot : boot.asm $(A09) boot.asm -o boot $(LST) -sysgo : - $(A09) ../level1/sysgo.asm -o sysgo $(LST) +sysgo : sysgo.asm + $(A09) sysgo.asm -o sysgo $(LST) init : init.asm $(A09) ${OS9SRC}/level1/modules/init.asm -o $@ $(LST) diff -r cc8c2c2464fe -r 7baffb867d70 os9/level2/boot.asm --- a/os9/level2/boot.asm Sun Jul 15 20:38:49 2018 +0900 +++ b/os9/level2/boot.asm Mon Jul 16 11:22:28 2018 +0900 @@ -30,6 +30,9 @@ fcb edition start + lbra entry + lbra btdebg +entry ldy #$40 extended rom page no. clra clrb @@ -81,6 +84,11 @@ last clr $ffa0 puls d,x,y,u,pc + ** put lbsr btdebug on <$5e +btdebug anda #$7f + sta $ff81 + rts + emod eom equ * end diff -r cc8c2c2464fe -r 7baffb867d70 os9/level2/sysgo.asm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os9/level2/sysgo.asm Mon Jul 16 11:22:28 2018 +0900 @@ -0,0 +1,324 @@ +******************************************************************** +* SysGo - Kickstart program module +* +* $Id$ +* +* Edt/Rev YYYY/MM/DD Modified by +* Comment +* ------------------------------------------------------------------ +* 5 1998/10/12 Boisy G. Pitre +* Taken from OS-9 L2 Tandy distribution and modified banner for V3. +* +* 5r2 2003/01/08 Boisy G. Pitre +* Fixed fork behavior so that if 'shell startup' fails, system doesn't +* jmp to Crash, but tries AutoEx instead. Also changed /DD back to /H0 +* for certain boot floppy cases. +* +* 2003/09/04 Boisy G. Pitre +* Back-ported to OS-9 Level One. +* +* 5r3 2003/12/14 Boisy G. Pitre +* Added SHIFT key check to prevent startup/autoex from starting if +* held down. Gene Heskett, this Bud's for you. + + nam SysGo + ttl Kickstart program module + + IFP1 + use defsfile + ENDC + +tylg set Prgrm+Objct +atrv set ReEnt+rev +rev set $03 +edition set $05 + + mod eom,name,tylg,atrv,start,size + + + org 0 +InitAddr rmb 2 + rmb 250 +size equ . + +name fcs /SysGo/ + fcb edition + +* Default process priority +DefPrior set 128 + +Banner equ * + fcc /(C) 2014 The NitrOS-9 Project/ +CrRtn fcb C$CR,C$LF + + IFEQ ROM + IFNE NOS9DBG + fcc "** DEVELOPMENT BUILD **" + fcb C$CR,C$LF + fcc "** NOT FOR DISTRIBUTION! **" + fcb C$CR,C$LF + ENDC +* dts + fcb C$CR,C$LF + fcc !http://www.nitros9.org! + fcb C$CR,C$LF + ENDC + + fcb C$LF +BannLen equ *-Banner + + IFEQ ROM +DefDev equ * + fcc "/D0" +* IFNE DD +* fcc "/DD" +* ELSE +* fcc "/H0" +* ENDC + fcb C$CR +HDDev equ * + fcc "/DD" +* IFNE DD +* fcc "/DD/" +* ELSE +* fcc "/H0/" +* ENDC +ExecDir fcc "/D0/CMDS" + fcb C$CR + ENDC + +Shell fcc "Shell" + fcb C$CR +AutoEx fcc "AutoEx" + fcb C$CR +AutoExPr fcc "" + fcb C$CR +AutoExPrL equ *-AutoExPr + + IFEQ ROM +Startup fcc "startup -p" + fcb C$CR +StartupL equ *-Startup + ENDC + +ShellPrm equ * + IFGT Level-1 + fcc "i=/1" + ENDC +CRtn fcb C$CR +ShellPL equ *-ShellPrm + +mdirprm fcc "-e" + fcb C$CR + +* Default time packet +DefTime +* dtb + + IFEQ atari+corsham + IFEQ Level-1 +* BASIC reset code (CoCo port only) +* BasicRst fcb $55 +* neg <$0074 +* nop +* clr >PIA0Base+3 +* nop +* nop +* sta >$FFDF turn off ROM mode +* jmp >Bt.Start+2 jump to boot +* BasicRL equ *-BasicRst + ENDC + ENDC + +Init fcs /Init/ + +* Entry: X = pointer to start of nul terminated string +* Exit: D = length of string +strlen pshs x + ldd #-1 +go@ addd #$0001 + tst ,x+ + bne go@ + puls x,pc + +* Display carriage-return/line-feed. +WriteCR pshs y + leax CrRtn,pcr + ldy #$0001 + os9 I$WritLn + puls y,pc + +********************************************************** +* SysGo Entry Point +********************************************************** +start leax >IcptRtn,pcr + os9 F$Icpt +* Set priority of this process + os9 F$ID + ldb #DefPrior + os9 F$SPrior + +* Write OS name and Machine name strings + leax Init,pcr + clra + pshs u + os9 F$Link + bcs SignOn + stx Banner,pcr + ldy #BannLen + lda #$01 standard output + os9 I$Write write out banner + +* Set default time +* leax >DefTime,pcr +* os9 F$STime set time to default + + IFEQ ROM +* Change EXEC and DATA dirs + leax >ExecDir,pcr + lda #EXEC. + os9 I$ChgDir change exec. dir + leax >DefDev,pcr +* Made READ. so that no write occurs at boot (Boisy on Feb 5, 2012) + lda #READ. + os9 I$ChgDir change data dir. + bcs L0125 + leax >HDDev,pcr + lda #EXEC. + os9 I$ChgDir change exec. dir to HD + ENDC + +L0125 equ * + pshs u,y + IFEQ atari+corsham + IFEQ Level-1 +* Setup BASIC code (CoCo port only) +* leax >BasicRst,pcr +* ldu #D.CBStrt +* ldb #BasicRL +*CopyLoop lda ,x+ +* sta ,u+ +* decb +* bne CopyLoop + ELSE + os9 F$ID get process ID + lbcs L01A9 fail + leax ,u + os9 F$GPrDsc get process descriptor copy + lbcs L01A9 fail + leay ,u + ldx #$0000 + ldb #$01 + os9 F$MapBlk + bcs L01A9 + +* lda #$55 set flag for Color BASIC +* sta Shell,pcr +* leau >Startup,pcr +* ldd #256 +* ldy #StartupL +* os9 F$Fork +* bcs DoAuto Startup failed.. +* os9 F$Wait +* ENDC + +* Fork AutoEx here +*DoAuto leax >AutoEx,pcr +* leau >CRtn,pcr +* ldd #$0100 +* ldy #$0001 +* os9 F$Fork +* bcs L0186 AutoEx failed.. +* os9 F$Wait + + IFEQ Level-1 + leax >MDIR,pcr + leau >mdirprm,pcr + ldd #$0100 + ldy #$0003 + os9 F$Fork + bcs L0186 AutoEx failed.. + os9 F$Wait + bra L0186 +MDIR fcs "mdir" + fcb $0d + ENDC +L0186 equ * + puls u,y +FrkShell leax >ShellPrm,pcr + leay ,u + ldb #ShellPL +L0190 lda ,x+ + sta ,y+ + decb + bne L0190 +* Fork final shell here + leax >Shell,pcr + lda #$01 D = 256 (B already 0 from above) + ldy #ShellPL + IFGT Level-1 + os9 F$Chain Level 2/3. Should not return.. + ldb #$06 it did! Fatal. Load error code + bra Crash + +L01A9 ldb #$04 error code +Crash clr >DPort+$08 turn off disk motor + jmp