# HG changeset patch # User boisy # Date 1102035621 0 # Node ID fd288a57f6ab4c60a2801f27326f4a3ae92f4394 # Parent 11f38ece79ef2b2eeffca02fe939873a20a7fba2 CO51 additions by Phill diff -r 11f38ece79ef -r fd288a57f6ab defs/cciodefs --- a/defs/cciodefs Sun Nov 28 20:16:37 2004 +0000 +++ b/defs/cciodefs Fri Dec 03 01:00:21 2004 +0000 @@ -10,7 +10,13 @@ * Edt/Rev YYYY/MM/DD Modified by * Comment * ------------------------------------------------------------------ - +* +* 2004/11/29, P.Harvey-Smith. +* Added symbolic defines for bits in V.CoLoad. +* +* 2004/12/02, P.Harvey-Smith. +* moved over all variables from co51.asm +* nam CCIODefs ttl CoCo 1/2 I/O Definitions @@ -95,10 +101,34 @@ V.GRFOE rmb 2 GRFO entry point V.CO32E rmb 2 CO32 entry point V.CO80E rmb 2 CO80 entry point +V.CO51E rmb 2 CO51 entry point +;Co51 vars +V.51ScrnA rmb 2 ; Screen address. +V.51XPos rmb 1 ; X co-ordinate +V.51YPos rmb 1 ; Y co-ordinate +V.51EscSeq rmb 1 ; In escape sequence +V.51ReverseFlag rmb 1 ; Reverse video flag +V.51UnderlineFlag rmb 1 ; Underline flag +V.51CtrlDispatch rmb 2 ; Ctrl char dispatch address, currently processing + +; I'm not sure what these do (yet). + +V.5126 rmb 1 +V.5130 rmb 1 +V.5131 rmb 1 +V.5132 rmb 1 +V.5133 rmb 1 +V.5134 rmb 1 +V.5135 rmb 1 +V.5136 rmb 1 +; End of c051 vars +; **** Note these have to come at the end of the defs, or the keyboard **** +; **** code can clobber variables defined after these ! **** V.IBufH rmb 1 input buffer head V.IBufT rmb 1 input buffer tail V.InBuf rmb 1 input buffer tail - rmb 250-. +V.51End rmb 1 + rmb 250-. V.Last equ . @@ -115,5 +145,13 @@ *VD.Palet rmb 16 (16) current palette values *VD.PlFlg rmb 1 initialized to $08 by L00DB, and then unused! +; +; Defs for V.COLoad flags. +; + +ModCo32 equ %00000010 ; Co32, normal VDG 32x16. +ModCo80 equ %00000100 ; Co80, wordpak rs, 80x25 +ModCo51 equ %00001000 ; Co51, pmode 4 51x25 text + ENDC diff -r 11f38ece79ef -r fd288a57f6ab level1/makefile --- a/level1/makefile Sun Nov 28 20:16:37 2004 +0000 +++ b/level1/makefile Fri Dec 03 01:00:21 2004 +0000 @@ -1,8 +1,10 @@ include ../rules.mak RELEASE = nos96809l1v030205 -BOOTFILE = bootfiles/bootfile -BOOTFILE_DS80 = bootfiles/bootfile_ds80 +BOOTFILE_CO32 = bootfiles/bootfile_co51 +BOOTFILE_CO51 = bootfiles/bootfile_co51 +BOOTFILE_CO80 = bootfiles/bootfile_co51 +BOOTFILE_CO32_DS80 = bootfiles/bootfile_co32_ds80 KERNELFILE = bootfiles/kernel_1773 DIRS = cmds modules defs sys bootfiles @@ -60,7 +62,7 @@ $(DSK360K_1): $(RM) $@ $(OS9FORMAT_DS40) -q $@ -n"NitrOS-9/6809 Level 1 Disk 1" - $(OS9GEN) $@ -b=$(BOOTFILE) -t=$(KERNELFILE) + $(OS9GEN) $@ -b=$(BOOTFILE_CO32) -t=$(KERNELFILE) $(MAKDIR) $@,CMDS $(MAKDIR) $@,SYS $(CD) cmds; $(CP) $(CMDS) ../$@,CMDS @@ -113,7 +115,7 @@ $(DSK720K): $(RM) $@ $(OS9FORMAT_DS80) -q $@ -n"NitrOS-9/6809 Level 1" - $(OS9GEN) $@ -b=$(BOOTFILE_DS80) -t=$(KERNELFILE) + $(OS9GEN) $@ -b=$(BOOTFILE_CO32_DS80) -t=$(KERNELFILE) $(MAKDIR) $@,CMDS $(MAKDIR) $@,SYS $(MAKDIR) $@,DEFS diff -r 11f38ece79ef -r fd288a57f6ab level1/makefile.dalpha --- a/level1/makefile.dalpha Sun Nov 28 20:16:37 2004 +0000 +++ b/level1/makefile.dalpha Fri Dec 03 01:00:21 2004 +0000 @@ -1,8 +1,10 @@ include ../rules.mak +# TERMWIDTH can be either 32 or 51 +TERMWIDTH = 51 RELEASE = nos96809l1v030204_dalpha -BOOTFILE = bootfiles/bootfile_dalpha -BOOTFILE_DS80 = bootfiles/bootfile_dalpha +BOOTFILE = bootfiles/bootfile_dalpha_$(TERMWIDTH) +BOOTFILE_DS80 = bootfiles/bootfile_dalpha_$(TERMWIDTH) KERNELFILE = bootfiles/kernel_dalpha DIRS = cmds modules defs sys bootfiles DDIRS = modules bootfiles diff -r 11f38ece79ef -r fd288a57f6ab level1/makefile.dragon --- a/level1/makefile.dragon Sun Nov 28 20:16:37 2004 +0000 +++ b/level1/makefile.dragon Fri Dec 03 01:00:21 2004 +0000 @@ -1,8 +1,10 @@ include ../rules.mak +# TERMWIDTH can be either 32 or 51 +TERMWIDTH = 51 RELEASE = nos96809l1v030204_dragon -BOOTFILE = bootfiles/bootfile_d64 -BOOTFILE_DS80 = bootfiles/bootfile_d64 +BOOTFILE = bootfiles/bootfile_d64_$(TERMWIDTH) +BOOTFILE_DS80 = bootfiles/bootfile_d64_$(TERMWIDTH) KERNELFILE = bootfiles/kernel_d64 DIRS = cmds defs sys #modules bootfiles @@ -17,12 +19,12 @@ KERNEL = $(shell $(CD) modules; make -f makefile.dragon showkernel) SYSMODS = $(shell $(CD) modules; make -f makefile.dragon showsysmods) CLOCKS = $(shell $(CD) modules; make -f makefile.dragon showclocks) -RBF = $(shell $(CD) modules; make -f makefile.dragon showrbf) -SCF = $(shell $(CD) modules; make -f makefile.dragon showscf) +RBF = $(shell $(CD) modules; make -f makefile.dragon showrbf) +SCF = $(shell $(CD) modules; make -f makefile.dragon showscf) PIPE = $(shell $(CD) modules; make -f makefile.dragon showpipe) MODULECMDS = $(WHICHSHELL) del echo format makdir merge os9gen prompt tmode -SYS = $(shell $(CD) sys; make showobjs) +SYS = $(shell $(CD) sys; make showobjs) DEFS = $(shell $(CD) defs; make showobjs) ROOTFILES = STARTUP = startup.dragon diff -r 11f38ece79ef -r fd288a57f6ab level1/modules/ccio.asm --- a/level1/modules/ccio.asm Sun Nov 28 20:16:37 2004 +0000 +++ b/level1/modules/ccio.asm Fri Dec 03 01:00:21 2004 +0000 @@ -15,6 +15,12 @@ * 2004/11/28, P.Harvey-Smith. * Added code to remap Dragon keyboard inputs to CoCo format. * +* 2004/12/02, P.Harvey-Smith. +* Changed the way that the entry points for the co?? drivers are +* called, so that we can have up to 7 different drivers. +* Integrated changes needed for the co51 driver from Dragon Data +* OS-9. +* nam CCIO ttl OS-9 Level One V2 CoCo I/O driver @@ -56,10 +62,17 @@ * CC = carry set on error * B = error code * -Init stu >D.KbdSta store devmem ptr +Init pshs y + ldy #$aa55 + ldy #V.5136 + ldy #V.51End + puls y + + stu >D.KbdSta store devmem ptr clra clear A leax XY2Addr,pcr get address of XY2Addr stx CO32,pcr - bra L05F4 -GoCO80 lda #$04 'CO80 is loaded' bit - ldx #$5018 80x24 - pshs u,y,x,a - leax >CO80,pcr -L05F4 bsr L0601 load CO-module if not already loaded - puls u,y,x,a - bcs L0600 - stx CO80,pcr + +SetupCoModule + bsr LoadCoModule load CO-module if not already loaded + puls u,y,x,a + bcs L0600 + stx CO51,pcr + bra SetupCoModule + +LoadCoModule + bita