# HG changeset patch # User Shinji KONO # Date 1532310753 -32400 # Node ID 4fa2bdb0c457bc98f1ab4fcf2cf2a734f477ba17 # Parent 8d151f303bee06d1d1ce1a6d566d7d1b3c4dda89 level vrbf and clock diff -r 8d151f303bee -r 4fa2bdb0c457 Makefile --- a/Makefile Mon Jul 23 08:35:25 2018 +0900 +++ b/Makefile Mon Jul 23 10:52:33 2018 +0900 @@ -34,7 +34,7 @@ $(CC) $(CFLAGS) $(V09FLAGS) a09.o os9crc.o -o $@ v09: v09.o engine.o io.o d09.o trace.o vdisk.o - $(CC) -o v09 $(CFLAGS) v09.o engine.o io.o d09.o trace.o + $(CC) -o v09 $(CFLAGS) v09.o engine.o io.o d09.o trace.o vdisk.o # with Coco MMU v09c: v09.c engine.c io.c d09.o trace.o vdisk.o @@ -56,7 +56,7 @@ $(CC) -c $(CFLAGS) $(V09FLAGS) $< io.o: io.c - $(CC) -c $(CFLAGS) $(V09FLAGS) $< + $(CC) -c $(CFLAGS) -DUSE_VDISK $(V09FLAGS) $< vdisk.o: vdisk.c v09.h $(CC) -c $(CFLAGS) $(V09FLAGS) $< diff -r 8d151f303bee -r 4fa2bdb0c457 os9/Makefile --- a/os9/Makefile Mon Jul 23 08:35:25 2018 +0900 +++ b/os9/Makefile Mon Jul 23 10:52:33 2018 +0900 @@ -12,11 +12,11 @@ clean : rm -rf makerom *.rom os9mod *.dSYM -os9d.rom : makerom level1/init - ./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 +os9v1.rom : makerom level1/init + ./makerom -o os9v1.rom level1/shell level1/sysgo level1/ioman level1/term level1/pty level1/pdisk level1/d0 level1/d1 level1/vrbf level1/v0 level1/clock level1/scf level1/rbf level1/init level1/os9p2 level1/os9p1 -os9v.rom : makerom level2/init - ./makerom -o os9v.rom -2 level2/Shell level2/dir level2/d1 level2/ioman level2/os9p3_perr level2/os9p4_regdump level2/pipe level2/piper level2/pipeman level2/v0 level2/vrbf level2/scf level2/rbf level2/os9p2 level2/sysgo level2/clock level2/pdisk level2/d0 level2/pty level2/term level2/init level2/boot level2/os9p1 +os9v2.rom : makerom level2/init + ./makerom -o os9v2.rom -2 level2/Shell level2/dir level2/d1 level2/ioman level2/os9p3_perr level2/os9p4_regdump level2/pipe level2/piper level2/pipeman level2/v0 level2/vrbf level2/scf level2/rbf level2/os9p2 level2/sysgo level2/clock level2/pdisk level2/d0 level2/pty level2/term level2/init level2/boot level2/os9p1 level1/init : nitros9-code cd level1 ; make diff -r 8d151f303bee -r 4fa2bdb0c457 os9/level1/Makefile --- a/os9/level1/Makefile Mon Jul 23 08:35:25 2018 +0900 +++ b/os9/level1/Makefile Mon Jul 23 10:52:33 2018 +0900 @@ -6,7 +6,7 @@ A09 = ../../a09 -I $(OS9SRC)/defs/ -MOD = pdisk init os9p1 os9p2 ioman pipe piper rbf scf term pty d0 d1 clock shell dir mdir sysgo shell +MOD = pdisk init os9p1 os9p2 ioman pipe piper rbf scf term pty d0 d1 vrbf v0 clock shell dir mdir sysgo shell all : ${MOD} @@ -43,6 +43,12 @@ clock : clock.asm $(A09) clock.asm -o clock $(LST) +vrbf : + $(A09) ../level2/vrbf.asm -o $@ $(LST) + +v0 : + $(A09) v0.asm -o $@ $(LST) + # os9 level1 moduels shell : $(SRCCMD)/shell_21.asm diff -r 8d151f303bee -r 4fa2bdb0c457 os9/level1/clock.asm --- a/os9/level1/clock.asm Mon Jul 23 08:35:25 2018 +0900 +++ b/os9/level1/clock.asm Mon Jul 23 10:52:33 2018 +0900 @@ -48,8 +48,7 @@ ldb #$8f start timer stb ,x L00B4 - jsr [>D.SvcIRQ] - rti + jmp [>D.SvcIRQ] ClkEnt equ * ldd #59*256+$01 last second and last tick diff -r 8d151f303bee -r 4fa2bdb0c457 os9/level1/sysgo.asm --- a/os9/level1/sysgo.asm Mon Jul 23 08:35:25 2018 +0900 +++ b/os9/level1/sysgo.asm Mon Jul 23 10:52:33 2018 +0900 @@ -69,7 +69,7 @@ IFEQ ROM DefDev equ * - fcc "/D0" + fcc "/V0" * IFNE DD * fcc "/DD" * ELSE @@ -77,13 +77,13 @@ * ENDC fcb C$CR HDDev equ * - fcc "/DD" + fcc "/V0" * IFNE DD * fcc "/DD/" * ELSE * fcc "/H0/" * ENDC -ExecDir fcc "/D0/CMDS" +ExecDir fcc "/V0/CMDS" fcb C$CR ENDC @@ -110,6 +110,15 @@ * Default time packet DefTime + fcb 0 + fcb 0 + fcb 0 + fcb 0 + fcb 0 + fcb 0 + fcb 0 + fcb 0 + fcb 0 * dtb IFEQ atari+corsham @@ -185,9 +194,9 @@ lda #$01 standard output os9 I$Write write out banner -* Set default time -* leax >DefTime,pcr -* os9 F$STime set time to default +* Set default time and start Clock module + leax >DefTime,pcr + os9 F$STime set time to default IFEQ 1 leax >MDIR,pcr diff -r 8d151f303bee -r 4fa2bdb0c457 os9/level1/v0.asm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os9/level1/v0.asm Mon Jul 23 10:52:33 2018 +0900 @@ -0,0 +1,50 @@ +******************************************************************** +* progname - program module +* +* $Id: d0.asm,v 1.1 2002/06/14 12:35:43 roug Exp $ +* +* Ed. Comments Who YY/MM/DD +* ------------------------------------------------------------------ +* - Original Dragon Data distribution version +* +* $Log: d0.asm,v $ +* Revision 1.1 2002/06/14 12:35:43 roug +* Add work done on ideal devices +* +* + + nam V0 + ttl 40-track floppy disk device descriptor + + ifp1 + use defsfile + endc +tylg set Devic+Objct +atrv set ReEnt+rev +rev set $02 + mod eom,name,tylg,atrv,mgrnam,drvnam + fcb $FF mode byte + fcb $00 extended controller address + fdb $e040 physical controller address + fcb initsize-*-1 initilization table size + fcb $01 device type:0=scf,1=rbf,2=pipe,3=scf + fcb $00 drive number + fcb $00 step rate + fcb $20 drive device type + fcb $01 media density:0=single,1=double + fdb $0100 number of cylinders (tracks) + fcb $01 number of sides + fcb $00 verify disk writes:0=on + fdb $0012 # of sectors per track + fdb $0012 # of sectors per track (track 0) + fcb $01 sector interleave factor + fcb $08 minimum size of sector allocation +initsize equ * +name equ * + fcs /V0/ +mgrnam equ * + fcs /VRBF/ +drvnam equ * + fcs /PDisk/ + emod +eom equ * diff -r 8d151f303bee -r 4fa2bdb0c457 os9/level2/vrbf.asm --- a/os9/level2/vrbf.asm Mon Jul 23 08:35:25 2018 +0900 +++ b/os9/level2/vrbf.asm Mon Jul 23 10:52:33 2018 +0900 @@ -109,7 +109,9 @@ * PD.DEV,y device table * PD.DRV,y drive number -setuppd ldx #$FFc0 vdisk port +setuppd ldx PD.DEV,y get device table + ldx 4,x get device module + ldx $f,x get port address sty 7,x path descriptor stu 5,x caller stack lda #include -static int vdiskdebug = 0; // 1 trace, 2 filename +static int vdiskdebug = 0; // bit 1 trace, bit 2 filename Byte pmmu[8]; // process dat mmu @@ -818,7 +818,7 @@ } if (vdiskdebug && *breg) printf(" vdisk call error %x\n",*breg); // return value - mem[0xffc0] = *breg; + mem[0x40+IOPAGE] = *breg; *smem(u+2) = *breg ; setword(smem(u+4),xreg); }