home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Antic Magazine 1985 September
/
Antic_Magazine_1985_09_Antic.atr
/
timer4.asm
< prev
next >
Wrap
Assembly Source File
|
2023-02-26
|
2KB
|
1 lines
0100 ;TIMER 4¢0110 ;BY FRED PINHO¢0120 ;(c) 1985, ANTIC PUBLISHING¢0160 *= $0600 ;RELOCATABLE¢0170 ;SEE LISTING 2 FOR REMARKS ON PAGE 6 ASSEMBLY¢0180 .TITLE "LISTING 4"¢0190 .TAB 14,18,26¢0200 .SET 1,4¢0210 XITVBV = $E462¢0220 CLD ;MUST BE DONE¢0230 LDA 1021 ;TIMER ACTIVATED?¢0240 BNE GOON ;YES. SKIP AROUND¢0250 LDA #1 ;NO. SET DELAY FOR IMMEDIATE DISPLAY¢0260 STA 1028¢0270 LDA #0 ;SET LOCATIONS TO 0¢0280 STA 18¢0290 STA 19¢0300 STA 20¢0310 LDA #255 ;SET TO INDICATE ACTIVE TIMER¢0320 STA 1021¢0330 GOON DEC 1028 ;CALCULATE TIME?¢0340 BNE EXIT ;NO. BYPASS ROUTINE¢0350 LDA #10 ;YES. RESET DELAY COUNTER¢0360 STA 1028¢0370 LDA 20 ;GET TIMER COUNT¢0380 STA 1022 ;LO BYTE¢0390 LDA 19 ;HI BYTE¢0400 DIVIDE LDX #8 ;DIVIDE BY 60¢0410 LOOP1 ASL 1022 ;TO GET TOTAL SECONDS¢0420 ROL A¢0430 CMP #60¢0440 BCC BRCH1¢0450 SBC #60¢0460 INC 1022¢0470 BRCH1 DEX ¢0480 BNE LOOP1¢0490 STA 1023¢0500 ;TOTAL SECONDS STORED IN REGISTER 1022¢0510 LDX #8 ;DIVIDE BY 60¢0520 LDA #0 ;TO GET MINUTES¢0530 LOOP2 ASL 1022¢0540 ROL A¢0550 CMP #60¢0560 BCC BRCH2¢0570 SBC #60¢0580 INC 1022¢0590 BRCH2 DEX ¢0600 BNE LOOP2¢0610 STA 1023¢0620 ;MINUTES IN 1022, REMAINING SECONDS IN 1023¢0630 ;NOW DIVIDE BY 10 TO GET HI AND LO DIGITS OF DECIMAL NUMBER¢0640 LDX #8¢0650 LDA #0¢0660 LOOP3 ASL 1023¢0670 ROL A¢0680 CMP #10¢0690 BCC BRCH3¢0700 SBC #10¢0710 INC 1023¢0720 BRCH3 DEX ¢0730 BNE LOOP3¢0740 STA 1024¢0750 ;SECONDS(TENS PLACE) IN 1023¢0760 ;SECONDS(UNIT PLACE) IN 1024¢0770 DISPLAY CLC ;STORE 3 DIGITS INTO DISPLAY AREA¢0780 LDY #0¢0790 LDA 1022 ;MINUTES¢0800 ADC #16 ;CONVERT TO SCREEN CODE¢0810 STA (208),Y ;STORE¢0820 INY ¢0830 LDA #26 ;SCREEN CODE FOR ':'¢0840 STA (208),Y¢0850 INY ¢0860 LDA 1023 ;SECONDS(HI)¢0870 ADC #16¢0880 STA (208),Y¢0890 INY ¢0900 LDA 1024 ;SECONDS(LO)¢0910 ADC #16¢0920 STA (208),Y¢0930 LDA 1027 ;TIMER DONE?¢0940 BNE DISABLE ;YES¢0950 EXIT JMP XITVBV ;NO. JUST RETURN TO VBI¢0960 DISABLE LDA #$62 ;RESTORE ORIGINAL VBI VECTOR¢0970 STA 548¢0980 LDA #$E4¢0990 STA 549¢1000 JMP XITVBV ;EXIT¢1010 .END ¢