home *** CD-ROM | disk | FTP | other *** search
-
-
-
- ......PAGE 00001
-
- LINE# LOC CODE SOURCE COMMENT
-
-
- 01020 0000 ;
- 01030 0000 ;******************************
- 01040 0000 ;* *
- 01050 0000 ;* REALTIME CLOCK *
- 01060 0000 ;* FOR THE 68705 *
- 01070 0000 ;* *
- 01080 0000 ;* THOMAS HENRY *
- 01090 0000 ;* FEBRUARY 1, 1988 *
- 01100 0000 ;* REVISED APRIL 12, 1989 *
- 01110 0000 ;* *
- 01120 0000 ;******************************
- 01130 0000 ;
- 01140 0000 .REL $4000
- 01150 0000 .OPT N,P8
- 01160 0000 ;
- 01170 0000 SLOWCON = 30 ;SLOW SET TIMING DELAY.
- 01180 0000 FASTCON = 1 ;FAST SET TIMING DELAY.
- 01190 0000 ;
- 01200 0000 START = $000 ;START OF 68705 MAP.
- 01210 0000 PORTA = START ;I/O PORT A.
- 01220 0000 PORTB = $001 ;I/O PORT B.
- 01230 0000 PORTC = $002 ;I/O PORT C.
- 01240 0000 DDRA = $004 ;DATA DIRECTION A.
- 01250 0000 DDRB = $005 ;DATA DIRECTION B.
- 01260 0000 DDRC = $006 ;DATA DIRECTION C.
- 01270 0000 TIMEDATA = $008 ;TIMER DATA REGISTER.
- 01280 0000 TIMECNTL = $009 ;TIMER CONTROL REGISTER.
- 01290 0000 PGMCNTL = $00B ;PROGRAM CONTROL REGISTER.
- 01300 0000 RAMSTART = $010 ;START OF USER RAM.
- 01310 0000 JIFFY = RAMSTART ;JIFFY COUNTER.
- 01320 0000 SECONDS = JIFFY+1 ;SECONDS COUNTER.
- 01330 0000 MINUTES = SECONDS+1 ;MINUTES COUNTER.
- 01340 0000 HOURS = MINUTES+1 ;HOURS COUNTER.
- 01350 0000 COLON = HOURS+1 ;COLON/SECONDS TOGGLE.
- 01360 0000 LOW = COLON+1 ;LOW ORDER DIGIT.
- 01370 0000 HIGH = LOW+1 ;HIGH ORDER DIGIT.
- 01380 0000 SWITCHES = HIGH+1 ;SWITCHES REGISTER.
- 01390 0000 MINREG = SWITCHES+1 ;LOW ORDER REGISTER.
- 01400 0000 HOUREG = MINREG+1 ;HIGH ORDER REGISTER.
- 01410 0000 TEMP = HOUREG+1 ;TEMPORARY FOR SWITCHES.
- 01420 0000 MODE = TEMP+1 ;12/24 HOUR MODE.
- 01430 0000 TIMECON = MODE+1 ;DELAY TIME CONSTANT.
- 01440 0000 ALMIN = TIMECON+1 ;ALARM MINUTES.
- 01450 0000 ALHOUR = ALMIN+1 ;ALARM HOUR.
- 01460 0000 ALARM = ALHOUR+1 ;ALARM FLAG.
- 01470 0000 STACK = $07F ;TOP OF STACK.
- 01480 0000 ZEPROM = $080 ;PAGE 0 EPROM.
- 01490 0000 AEPROM = $100 ;ABSOLUTE EPROM.
- 01500 0000 MOR = $784 ;MASK OPTIONS REGISTER.
- 01510 0000 BOOT = $785 ;PROGRAMMING BOOTSTRAP.
- 01520 0000 TIMEIRQ = $7F8 ;TIMER IRQ VECTOR.
- 01530 0000 EXTIRQ = $7FA ;EXTERNAL IRQ VECTOR.
- 01540 0000 SOFTIRQ = $7FC ;SWI VECTOR.
- 01550 0000 RESET = $7FE ;RESET VECTOR.
-
-
-
-
-
-
- ......PAGE 00002
-
- LINE# LOC CODE SOURCE COMMENT
-
-
- 01560 0000 ;
- 01570 0000 ;
- 01580 0000 * =START
- 01590 0000 * =AEPROM ;SKIP OVER EARLIER JUNK.
- 01600 0100 ;
- 01610 0100 ;(BOOTSTRAP WILL IGNORE ALL NON-EPROM ADDRESSES)
- 01620 0100 ;
- 01630 0100 ;
- 01640 0100 ;*** THE RESET VECTOR JUMPS HERE ***
- 01650 0100 ;
- 01660 0100 ;
- 01670 0100 A6 C0 INITIAL LDA #%11000000
- 01680 0102 B7 04 STA DDRA ;A6 AND A7 OUTPUT.
- 01690 0104 A6 FF LDA #%11111111
- 01700 0106 B7 05 STA DDRB ;SET FOR OUTPUT.
- 01710 0108 B7 06 STA DDRC ;SET FOR OUTPUT.
- 01720 010A 3F 10 CLR JIFFY ;CLEAR CLOCK VARIABLES.
- 01730 010C 3F 11 CLR SECONDS
- 01740 010E 3F 12 CLR MINUTES
- 01750 0110 A6 0C LDA #12 ;SET CLOCK TO 12 NOON.
- 01760 0112 B7 13 STA HOURS
- 01770 0114 3F 1B CLR MODE
- 01780 0116 A6 80 LDA #%10000000 ;SHUT COLON OFF.
- 01790 0118 B7 14 STA COLON
- 01800 011A A6 06 LDA #6 ;SET ALARM TO
- 01810 011C B7 1E STA ALHOUR ;6 O'CLOCK AM.
- 01820 011E 3F 1D CLR ALMIN
- 01830 0120 3F 1F CLR ALARM
- 01840 0122 A6 FF INIT1 LDA #%11111111 ;BLANK DISPLAY.
- 01850 0124 B7 02 STA PORTC
- 01860 0126 3F 00 CLR PORTA ;TURN ON BEEPER.
- 01870 0128 ;
- 01880 0128 AE 3C LDX #60
- 01890 012A CD 02 67 INIT2 JSR DELAY
- 01900 012D 5A DEC X
- 01910 012E 26 FA BNE INIT2
- 01920 0130 ;
- 01930 0130 A6 28 LDA #40
- 01940 0132 B7 1C STA TIMECON
- 01950 0134 33 00 COM PORTA ;TURN OFF BEEPER.
- 01960 0136 AE 0E INIT3 LDX #14 ;PRINT 'HELP'.
- 01970 0138 CD 02 2E JSR DISPLAY1
- 01980 013B AE 0D LDX #13
- 01990 013D CD 02 32 JSR DISPLAY2
- 02000 0140 AE 0C LDX #12
- 02010 0142 CD 02 36 JSR DISPLAY3
- 02020 0145 AE 0B LDX #11
- 02030 0147 CD 02 3A JSR DISPLAY4
- 02040 014A 3A 1C DEC TIMECON ;"DELAYED ENOUGH?
- 02050 014C 26 E8 BNE INIT3
- 02060 014E ;
- 02070 014E B6 00 LDA PORTA ;"ANY SWITCH PUSHED?
- 02080 0150 43 COM A
- 02090 0151 A4 0F AND #%00001111 ;CHECK PUSHBUTTONS ONLY.
- 02100 0153 27 CD BEQ INIT1 ;NO, CONTINUE SIGNON ROUTINE.
-
-
-
-
-
-
- ......PAGE 00003
-
- LINE# LOC CODE SOURCE COMMENT
-
-
- 02110 0155 ;
- 02120 0155 3F 14 CLR COLON ;TURN COLON ON.
- 02130 0157 9A CLI ;ALLOW UPDATE ROUTINE.
- 02140 0158 ;
- 02150 0158 ;
- 02160 0158 ;*** MAIN CLOCK DISPLAY PROGRAM ***
- 02170 0158 ;
- 02180 0158 ;
- 02190 0158 CD 02 B2 MAIN JSR INPUT ;SERVICE SWITCHES.
- 02200 015B 00 17 05 BRSET 0,SWITCHES,MAIN1
- 02210 015E CD 01 7D JSR CLOCKSET ;GO SET CLOCK TIME.
- 02220 0161 20 06 BRA MAIN2
- 02230 0163 ;
- 02240 0163 02 17 03 MAIN1 BRSET 1,SWITCHES,MAIN2
- 02250 0166 CD 01 71 JSR ALARMSET ;GO SET ALARM TIME.
- 02260 0169 ;
- 02270 0169 CD 01 C0 MAIN2 JSR OUTPUT ;SERVICE DISPLAY.
- 02280 016C CD 02 E2 JSR CHECKALM ;CHECK ALARM TIME.
- 02290 016F 20 E7 BRA MAIN
- 02300 0171 ;
- 02310 0171 ;
- 02320 0171 ;*** CLOCK AND ALARM SET ROUTINES ***
- 02330 0171 ;
- 02340 0171 ;
- 02350 0171 B6 1D ALARMSET LDA ALMIN ;GET OLD ALARM TIME.
- 02360 0173 BE 1E LDX ALHOUR
- 02370 0175 CD 01 8F JSR SET ;UPDATE IT.
- 02380 0178 B7 1D STA ALMIN ;SAVE NEW ALARM TIME.
- 02390 017A BF 1E STX ALHOUR
- 02400 017C 81 RTS
- 02410 017D ;
- 02420 017D B6 12 CLOCKSET LDA MINUTES ;GET CURRENT TIME.
- 02430 017F BE 13 LDX HOURS
- 02440 0181 05 17 03 BRCLR 2,SWITCHES,CLKSET1;BRANCH IF FAST.
- 02450 0184 06 17 07 BRSET 3,SWITCHES,CLKSET2;BRANCH IF NOTHING.
- 02460 0187 CD 01 8F CLKSET1 JSR SET ;UPDATE IT.
- 02470 018A B7 12 STA MINUTES ;SAVE NEW CLOCK TIME.
- 02480 018C BF 13 STX HOURS
- 02490 018E 81 CLKSET2 RTS
- 02500 018F ;
- 02510 018F B7 18 SET STA MINREG ;PARAMS:
- 02520 0191 BF 19 STX HOUREG
- 02530 0193 A6 1E SET1 LDA #SLOWCON ;ASSUME SLOW MODE.
- 02540 0195 07 17 02 BRCLR 3,SWITCHES,SET2
- 02550 0198 A6 01 LDA #FASTCON ;ELSE FAST MODE CHOSEN.
- 02560 019A ;
- 02570 019A B7 1C SET2 STA TIMECON
- 02580 019C CD 01 D2 SET3 JSR OUTPUT2 ;SHOW TIME.
- 02590 019F 3A 1C DEC TIMECON ;DELAY A BIT.
- 02600 01A1 26 F9 BNE SET3
- 02610 01A3 ;
- 02620 01A3 CD 02 B2 JSR INPUT ;CHECK SWITCHES.
- 02630 01A6 01 17 03 BRCLR 0,SWITCHES,SET4 ;CLOCK SET PUSHED.
- 02640 01A9 02 17 0F BRSET 1,SWITCHES,SET6 ;NOTHING PUSHED, EXIT.
- 02650 01AC B6 17 SET4 LDA SWITCHES
-
-
-
-
-
-
- ......PAGE 00004
-
- LINE# LOC CODE SOURCE COMMENT
-
-
- 02660 01AE A4 0C AND #%00001100 ;FAST & SLOW, DO NOTHING.
- 02670 01B0 27 07 BEQ SET5
- 02680 01B2 A1 0C CMP #%00001100 ;NEITHER FAST NOR SLOW.
- 02690 01B4 27 03 BEQ SET5
- 02700 01B6 CD 02 9D JSR BUMP ;INCREASE SETTING.
- 02710 01B9 20 D8 SET5 BRA SET1 ;DO NEXT AMOUNT.
- 02720 01BB ;
- 02730 01BB ;
- 02740 01BB B6 18 SET6 LDA MINREG ;PASS PARAMS BACK.
- 02750 01BD BE 19 LDX HOUREG
- 02760 01BF 81 RTS
- 02770 01C0 ;
- 02780 01C0 ;
- 02790 01C0 ;*** OUTPUT ROUTINES ***
- 02800 01C0 ;
- 02810 01C0 ;
- 02820 01C0 B6 12 OUTPUT LDA MINUTES ;DEFAULT TO HOURS/MINS.
- 02830 01C2 BE 13 LDX HOURS
- 02840 01C4 0A 17 07 BRSET 5,SWITCHES,OUTPUT1;BRANCH IF HOURS/MINS.
- 02850 01C7 01 17 04 BRCLR 0,SWITCHES,OUTPUT1;CLOCK SET PUSHED.
- 02860 01CA B6 11 LDA SECONDS
- 02870 01CC BE 12 LDX MINUTES ;ELSE MINS/SECS.
- 02880 01CE B7 18 OUTPUT1 STA MINREG
- 02890 01D0 BF 19 STX HOUREG ;FALL THROUGH TO 'OUTPUT2'.
- 02900 01D2 ;
- 02910 01D2 B6 18 OUTPUT2 LDA MINREG
- 02920 01D4 CD 02 1F JSR CONVERT ;CONVERT TO BCD.
- 02930 01D7 BE 15 LDX LOW ;MINUTES/LOW DIGIT.
- 02940 01D9 CD 02 2E JSR DISPLAY1
- 02950 01DC BE 16 LDX HIGH ;MINUTES/HIGH DIGIT.
- 02960 01DE CD 02 32 JSR DISPLAY2
- 02970 01E1 B6 19 LDA HOUREG
- 02980 01E3 03 17 05 BRCLR 1,SWITCHES,OUTPUT3;BRANCH IF ALARM SET.
- 02990 01E6 0A 17 02 BRSET 5,SWITCHES,OUTPUT3;BRANCH, HOURS/SECONDS.
- 03000 01E9 B6 13 LDA HOURS
- 03010 01EB A1 0C OUTPUT3 CMP #12 ;"12:
- 03020 01ED 25 04 BLO OUTPUT4
- 03030 01EF 1D 00 BCLR 6,PORTA ;TURN ON PM.
- 03040 01F1 20 02 BRA OUTPUT5
- 03050 01F3 ;
- 03060 01F3 1C 00 OUTPUT4 BSET 6,PORTA ;TURN ON AM.
- 03070 01F5 B6 19 OUTPUT5 LDA HOUREG
- 03080 01F7 01 17 06 BRCLR 0,SWITCHES,OUTPUT6;BRANCH IF CLOCK SET.
- 03090 01FA 03 17 03 BRCLR 1,SWITCHES,OUTPUT6;OR ALARM SET.
- 03100 01FD 0B 17 11 BRCLR 5,SWITCHES,OUTPUT8;BRANCH IF MINS/SECS.
- 03110 0200 00 1B 0E OUTPUT6 BRSET 0,MODE,OUTPUT8 ;BRANCH IF 24 HOUR MODE.
- 03120 0203 A1 00 CMP #0 ;"0 HOURS?
- 03130 0205 26 04 BNE OUTPUT7
- 03140 0207 A6 0C LDA #12 ;MAKE 12 HOUR FORMAT.
- 03150 0209 20 06 BRA OUTPUT8
- 03160 020B ;
- 03170 020B A1 0D OUTPUT7 CMP #13
- 03180 020D 25 02 BLO OUTPUT8 ;NO ADJUSTMENT.
- 03190 020F A0 0C SUB #12 ;MAKE 12 HOUR FORMAT.
- 03200 0211 CD 02 1F OUTPUT8 JSR CONVERT ;CONVERT TO BCD.
-
-
-
-
-
-
- ......PAGE 00005
-
- LINE# LOC CODE SOURCE COMMENT
-
-
- 03210 0214 BE 15 LDX LOW ;HOURS/LOW DIGIT.
- 03220 0216 CD 02 36 JSR DISPLAY3
- 03230 0219 BE 16 LDX HIGH ;HOURS/HIGH DIGIT.
- 03240 021B CD 02 3A JSR DISPLAY4
- 03250 021E 81 RTS
- 03260 021F ;
- 03270 021F ;
- 03280 021F ;*** BINARY-TO-BCD CONVERSION ROUTINE ***
- 03290 021F ;
- 03300 021F ;ENTER WITH ACC = PURE BINARY NUMBER;
- 03310 021F ;EXIT WITH HIGH = MS BYTE, BCD FORMAT,
- 03320 021F ;AND LOW = LS BYTE, BCD FORMAT.
- 03330 021F ;X IS CORRUPTED.
- 03340 021F ;
- 03350 021F 5F CONVERT CLR X ;CLEAR HIGH ORDER.
- 03360 0220 A1 0A CONVERT1 CMP #10 ;"LESS THAN 10?
- 03370 0222 25 05 BLO DONE ;YES, ALL DONE.
- 03380 0224 5C INC X ;ELSE BUMP TENS PLACE.
- 03390 0225 A0 0A SUB #10 ;REPEATED SUBTRACTIONS.
- 03400 0227 20 F7 BRA CONVERT1 ;KEEP GOING.
- 03410 0229 BF 16 DONE STX HIGH ;HIGH ORDER DIGIT.
- 03420 022B B7 15 STA LOW ;LOW ORDER DIGIT.
- 03430 022D 81 RTS
- 03440 022E ;
- 03450 022E ;
- 03460 022E ;*** DISPLAY DRIVER ROUTINES ***
- 03470 022E ;
- 03480 022E ;ENTER WITH X = INDEX INTO 'TABLE'
- 03490 022E ;
- 03500 022E ;
- 03510 022E A6 F7 DISPLAY1 LDA #%11110111 ;MINUTES, LOW DIGIT.
- 03520 0230 20 1C BRA DISPLAY6
- 03530 0232 ;
- 03540 0232 A6 FB DISPLAY2 LDA #%11111011 ;MINUTES, HIGH DIGIT.
- 03550 0234 20 18 BRA DISPLAY6
- 03560 0236 ;
- 03570 0236 A6 FD DISPLAY3 LDA #%11111101 ;HOURS, LOW DIGIT.
- 03580 0238 20 14 BRA DISPLAY6
- 03590 023A ;
- 03600 023A A6 FE DISPLAY4 LDA #%11111110 ;HOURS, HIGH DIGIT.
- 03610 023C 00 1B 0F BRSET 0,MODE,DISPLAY6 ;BRANCH IF 24 HOUR MODE.
- 03620 023F 01 17 06 BRCLR 0,SWITCHES,DISPLAY5;BRANCH IF CLOCK SET.
- 03630 0242 03 17 03 BRCLR 1,SWITCHES,DISPLAY5;BRANCH IF ALARM SET.
- 03640 0245 0B 17 06 BRCLR 5,SWITCHES,DISPLAY6;BRANCH IF MIN/SEC.
- 03650 0248 A3 00 DISPLAY5 CPX #0 ;"A LEADING ZERO?
- 03660 024A 26 02 BNE DISPLAY6 ;NO.
- 03670 024C AE 0A LDX #10 ;ELSE BLANK IT OUT.
- 03680 024E B7 02 DISPLAY6 STA PORTC ;TURN OFF CHOSEN PORT.
- 03690 0250 D6 02 F8 LDA TABLE,X2 ;GET LED PATTERN.
- 03700 0253 BA 14 ORA COLON ;SET/CLR SECONDS COLON.
- 03710 0255 B7 01 STA PORTB ;SEND LED PATTERN.
- 03720 0257 ;
- 03730 0257 01 1F 07 BRCLR 0,ALARM,DISPLAY7;BRANCH, ALARM FLAG OFF.
- 03740 025A 0E 14 04 BRSET 7,COLON,DISPLAY7;ELSE WAIT FOR COLON ON
- 03750 025D 1F 00 BCLR 7,PORTA ;AND THEN BEEP BUZZER.
-
-
-
-
-
-
- ......PAGE 00006
-
- LINE# LOC CODE SOURCE COMMENT
-
-
- 03760 025F 20 02 BRA DISPLAY8
- 03770 0261 ;
- 03780 0261 1E 00 DISPLAY7 BSET 7,PORTA ;ELSE TURN OFF BUZZER.
- 03790 0263 CD 02 67 DISPLAY8 JSR DELAY ;GET RID OF GHOSTING.
- 03800 0266 81 RTS
- 03810 0267 ;
- 03820 0267 ;
- 03830 0267 ;*** GENERAL PURPOSE DELAY ROUTINE ***
- 03840 0267 ;
- 03850 0267 ;
- 03860 0267 4F DELAY CLR A
- 03870 0268 4A DELAY1 DEC A
- 03880 0269 26 FD BNE DELAY1
- 03890 026B 81 RTS
- 03900 026C ;
- 03910 026C ;
- 03920 026C ;*** MAIN UPDATE PROGRAM ***
- 03930 026C ;*** DRIVEN BY EXTERNAL INTERRUPT ***
- 03940 026C ;*** FROM THE 60 HZ LINE FREQUENCY ***
- 03950 026C ;
- 03960 026C ;
- 03970 026C 3C 10 UPDATE INC JIFFY ;1/60TH OF SECOND COUNTER.
- 03980 026E B6 10 LDA JIFFY
- 03990 0270 A1 1E CMP #30 ;"TIME TO TOGGLE COLON?
- 04000 0272 26 02 BNE UPDATE1
- 04010 0274 1E 14 BSET 7,COLON ;TURN OFF COLON.
- 04020 0276 A1 3C UPDATE1 CMP #60 ;"NEXT SECOND?
- 04030 0278 25 22 BLO UPDATE3 ;BRANCH IF NOT TIME.
- 04040 027A 3F 10 CLR JIFFY ;START OVER.
- 04050 027C 1F 14 BCLR 7,COLON ;TURN ON COLON.
- 04060 027E 3C 11 INC SECONDS
- 04070 0280 B6 11 LDA SECONDS
- 04080 0282 A1 3C CMP #60 ;"NEXT MINUTE?
- 04090 0284 25 16 BLO UPDATE3
- 04100 0286 3F 11 CLR SECONDS ;START OVER.
- 04110 0288 3C 12 INC MINUTES
- 04120 028A B6 12 LDA MINUTES
- 04130 028C A1 3C CMP #60 ;"NEXT HOUR?
- 04140 028E 25 0C BLO UPDATE3
- 04150 0290 3F 12 CLR MINUTES
- 04160 0292 3C 13 INC HOURS
- 04170 0294 B6 13 LDA HOURS
- 04180 0296 A1 18 UPDATE2 CMP #24 ;"NEXT DAY?
- 04190 0298 26 02 BNE UPDATE3
- 04200 029A 3F 13 CLR HOURS
- 04210 029C 80 UPDATE3 RTI
- 04220 029D ;
- 04230 029D ;
- 04240 029D ;*** BUMP ROUTINE USED BY 'SET' ***
- 04250 029D ;
- 04260 029D ;
- 04270 029D 3C 18 BUMP INC MINREG
- 04280 029F B6 18 LDA MINREG
- 04290 02A1 A1 3C CMP #60
- 04300 02A3 25 0C BLO BUMP1
-
-
-
-
-
-
- ......PAGE 00007
-
- LINE# LOC CODE SOURCE COMMENT
-
-
- 04310 02A5 3F 18 CLR MINREG
- 04320 02A7 3C 19 INC HOUREG
- 04330 02A9 B6 19 LDA HOUREG
- 04340 02AB A1 18 CMP #24
- 04350 02AD 26 02 BNE BUMP1
- 04360 02AF 3F 19 CLR HOUREG
- 04370 02B1 81 BUMP1 RTS
- 04380 02B2 ;
- 04390 02B2 ;
- 04400 02B2 ;*** MAIN SWITCH INPUT ROUTINE ***
- 04410 02B2 ;
- 04420 02B2 ;
- 04430 02B2 AE 14 INPUT LDX #20 ;DEBOUNCE CONSTANT.
- 04440 02B4 B6 00 LDA PORTA ;READ SWITCH PORT.
- 04450 02B6 A4 3F AND #%00111111 ;IGNORE OUTPUT LINES.
- 04460 02B8 B7 1A STA TEMP
- 04470 02BA B6 00 INPUT1 LDA PORTA ;READ SWITCHES AGAIN.
- 04480 02BC A4 3F AND #%00111111 ;IGNORE OUTPUT LINES.
- 04490 02BE B1 1A CMP TEMP ;"SEEN IT BEFORE?
- 04500 02C0 26 F0 BNE INPUT ;NO, MUST BE BOUNCE.
- 04510 02C2 5A DEC X ;YES.
- 04520 02C3 26 F5 BNE INPUT1 ;TRY AGAIN TO BE SURE.
- 04530 02C5 ;
- 04540 02C5 1C 1A BSET 6,TEMP ;"BOTH CLOCK & ALARM?
- 04550 02C7 00 1A 0E BRSET 0,TEMP,INPUT2 ;NO.
- 04560 02CA 02 1A 0B BRSET 1,TEMP,INPUT2 ;NO.
- 04570 02CD 10 1A BSET 0,TEMP ;CLEAR CLOCK SET.
- 04580 02CF 12 1A BSET 1,TEMP ;CLEAR ALARM SET.
- 04590 02D1 1D 1A BCLR 6,TEMP ;BOTH PUSHED NOW.
- 04600 02D3 0D 17 02 BRCLR 6,SWITCHES,INPUT2;BOTH PUSHED BEFORE, EXIT.
- 04610 02D6 3C 1B INC MODE ;ELSE TOGGLE 12/24 MODE.
- 04620 02D8 B6 1A INPUT2 LDA TEMP ;ACCEPT NEW SWITCH PATTERN.
- 04630 02DA B7 17 STA SWITCHES
- 04640 02DC 09 17 02 BRCLR 4,SWITCHES,INPUT3;BRANCH, ALARM SWITCH ON.
- 04650 02DF 11 1F BCLR 0,ALARM ;ELSE CLEAR ALARM FLAG.
- 04660 02E1 81 INPUT3 RTS
- 04670 02E2 ;
- 04680 02E2 ;
- 04690 02E2 ;*** SEE IF TIME MATCHES ALARM TIME ***
- 04700 02E2 ;
- 04710 02E2 ;
- 04720 02E2 B6 11 CHECKALM LDA SECONDS ;ONLY TURN ON DURING
- 04730 02E4 26 11 BNE CHECKA1 ;1ST SECOND.
- 04740 02E6 B6 1D LDA ALMIN ;"MINUTES MATCH?
- 04750 02E8 B1 12 CMP MINUTES
- 04760 02EA 26 0B BNE CHECKA1
- 04770 02EC B6 1E LDA ALHOUR ;"HOURS MATCH?
- 04780 02EE B1 13 CMP HOURS
- 04790 02F0 26 05 BNE CHECKA1
- 04800 02F2 08 17 02 BRSET 4,SWITCHES,CHECKA1;ALARM SWITCH OFF.
- 04810 02F5 10 1F BSET 0,ALARM ;SET ALARM FLAG.
- 04820 02F7 81 CHECKA1 RTS
- 04830 02F8 ;
- 04840 02F8 ;
- 04850 02F8 ;*** TABLE OF SEVEN-SEGMENT LED PATTERNS ***
-
-
-
-
-
-
- ......PAGE 00008
-
- LINE# LOC CODE SOURCE COMMENT
-
-
- 04860 02F8 ;
- 04870 02F8 ;
- 04880 02F8 40 TABLE .BYTE %01000000 ;0.
- 04890 02F9 79 .BYTE %01111001 ;1.
- 04900 02FA 24 .BYTE %00100100 ;2.
- 04910 02FB 30 .BYTE %00110000 ;3.
- 04920 02FC 19 .BYTE %00011001 ;4.
- 04930 02FD 12 .BYTE %00010010 ;5.
- 04940 02FE 02 .BYTE %00000010 ;6.
- 04950 02FF 78 .BYTE %01111000 ;7.
- 04960 0300 00 .BYTE %00000000 ;8.
- 04970 0301 18 .BYTE %00011000 ;9.
- 04980 0302 7F .BYTE %01111111 ;BLANKED OUTPUT.
- 04990 0303 09 .BYTE %00001001 ;H.
- 05000 0304 06 .BYTE %00000110 ;E.
- 05010 0305 47 .BYTE %01000111 ;L.
- 05020 0306 0C .BYTE %00001100 ;P.
- 05030 0307 ;
- 05040 0307 ;
- 05050 0307 * =MOR
- 05060 0784 FF .BYTE %11111111 ;SELECT RC CLOCK.
- 05070 0785 * =EXTIRQ
- 05080 07FA 02 6C .WORD UPDATE ;INTERRUPT ROUTINE.
- 05090 07FC * =RESET
- 05100 07FE 01 00 .WORD INITIAL ;MAIN ROUTINE.
- 05110 0800 ;
- 05120 0800 ;
- 05130 0800 .END
-