Mercurial > hg > Members > kono > nitros9-code
view level1/cmds/setime.asm @ 2763:c03464c24b14
Fixed a minor typo in the arcadepak's makefile related to DriveWire3 and Becker.
Updated makefile with new option nightlytest. Run option is "make nightlytest".
You also need to test environment variable TESTSSHDIR and TESTSSHSERVER before using it.
Also updated the nightly option so if the SOURCEUSER environment variable is not set it will report it.
author | drencor-xeen |
---|---|
date | Wed, 16 Jan 2013 17:33:46 -0600 |
parents | 84ea83668304 |
children |
line wrap: on
line source
******************************************************************** * Setime - Set Date/Time * * $Id$ * * This is a Setime for use when a Y2K compliant system is required. * * This is somewhat of a cheat in that any attempts to do a full * 4 digit conversion on the entered date string would have * seriously broken the nice, generally compact codeing of the * original setime module. I didn't want to do that, so I cheated * and simply added one more byte to the date packet image it builds * on the stack. Its conversion algorithm does 2 digits per pass/byte * so if you enter 1998 (You MUST now enter the year as a 4 digit * value!), this image will have a $13 as itas first and unused * digit, if you enter a 20xx date, it will be a $14. * * I check this value after the rest of the conversion is all * done, and if its $14 (or more), an extra 100 ($64) is added to the * os9 year byte before the system F$STime call is made, pointing * the F$STime call at only the normal 6 byte packet of time data. * * I've played with this maybe 20 minutes. Hopefully you can use * this into the next century without any further concerns about * the "Y2K" problem. * * Edt/Rev YYYY/MM/DD Modified by * Comment * ------------------------------------------------------------------ * 10 ????/??/?? Gene Heskett * Made Y2K compliant. * * 11 1999/05/07 Boisy G. Pitre * Made totally compliant for 1900-2155. * * 12 2002/07/20 Boisy G. Pitre * Typing a CR at the prompt no longer sets the time to a bogus value. nam Setime ttl Set Date/Time * Disassembled 96/09/26 00:34:54 by Dsm v1.7 (C) 1988 by RML ifp1 use defsfile endc tylg set Prgrm+Objct atrv set ReEnt+rev rev set $00 edition set 12 mod eom,name,tylg,atrv,start,size org 0 u0000 rmb 450 size equ . name fcs /Setime/ fcb 10 L0014 fcb C$LF fcb C$LF fcb C$BELL fcc " >> No Clock module found <<" fcb C$LF fcb C$LF L0036 fcb C$LF fcb C$LF fcb C$BELL fcc " >> Clock Initialization Errors <<" fcb C$LF fcb C$LF L005E fcb C$LF fcc " yyyy/mm/dd hh:mm:ss" fcb C$LF fcc "Time ? " L005EL equ *-L005E start cmpd #2 bcc L00A3 leas <-20,s leax >L005E,pcr ldy #L005EL lda #1 os9 I$WritLn leax ,s lda #C$CR sta ,x ldy #21 clra os9 I$ReadLn L00A3 * BGP: following lines added in case CR is pressed at prompt. No need to set time * if there is nothing to process GetNext lda ,x+ +BGP+ cmpa #C$CR +BGP+ beq L00DF +BGP+ cmpa #C$SPAC +BGP+ beq GetNext +BGP+ cmpa #C$COMA +BGP+ beq GetNext +BGP+ leax -1,x +BGP+ * Make room for time packet on stack leas -7,s bsr L00E3 stb ,s bsr L00E3 stb $01,s bsr L00E3 stb $02,s bsr L00E3 stb $03,s bsr L00E3 stb $04,s bsr L00E3 stb $05,s bsr L00E3 stb $06,s now we have a 7 byte pkt ldb ,s get 1st 2 digits (century) subb #19 subtract 19 from century +BGP+ lda #100 now we will +BGP+ mul multiply difference * 100, now B holds 0, 100 or 200 +BGP+ addb 1,s add os9's year to century byte +BGP+ stb 1,s save back in year leax 1,s os9 F$STime bcc L00DF cmpb #$EA bne L00D2 leax >L0014,pcr ldy #$0022 bra L00DA L00D2 leax >L0036,pcr ldy #40 L00DA lda #1 os9 I$WritLn L00DF clrb os9 F$Exit L00E3 clrb bsr L0101 bsr L0101 lda ,x+ cmpa #C$SPAC beq L0100 cmpa #'/ beq L0100 cmpa #': beq L0100 cmpa #C$COMA beq L0100 cmpa #C$PERD beq L0100 leax -1,x L0100 rts L0101 lda ,x get a digit suba #$30 make it binary bcs L0114 not a number, go cmpa #$09 bhi L0114 not a number, go leax $01,x inc to next num pshs a save a lda #$0A do a 10x mul addb ,s+ save result L0114 rts all done emod eom equ * end