Mercurial > hg > Members > kono > nitros9-code
changeset 1942:b41df77588b0
printer is now scbbp
sio is now scbbt
All references changed in various files
author | boisy |
---|---|
date | Sat, 26 Nov 2005 22:51:50 +0000 |
parents | f408295c1f0a |
children | e119c4316e6c |
files | level1/cmds/grfdrv.asm level1/modules/makefile level1/modules/p_bbp.asm level1/modules/printer.asm level1/modules/scbbp.asm level1/modules/scbbt.asm level1/modules/sio.asm level1/modules/t1_bbt.asm level1/modules/term_bbt.asm level1/modules/term_sio.asm level2/coco3/bootlists/standard.bl level2/coco3_6309/bootlists/standard.bl level2/modules/makefile |
diffstat | 13 files changed, 1082 insertions(+), 1081 deletions(-) [+] |
line wrap: on
line diff
--- a/level1/cmds/grfdrv.asm Sat Nov 26 22:28:00 2005 +0000 +++ b/level1/cmds/grfdrv.asm Sat Nov 26 22:51:50 2005 +0000 @@ -30,6 +30,7 @@ size equ . fcb $07 + name fcs /GrfDrv/ fcb edition
--- a/level1/modules/makefile Sat Nov 26 22:28:00 2005 +0000 +++ b/level1/modules/makefile Sat Nov 26 22:51:50 2005 +0000 @@ -31,10 +31,10 @@ ddd0_80d.dd d0_80d.dd d1_80d.dd d2_80d.dd SCF = scf.mn \ - sc6551.dr vrn.dr printer.dr sio.dr sspak.dr vtio.dr \ + sc6551.dr vrn.dr scbbp.dr scbbt.dr sspak.dr vtio.dr \ covdg.io cohr.io \ nil.dd p.dd pipe.dd ssp.dd \ - term_sio.dt term_sc6551.dt t1.dd t2_sc6551.dd t3_sc6551.dd \ + term_bbt.dt term_sc6551.dt t1.dd t2_sc6551.dd t3_sc6551.dd \ term32.dt term51.dt PIPE = pipeman.mn \
--- a/level1/modules/p_bbp.asm Sat Nov 26 22:28:00 2005 +0000 +++ b/level1/modules/p_bbp.asm Sat Nov 26 22:51:50 2005 +0000 @@ -1,5 +1,5 @@ ******************************************************************** -* P - CoCo serial printer device descriptor +* P - CoCo Bit-Banger Printer Driver Device Descriptor * * $Id$ * @@ -9,7 +9,7 @@ * ????/??/?? nam P - ttl CoCo serial printer device descriptor + ttl CoCo Bit-Banger Printer Driver Device Descriptor * Disassembled 98/08/23 21:15:24 by Disasm v1.6 (C) 1988 by RML @@ -58,7 +58,7 @@ name fcs /p/ mgrnam fcs /SCF/ -drvnam fcs /Printer/ +drvnam fcs /scbbp/ emod eom equ *
--- a/level1/modules/printer.asm Sat Nov 26 22:28:00 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,416 +0,0 @@ -******************************************************************** -* Printer - CoCo Serial Printer Driver -* -* $Id$ -* -* Enhanced and re-written by Alan DeKok -* -* Problems with original: -* returns wrong error on Read/SetStt -* doesn't block output. The printer is a single-user device! -* -* Edt/Rev YYYY/MM/DD Modified by -* Comment -* ------------------------------------------------------------------ -* 13 2003/01/05 Boisy G. Pitre -* Back-ported to OS-9 Level Two. -* -* 2003/09/04 Boisy G. Pitre -* Back-ported to OS-9 Level One. - - nam Printer - ttl CoCo Serial Printer Driver - - ifp1 - use defsfile - endc - -tylg set Drivr+Objct -atrv set ReEnt+Rev -rev set $00 -edition set 13 - - mod eom,name,tylg,atrv,Start,Size - - fcb READ.+WRITE. - -name fcs /Printer/ - fcb edition one more revision level than the stock printer - -* Device memory area: offset from U - org V.SCF V.SCF: free memory for driver to use -V.PAR rmb 1 1=space, 2=mark parity -V.BIT rmb 1 0=7, 1=8 bits -V.STP rmb 1 0=1 stop bit, 1=2 stop bits -V.COM rmb 2 Com Status baud/parity (=Y from SS.Comst Set/GetStt -V.COL rmb 1 columns -V.ROW rmb 1 rows -V.WAIT rmb 2 wait count for baud rate? -V.TRY rmb 2 number of re-tries if printer is busy -V.RTRY rmb 1 low nibble of parity=high byte of number of retries -V.BUFF rmb $80 room for 128 blocked processes -size equ . - -* Baud Rate Delay Table -BaudDly equ * - IFEQ Level-1 -* OS-9 Level One delay values (0.89MHz) - fdb $0482 110 baud - fdb $01A2 300 baud - fdb $00CD 600 baud - fdb $0063 1200 baud - fdb $002D 2400 baud - fdb $0013 4800 baud - fdb $0005 9600 baud - ELSE - IFEQ H6309 -* OS-9 Level Two delay values (1.78MHz) - fdb $090C 110 baud - fdb $034C 300 baud - fdb $01A2 600 baud - fdb $00CE 1200 baud - fdb $0062 2400 baud - fdb $002E 4800 baud - fdb $0012 9600 baud - fdb $0003 32000 baud - ELSE -* NitrOS-9 Level Two delay values (1.78MHz) - fdb $090C 110 baud (Unchanged, unknown) - fdb $03D0 300 baud - fdb $01A2 600 baud (Unchanged, unknown) - fdb $00F0 1200 baud - fdb $0073 2400 baud - fdb $0036 4800 baud - fdb $0017 9600 baud - fdb $0003 32000 baud (Unchanged, unknown) - ENDC - ENDC - - -start equ * - lbra Init - lbra Read - lbra Write - lbra GetStt - lbra SetStt - -* Term -* -* Entry: -* U = address of device memory area -* -* Exit: -* CC = carry set on error -* B = error code -* -Term equ * - clrb - rts - -* Init -* -* Entry: -* Y = address of device descriptor -* U = address of device memory area -* -* Exit: -* CC = carry set on error -* B = error code -* -Init orcc #IntMasks - ldx #PIA1Base - clr $01,x - ldd <IT.COL,y get number of columns/rows - std <V.COL,u save it in statics - lda #$FE - sta ,x - lda #$36 - sta $01,x - lda ,x - andcc #^IntMasks - ldd <IT.PAR,y parity and baud rate - lbsr L0138 setup parity/baud in device memory - lbsr L0104 get low bit of $FF22 into carry - lbcs L0100 it's the ready flag -* clear out buffer - leax V.BUFF,u room for 128 blocked processes - ldb #128 -I010 clr ,x+ we're more concerned with room - decb than with speed, so we don't use TFM - bne I010 - rts - -L005F ldb <PD.BAU,y get baud rate in path desc. - andb #$0F keep lower nibble - cmpb #$07 compare against highest - lbhs Read - aslb - leax <BaudDly,pc table of delay times - ldx b,x get delay counter - stx <V.WAIT,u save it off - clrb - rts - -Bit_2 ldb #$02 -L007D stb >PIA1Base -L0080 pshs d - ldd <V.WAIT,u get wait count for baud rate -L0085 equ * - IFNE H6309 - decd count down by one - ELSE - subd #$0001 - ENDC - bne L0085 - puls pc,d - -* Write -* -* Entry: -* A = character to write -* Y = address of path descriptor -* U = address of device memory area -* -* Exit: -* CC = carry set on error -* B = error code -* -Write equ * - leax V.BUFF,u point to the buffer - ldb V.BUSY,u get my process number - tst ,x get allowed process number - bne W010 if not zero, else - stb ,x I'm the only one allowed to use it - -W010 cmpb ,x am I allowed to use /p? - beq W030 if yes, go write a character - -*************************************************************** -* WARNING: If more than 128 processes try to use the printer, -* this will CRASH BADLY. Since Level II on the Coco is limited -* to 32 processes, I don't think it's a problem. -*************************************************************** - -W020 tst ,x+ if not, find the first non-zero entry - bne W020 - stb -1,x and save my process number at the first zero - pshs a - lda V.BUFF,u process that's allowed to use /p - sta V.BUSY,u make it the busy one - ldb #S$Wake wake it up - os9 F$Send send a signal to wake it - IFNE H6309 - tfr 0,x - ELSE - ldx #$0000 - ENDC - os9 F$Sleep and go to sleep forever - puls a restore character to be sent, and continue - -W030 bsr L005F set up baud rate, etc in memory - bcs L00CA - pshs a - bsr L00CB make sure that the device is ready - puls a - bcs L00CA if the device is not ready - IFNE H6309 - lde #$09 9 bits to send out - ELSE - pshs b,a - lda #$09 - sta 1,s - puls a - ENDC - orcc #IntMasks turn off interrupts - tst <V.BIT,u number of bits - beq L00AC if 7 bits, count down by one - IFNE H6309 - dece initially send out start bit - ELSE - dec ,s - ENDC - -L00AC bsr L007D write B to $FF20 and wait - clrb - lsra move A into carry - rolb - rolb - IFNE H6309 - dece count down on the number of bits to send - ELSE - dec ,s - ENDC - bne L00AC - IFEQ H6309 - puls b - ENDC - ldb <V.PAR,u space/mark parity - beq L00BC 0=no parity - andb #$FE 1=space, 0=mark parity -* should be andb #$FD I think... - bsr L007D dump out parity -L00BC bsr Bit_2 and a stop bit - tst <V.STP,u do another one? - beq L00C9 - bsr Bit_2 yes, dump out another stop bit -L00C9 andcc #^IntMasks -L00CA rts - -L0104 pshs b - ldb >PIA1Base+$02 get a byte - lsrb - puls pc,b - -L00CB equ * - IFNE H6309 - clrd - ELSE - clra - clrb - ENDC - std <V.TRY,u -L00D0 ldd #$0303 -L00D3 bsr L0104 get device ready status - bcs L00DE if not ready, wait for a bit - IFNE H6309 - bsr L0080 wait - ELSE - lbsr L0080 wait - ENDC - decb - bne L00D3 try again - clrb - rts - -L00DE lbsr L0080 wait for a while - deca try 3 times, - bne L00D3 - pshs x - ldx #$0001 - os9 F$Sleep sleep for the rest of this tick - puls x - ldd <V.TRY,u - IFNE H6309 - incd we've tried once more and failed... - ELSE - addd #$0001 - ENDC - std <V.TRY,u - ldb <V.RTRY,u number of retries to do - beq L00D0 if unspecified, keep retrying - cmpb <V.TRY,u if exceeded number of retries, - bhi L00D0 then we crap out - -L0100 comb - ldb #E$NotRdy - rts - -* GetStat -* -* Entry: -* A = function code -* Y = address of path descriptor -* U = address of device memory area -* -* Exit: -* CC = carry set on error -* B = error code -* -GetStt cmpa #SS.EOF end of file? - bne L0112 - clrb if so, exit with no error - rts - -L0112 ldx PD.RGS,y - cmpa #SS.ScSiz - beq L0123 - cmpa #SS.ComSt - bne L0173 - ldd <V.COM,u get Com status - std R$Y,x - clrb - rts - -* get screen size GetStt -L0123 clra - ldb <V.COL,u - std R$X,x - ldb <V.ROW,u - std R$Y,x - clrb - rts - -* SetStat -* -* Entry: -* A = function code -* Y = address of path descriptor -* U = address of device memory area -* -* Exit: -* CC = carry set on error -* B = error code -* -SetStt cmpa #SS.ComSt - bne Close if not, check if it's a close - ldx PD.RGS,y - ldd R$Y,x -* A = Parity byte -* B = baud rate -L0138 std <V.COM,u save parity, baud rate in com status - IFNE H6309 - clrd - ELSE - clra - clrb - ENDC - std <V.PAR,u - sta <V.STP,u - ldd <V.COM,u - tstb - bpl L014C - inc <V.STP,u do 2 stop bits -L014C bitb #$40 make sure the bit is zero - bne Read - bitb #$20 0=8, 1=7 bits - beq L0157 - inc <V.BIT,u -L0157 bita #$20 - beq L0169 if=0, no parity - bita #$80 - beq Read if high bit set (only for ACIA devices), error out - inc <V.PAR,u parity - bita #$40 - bne L0169 1=space, - inc <V.PAR,u 2=mark parity -L0169 anda #$0F - sta <V.RTRY,u - rts - -Read comb - ldb #E$BMode - rts - -L0173 comb - ldb #E$UnkSVc - rts - -Close cmpa #SS.Close close the device? - bne L0173 - leax V.BUFF,u point to blocked process buffer - -C010 lda 1,x get next process number - sta ,x+ - bne C010 do until we have a zero byte - - lda V.BUFF,u get the first process in the queue - beq C020 if none left - ldb #S$Wake wake up signal - os9 F$Send re-start the blocked process - -C020 clrb - rts - - emod -eom equ * - end
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/level1/modules/scbbp.asm Sat Nov 26 22:51:50 2005 +0000 @@ -0,0 +1,416 @@ +******************************************************************** +* scbbp.asm - CoCo Bit-Banger Printer Driver +* +* $Id$ +* +* Enhanced and re-written by Alan DeKok +* +* Problems with original: +* returns wrong error on Read/SetStt +* doesn't block output. The printer is a single-user device! +* +* Edt/Rev YYYY/MM/DD Modified by +* Comment +* ------------------------------------------------------------------ +* 13 2003/01/05 Boisy G. Pitre +* Back-ported to OS-9 Level Two. +* +* 2003/09/04 Boisy G. Pitre +* Back-ported to OS-9 Level One. + + nam scbbp + ttl CoCo Bit-Banger Printer Driver + + ifp1 + use defsfile + endc + +tylg set Drivr+Objct +atrv set ReEnt+Rev +rev set $00 +edition set 13 + + mod eom,name,tylg,atrv,Start,Size + + fcb READ.+WRITE. + +name fcs /scbbp/ + fcb edition one more revision level than the stock printer + +* Device memory area: offset from U + org V.SCF V.SCF: free memory for driver to use +V.PAR rmb 1 1=space, 2=mark parity +V.BIT rmb 1 0=7, 1=8 bits +V.STP rmb 1 0=1 stop bit, 1=2 stop bits +V.COM rmb 2 Com Status baud/parity (=Y from SS.Comst Set/GetStt +V.COL rmb 1 columns +V.ROW rmb 1 rows +V.WAIT rmb 2 wait count for baud rate? +V.TRY rmb 2 number of re-tries if printer is busy +V.RTRY rmb 1 low nibble of parity=high byte of number of retries +V.BUFF rmb $80 room for 128 blocked processes +size equ . + +* Baud Rate Delay Table +BaudDly equ * + IFEQ Level-1 +* OS-9 Level One delay values (0.89MHz) + fdb $0482 110 baud + fdb $01A2 300 baud + fdb $00CD 600 baud + fdb $0063 1200 baud + fdb $002D 2400 baud + fdb $0013 4800 baud + fdb $0005 9600 baud + ELSE + IFEQ H6309 +* OS-9 Level Two delay values (1.78MHz) + fdb $090C 110 baud + fdb $034C 300 baud + fdb $01A2 600 baud + fdb $00CE 1200 baud + fdb $0062 2400 baud + fdb $002E 4800 baud + fdb $0012 9600 baud + fdb $0003 32000 baud + ELSE +* NitrOS-9 Level Two delay values (1.78MHz) + fdb $090C 110 baud (Unchanged, unknown) + fdb $03D0 300 baud + fdb $01A2 600 baud (Unchanged, unknown) + fdb $00F0 1200 baud + fdb $0073 2400 baud + fdb $0036 4800 baud + fdb $0017 9600 baud + fdb $0003 32000 baud (Unchanged, unknown) + ENDC + ENDC + + +start equ * + lbra Init + lbra Read + lbra Write + lbra GetStt + lbra SetStt + +* Term +* +* Entry: +* U = address of device memory area +* +* Exit: +* CC = carry set on error +* B = error code +* +Term equ * + clrb + rts + +* Init +* +* Entry: +* Y = address of device descriptor +* U = address of device memory area +* +* Exit: +* CC = carry set on error +* B = error code +* +Init orcc #IntMasks + ldx #PIA1Base + clr $01,x + ldd <IT.COL,y get number of columns/rows + std <V.COL,u save it in statics + lda #$FE + sta ,x + lda #$36 + sta $01,x + lda ,x + andcc #^IntMasks + ldd <IT.PAR,y parity and baud rate + lbsr L0138 setup parity/baud in device memory + lbsr L0104 get low bit of $FF22 into carry + lbcs L0100 it's the ready flag +* clear out buffer + leax V.BUFF,u room for 128 blocked processes + ldb #128 +I010 clr ,x+ we're more concerned with room + decb than with speed, so we don't use TFM + bne I010 + rts + +L005F ldb <PD.BAU,y get baud rate in path desc. + andb #$0F keep lower nibble + cmpb #$07 compare against highest + lbhs Read + aslb + leax <BaudDly,pc table of delay times + ldx b,x get delay counter + stx <V.WAIT,u save it off + clrb + rts + +Bit_2 ldb #$02 +L007D stb >PIA1Base +L0080 pshs d + ldd <V.WAIT,u get wait count for baud rate +L0085 equ * + IFNE H6309 + decd count down by one + ELSE + subd #$0001 + ENDC + bne L0085 + puls pc,d + +* Write +* +* Entry: +* A = character to write +* Y = address of path descriptor +* U = address of device memory area +* +* Exit: +* CC = carry set on error +* B = error code +* +Write equ * + leax V.BUFF,u point to the buffer + ldb V.BUSY,u get my process number + tst ,x get allowed process number + bne W010 if not zero, else + stb ,x I'm the only one allowed to use it + +W010 cmpb ,x am I allowed to use /p? + beq W030 if yes, go write a character + +*************************************************************** +* WARNING: If more than 128 processes try to use the printer, +* this will CRASH BADLY. Since Level II on the Coco is limited +* to 32 processes, I don't think it's a problem. +*************************************************************** + +W020 tst ,x+ if not, find the first non-zero entry + bne W020 + stb -1,x and save my process number at the first zero + pshs a + lda V.BUFF,u process that's allowed to use /p + sta V.BUSY,u make it the busy one + ldb #S$Wake wake it up + os9 F$Send send a signal to wake it + IFNE H6309 + tfr 0,x + ELSE + ldx #$0000 + ENDC + os9 F$Sleep and go to sleep forever + puls a restore character to be sent, and continue + +W030 bsr L005F set up baud rate, etc in memory + bcs L00CA + pshs a + bsr L00CB make sure that the device is ready + puls a + bcs L00CA if the device is not ready + IFNE H6309 + lde #$09 9 bits to send out + ELSE + pshs b,a + lda #$09 + sta 1,s + puls a + ENDC + orcc #IntMasks turn off interrupts + tst <V.BIT,u number of bits + beq L00AC if 7 bits, count down by one + IFNE H6309 + dece initially send out start bit + ELSE + dec ,s + ENDC + +L00AC bsr L007D write B to $FF20 and wait + clrb + lsra move A into carry + rolb + rolb + IFNE H6309 + dece count down on the number of bits to send + ELSE + dec ,s + ENDC + bne L00AC + IFEQ H6309 + puls b + ENDC + ldb <V.PAR,u space/mark parity + beq L00BC 0=no parity + andb #$FE 1=space, 0=mark parity +* should be andb #$FD I think... + bsr L007D dump out parity +L00BC bsr Bit_2 and a stop bit + tst <V.STP,u do another one? + beq L00C9 + bsr Bit_2 yes, dump out another stop bit +L00C9 andcc #^IntMasks +L00CA rts + +L0104 pshs b + ldb >PIA1Base+$02 get a byte + lsrb + puls pc,b + +L00CB equ * + IFNE H6309 + clrd + ELSE + clra + clrb + ENDC + std <V.TRY,u +L00D0 ldd #$0303 +L00D3 bsr L0104 get device ready status + bcs L00DE if not ready, wait for a bit + IFNE H6309 + bsr L0080 wait + ELSE + lbsr L0080 wait + ENDC + decb + bne L00D3 try again + clrb + rts + +L00DE lbsr L0080 wait for a while + deca try 3 times, + bne L00D3 + pshs x + ldx #$0001 + os9 F$Sleep sleep for the rest of this tick + puls x + ldd <V.TRY,u + IFNE H6309 + incd we've tried once more and failed... + ELSE + addd #$0001 + ENDC + std <V.TRY,u + ldb <V.RTRY,u number of retries to do + beq L00D0 if unspecified, keep retrying + cmpb <V.TRY,u if exceeded number of retries, + bhi L00D0 then we crap out + +L0100 comb + ldb #E$NotRdy + rts + +* GetStat +* +* Entry: +* A = function code +* Y = address of path descriptor +* U = address of device memory area +* +* Exit: +* CC = carry set on error +* B = error code +* +GetStt cmpa #SS.EOF end of file? + bne L0112 + clrb if so, exit with no error + rts + +L0112 ldx PD.RGS,y + cmpa #SS.ScSiz + beq L0123 + cmpa #SS.ComSt + bne L0173 + ldd <V.COM,u get Com status + std R$Y,x + clrb + rts + +* get screen size GetStt +L0123 clra + ldb <V.COL,u + std R$X,x + ldb <V.ROW,u + std R$Y,x + clrb + rts + +* SetStat +* +* Entry: +* A = function code +* Y = address of path descriptor +* U = address of device memory area +* +* Exit: +* CC = carry set on error +* B = error code +* +SetStt cmpa #SS.ComSt + bne Close if not, check if it's a close + ldx PD.RGS,y + ldd R$Y,x +* A = Parity byte +* B = baud rate +L0138 std <V.COM,u save parity, baud rate in com status + IFNE H6309 + clrd + ELSE + clra + clrb + ENDC + std <V.PAR,u + sta <V.STP,u + ldd <V.COM,u + tstb + bpl L014C + inc <V.STP,u do 2 stop bits +L014C bitb #$40 make sure the bit is zero + bne Read + bitb #$20 0=8, 1=7 bits + beq L0157 + inc <V.BIT,u +L0157 bita #$20 + beq L0169 if=0, no parity + bita #$80 + beq Read if high bit set (only for ACIA devices), error out + inc <V.PAR,u parity + bita #$40 + bne L0169 1=space, + inc <V.PAR,u 2=mark parity +L0169 anda #$0F + sta <V.RTRY,u + rts + +Read comb + ldb #E$BMode + rts + +L0173 comb + ldb #E$UnkSVc + rts + +Close cmpa #SS.Close close the device? + bne L0173 + leax V.BUFF,u point to blocked process buffer + +C010 lda 1,x get next process number + sta ,x+ + bne C010 do until we have a zero byte + + lda V.BUFF,u get the first process in the queue + beq C020 if none left + ldb #S$Wake wake up signal + os9 F$Send re-start the blocked process + +C020 clrb + rts + + emod +eom equ * + end
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/level1/modules/scbbt.asm Sat Nov 26 22:51:50 2005 +0000 @@ -0,0 +1,579 @@ +******************************************************************** +* scbbt - CoCo Bit-Banger Terminal Driver +* +* $Id$ +* +* Edt/Rev YYYY/MM/DD Modified by +* Comment +* ------------------------------------------------------------------ +* 9 ????/??/?? ??? +* Original Tandy L2 distribution version. +* +* 10 ????/??/?? ??? +* Added baud delay table for NitrOS-9. +* +* 11 2003/12/15 Boisy G. Pitre +* Merged Level 1 and Level 2 sources for now. + + nam scbbt + ttl CoCo Bit-Banger Terminal Driver + +* Disassembled 98/08/23 20:58:36 by Disasm v1.6 (C) 1988 by RML + + ifp1 + use defsfile + endc + +tylg set Drivr+Objct +atrv set ReEnt+rev +rev set $00 +edition set 9 + + mod eom,name,tylg,atrv,start,size + + fcb UPDAT. + +name fcs /scbbt/ + fcb edition + + IFGT Level-1 + +u0000 rmb 29 +u001D rmb 1 +u001E rmb 1 +u001F rmb 1 +u0020 rmb 2 +u0022 rmb 2 +u0024 rmb 1 +u0025 rmb 1 +size equ . + +* Baud Rate Delay Table +DelayTbl + IFEQ H6309 +* 6809 delay values (1.89MHz) + fdb $090C 110 baud + fdb $034C 300 baud + fdb $01A2 600 baud + fdb $00CE 1200 baud + fdb $0062 2400 baud + fdb $002E 4800 baud + fdb $0012 9600 baud + fdb $0003 32000 baud + ELSE +* 6309 native mode delay values (1.89MHz) + fdb $090C 110 baud (Unchanged, unknown) + fdb $03D0 300 baud + fdb $01A2 600 baud (Unchanged, unknown) + fdb $00F0 1200 baud + fdb $0073 2400 baud + fdb $0036 4800 baud + fdb $0017 9600 baud + fdb $0003 32000 baud (Unchanged, unknown) + ENDC + +start lbra Init + lbra Read + lbra Write + lbra GetStat + lbra SetStat + lbra Term + +* Init +* +* Entry: +* Y = address of device descriptor +* U = address of device memory area +* +* Exit: +* CC = carry set on error +* B = error code +* +Init pshs cc + orcc #IntMasks + ldx #PIA1Base + clr $01,x + ldd <IT.COL,y get col/row bytes + std <u0024,u + lda #$FE + sta ,x + lda #$36 + sta $01,x + lda ,x + ldd <IT.PAR,y get parity/baud + lbsr L0148 + puls cc + clrb + +* Term +* +* Entry: +* U = address of device memory area +* +* Exit: +* CC = carry set on error +* B = error code +* +Term rts + +* Read +* +* Entry: +* Y = address of path descriptor +* U = address of device memory area +* +* Exit: +* A = character read +* CC = carry set on error +* B = error code +* +Read bsr L00AC + bcs L00C8 + ldb #$08 + pshs b,cc + tst <u001E,u + beq L0066 + dec $01,s +L0066 bra L0077 +L0068 lda <PD.BAU,y + anda #$0F + cmpa #$07 + beq L0077 + ldx #$0001 + os9 F$Sleep +L0077 pshs y + ldy #$FFFF +L007D lda >PIA1Base+2 + leay -$01,y + beq L008B + lsra + bcs L007D + puls y + bra L0090 +L008B puls y + lsra + bcs L0068 +L0090 orcc #IntMasks + clra + bsr L00D5 +L0095 bsr L00CE + ldb >PIA1Base+2 + lsrb + rora + dec $01,s + bne L0095 + bsr L00D5 + tst <u001E,u + beq L00A8 + lsra +L00A8 puls b,cc + clrb + rts +L00AC pshs a + lda <PD.BAU,y + anda #$0F + cmpa #$08 + bcc L00C4 + lsla + leax >DelayTbl,pcr + ldd a,x + std <u0020,u + clrb + puls pc,a +L00C4 ldb #E$BMode + puls a +L00C8 orcc #Carry + rts +L00CB stb >PIA1Base +L00CE pshs b,a + ldd <u0020,u + bra L00DC +L00D5 pshs b,a + ldd <u0020,u + lsra + rorb +L00DC subd #$0001 + bne L00DC + puls pc,b,a + +* Write +* +* Entry: +* A = character to write +* Y = address of path descriptor +* U = address of device memory area +* +* Exit: +* CC = carry set on error +* B = error code +* +Write bsr L00AC + bcs L00C8 + ldb #$09 + pshs b,cc + orcc #IntMasks + tst <u001E,u + beq L00F4 + dec $01,s +L00F4 andcc #^Carry +L00F6 ldb #$02 + bcs L00FB + clrb +L00FB bsr L00CB + lsra + dec $01,s + bne L00F6 + ldb <u001D,u + beq L010B + andb #$FE + bsr L00CB +L010B ldb #$02 + bsr L00CB + tst <u001F,u + beq L0118 + ldb #$02 + bsr L00CB +L0118 puls pc,b,cc + +* GetStat +* +* Entry: +* A = function code +* Y = address of path descriptor +* U = address of device memory area +* +* Exit: +* CC = carry set on error +* B = error code +* +GetStat cmpa #SS.EOF + bne L0120 +L011E clrb + rts +L0120 ldx PD.RGS,y + cmpa #SS.ScSiz + beq L0131 + cmpa #SS.ComSt + bne L017E + ldd <u0022,u + std R$Y,x + bra L011E +L0131 ldx PD.RGS,y + clra + ldb <u0024,u + std R$X,x + ldb <u0025,u + std R$Y,x + bra L011E + +* SetStat +* +* Entry: +* A = function code +* Y = address of path descriptor +* U = address of device memory area +* +* Exit: +* CC = carry set on error +* B = error code +* +SetStat cmpa #SS.ComSt + bne L017E + ldx PD.RGS,y + ldd R$Y,x +L0148 std <u0022,u + clra + clrb + std <u001D,u + sta <u001F,u + ldd <u0022,u + tstb + bpl L015C + inc <u001F,u +L015C bitb #$40 + bne L017A + bitb #$20 + beq L0167 + inc <u001E,u +L0167 bita #$20 + beq L0179 + bita #$80 + beq L017A + inc <u001D,u + bita #$40 + bne L0179 + inc <u001D,u +L0179 rts +L017A comb + ldb #E$BMode + rts +L017E comb + ldb #E$UnkSvc + rts + + ELSE + + rmb V.SCF +u001D rmb 1 +u001E rmb 1 +u001F rmb 1 +BaudCnt rmb 2 baud rate counter +u0022 rmb 2 +u0024 rmb 1 +u0025 rmb 1 +size equ . + +BaudTbl fdb $0482 110 baud + fdb $01A2 300 baud + fdb $00CD 600 baud + fdb $0063 1200 baud + fdb $002D 2400 baud + fdb $0013 4800 baud + fdb $0005 9600 baud + +start lbra Init + lbra Read + lbra Write + lbra GetStat + lbra SetStat + lbra Term + +* Init +* +* Entry: +* Y = address of device descriptor +* U = address of device memory area +* +* Exit: +* CC = carry set on error +* B = error code +* +Init pshs cc + orcc #IntMasks + ldx #PIA1Base + clr $01,x + ldd <IT.COL,y get col/row bytes + std <u0024,u + lda #$FE + sta ,x + lda #$36 + sta $01,x + lda ,x + ldd <IT.PAR,y get parity/baud + lbsr L014D + puls cc + clrb + +* Term +* +* Entry: +* U = address of device memory area +* +* Exit: +* CC = carry set on error +* B = error code +* +Term rts + +* Read +* +* Entry: +* Y = address of path descriptor +* U = address of device memory area +* +* Exit: +* A = character read +* CC = carry set on error +* B = error code +* +Read bsr L00B1 + bcs L00CD + ldb #$08 + pshs b,cc + tst <u001E,u + beq L0066 + dec $01,s +L0066 bra L006E +L0068 ldx #$0001 + os9 F$Sleep +L006E lda >PIA1Base+2 + lsra + pshs x,a + lda >$FF69 + bpl L0091 + lda >PIA1Base+3 + bita #$01 + beq L0091 + bita #$80 + beq L0091 + orcc #Entire + leax <L0091,pcr + pshs x + pshs u,y,x,dp,b,a,cc + jmp [D.SvcIRQ] +L0091 puls x,a + bcs L0068 + orcc #IntMasks + clra + bsr L00DA +L009A bsr L00D3 + ldb >PIA1Base+2 + lsrb + rora + dec $01,s + bne L009A + bsr L00DA + tst <u001E,u + beq L00AD + lsra +L00AD puls b,cc + clrb + rts +L00B1 pshs a + lda <PD.BAU,y + anda #$0F mask out baud rate + cmpa #B19200 + bcc L00C9 + lsla + leax >BaudTbl,pcr + ldd a,x + std <BaudCnt,u + clrb + puls pc,a +L00C9 ldb #E$BMode + puls a +L00CD orcc #Carry + rts +L00D0 stb >PIA1Base +L00D3 pshs b,a + ldd <BaudCnt,u + bra L00E1 +L00DA pshs b,a + ldd <BaudCnt,u + lsra + rorb +L00E1 subd #$0001 + bne L00E1 + puls pc,b,a + +* Write +* +* Entry: +* A = character to write +* Y = address of path descriptor +* U = address of device memory area +* +* Exit: +* CC = carry set on error +* B = error code +* +Write bsr L00B1 + bcs L00CD + ldb #$09 + pshs b,cc + orcc #IntMasks + tst <u001E,u + beq L00F9 + dec $01,s +L00F9 andcc #^Carry +L00FB ldb #$02 + bcs L0100 + clrb +L0100 bsr L00D0 + lsra + dec $01,s + bne L00FB + ldb <u001D,u + beq L0110 + andb #$FE + bsr L00D0 +L0110 ldb #$02 + bsr L00D0 + tst <u001F,u + beq L011D + ldb #$02 + bsr L00D0 +L011D puls pc,b,cc + +* GetStat +* +* Entry: +* A = function code +* Y = address of path descriptor +* U = address of device memory area +* +* Exit: +* CC = carry set on error +* B = error code +* +GetStat cmpa #SS.EOF + bne L0125 +L0123 clrb + rts +L0125 ldx PD.RGS,y + cmpa #SS.ScSiz + beq L0136 + cmpa #SS.ComSt + bne L0183 + ldd <u0022,u + std R$Y,x + bra L0123 +L0136 ldx PD.RGS,y + clra + ldb <u0024,u + std R$X,x + ldb <u0025,u + std R$Y,x + bra L0123 + +* SetStat +* +* Entry: +* A = function code +* Y = address of path descriptor +* U = address of device memory area +* +* Exit: +* CC = carry set on error +* B = error code +* +SetStat cmpa #SS.ComSt + bne L0183 + ldx PD.RGS,y + ldd R$Y,x +L014D std <u0022,u + clra + clrb + std <u001D,u + sta <u001F,u + ldd <u0022,u + tstb + bpl L0161 + inc <u001F,u +L0161 bitb #$40 + bne L017F + bitb #$20 + beq L016C + inc <u001E,u +L016C bita #$20 + beq L017E + bita #$80 + beq L017F + inc <u001D,u + bita #$40 + bne L017E + inc <u001D,u +L017E rts +L017F comb + ldb <E$BMode + rts +L0183 comb + ldb #E$UnkSvc + rts + + ENDC + + emod +eom equ * + end +
--- a/level1/modules/sio.asm Sat Nov 26 22:28:00 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,579 +0,0 @@ -******************************************************************** -* SIO - CoCo Serial driver -* -* $Id$ -* -* Edt/Rev YYYY/MM/DD Modified by -* Comment -* ------------------------------------------------------------------ -* 9 ????/??/?? ??? -* Original Tandy L2 distribution version. -* -* 10 ????/??/?? ??? -* Added baud delay table for NitrOS-9. -* -* 11 2003/12/15 Boisy G. Pitre -* Merged Level 1 and Level 2 sources for now. - - nam SIO - ttl CoCo Serial driver - -* Disassembled 98/08/23 20:58:36 by Disasm v1.6 (C) 1988 by RML - - ifp1 - use defsfile - endc - -tylg set Drivr+Objct -atrv set ReEnt+rev -rev set $00 -edition set 9 - - mod eom,name,tylg,atrv,start,size - - fcb UPDAT. - -name fcs /SIO/ - fcb edition - - IFGT Level-1 - -u0000 rmb 29 -u001D rmb 1 -u001E rmb 1 -u001F rmb 1 -u0020 rmb 2 -u0022 rmb 2 -u0024 rmb 1 -u0025 rmb 1 -size equ . - -* Baud Rate Delay Table -DelayTbl - IFEQ H6309 -* 6809 delay values (1.89MHz) - fdb $090C 110 baud - fdb $034C 300 baud - fdb $01A2 600 baud - fdb $00CE 1200 baud - fdb $0062 2400 baud - fdb $002E 4800 baud - fdb $0012 9600 baud - fdb $0003 32000 baud - ELSE -* 6309 native mode delay values (1.89MHz) - fdb $090C 110 baud (Unchanged, unknown) - fdb $03D0 300 baud - fdb $01A2 600 baud (Unchanged, unknown) - fdb $00F0 1200 baud - fdb $0073 2400 baud - fdb $0036 4800 baud - fdb $0017 9600 baud - fdb $0003 32000 baud (Unchanged, unknown) - ENDC - -start lbra Init - lbra Read - lbra Write - lbra GetStat - lbra SetStat - lbra Term - -* Init -* -* Entry: -* Y = address of device descriptor -* U = address of device memory area -* -* Exit: -* CC = carry set on error -* B = error code -* -Init pshs cc - orcc #IntMasks - ldx #PIA1Base - clr $01,x - ldd <IT.COL,y get col/row bytes - std <u0024,u - lda #$FE - sta ,x - lda #$36 - sta $01,x - lda ,x - ldd <IT.PAR,y get parity/baud - lbsr L0148 - puls cc - clrb - -* Term -* -* Entry: -* U = address of device memory area -* -* Exit: -* CC = carry set on error -* B = error code -* -Term rts - -* Read -* -* Entry: -* Y = address of path descriptor -* U = address of device memory area -* -* Exit: -* A = character read -* CC = carry set on error -* B = error code -* -Read bsr L00AC - bcs L00C8 - ldb #$08 - pshs b,cc - tst <u001E,u - beq L0066 - dec $01,s -L0066 bra L0077 -L0068 lda <PD.BAU,y - anda #$0F - cmpa #$07 - beq L0077 - ldx #$0001 - os9 F$Sleep -L0077 pshs y - ldy #$FFFF -L007D lda >PIA1Base+2 - leay -$01,y - beq L008B - lsra - bcs L007D - puls y - bra L0090 -L008B puls y - lsra - bcs L0068 -L0090 orcc #IntMasks - clra - bsr L00D5 -L0095 bsr L00CE - ldb >PIA1Base+2 - lsrb - rora - dec $01,s - bne L0095 - bsr L00D5 - tst <u001E,u - beq L00A8 - lsra -L00A8 puls b,cc - clrb - rts -L00AC pshs a - lda <PD.BAU,y - anda #$0F - cmpa #$08 - bcc L00C4 - lsla - leax >DelayTbl,pcr - ldd a,x - std <u0020,u - clrb - puls pc,a -L00C4 ldb #E$BMode - puls a -L00C8 orcc #Carry - rts -L00CB stb >PIA1Base -L00CE pshs b,a - ldd <u0020,u - bra L00DC -L00D5 pshs b,a - ldd <u0020,u - lsra - rorb -L00DC subd #$0001 - bne L00DC - puls pc,b,a - -* Write -* -* Entry: -* A = character to write -* Y = address of path descriptor -* U = address of device memory area -* -* Exit: -* CC = carry set on error -* B = error code -* -Write bsr L00AC - bcs L00C8 - ldb #$09 - pshs b,cc - orcc #IntMasks - tst <u001E,u - beq L00F4 - dec $01,s -L00F4 andcc #^Carry -L00F6 ldb #$02 - bcs L00FB - clrb -L00FB bsr L00CB - lsra - dec $01,s - bne L00F6 - ldb <u001D,u - beq L010B - andb #$FE - bsr L00CB -L010B ldb #$02 - bsr L00CB - tst <u001F,u - beq L0118 - ldb #$02 - bsr L00CB -L0118 puls pc,b,cc - -* GetStat -* -* Entry: -* A = function code -* Y = address of path descriptor -* U = address of device memory area -* -* Exit: -* CC = carry set on error -* B = error code -* -GetStat cmpa #SS.EOF - bne L0120 -L011E clrb - rts -L0120 ldx PD.RGS,y - cmpa #SS.ScSiz - beq L0131 - cmpa #SS.ComSt - bne L017E - ldd <u0022,u - std R$Y,x - bra L011E -L0131 ldx PD.RGS,y - clra - ldb <u0024,u - std R$X,x - ldb <u0025,u - std R$Y,x - bra L011E - -* SetStat -* -* Entry: -* A = function code -* Y = address of path descriptor -* U = address of device memory area -* -* Exit: -* CC = carry set on error -* B = error code -* -SetStat cmpa #SS.ComSt - bne L017E - ldx PD.RGS,y - ldd R$Y,x -L0148 std <u0022,u - clra - clrb - std <u001D,u - sta <u001F,u - ldd <u0022,u - tstb - bpl L015C - inc <u001F,u -L015C bitb #$40 - bne L017A - bitb #$20 - beq L0167 - inc <u001E,u -L0167 bita #$20 - beq L0179 - bita #$80 - beq L017A - inc <u001D,u - bita #$40 - bne L0179 - inc <u001D,u -L0179 rts -L017A comb - ldb #E$BMode - rts -L017E comb - ldb #E$UnkSvc - rts - - ELSE - - rmb V.SCF -u001D rmb 1 -u001E rmb 1 -u001F rmb 1 -BaudCnt rmb 2 baud rate counter -u0022 rmb 2 -u0024 rmb 1 -u0025 rmb 1 -size equ . - -BaudTbl fdb $0482 110 baud - fdb $01A2 300 baud - fdb $00CD 600 baud - fdb $0063 1200 baud - fdb $002D 2400 baud - fdb $0013 4800 baud - fdb $0005 9600 baud - -start lbra Init - lbra Read - lbra Write - lbra GetStat - lbra SetStat - lbra Term - -* Init -* -* Entry: -* Y = address of device descriptor -* U = address of device memory area -* -* Exit: -* CC = carry set on error -* B = error code -* -Init pshs cc - orcc #IntMasks - ldx #PIA1Base - clr $01,x - ldd <IT.COL,y get col/row bytes - std <u0024,u - lda #$FE - sta ,x - lda #$36 - sta $01,x - lda ,x - ldd <IT.PAR,y get parity/baud - lbsr L014D - puls cc - clrb - -* Term -* -* Entry: -* U = address of device memory area -* -* Exit: -* CC = carry set on error -* B = error code -* -Term rts - -* Read -* -* Entry: -* Y = address of path descriptor -* U = address of device memory area -* -* Exit: -* A = character read -* CC = carry set on error -* B = error code -* -Read bsr L00B1 - bcs L00CD - ldb #$08 - pshs b,cc - tst <u001E,u - beq L0066 - dec $01,s -L0066 bra L006E -L0068 ldx #$0001 - os9 F$Sleep -L006E lda >PIA1Base+2 - lsra - pshs x,a - lda >$FF69 - bpl L0091 - lda >PIA1Base+3 - bita #$01 - beq L0091 - bita #$80 - beq L0091 - orcc #Entire - leax <L0091,pcr - pshs x - pshs u,y,x,dp,b,a,cc - jmp [D.SvcIRQ] -L0091 puls x,a - bcs L0068 - orcc #IntMasks - clra - bsr L00DA -L009A bsr L00D3 - ldb >PIA1Base+2 - lsrb - rora - dec $01,s - bne L009A - bsr L00DA - tst <u001E,u - beq L00AD - lsra -L00AD puls b,cc - clrb - rts -L00B1 pshs a - lda <PD.BAU,y - anda #$0F mask out baud rate - cmpa #B19200 - bcc L00C9 - lsla - leax >BaudTbl,pcr - ldd a,x - std <BaudCnt,u - clrb - puls pc,a -L00C9 ldb #E$BMode - puls a -L00CD orcc #Carry - rts -L00D0 stb >PIA1Base -L00D3 pshs b,a - ldd <BaudCnt,u - bra L00E1 -L00DA pshs b,a - ldd <BaudCnt,u - lsra - rorb -L00E1 subd #$0001 - bne L00E1 - puls pc,b,a - -* Write -* -* Entry: -* A = character to write -* Y = address of path descriptor -* U = address of device memory area -* -* Exit: -* CC = carry set on error -* B = error code -* -Write bsr L00B1 - bcs L00CD - ldb #$09 - pshs b,cc - orcc #IntMasks - tst <u001E,u - beq L00F9 - dec $01,s -L00F9 andcc #^Carry -L00FB ldb #$02 - bcs L0100 - clrb -L0100 bsr L00D0 - lsra - dec $01,s - bne L00FB - ldb <u001D,u - beq L0110 - andb #$FE - bsr L00D0 -L0110 ldb #$02 - bsr L00D0 - tst <u001F,u - beq L011D - ldb #$02 - bsr L00D0 -L011D puls pc,b,cc - -* GetStat -* -* Entry: -* A = function code -* Y = address of path descriptor -* U = address of device memory area -* -* Exit: -* CC = carry set on error -* B = error code -* -GetStat cmpa #SS.EOF - bne L0125 -L0123 clrb - rts -L0125 ldx PD.RGS,y - cmpa #SS.ScSiz - beq L0136 - cmpa #SS.ComSt - bne L0183 - ldd <u0022,u - std R$Y,x - bra L0123 -L0136 ldx PD.RGS,y - clra - ldb <u0024,u - std R$X,x - ldb <u0025,u - std R$Y,x - bra L0123 - -* SetStat -* -* Entry: -* A = function code -* Y = address of path descriptor -* U = address of device memory area -* -* Exit: -* CC = carry set on error -* B = error code -* -SetStat cmpa #SS.ComSt - bne L0183 - ldx PD.RGS,y - ldd R$Y,x -L014D std <u0022,u - clra - clrb - std <u001D,u - sta <u001F,u - ldd <u0022,u - tstb - bpl L0161 - inc <u001F,u -L0161 bitb #$40 - bne L017F - bitb #$20 - beq L016C - inc <u001E,u -L016C bita #$20 - beq L017E - bita #$80 - beq L017F - inc <u001D,u - bita #$40 - bne L017E - inc <u001D,u -L017E rts -L017F comb - ldb <E$BMode - rts -L0183 comb - ldb #E$UnkSvc - rts - - ENDC - - emod -eom equ * - end -
--- a/level1/modules/t1_bbt.asm Sat Nov 26 22:28:00 2005 +0000 +++ b/level1/modules/t1_bbt.asm Sat Nov 26 22:51:50 2005 +0000 @@ -1,5 +1,5 @@ ******************************************************************** -* T1 - CoCo serial device descriptor +* T1 - CoCo Bit-Banger Terminal Device Descriptor * * $Id$ * @@ -8,7 +8,7 @@ * ------------------------------------------------------------------ nam T1 - ttl CoCo serial device descriptor + ttl CoCo Bit-Banger Terminal Device Descriptor * Disassembled 98/08/23 21:16:45 by Disasm v1.6 (C) 1988 by RML @@ -61,7 +61,7 @@ name fcs /T1/ mgrnam fcs /SCF/ -drvnam fcs /SIO/ +drvnam fcs /scbbt/ emod eom equ *
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/level1/modules/term_bbt.asm Sat Nov 26 22:51:50 2005 +0000 @@ -0,0 +1,68 @@ +******************************************************************** +* TERM - CoCo Bit-Banger Terminal Device Descriptor +* +* $Id$ +* +* Edt/Rev YYYY/MM/DD Modified by +* Comment +* ------------------------------------------------------------------ +* ????/??/?? +* From Tandy OS-9 Level One VR 02.00.00 + + nam TERM + ttl CoCo Bit-Banger Terminal Device Descriptor + +* Disassembled 98/08/23 21:16:45 by Disasm v1.6 (C) 1988 by RML + + ifp1 + use defsfile + use scfdefs + endc + +tylg set Devic+Objct +atrv set ReEnt+rev +rev set $00 + + mod eom,name,tylg,atrv,mgrnam,drvnam + + fcb UPDAT. mode byte + fcb HW.Page extended controller address + fdb $0000 physical controller address + fcb initsize-*-1 initilization table size + fcb DT.SCF device type:0=scf,1=rbf,2=pipe,3=scf + fcb $00 case:0=up&lower,1=upper only + fcb $01 backspace:0=bsp,1=bsp then sp & bsp + fcb $00 delete:0=bsp over line,1=return + fcb $01 echo:0=no echo + fcb $01 auto line feed:0=off + fcb $00 end of line null count + fcb $01 pause:0=no end of page pause + fcb 24 lines per page + fcb C$BSP backspace character + fcb C$DEL delete line character + fcb C$CR end of record character + fcb C$EOF end of file character + fcb C$RPRT reprint line character + fcb C$RPET duplicate last line character + fcb C$PAUS pause character + fcb C$INTR interrupt character + fcb C$QUIT quit character + fcb C$BSP backspace echo character + fcb C$BELL line overflow character (bell) + fcb PARNONE init value for dev ctl reg + fcb B300+WORD8+STOP1 baud rate + fdb name copy of descriptor name address + fcb $00 acia xon char + fcb $00 acia xoff char + fcb 80 (szx) number of columns for display + fcb 24 (szy) number of rows for display +initsize equ * + +name fcs /term/ +mgrnam fcs /SCF/ +drvnam fcs /scbbt/ + + emod +eom equ * + end +
--- a/level1/modules/term_sio.asm Sat Nov 26 22:28:00 2005 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -******************************************************************** -* TERM - CoCo Serial Device Descriptor for Terminal -* -* $Id$ -* -* Edt/Rev YYYY/MM/DD Modified by -* Comment -* ------------------------------------------------------------------ -* ????/??/?? -* From Tandy OS-9 Level One VR 02.00.00 - - nam T1 - ttl CoCo Serial Device Descriptor for Terminal - -* Disassembled 98/08/23 21:16:45 by Disasm v1.6 (C) 1988 by RML - - ifp1 - use defsfile - use scfdefs - endc - -tylg set Devic+Objct -atrv set ReEnt+rev -rev set $00 - - mod eom,name,tylg,atrv,mgrnam,drvnam - - fcb UPDAT. mode byte - fcb HW.Page extended controller address - fdb $0000 physical controller address - fcb initsize-*-1 initilization table size - fcb DT.SCF device type:0=scf,1=rbf,2=pipe,3=scf - fcb $00 case:0=up&lower,1=upper only - fcb $01 backspace:0=bsp,1=bsp then sp & bsp - fcb $00 delete:0=bsp over line,1=return - fcb $01 echo:0=no echo - fcb $01 auto line feed:0=off - fcb $00 end of line null count - fcb $01 pause:0=no end of page pause - fcb 24 lines per page - fcb C$BSP backspace character - fcb C$DEL delete line character - fcb C$CR end of record character - fcb C$EOF end of file character - fcb C$RPRT reprint line character - fcb C$RPET duplicate last line character - fcb C$PAUS pause character - fcb C$INTR interrupt character - fcb C$QUIT quit character - fcb C$BSP backspace echo character - fcb C$BELL line overflow character (bell) - fcb PARNONE init value for dev ctl reg - fcb B300+WORD8+STOP1 baud rate - fdb name copy of descriptor name address - fcb $00 acia xon char - fcb $00 acia xoff char - fcb 80 (szx) number of columns for display - fcb 24 (szy) number of rows for display -initsize equ * - -name fcs /term/ -mgrnam fcs /SCF/ -drvnam fcs /SIO/ - - emod -eom equ * - end -
--- a/level2/coco3/bootlists/standard.bl Sat Nov 26 22:28:00 2005 +0000 +++ b/level2/coco3/bootlists/standard.bl Sat Nov 26 22:51:50 2005 +0000 @@ -152,7 +152,7 @@ *../MODULES/SCF/term_vdg.dt *../MODULES/SCF/term_win40.dt ../MODULES/SCF/term_win80.dt -*../MODULES/SCF/term_sio.dt +*../MODULES/SCF/term_bbt.dt *../MODULES/SCF/term_sc6551.dt * * Select as many window descriptors as needed @@ -175,8 +175,8 @@ *../MODULES/SCF/v7.dw * * Serial port drivers -* Built-In RS-232 port -*../MODULES/SCF/sio.dr +* CoCo Bit-Banger terminal port +*../MODULES/SCF/scbbt.dr *../MODULES/SCF/t1.dd * 6551 ACIA *../MODULES/SCF/sc6551.dr @@ -188,7 +188,7 @@ *../MODULES/SCF/m2.dd * * Printer drivers -* ../MODULES/SCF/printer.dr +* ../MODULES/SCF/scbbp.dr * ../MODULES/SCF/p.dd * * VRN is a driver module used by certain games, including King's Quest III,
--- a/level2/coco3_6309/bootlists/standard.bl Sat Nov 26 22:28:00 2005 +0000 +++ b/level2/coco3_6309/bootlists/standard.bl Sat Nov 26 22:51:50 2005 +0000 @@ -152,7 +152,7 @@ *../MODULES/SCF/term_vdg.dt *../MODULES/SCF/term_win40.dt ../MODULES/SCF/term_win80.dt -*../MODULES/SCF/term_sio.dt +*../MODULES/SCF/term_bbt.dt *../MODULES/SCF/term_sc6551.dt * * Select as many window descriptors as needed @@ -175,8 +175,8 @@ *../MODULES/SCF/v7.dw * * Serial port drivers -* Built-In RS-232 port -*../MODULES/SCF/sio.dr +* CoCo Bit-Banger terminal port +*../MODULES/SCF/scbbt.dr *../MODULES/SCF/t1.dd * 6551 ACIA *../MODULES/SCF/sc6551.dr @@ -188,7 +188,7 @@ *../MODULES/SCF/m2.dd * * Printer drivers -* ../MODULES/SCF/printer.dr +* ../MODULES/SCF/scbbp.dr * ../MODULES/SCF/p.dd * * VRN is a driver module used by certain games, including King's Quest III,
--- a/level2/modules/makefile Sat Nov 26 22:28:00 2005 +0000 +++ b/level2/modules/makefile Sat Nov 26 22:51:50 2005 +0000 @@ -37,14 +37,14 @@ SCF = scf.mn \ - vtio.dr vrn.dr printer.dr sio.dr sspak.dr sc6551.dr \ + vtio.dr vrn.dr scbbp.dr scbbt.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.dd \ t1.dd t2_sc6551.dd t3_sc6551.dd \ - ftdd.dd vi.dd ssp.dd term_sio.dt term_sc6551.dt \ + ftdd.dd vi.dd ssp.dd term_bbt.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 v1.dw v2.dw v3.dw v4.dw v5.dw \ v6.dw v7.dw