Mercurial > hg > Members > kono > nitros9-code
changeset 1682:e2ac12787e55
Sticking with clock2_smart for now. Also moved Robert's swread and swset to 3rdparty/utils
author | boisy |
---|---|
date | Fri, 30 Jul 2004 23:49:50 +0000 |
parents | 48f9212ef739 |
children | 786453492c1e |
files | 3rdparty/utils/smartwatch/swread.asm 3rdparty/utils/smartwatch/swset.asm defs/os9defs defs/releasedefs docs/Getting Started With NitrOS-9.doc level1/ChangeLog level1/cmds/format.asm level1/cmds/makefile level1/cmds/swread.asm level1/modules/makefile level1/modules/sysgo.asm level1/sys/makefile level2/cmds/makefile level2/coco3/ChangeLog level2/coco3_6309/ChangeLog level2/makefile level2/modules/makefile level2/sys/makefile |
diffstat | 18 files changed, 676 insertions(+), 980 deletions(-) [+] |
line wrap: on
line diff
--- a/3rdparty/utils/smartwatch/swread.asm Fri Jul 30 02:33:35 2004 +0000 +++ b/3rdparty/utils/smartwatch/swread.asm Fri Jul 30 23:49:50 2004 +0000 @@ -4,7 +4,7 @@ * $Id$ * * Copyright May, 1990 by Robert Gault - + * SWREAD will read smartwatch compensating for 12hr mode if active * time will be sent to OS-9 in 24hr mode for compatability * @@ -25,16 +25,32 @@ * RAM/ROM block when ROMs activated. * 2 Relocated part of clock read routine to RG 94/12/19 * shorten the time spent with irqs off. - +* 3 Adapted module for Level-1 use. Trimmed code. RG 04/07/24 +* Forced to add back the relocation loop for Level-1. +* Attempted to write a clock2 modules but just too +* difficult to acquire needed system low ram. +* Removed 6309 code for consistency as it had +* little effect on speed or size. +* Switched from Chain to Setime to Fork. + nam SWRead ttl Read SmartWatch clock - + ifp1 use defsfile - use systype endc +DOHELP equ 0 +SETIME equ 0 + +* Next three lines for testing purposes. Remove as makefile will +* handle this choice. +*Level equ 1 +*Level equ 2 +*D.TSec equ $5A + cartI equ $FF22 cartridge IRQ report +MPI.Slct equ $FF7F rom equ $FFDE ram equ $FFDF IEN equ %00100000 @@ -42,235 +58,293 @@ SCS equ %00000100 ROM1 equ %00000010 ROM0 equ %00000001 -*D.Cntury set $6A century byte - +RTC.Base equ $C000 +RTC.Blk equ $3E +RTC.Read equ 4 +RTC.Zero equ 0 +RTC.One equ 1 + type set prgrm+objct revs set reent+1 -edition set 2 - +edition set 3 + mod pgrmend,name,type,revs,start,size - + name fcs /SWRead/ fcb edition - + locblk0 rmb 2 pointer to block 0 locblk3E rmb 2 pointer to block $3E ie. disk ROM -dpsave rmb 1 sleep rmb 1 sleep interval time in minutes -byte1 rmb 1 temp storage of clock read data; if never changes - no clock +byte1 rmb 1 clock read data; if no change - no clock clkflag rmb 1 set when clock is found mpiimage rmb 1 sleepflg rmb 1 indicates multiple reads requested timer rmb 1 count down for sleep interval; per minute century rmb 1 century flag rawdata rmb 8 direct readout from clock chip - +relocimg rmb 300 place in data for relocated code stack rmb 200 size equ . - + message1 fcc /no clock found/ fcb C$CR + IFNE SETIME setime fcc /setime/ forced chain to setime routine fcb C$CR - + ENDC + + IFNE DOHELP errmes fcb C$LF - fcc /Swread syntax:/ + fcc /SWRead syntax:/ fcb C$LF,C$LF - fcc /swread [n&]/ + fcc /SWRead [n&]/ fcb C$LF fcc / The parameter string is optional; n = 1 to 60 min/ fcb C$LF - fcc / permitting the watch to be poled in background every/ + fcc / permits watch to be polled in background every/ fcb C$LF fcc / n minutes. Use decimal time values./ fcb C$CR -allert fcb $C5,$3A,$A3,$5C,$C5,$3A,$A3,$5C,0 - -start clr <sleepflg + ENDC +errmes2 fcb C$LF + fcc /Don't have relocation memory./ + fcb C$LF,C$CR + +start clr sleepflg cmpd #2 blo noparams ldd ,x cmpa #'? - lbeq syntax + beq syntax cmpa #'- - lbeq syntax - + beq syntax + cmpb #'0 if second byte is CR then only one number blo onebyte subd #$3030 convert from ascii to bcd - + cmpd #$600 one hour skip is max - lbhi syntax + bhi syntax cmpb #9 must be a number from 0-9 - lbhi syntax - + bhi syntax + pshs b convert reg.D to hexidecimal ldb #10 mul addb ,s+ bra storeit + +syntax + IFNE DOHELP + lda #2 + leax errmes,pcr + ldy #300 + os9 I$Writln + ENDC + clrb + os9 F$Exit onebyte suba #'0 cmpa #9 - lbhi syntax - -storeit stb <timer - stb <sleep used to reset timer on count down - com <sleepflg - + bhi syntax + +storeit stb timer + stb sleep used to reset timer on count down + com sleepflg + noparams equ * lda MPI.Slct anda #3 retain IRQ settings ora #$30 start at slot 4; ROM setting - sta <mpiimage - + sta mpiimage + + IFGT Level-1 doit pshs u ldb #1 single block - ldx #$3E disk rom; $07C000-$07DFFF + ldx #RTC.Blk disk rom; $07C000-$07DFFF os9 F$MapBlk map into user space clock ROM bcs exit2 stu locblk3E save pointer ldx #0 system direct page os9 F$MapBlk system direct page bcs exit2 - leax ,u faster but = to TFR; get pointer for system DP stu locblk0 save pointer - tfr dp,b get our own DP - stb dpsave - bsr readclk - - ldb #1 unmap blocks from user space - ldu locblk3E get pointer - os9 F$ClrBlk - ldb #1 - ldu locblk0 get pointer + ldb #1 block count + ldu locblk3E + os9 F$ClrBlk unmap the block + ldu locblk0 os9 F$ClrBlk puls u - - tst <clkflag was clock found? + ELSE + tfr u,d + cmpa #$7E + lbhs noroom the assigned DP is too close to ROM + ldx #RTC.Base + stx locblk3E + ldx #0 + stx locblk0 + leax readclk,pcr + pshs u + leau relocimg,u + ldy #endrel-readclk +reloc lda ,x+ move the read routines to the data page + sta ,u+ + leay -1,y + bne reloc + puls u +doit jsr relocimg,u + ENDC + + tst clkflag was clock found? beq error2 - tst <sleepflg are we in repeat mode? + tst sleepflg are we in repeat mode? beq exit - + snooze ldx #3540 = one minute of ticks minus one second for overhead os9 F$Sleep cmpx #0 bne exit received signal so quit - + dec timer bne snooze - + lda sleep reset timer sta timer bra doit go and read the clock + +exit2 puls u + bra ex -exit2 leas 2,s puls u - coma set cc - os9 F$Exit error ldb #E$IllArg - os9 F$Exit - + bra ex + error2 lda #2 error path leax message1,pcr ldy #40 os9 I$WritLn + IFNE SETIME * force a normal Setime as SmartWatch was not detected lda #Prgrm+Objct modul type ldb #2 size of data area leax setime,pcr ldy #0 parameter size - leas stack,u - leau size,u +* leas stack,u os9 F$Chain -exit clrb - os9 F$exit - + ENDC +exit equ * + clrb +ex os9 F$Exit + * this is the heart of the clock reading routine -* regX regU point to system direct page + readclk pshs cc - lda d.hinit,x get $FF90 image + IFGT Level-1 + lda d.hinit,u get $FF90 image + ENDC ldb MPI.Slct get current setting pshs d save them + IFGT Level-1 anda #^(IEN+FEN+ROM1+ROM0) no GIME IRQ/FIRQ; external access orcc #IntMasks stop interrupts sta $FF90 + ELSE + orcc #IntMasks stop interrupts + ENDC sta rom go to ROM mode - ldx <locblk3E point to clock ROM - ldb <mpiimage get new value for MPI - clr <clkflag start with clock not found - lda locblk3E - tfr a,dp point to clock - + ldx locblk3E point to clock ROM + ldb mpiimage get new value for MPI + clr clkflag start with clock not found + findclk stb MPI.Slct set new slot - leay allert,pcr point to clock wakeup code - lda <4 clear clock at $C004 - clrb - bita #1 1bit serial I/O port; if no clock, all bits should be 0 or 1 - beq low - comb -low stb >byte1 save as flag for found clock - + leay <alert,pcr point to clock wakeup code + lda RTC.Read,x clear clock at $C004 +* Reading clock fills a byte with bit0. If clock not present, +* then result is either $00 or $FF. Any other test byte will +* result in a false positive for finding the clock. + clrb + bita #1 + beq f1 + comb +f1 stb byte1 set initial value and look for change + nxtbyte ldb #8 bits/byte lda ,y+ beq gettime nxtbit lsra do a serial generation bcs high - cmpa <0 talk to clock at $C000; cmp faster than tst + cmpa RTC.Zero,x talk to clock at $C000; cmp faster than tst bra high2 -high cmpa <1 talk to clock at $C001 +high cmpa RTC.One,x talk to clock at $C001 high2 decb bne nxtbit bra nxtbyte + +* Code to tell swatch socket to switch from ROM to clock. +alert fcb $C5,$3A,$A3,$5C,$C5,$3A,$A3,$5C,0 gettime lda #8 8 bytes to read from clock pshs a + IFGT Level-1 ldy #rawdata + ELSE + leay rawdata,u + ENDC * read serial bit stream from clock -timebyte lsr <4 - rora - lsr <4 - rora - lsr <4 - rora - lsr <4 +timebyte lsr RTC.Read,x this is faster than a short loop with dec/bne rora - lsr <4 - rora - lsr <4 - rora - lsr <4 - rora - lsr <4 - rora - sta ,y+ store in raw data - cmpa >byte1 if reg.A never changes then no clock - beq maybe always possible that a clock byte might look like ROM - inc >clkflag indicate a found clock + lsr RTC.Read,x + rora + lsr RTC.Read,x + rora + lsr RTC.Read,x + rora + lsr RTC.Read,x + rora + lsr RTC.Read,x + rora + lsr RTC.Read,x + rora + lsr RTC.Read,x + rora + sta ,y+ store in raw data + tst clkflag once clock found, bypass tests + bne maybe + cmpa byte1 + beq maybe always possible a clock byte looks like ROM + inc clkflag maybe dec ,s bne timebyte leas 1,s yank counter - tst >clkflag did we find the clock? + tst clkflag bne found - ldb >mpiimage try another MPI slot + ldb mpiimage bitb #$30 did we get to slot 0? - beq found + beq found yes? then quick looking subb #$10 next slot - stb >mpiimage save image so that we don't hunt the next time. + stb mpiimage bra findclk -found lda >dpsave - tfr a,dp back to program DP +noclk rts +found equ * sta ram go back to RAM mode puls d stb MPI.Slct restore to original setting - tst cartI clear CART flag incase autostart ROM pack was present in MPI + tst cartI clear CART flag for autostart ROM pack present in MPI + IFGT Level-1 sta $FF90 restore GIME mode + ENDC puls cc restore IRQs - tst <clkflag + tst clkflag beq noclk + IFGT Level-1 ldx #rawdata leay D.Slice,u + ELSE + leax rawdata,u + ldy #D.TSec $5A + ENDC ldb #8 pshs b trans lda ,x+ translate serial data into OS-9 format @@ -279,19 +353,15 @@ bne notyr cmpa #$80 binary coded decimal number bhi nintn -* ldb #20 -* stb D.Cntury,u - sta <century + sta century bra notyr -nintn -* ldb #19 -* stb D.Cntury,u - clr <century -*notyr ldb ,s +nintn clr century notyr cmpb #4 day of the week bne notdywk + IFGT Level-1 anda #7 sta D.Daywk,u + ENDC bra nxtdata notdywk cmpb #5 special 12/24, AM/PM indicator bne cnvrt convert any number @@ -299,7 +369,7 @@ beq cnvrt 24 hour time bita #%00100000 AM/PM bit since 12 hour time, check AM/PM pshs cc - anda #%00011111 keep only time + anda #%00011111 keep only time 1-12 puls cc bne PMhr cmpa #$12 bcd value @@ -308,45 +378,34 @@ bra cnvrt Pmhr cmpa #$12 bcd value beq cnvrt 12PM = 1200 24 hr time - adda #$12 all other times (1-11) add 12; ie. 1300-2300 -cnvrt tfr a,b return result in reg.B - anda #%11110000 get MSN - lsra - lsra - sta ,-s save #4a - lsra - sta ,-s save #2a - subb ,s+ 16a+b-4a - subb ,s+ 12a+b-2a=10a+b + adda #$12 bcd value; other times (1-11) add 12; ie. 1300-2300 +cnvrt clrb convert BCD to binary +a1 cmpa #$10 + bcs a2 + addd #$f00a + bra a1 +a2 pshs a + addb ,s+ stb ,-y decrease pointer and then store nxtdata dec ,s bne trans - tst <century + tst century beq not20 - lda #100 + lda #100 user convention for >1999 values adda ,y sta ,y not20 puls b,pc - -noclk clr D.Daywk,u clear garbage as new date routine reads D.Daywk - leay D.Time,u - ldd #7 -noclklp sta ,y+ clear clock packet; faster than a clr ,y+ - decb - bne noclklp -* clr D.Cntury,u - clr <century - clr <clkflag - rts - -syntax lda #2 - leax errmes,pcr - ldy #300 - os9 I$Writln - clrb - os9 F$Exit + +* This is the end of the code to be relocated. +endrel equ * + +noroom lda #2 + leax errmes2,pcr + ldy #300 + os9 I$WritLn + clrb + os9 F$Exit emod pgrmend equ * end -
--- a/3rdparty/utils/smartwatch/swset.asm Fri Jul 30 02:33:35 2004 +0000 +++ b/3rdparty/utils/smartwatch/swset.asm Fri Jul 30 23:49:50 2004 +0000 @@ -1,362 +1,405 @@ -******************************************************************** -* SWSet - Set time in SmartWatch -* -* $Id$ -* -* Copyright May, 1990 by Robert Gault -* -* SWSET will set the smartwatch in either 12hr or 24hr mode -* time will be sent to OS-9 in 24hr mode for compatability -* see new DATE which presents time in 12hr. mode with day of week -* and SWREAD which sends data from clock to OS-9 -* -* Ed. Comments Who YY/MM/DD -* ------------------------------------------------------------------ -* 1 Revised: clock disable; no relocation RG 95/07/04 - - nam SWSet - ttl Set time in SmartWatch - - ifp1 - use defsfile - use systype - endc - -type set prgrm+objct -revs set reent+1 -edition set 1 - - mod pgrmend,name,type,revs,start,size - - -locblk0 rmb 2 pointer to block 0 -locblk3E rmb 2 pointer to block $3E ie. disk ROM -temp1 rmb 1 -temp2 rmb 1 -clkbyte rmb 1 -clkflag rmb 1 -mpiimage rmb 1 -alrtimag rmb 8 storage for the allert code with following: -csec rmb 1 -sec rmb 1 -min rmb 1 -hour rmb 1 -daywk rmb 1 -daymn rmb 1 -month rmb 1 -year rmb 1 -stopbyte rmb 1 -rawdata rmb 18 -stack rmb 200 -size equ . - -rom equ $FFDE -ram equ $FFDF -cartI equ $FF22 -skp1 equ $21 -skp2 equ $8C code for cmpx #nn - -name fcs /SWSet/ - fcb edition - -clknfnd fcb C$LF - fcc /no clock found/ - fcb C$LF - fcc /I'm running Setime/ - fcb C$CR -setime fcc /setime/ - fcb C$CR -swread fcc /swread/ - fcb C$CR - -query lda #1 - os9 I$Writln - clra path 0 - leax temp1,u storage - ldy #1 - os9 I$Read - lda temp1 get key - rts - -start leax alrtimag,u point to image of allert code - ldb #8 - leay allert,pcr -s1loop lda ,y+ transfer to data - sta ,x+ - decb - bne s1loop - ldb #8 -s2loop clr ,x+ clear out the time date data - decb - bne s2loop - dec ,x mark stop byte - lda MPI.Slct - anda #3 keep IRQ - ora #$30 start with slot 4 - sta mpiimage save setting - lda #1 - leax crmesage,pcr copyright message - ldy #mesage1-crmesage - os9 I$WritLn -getfunc leax mesage1,pcr select time or disable clock - ldy #mesage2-mesage1 - bsr query - anda #$DF - cmpa #'D disable - lbeq killit - cmpa #'T timer - lbeq doit - cmpa #'C clock - bne getfunc -getday leax mesage2,pcr - ldy #mesage3-mesage2 get day of week - bsr query - suba #'0 - blo getday - cmpa #7 - bhi getday - sta daywk convert from ascii to number -tmode leax mesage3,pcr 12 or 24 hour time - ldy #mesage4-mesage3 - bsr query - cmpa #'1 error trap - blo tmode - cmpa #'2 - bhi tmode - beq date - lda #%10000000 12 hr bit - sta hour -getAMPM leax mesage4,pcr - ldy #mesage5-mesage4 - lbsr query - clrb - anda #$df - cmpa #'A - beq AMPMcode - cmpa #'P - bne getAMPM - ldb #%100000 PM bit -AMPMcode orb hour - stb hour -date leax mesage5,pcr get date and time - lda #1 - ldy #endmes-mesage5 - os9 I$Writln - clra - leax rawdata,u - ldy #18 - os9 I$ReadLn - leax rawdata,u - clr temp1 - bsr ascbcd - stb year - bsr ascbcd - stb month - bsr ascbcd - stb daymn - bsr ascbcd - tst hour - beq sthour - cmpb #$12 max in 12 hour mode - bhi date - orb hour -sthour stb hour - bsr ascbcd - stb min - bsr ascbcd - stb sec - bra doit - -ascbcd clr temp2 - bsr data1 - bne noinfo - com temp2 - tfr a,b - bsr data1 - bne endasc - lslb - lslb - lslb - lslb - pshs a - addb ,s+ - inca -endasc rts -noinfo leas 2,s - bra doit - -data1 lda ,x+ - beq nomore - cmpa #C$CR - beq nomore - cmpa #C$SPAC - beq data2 - cmpa #'/ - beq data2 - cmpa #': - beq data2 - suba #'0 - bcs error - cmpa #9 - bhi error - orcc #Zero - rts -data2 tst temp2 - beq data1 - rts -nomore com temp1 - rts -error leas 4,s - lbra date - -doit pshs u - ldb #1 - ldx #$3E disk rom - os9 f$mapblk - bcs exit2 - stu locblk3E - ldx #0 - os9 f$mapblk - bcs exit2 - leax ,u - stx locblk0 - ldu ,s - bsr reloc - ldb #1 - ldu locblk3E - os9 f$clrblk - ldb #1 - ldu locblk0 - os9 f$clrblk - puls u - tst clkflag - bne exit - lda #2 - leax clknfnd,pcr - ldy #40 - os9 I$Writln - lda #$11 - ldb #2 - leax setime,pcr - ldy #0 - leas stack,u - leau size,u - os9 F$Chain -exit lda #$11 - ldb #2 - leax swread,pcr - ldy #0 - leas stack,u - leau size,u - os9 F$Chain -exit2 leas 2,s - coma - os9 F$Exit - -killit lda #C$SPAC - sta daywk - bra doit - -reloc pshs cc - lda d.hinit,x get $FF90 image - ldb MPI.Slct - pshs d - anda #$CC external disk rom access - orcc #IntMasks - sta $FF90 set for external ROM - sta rom - ldx locblk3E - ldb mpiimage get new value - clr clkflag - -findclk stb MPI.Slct set new slot - leay allert,pcr - lda 4,x clear clock - clrb - bita #1 - beq low - comb -low stb clkbyte - bsr nxtbyte - bsr gettime - tst clkflag - bne found - ldb mpiimage - bitb #$30 test for last try - beq found - subb #$10 next slot - stb mpiimage - lbra findclk - -nxtbyte ldb #8 bits/byte - lda ,y+ - cmpa #-1 - bne nxtbit - rts -nxtbit lsra - bcs high - cmpa ,x talk to clock; faster than tst - fcb skp2 -high cmpa 1,x - decb - bne nxtbit - bra nxtbyte - -gettime lda #8 bytes to read - pshs a -timebyte ldb #8 -timebit lsr 4,x read clock - rora - decb - bne timebit - cmpa clkbyte - beq maybe - inc clkflag -maybe dec ,s - bne timebyte - leas 1,s - rts - -found tst clkflag - beq noclk1 - leay alrtimag,u - lda 4,x - bsr nxtbyte -noclk1 sta ram - puls d - stb MPI.Slct - tst cartI - sta $ff90 - puls cc,pc - -allert fcb $C5,$3A,$A3,$5C,$C5,$3A,$A3,$5C,$ff -crmesage fcb C$LF - fcc /Set Smartwatch/ - fcb C$LF - fcc /(c) May, 1990 by Robert Gault/ - fcb C$LF - fcb C$CR -mesage1 fcc /Select clock, timer, or disable/ - fcb C$LF - fcc /<C>lock; <T>imer; <D>isable ->/ -mesage2 fcb C$LF - fcc /Enter the day 0-7; Mon=1 Sun=7/ - fcb C$LF - fcc /day = ->? / -mesage3 fcb C$LF - fcc /Select 12 or 24 hour clock/ - fcb C$LF - fcc /<1> = 12; <2> = 24 ->/ -mesage4 fcb C$LF - fcc /Select <A>M or <P>M ->/ -mesage5 fcb C$LF - fcc /Enter as much of the date & time as desired/ - fcb C$LF - fcc !yy/mm/dd hh:mm:ss! - fcb C$LF - fcc /->/ -endmes equ * - - emod -pgrmend equ * - end +******************************************************************** +* SWSet - Set time in SmartWatch +* +* $Id$ +* +* Copyright May, 1990 by Robert Gault +* +* SWSET will set the smartwatch in either 12hr or 24hr mode +* time will be sent to OS-9 in 24hr mode for compatability +* see new DATE which presents time in 12hr. mode with day of week +* and SWREAD which sends data from clock to OS-9 +* +* Ed. Comments Who YY/MM/DD +* ------------------------------------------------------------------ +* 1 Revised: clock disable; no relocation RG 95/07/04 +* Revised to accommodate Level1 & Level2 so RG 04/07/28 +* relocation of code brought back. + + nam SWSet + ttl Set time in SmartWatch + + ifp1 + use defsfile + use systype + endc + +type set prgrm+objct +revs set reent+1 +edition set 1 + + mod pgrmend,name,type,revs,start,size + + +locblk0 rmb 2 pointer to block 0 +locblk3E rmb 2 pointer to block $3E ie. disk ROM +temp1 rmb 1 +temp2 rmb 1 +clkbyte rmb 1 +clkflag rmb 1 +mpiimage rmb 1 +alrtimag rmb 8 storage for the alert code with following: +csec rmb 1 +sec rmb 1 +min rmb 1 +hour rmb 1 +daywk rmb 1 +daymn rmb 1 +month rmb 1 +year rmb 1 +stopbyte rmb 1 +rawdata rmb 18 +relocimg rmb 300 +stack rmb 200 +size equ . + +rom equ $FFDE +ram equ $FFDF +cartI equ $FF22 +skp1 equ $21 +skp2 equ $8C code for cmpx #nn + +name fcs /SWSet/ + fcb edition + +clknfnd fcb C$LF + fcc /no clock found/ + fcb C$LF + fcc /I'm running Setime/ + fcb C$CR +setime fcc /setime/ + fcb C$CR +swread fcc /swread/ + fcb C$CR + +query lda #1 + os9 I$Writln + clra path 0 + leax temp1,u storage + ldy #1 + os9 I$Read + lda temp1 get key + rts + +noroom lda #2 + leax mesroom,pcr + ldy #50 + os9 I$WritLn + clrb + os9 F$Exit + +start leax alrtimag,u point to image of alert code + ldb #8 + leay alert,pcr +s1loop lda ,y+ transfer to data + sta ,x+ + decb + bne s1loop + ldb #8 +s2loop clr ,x+ clear out the time date data + decb + bne s2loop + dec ,x mark stop byte + lda MPI.Slct + anda #3 keep IRQ + ora #$30 start with slot 4 + sta mpiimage save setting + lda #1 + leax crmesage,pcr copyright message + ldy #mesage1-crmesage + os9 I$WritLn +getfunc leax mesage1,pcr select time or disable clock + ldy #mesage2-mesage1 + bsr query + anda #$DF + cmpa #'D disable + lbeq killit + cmpa #'T timer + lbeq doit + cmpa #'C clock + bne getfunc +getday leax mesage2,pcr + ldy #mesage3-mesage2 get day of week + bsr query + suba #'0 + blo getday + cmpa #7 + bhi getday + sta daywk convert from ascii to number +tmode leax mesage3,pcr 12 or 24 hour time + ldy #mesage4-mesage3 + bsr query + cmpa #'1 error trap + blo tmode + cmpa #'2 + bhi tmode + beq date + lda #%10000000 12 hr bit + sta hour +getAMPM leax mesage4,pcr + ldy #mesage5-mesage4 + lbsr query + clrb + anda #$df + cmpa #'A + beq AMPMcode + cmpa #'P + bne getAMPM + ldb #%100000 PM bit +AMPMcode orb hour + stb hour +date leax mesage5,pcr get date and time + lda #1 + ldy #endmes-mesage5 + os9 I$Writln + clra + leax rawdata,u + ldy #18 + os9 I$ReadLn + leax rawdata,u + clr temp1 + bsr ascbcd + stb year + bsr ascbcd + stb month + bsr ascbcd + stb daymn + bsr ascbcd + tst hour + beq sthour + cmpb #$12 max in 12 hour mode + bhi date + orb hour +sthour stb hour + bsr ascbcd + stb min + bsr ascbcd + stb sec + bra doit + +ascbcd clr temp2 + bsr data1 + bne noinfo + com temp2 + tfr a,b + bsr data1 + bne endasc + lslb + lslb + lslb + lslb + pshs a + addb ,s+ +* inca +endasc rts +noinfo leas 2,s + bra doit + +data1 lda ,x+ + beq nomore + cmpa #C$CR + beq nomore + cmpa #C$SPAC + beq data2 + cmpa #'/ + beq data2 + cmpa #': + beq data2 + suba #'0 + bcs error + cmpa #9 + bhi error + orcc #Zero + rts +data2 tst temp2 + beq data1 + rts +nomore com temp1 + rts +error leas 4,s + lbra date + +doit equ * + IFGT Level-1 + pshs u + ldb #1 + ldx #$3E disk rom + os9 f$mapblk + bcs exit2 + stu locblk3E + ldx #0 + os9 f$mapblk + bcs exit2 + leax ,u + stx locblk0 + ldu ,s + bsr reloc + ldb #1 + ldu locblk3E + os9 f$clrblk + ldb #1 + ldu locblk0 + os9 f$clrblk + puls u + ELSE + tfr u,d look at the start of the program data page + cmpa #$7E + lbhs noroom + ldx #RTC.Base + stx locblk3E + ldx #0 + stx locblk0 + leax reloc,pcr + pshs u + leau relocimg,u + ldy #endrel-reloc +rl lda ,x+ + sta ,u+ + leay -1,y + bne rl + puls u + jsr relocimg,u + ENDC + tst clkflag + bne exit + lda #2 + leax clknfnd,pcr + ldy #40 + os9 I$Writln + lda #$11 + ldb #2 + leax setime,pcr + ldy #0 + leas stack,u + leau size,u + os9 F$Chain +exit lda #$11 + ldb #2 + leax swread,pcr + ldy #0 + leas stack,u + leau size,u + os9 F$Chain +exit2 leas 2,s + coma + os9 F$Exit + +killit lda #C$SPAC + sta daywk + bra doit + +* regX points to system DP, regU points to program DP +reloc pshs cc + IFGT Level-1 + lda d.hinit,x get $FF90 image + ENDC + ldb MPI.Slct + pshs d + IFGT Level-1 + anda #$CC external disk rom access + ENDC + orcc #IntMasks + IFGT Level-1 + sta $FF90 set for external ROM + ENDC + sta rom + ldx locblk3E + ldb mpiimage get new value + clr clkflag + +findclk stb MPI.Slct set new slot + leay alert,pcr + lda 4,x clear clock + clrb + bita #1 + beq low + comb +low stb clkbyte + bsr nxtbyte + bsr gettime + tst clkflag + bne found + ldb mpiimage + bitb #$30 test for last try + beq found + subb #$10 next slot + stb mpiimage + lbra findclk + +nxtbyte ldb #8 bits/byte + lda ,y+ + cmpa #-1 + bne nxtbit + rts +nxtbit lsra + bcs high + cmpa ,x talk to clock; faster than tst + fcb skp2 +high cmpa 1,x + decb + bne nxtbit + bra nxtbyte + +gettime lda #8 bytes to read + pshs a +timebyte ldb #8 +timebit lsr 4,x read clock + rora + decb + bne timebit + cmpa clkbyte + beq maybe + inc clkflag +maybe dec ,s + bne timebyte + leas 1,s + rts + +found tst clkflag + beq noclk1 + leay alrtimag,u + lda 4,x + bsr nxtbyte +noclk1 sta ram + puls d + stb MPI.Slct + tst cartI + sta $ff90 + puls cc,pc + +alert fcb $C5,$3A,$A3,$5C,$C5,$3A,$A3,$5C,$ff +endrel equ * + +mesroom fcb C$LF + fcc /Don't have relocation memory!/ + fcb C$CR +crmesage fcb C$LF + fcc /Set Smartwatch/ + fcb C$LF + fcc /(c) May, 1990 by Robert Gault/ + fcb C$LF + fcb C$CR +mesage1 fcc /Select clock, timer, or disable/ + fcb C$LF + fcc /<C>lock; <T>imer; <D>isable ->/ +mesage2 fcb C$LF + fcc /Enter the day 0-7; Mon=1 Sun=7/ + fcb C$LF + fcc /day = ->? / +mesage3 fcb C$LF + fcc /Select 12 or 24 hour clock/ + fcb C$LF + fcc /<1> = 12; <2> = 24 ->/ +mesage4 fcb C$LF + fcc /Select <A>M or <P>M ->/ +mesage5 fcb C$LF + fcc /Enter as much of the date & time as desired/ + fcb C$LF + fcc !yy/mm/dd hh:mm:ss! + fcb C$LF + fcc /->/ +endmes equ * + + emod +pgrmend equ * + end
--- a/defs/os9defs Fri Jul 30 02:33:35 2004 +0000 +++ b/defs/os9defs Fri Jul 30 23:49:50 2004 +0000 @@ -399,6 +399,7 @@ org $00 D.WDAddr rmb 2 FHL/Isted WD1002-05 interface base address D.WDBtDr rmb 1 FHL/Isted WD1002-05 boot physical device drive num. +D.SWPage rmb 1 SmartWatch page # (see clock2_smart) rmb 5 D.COCOXT rmb 1 Busy flag for CoCo-XT driver (one drive at a time) @@ -476,6 +477,7 @@ org $00 D.WDAddr rmb 2 FHL/Isted WD1002-05 interface base address D.WDBtDr rmb 1 FHL/Isted WD1002-05 boot physical device drive num. +D.SWPage rmb 1 SmartWatch page # (see clock2_smart) rmb 5 D.COCOXT rmb 1 Busy flag for CoCo-XT driver (one drive at a time)
--- a/defs/releasedefs Fri Jul 30 02:33:35 2004 +0000 +++ b/defs/releasedefs Fri Jul 30 23:49:50 2004 +0000 @@ -7,4 +7,4 @@ NOS9Minor equ 3 * If DEVEL is 1, then sysgo shows that a development * version is being run. -DEVEL equ 1 +DEVEL equ 0
--- a/level1/ChangeLog Fri Jul 30 02:33:35 2004 +0000 +++ b/level1/ChangeLog Fri Jul 30 23:49:50 2004 +0000 @@ -1,6 +1,4 @@ NitrOS-9/6309 Level 2 V03.02.03: -- swread and swset have been added as command line utilities for SmartWatch - support, as the clock2 SmartWatch module does not work. - format has been enhanced to show more information about the disk being formatted. - dirm has been removed from the commands list.
--- a/level1/cmds/format.asm Fri Jul 30 02:33:35 2004 +0000 +++ b/level1/cmds/format.asm Fri Jul 30 23:49:50 2004 +0000 @@ -52,13 +52,12 @@ currtrak rmb 2 current track on currside rmb 2 currsect rmb 1 current sector on -sectcount rmb 1 counted sectors -u0009 rmb 1 -u000A rmb 2 +sectcount rmb 2 counted sectors +sectdata rmb 2 sector data pointer u000C rmb 2 u000E rmb 2 mfm rmb 1 denisity (double/single) -u0011 rmb 1 +maxdns rmb 1 tpi rmb 1 numsides rmb 1 *u0014 rmb 1 @@ -80,7 +79,7 @@ ClustSz rmb 1 cluster size u0029 rmb 1 u002A rmb 1 -u002B rmb 1 +clustcnt rmb 1 u002C rmb 1 u002D rmb 1 u002E rmb 1 @@ -259,7 +258,7 @@ pshs b save it andb #DNS.MFM check double-density stb <mfm save double-density (Yes/No) - stb <u0011 save it again + stb <maxdns save it again ldb ,s get saved PD.DNS byte lsrb checking pshs b save it @@ -267,7 +266,7 @@ stb <tpi save it puls b get checking lsrb - andb <u0011 + andb <maxdns stb <u004C puls b stb <u004D @@ -418,8 +417,8 @@ * S/D - density; single or double ******************************************************************** -DoDsity cmpb <u0011 - bgt OptAbort +DoDsity cmpb <maxdns compare against maximum + bgt OptAbort if greater than, abort cmpb <u004C blt OptAbort stb <mfm @@ -634,7 +633,7 @@ ******************************************************************** GetDTyp leax >hdsdat,pcr assume hard drive data for now - stx <u000A sector data pointer + stx <sectdata sector data pointer ldb <dtype get disk drive type bitb #TYP.HARD+TYP.NSF hard disk or non-standard type? bne L0323 no, check track data @@ -645,11 +644,11 @@ L031B leax >sgtdat,pcr tst <mfm double-density? beq L032D no, -L0323 stx <u000A +L0323 stx <sectdata leax >dbtdat,pcr tst <u004C beq L032F -L032D stx <u000A +L032D stx <sectdata L032F stx <u000C tst <sectmode LBA values already in place? beq ack@ @@ -861,18 +860,18 @@ bne L047E tst <currside bne L047E - ldy <u000A + ldy <sectdata * ldb <u001C ldb <sectors0+1 L047E sty <u000E - stb <u0009 + stb <sectcount+1 stb <u0018 bsr L04EC leax >LSN0,u bsr L0451 sty <u000E L0490 bsr L044E - dec <u0009 + dec <sectcount+1 bne L0490 lda ,y+ sty <u000E @@ -888,7 +887,7 @@ std <u003F ldd ,y std <u0041 - clr <u0009 + clr <sectcount+1 leax >LSN0,u ldd <u003F leay >u008F,u @@ -896,15 +895,15 @@ ldd <currtrak+1 adda <stoff std ,x - ldb <u0009 + ldb <sectcount+1 lda b,y incb - stb <u0009 + stb <sectcount+1 ldb <currsect adda <u004B bcs L04E5 std $02,x - lda <u0009 + lda <sectcount+1 cmpa <u0018 bcc L04E4 ldd <u0041 @@ -1101,7 +1100,7 @@ clrb sta <oksects clear OK sectors std <oksects+1 - std <currtrak clear current rack + std <currtrak clear current track std <sectcount clear counted sectors std <u0032 stb <u0031 @@ -1109,13 +1108,13 @@ leax >optbuf,u stx <u0038 lbsr ClrSec - leax >$0100,x + leax 256,x stx <u003A clra ldb #$01 D = 1 std <u0034 lda <clustsiz get cluster size - sta <u002B store in cluster counter + sta <clustcnt store in cluster counter clr <u002A clra ldb <ClustSz @@ -1177,7 +1176,7 @@ cmpd <u0017 good sector count? bcs L0745 next segment clr <sectcount clear counted sectors - clr <u0009 + clr <sectcount+1 tst <dovfy are we verifying? bne L073A no, lda #C$SPAC yes, get space @@ -1201,7 +1200,7 @@ std <currtrak save it back ldd <sectors get number of sectors std <u0017 save it -L0745 dec <u002B decrement cluster counter +L0745 dec <clustcnt decrement cluster counter bne L075B bsr L0784 tst <u002A @@ -1213,7 +1212,7 @@ inc <oksects L0755 clr <u002A lda <clustsiz get cluster size - sta <u002B save in cluster counter + sta <clustcnt save in cluster counter L075B ldb <u0031 ldx <u0032 leax $01,x @@ -1562,7 +1561,7 @@ Query * fcc "y (yes) or n (no)" * fcb C$LF - fcc "proceed? " + fcc "Ready? " QueryLen equ *-Query CapErr fcc "ABORT can't get media capacity" fcb C$CR
--- a/level1/cmds/makefile Fri Jul 30 02:33:35 2004 +0000 +++ b/level1/cmds/makefile Fri Jul 30 23:49:50 2004 +0000 @@ -11,7 +11,7 @@ free grfo help ident iniz irqs link list load login makdir \ megaread mdir merge mfree mpi os9gen padrom park prompt printerr procs pwd pxd \ rename runb save setime shellplus shell_21 sleep \ - swread tee tmode touch tsmon tuneport unlink verify xmode + tee tmode touch tsmon tuneport unlink verify xmode SUBS = gfx inkey syscall ALLOBJS = $(CMDS) $(DRAGONCMDS) $(SUBS)
--- a/level1/cmds/swread.asm Fri Jul 30 02:33:35 2004 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,411 +0,0 @@ -******************************************************************** -* SWRead - Read SmartWatch clock -* -* $Id$ -* -* Copyright May, 1990 by Robert Gault - -* SWREAD will read smartwatch compensating for 12hr mode if active -* time will be sent to OS-9 in 24hr mode for compatability -* -* The routine does grab a large uninterruptible block of time from -* the system, but no other way seems possible. -* -* syntax swread [n&] n=1-60 minutes -* D.Daywk stored for possible use -* -* Ed. Comments Who YY/MM/DD -* ------------------------------------------------------------------ -* 1 Created RG 91/03/01 -* 1 Changed irq handling; MPI handling; RG 91/10/29 -* error handling -* 1 Removed relocation routine. Removal could be RG 92/12/26 -* dangerous if OS-9 did not grab block from the -* low addresses first. Code must not be in a -* RAM/ROM block when ROMs activated. -* 2 Relocated part of clock read routine to RG 94/12/19 -* shorten the time spent with irqs off. -* 3 Adapted module for Level-1 use. Trimmed code. RG 04/07/24 -* Forced to add back the relocation loop for Level-1. -* Attempted to write a clock2 modules but just too -* difficult to acquire needed system low ram. -* Removed 6309 code for consistency as it had -* little effect on speed or size. -* Switched from Chain to Setime to Fork. - - nam SWRead - ttl Read SmartWatch clock - - ifp1 - use defsfile - endc - -DOHELP equ 0 -SETIME equ 0 - -* Next three lines for testing purposes. Remove as makefile will -* handle this choice. -*Level equ 1 -*Level equ 2 -*D.TSec equ $5A - -cartI equ $FF22 cartridge IRQ report -MPI.Slct equ $FF7F -rom equ $FFDE -ram equ $FFDF -IEN equ %00100000 -FEN equ %00010000 -SCS equ %00000100 -ROM1 equ %00000010 -ROM0 equ %00000001 -RTC.Base equ $C000 -RTC.Blk equ $3E -RTC.Read equ 4 -RTC.Zero equ 0 -RTC.One equ 1 - -type set prgrm+objct -revs set reent+1 -edition set 3 - - mod pgrmend,name,type,revs,start,size - -name fcs /SWRead/ - fcb edition - -locblk0 rmb 2 pointer to block 0 -locblk3E rmb 2 pointer to block $3E ie. disk ROM -sleep rmb 1 sleep interval time in minutes -byte1 rmb 1 clock read data; if no change - no clock -clkflag rmb 1 set when clock is found -mpiimage rmb 1 -sleepflg rmb 1 indicates multiple reads requested -timer rmb 1 count down for sleep interval; per minute -century rmb 1 century flag -rawdata rmb 8 direct readout from clock chip -relocimg rmb 300 place in data for relocated code -stack rmb 200 -size equ . - -message1 fcc /no clock found/ - fcb C$CR - IFNE SETIME -setime fcc /setime/ forced chain to setime routine - fcb C$CR - ENDC - - IFNE DOHELP -errmes fcb C$LF - fcc /SWRead syntax:/ - fcb C$LF,C$LF - fcc /SWRead [n&]/ - fcb C$LF - fcc / The parameter string is optional; n = 1 to 60 min/ - fcb C$LF - fcc / permits watch to be polled in background every/ - fcb C$LF - fcc / n minutes. Use decimal time values./ - fcb C$CR - ENDC -errmes2 fcb C$LF - fcc /Don't have relocation memory./ - fcb C$LF,C$CR - -start clr sleepflg - cmpd #2 - blo noparams - ldd ,x - cmpa #'? - beq syntax - cmpa #'- - beq syntax - - cmpb #'0 if second byte is CR then only one number - blo onebyte - subd #$3030 convert from ascii to bcd - - cmpd #$600 one hour skip is max - bhi syntax - cmpb #9 must be a number from 0-9 - bhi syntax - - pshs b convert reg.D to hexidecimal - ldb #10 - mul - addb ,s+ - bra storeit - -syntax - IFNE DOHELP - lda #2 - leax errmes,pcr - ldy #300 - os9 I$Writln - ENDC - clrb - os9 F$Exit - -onebyte suba #'0 - cmpa #9 - bhi syntax - -storeit stb timer - stb sleep used to reset timer on count down - com sleepflg - -noparams equ * - lda MPI.Slct - anda #3 retain IRQ settings - ora #$30 start at slot 4; ROM setting - sta mpiimage - - IFGT Level-1 -doit pshs u - ldb #1 single block - ldx #RTC.Blk disk rom; $07C000-$07DFFF - os9 F$MapBlk map into user space clock ROM - bcs exit2 - stu locblk3E save pointer - ldx #0 system direct page - os9 F$MapBlk system direct page - bcs exit2 - stu locblk0 save pointer - bsr readclk - ldb #1 block count - ldu locblk3E - os9 F$ClrBlk unmap the block - ldu locblk0 - os9 F$ClrBlk - puls u - ELSE - tfr u,d - cmpa #$7E - lbhs noroom the assigned DP is too close to ROM - ldx #RTC.Base - stx locblk3E - ldx #0 - stx locblk0 - leax readclk,pcr - pshs u - leau relocimg,u - ldy #endrel-readclk -reloc lda ,x+ move the read routines to the data page - sta ,u+ - leay -1,y - bne reloc - puls u -doit jsr relocimg,u - ENDC - - tst clkflag was clock found? - beq error2 - tst sleepflg are we in repeat mode? - beq exit - -snooze ldx #3540 = one minute of ticks minus one second for overhead - os9 F$Sleep - cmpx #0 - bne exit received signal so quit - - dec timer - bne snooze - - lda sleep reset timer - sta timer - bra doit go and read the clock - -exit2 puls u - bra ex - -error ldb #E$IllArg - bra ex - -error2 lda #2 error path - leax message1,pcr - ldy #40 - os9 I$WritLn - IFNE SETIME -* force a normal Setime as SmartWatch was not detected - lda #Prgrm+Objct modul type - ldb #2 size of data area - leax setime,pcr - ldy #0 parameter size -* leas stack,u - os9 F$Chain - ENDC -exit equ * - clrb -ex os9 F$Exit - -* this is the heart of the clock reading routine - -readclk pshs cc - IFGT Level-1 - lda d.hinit,u get $FF90 image - ENDC - ldb MPI.Slct get current setting - pshs d save them - IFGT Level-1 - anda #^(IEN+FEN+ROM1+ROM0) no GIME IRQ/FIRQ; external access - orcc #IntMasks stop interrupts - sta $FF90 - ELSE - orcc #IntMasks stop interrupts - ENDC - sta rom go to ROM mode - ldx locblk3E point to clock ROM - ldb mpiimage get new value for MPI - clr clkflag start with clock not found - -findclk stb MPI.Slct set new slot - leay <alert,pcr point to clock wakeup code - lda RTC.Read,x clear clock at $C004 -* Reading clock fills a byte with bit0. If clock not present, -* then result is either $00 or $FF. Any other test byte will -* result in a false positive for finding the clock. - clrb - bita #1 - beq f1 - comb -f1 stb byte1 set initial value and look for change - -nxtbyte ldb #8 bits/byte - lda ,y+ - beq gettime -nxtbit lsra do a serial generation - bcs high - cmpa RTC.Zero,x talk to clock at $C000; cmp faster than tst - bra high2 -high cmpa RTC.One,x talk to clock at $C001 -high2 decb - bne nxtbit - bra nxtbyte - -* Code to tell swatch socket to switch from ROM to clock. -alert fcb $C5,$3A,$A3,$5C,$C5,$3A,$A3,$5C,0 - -gettime lda #8 8 bytes to read from clock - pshs a - IFGT Level-1 - ldy #rawdata - ELSE - leay rawdata,u - ENDC -* read serial bit stream from clock -timebyte lsr RTC.Read,x this is faster than a short loop with dec/bne - rora - lsr RTC.Read,x - rora - lsr RTC.Read,x - rora - lsr RTC.Read,x - rora - lsr RTC.Read,x - rora - lsr RTC.Read,x - rora - lsr RTC.Read,x - rora - lsr RTC.Read,x - rora - sta ,y+ store in raw data - tst clkflag once clock found, bypass tests - bne maybe - cmpa byte1 - beq maybe always possible a clock byte looks like ROM - inc clkflag -maybe dec ,s - bne timebyte - leas 1,s yank counter - tst clkflag - bne found - ldb mpiimage - bitb #$30 did we get to slot 0? - beq found yes? then quick looking - subb #$10 next slot - stb mpiimage - bra findclk - -noclk rts -found equ * - sta ram go back to RAM mode - puls d - stb MPI.Slct restore to original setting - tst cartI clear CART flag for autostart ROM pack present in MPI - IFGT Level-1 - sta $FF90 restore GIME mode - ENDC - puls cc restore IRQs - tst clkflag - beq noclk - IFGT Level-1 - ldx #rawdata - leay D.Slice,u - ELSE - leax rawdata,u - ldy #D.TSec $5A - ENDC - ldb #8 - pshs b -trans lda ,x+ translate serial data into OS-9 format - ldb ,s - cmpb #1 year - bne notyr - cmpa #$80 binary coded decimal number - bhi nintn - sta century - bra notyr -nintn clr century -notyr cmpb #4 day of the week - bne notdywk - IFGT Level-1 - anda #7 - sta D.Daywk,u - ENDC - bra nxtdata -notdywk cmpb #5 special 12/24, AM/PM indicator - bne cnvrt convert any number - bita #%10000000 12/24 hour bit - beq cnvrt 24 hour time - bita #%00100000 AM/PM bit since 12 hour time, check AM/PM - pshs cc - anda #%00011111 keep only time 1-12 - puls cc - bne PMhr - cmpa #$12 bcd value - bne cnvrt - clra 12 AM = 0 hrs 24hr time - bra cnvrt -Pmhr cmpa #$12 bcd value - beq cnvrt 12PM = 1200 24 hr time - adda #$12 bcd value; other times (1-11) add 12; ie. 1300-2300 -cnvrt clrb convert BCD to binary -a1 cmpa #$10 - bcs a2 - addd #$f00a - bra a1 -a2 pshs a - addb ,s+ - stb ,-y decrease pointer and then store -nxtdata dec ,s - bne trans - tst century - beq not20 - lda #100 user convention for >1999 values - adda ,y - sta ,y -not20 puls b,pc - -* This is the end of the code to be relocated. -endrel equ * - -noroom lda #2 - leax errmes2,pcr - ldy #300 - os9 I$WritLn - clrb - os9 F$Exit - - emod -pgrmend equ * - end
--- a/level1/modules/makefile Fri Jul 30 02:33:35 2004 +0000 +++ b/level1/modules/makefile Fri Jul 30 23:49:50 2004 +0000 @@ -1,14 +1,15 @@ include ../../rules.mak -CLOCKELIM = -aRTCElim=1 -aRTCDsto2=0 -aRTCDsto4=0 -aRTCBB=0 -aRTCHarrs=0 -aRTCCloud9=0 -aRTCSoft=0 -aRTCJVEmu=0 -aRTCMESSEmu=0 -aMPIFlag=0 -CLOCKDISTO2 = -aRTCElim=0 -aRTCDsto2=1 -aRTCDsto4=0 -aRTCBB=0 -aRTCHarrs=0 -aRTCCloud9=0 -aRTCSoft=0 -aRTCJVEmu=0 -aRTCMESSEmu=0 -aMPIFlag=0 -CLOCKDISTO4 = -aRTCElim=0 -aRTCDsto2=0 -aRTCDsto4=1 -aRTCBB=0 -aRTCHarrs=0 -aRTCCloud9=0 -aRTCSoft=0 -aRTCJVEmu=0 -aRTCMESSEmu=0 -aMPIFlag=0 -CLOCKBNB = -aRTCElim=0 -aRTCDsto2=0 -aRTCDsto4=0 -aRTCBB=1 -aRTCHarrs=0 -aRTCCloud9=0 -aRTCSoft=0 -aRTCJVEmu=0 -aRTCMESSEmu=0 -aMPIFlag=0 -CLOCKHARRIS = -aRTCElim=0 -aRTCDsto2=0 -aRTCDsto4=0 -aRTCBB=0 -aRTCHarrs=1 -aRTCCloud9=0 -aRTCSoft=0 -aRTCJVEmu=0 -aRTCMESSEmu=0 -aMPIFlag=0 -CLOCKCLOUD9 = -aRTCElim=0 -aRTCDsto2=0 -aRTCDsto4=0 -aRTCBB=0 -aRTCHarrs=0 -aRTCCloud9=1 -aRTCSoft=0 -aRTCJVEmu=0 -aRTCMESSEmu=0 -aMPIFlag=0 -CLOCKJVEMU = -aRTCElim=0 -aRTCDsto2=0 -aRTCDsto4=0 -aRTCBB=0 -aRTCHarrs=0 -aRTCCloud9=0 -aRTCSoft=0 -aRTCJVEmu=1 -aRTCMESSEmu=0 -aMPIFlag=0 -CLOCKMESSEMU = -aRTCElim=0 -aRTCDsto2=0 -aRTCDsto4=0 -aRTCBB=0 -aRTCHarrs=0 -aRTCCloud9=0 -aRTCSoft=0 -aRTCJVEmu=0 -aRTCMESSEmu=1 -aMPIFlag=0 -CLOCKSOFT = -aRTCElim=0 -aRTCDsto2=0 -aRTCDsto4=0 -aRTCBB=0 -aRTCHarrs=0 -aRTCCloud9=0 -aRTCSoft=1 -aRTCJVEmu=0 -aRTCMESSEmu=0 -aMPIFlag=0 +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 @@ -20,7 +21,7 @@ SYSMODS = ioman init sysgo_dd sysgo_h0 CLOCKS = clock_60hz clock_50hz \ clock2_elim clock2_disto2 clock2_disto4 clock2_bnb \ - clock2_harris clock2_cloud9 clock2_soft \ + clock2_smart clock2_harris clock2_cloud9 clock2_soft \ clock2_messemu clock2_jvemu RBF = rbf.mn \ @@ -82,6 +83,9 @@ clock2_bnb: clock2.asm $(AS) $(AFLAGS) $(ASOUT)$@ $< $(CLOCKBNB) +clock2_smart: clock2.asm + $(AS) $(AFLAGS) $(ASOUT)$@ $< $(CLOCKSMART) + clock2_harris: clock2.asm $(AS) $(AFLAGS) $(ASOUT)$@ $< $(CLOCKHARRIS)
--- a/level1/modules/sysgo.asm Fri Jul 30 02:33:35 2004 +0000 +++ b/level1/modules/sysgo.asm Fri Jul 30 23:49:50 2004 +0000 @@ -78,7 +78,7 @@ IFNE DEVEL dts ELSE - fcc "September 1, 2004" + fcc "Release Date: 08/01/2004" ENDC fcb C$CR,C$LF fcc !http://www.nitros9.org!
--- a/level1/sys/makefile Fri Jul 30 02:33:35 2004 +0000 +++ b/level1/sys/makefile Fri Jul 30 23:49:50 2004 +0000 @@ -13,7 +13,7 @@ mdir.hp merge.hp mfree.hp os9gen.hp \ padrom.hp park.hp procs.hp prompt.hp pwd.hp pxd.hp \ rename.hp save.hp setime.hp \ - setpr.hp shell.hp sleep.hp tee.hp tmode.hp touch.hp tsmon.hp \ + setpr.hp shell.hp sleep.hp swread.hp tee.hp tmode.hp touch.hp tsmon.hp \ tuneport.hp unlink.hp verify.hp xmode.hp HELPMSG = helpmsg ALLOBJS = $(SYSFILES) $(HELPMSG)
--- a/level2/cmds/makefile Fri Jul 30 02:33:35 2004 +0000 +++ b/level2/cmds/makefile Fri Jul 30 23:49:50 2004 +0000 @@ -10,7 +10,7 @@ format free grfdrv help ident iniz irqs link list load login \ makdir mdir megaread merge mfree mmap modpatch montype mpi os9gen padrom park \ prompt pmap proc procs pwd pxd reboot rename runb save setime \ - shell_21 sleep smap swread tee tmode touch \ + shell_21 sleep smap tee tmode touch \ tsmon tuneport unlink verify wcreate xmode SUBS = gfx2 gfx inkey syscall
--- a/level2/coco3/ChangeLog Fri Jul 30 02:33:35 2004 +0000 +++ b/level2/coco3/ChangeLog Fri Jul 30 23:49:50 2004 +0000 @@ -1,6 +1,4 @@ NitrOS-9/6309 Level 2 V03.02.03: -- swread and swset have been added as command line utilities for SmartWatch - support, as the clock2 SmartWatch module does not work. - format has been enhanced to show more information about the disk being formatted. - dirm has been removed from the commands list. @@ -8,6 +6,7 @@ - tmode now uses the new xmode format for parameters. - disasm has a new -s option which is used to specify the start and end addresses to disassemble within a module. +- An RBF bug that was introduced in V03.02.02 has been fixed. - A bug in the clock2_jvemu module has been fixed. NitrOS-9/6809 Level 2 V03.02.02:
--- a/level2/coco3_6309/ChangeLog Fri Jul 30 02:33:35 2004 +0000 +++ b/level2/coco3_6309/ChangeLog Fri Jul 30 23:49:50 2004 +0000 @@ -1,6 +1,4 @@ NitrOS-9/6309 Level 2 V03.02.03: -- swread and swset have been added as command line utilities for SmartWatch - support, as the clock2 SmartWatch module does not work. - format has been enhanced to show more information about the disk being formatted. - dirm has been removed from the commands list. @@ -8,6 +6,7 @@ - tmode now uses the new xmode format for parameters. - disasm has a new -s option which is used to specify the start and end addresses to disassemble within a module. +- An RBF bug that was introduced in V03.02.02 has been fixed. - A bug in the clock2_jvemu module has been fixed. NitrOS-9/6809 Level 2 V03.02.02:
--- a/level2/makefile Fri Jul 30 02:33:35 2004 +0000 +++ b/level2/makefile Fri Jul 30 23:49:50 2004 +0000 @@ -2,7 +2,7 @@ CPU = 6809 DISTRO = $(CPU)L2 -RELEASE = nos9$(CPU)l2v030202 +RELEASE = nos9$(CPU)l2v030203 BOOTFILE = bootfiles/bootfile_win80 BOOTFILE_DS80 = bootfiles/bootfile_win80_ds80 KERNELFILE = bootfiles/kernel_1773
--- a/level2/modules/makefile Fri Jul 30 02:33:35 2004 +0000 +++ b/level2/modules/makefile Fri Jul 30 23:49:50 2004 +0000 @@ -2,15 +2,16 @@ vpath %.asm kernel:$(6809L1)/modules -CLOCKELIM = -aRTCElim=1 -aRTCDsto2=0 -aRTCDsto4=0 -aRTCBB=0 -aRTCHarrs=0 -aRTCCloud9=0 -aRTCSoft=0 -aRTCJVEmu=0 -aRTCMESSEmu=0 -aMPIFlag=0 -CLOCKDISTO2 = -aRTCElim=0 -aRTCDsto2=1 -aRTCDsto4=0 -aRTCBB=0 -aRTCHarrs=0 -aRTCCloud9=0 -aRTCSoft=0 -aRTCJVEmu=0 -aRTCMESSEmu=0 -aMPIFlag=0 -CLOCKDISTO4 = -aRTCElim=0 -aRTCDsto2=0 -aRTCDsto4=1 -aRTCBB=0 -aRTCHarrs=0 -aRTCCloud9=0 -aRTCSoft=0 -aRTCJVEmu=0 -aRTCMESSEmu=0 -aMPIFlag=0 -CLOCKBNB = -aRTCElim=0 -aRTCDsto2=0 -aRTCDsto4=0 -aRTCBB=1 -aRTCHarrs=0 -aRTCCloud9=0 -aRTCSoft=0 -aRTCJVEmu=0 -aRTCMESSEmu=0 -aMPIFlag=0 -CLOCKHARRIS = -aRTCElim=0 -aRTCDsto2=0 -aRTCDsto4=0 -aRTCBB=0 -aRTCHarrs=1 -aRTCCloud9=0 -aRTCSoft=0 -aRTCJVEmu=0 -aRTCMESSEmu=0 -aMPIFlag=0 -CLOCKCLOUD9 = -aRTCElim=0 -aRTCDsto2=0 -aRTCDsto4=0 -aRTCBB=0 -aRTCHarrs=0 -aRTCCloud9=1 -aRTCSoft=0 -aRTCJVEmu=0 -aRTCMESSEmu=0 -aMPIFlag=0 -CLOCKJVEMU = -aRTCElim=0 -aRTCDsto2=0 -aRTCDsto4=0 -aRTCBB=0 -aRTCHarrs=0 -aRTCCloud9=0 -aRTCSoft=0 -aRTCJVEmu=1 -aRTCMESSEmu=0 -aMPIFlag=0 -CLOCKMESSEMU = -aRTCElim=0 -aRTCDsto2=0 -aRTCDsto4=0 -aRTCBB=0 -aRTCHarrs=0 -aRTCCloud9=0 -aRTCSoft=0 -aRTCJVEmu=0 -aRTCMESSEmu=1 -aMPIFlag=0 -CLOCKSOFT = -aRTCElim=0 -aRTCDsto2=0 -aRTCDsto4=0 -aRTCBB=0 -aRTCHarrs=0 -aRTCCloud9=0 -aRTCSoft=1 -aRTCJVEmu=0 -aRTCMESSEmu=0 -aMPIFlag=0 +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 @@ -22,7 +23,7 @@ SYSMODS = ioman init sysgo_h0 sysgo_dd CLOCKS = clock_60hz clock_50hz \ clock2_elim clock2_disto2 clock2_disto4 clock2_bnb \ - clock2_harris clock2_cloud9 clock2_soft \ + clock2_smart clock2_harris clock2_cloud9 clock2_soft \ clock2_jvemu clock2_messemu RBF = rbf.mn \ @@ -199,6 +200,9 @@ clock2_bnb: clock2.asm $(AS) $(AFLAGS) $(ASOUT)$@ $< $(CLOCKBNB) +clock2_smart: clock2.asm + $(AS) $(AFLAGS) $(ASOUT)$@ $< $(CLOCKSMART) + clock2_harris: clock2.asm $(AS) $(AFLAGS) $(ASOUT)$@ $< $(CLOCKHARRIS)
--- a/level2/sys/makefile Fri Jul 30 02:33:35 2004 +0000 +++ b/level2/sys/makefile Fri Jul 30 23:49:50 2004 +0000 @@ -24,7 +24,7 @@ montype.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 \ + save.hp setime.hp setpr.hp shell.hp sleep.hp smap.hp swread.hp \ tee.hp tmode.hp touch.hp tsmon.hp tuneport.hp \ unlink.hp \ verify.hp \