iA80BYTYNOOFPORTPACTORICONSOHOUMISETIMEOEARLYHOULATEHOUONOFSECOMINOHHROSECOFMINOFHROFSTARTMINSTARTSECSTARTHOUENDSEENDMIENDHOUTIMEOF REAL-WORLD INTERFACEBY JOHN W. LITTLE(c)1988, ANTIC PUBLISHING=6-=CHANGE TO A 1 FOR PORTB ON AN ATARI 400/8009(+")"@,6(TYPING ERROR LINE 5!9 +@%@ (@+(@A(@ REALL(@c(@ WORLDn(@(@ INTERFACE > #Ap!-AdAa%"+/ >6-?:Ad,#AR@#KILL CURSORDECLARATIONS2(;@,-(6-@<86-B@6-B@,6-F:B@%,86-B2yPINITIALIZE CLOCKdK (}-@@?(DO YOU WISH TO RESET THE CLOCKG6. Kn2@:,@)@:,A!A02Y OR yx AP2@:,@x)@:,AA2N or n A; (}-@@2(ԠŠ5(8(;('6-6-'6-,(Correct Hour(0-23)% A),(((Correct Minute! A%((%(Correct Second! A%. (}-@@.(Š1-@ @#1(Press to continuel@@-@ ?A QA]Al6-?:Ad,DISPLAY CLOCK'-@@'AR@46-F:A,!@ #(*(:4 A3 (0((:46-F:@,!@ #(*(:4 A5 (0((:,6-F:@,!@ "(, A@ (0(F:,"@A0MAIN PROGRAM,< (}A-@@<SETUP SCREEN@CONFIG. PORT FOR OUTPUTT)%&@!%AU)%hGET TIMING PARAMETERS| A*"A`*MANUAL OPERATION ASTART TIMING\-@@#8(Press any key to begin timingJAdAU\AR@6F:Ad,"AU" A@, A6 A8-@@#8( >>IS CURRENT TIME BETWEEN EARLIEST AND LATEST START TIMES?0!F:A, A& A@0 A@!F:A,A! A@ A! A@RELAY OPERATION LOOP% -6-6-6-% A% -6-6-6-% A A@DTIMING SUBROUTINEXC6-F:@,!6-F:@,06-F:A,CGET CURRENT TIMEb! %!CLOSE OR OPEN RELAYlLLADJUST COUNTER IF #OF SECS TO COUNT + #OF SECS CURRENTLY ON CLOCK > 599%!@Y6-%@/-%&@`9 A -%LLADJUST COUNTER IF #OF SECS TO COUNT + #OF SECS CURRENTLY ON CLOCK > 599%!@Y6-%@/-%&@`9 A -% -% @$Ap-&@$==WAIT FOR CURRENT HOUR TO CROSS MIDNIGHT AND BECOME "0".0F:A,! A@& A0 A0..WAIT FOR HOURS, MINS, SECS TO COUNT DOWN$ A@$F:, @A !F:A,Ap$ A@$F:, @A !F:@,A*$ A@$F:, @A4!F:@,A>$CDISPLAY TIMEH-@@I46-F:A,!@ #(*(:4 ACJ (0((:K46-F:@,!@ #(*(:4 AEL (0((:M,6-F:@,!@ "(, AGN (0(O$\INPUT DATA SUBROUTINESp@-@@@(&--------------------------------------q7-@@4(PRESS TO DISREGARD.7(r@-@@@(&--------------------------------------z A @+'(EARLIEST HOUR TO TURN WATER ON+ A 03%(LATEST HOUR TO TURN WATER ON)3 A  ((} A6-6-@$F (}-@@F(&--------------------------------------@-@@@(& NO EARLIEST AND LATEST START TIMES 8.(&--------------------------------------8 Ap (}-@@F(&--------------------------------------X-@@p(EARLIEST START:0-@ @0( LATEST START: ..(&--------------------------------------3(0(%PRESS 3 TIMES TO BYPASS TIMER.3('6-6-'6- A0))( NUMBER OF HOURS WATER WILL BE ON A`++("NUMBER OF MINUTES WATER WILL BE ON$ A.++("NUMBER OF SECONDS WATER WILL BE ON8B$ 6-%%$For test in line 390L$V'6-6-'6-W A X-(-(!NUMBER OF HOURS WATER WILL BE OFFY` APj,,(#NUMBER OF MINUTES WATER WILL BE OFFt~ A,,(#NUMBER OF SECONDS WATER WILL BE OFF% 6-%%%For test in line 1190i"(}\(>You must specify an 'OFF' period in order to use the timer._'i AW(.(# TO STOP CYCLE WITH WATER ON.W($ TO STOP CYCLE WITH WATER OFF.>!( TO RE-START PROGRAM>(WITHOUT RESETTING CLOCK.$MANUAL ON/OFF ROUTINES - Ap,(,( Do you wish to turn the water on  AP A -(**(!Do you wish to turn the water off2 AP< +F 6. P2@:,@)@:,A!A2Y OR yZ %d$nP@:,@x!@:,A$'. BU6PN or n...65536 IS ERROR TO TRAPx$}EARLY EXITDF:,"@%'/-@@ AARDDF:,"@%'/-@@ AARDF:,"@' A$X^^104,162,6,160,139,169,7,32,92,228,96,230,208,208,2,230,209,165,208,201,15,144,26,165,209b[[201,3,144,20,169,0,133,208,133,209,165,20,201,60,144,6,169,1,133,20,208,12,230,20,165lZZ20,201,60,144,40,169,0,133,20,230,19,165,19,201,60,144,28,169,0,133,19,230,18,165,18vUU201,60,144,16,169,0,133,18,230,207,165,207,201,24,144,4,169,0,133,207,76,98,228D1:INTRFACE.BAS