annotate code_part1/OSTC_code_asm_part1/MAIN.ASM @ 96:25433449bcb5

adding anti-aliased fonts!
author heinrichsweikamp
date Sat, 11 Dec 2010 19:13:26 +0100
parents 82de387d6e7c
children dc349e4264bb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
1
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
2 ; OSTC - diving computer code
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
3 ; Copyright (C) 2008 HeinrichsWeikamp GbR
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
4
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
5 ; This program is free software: you can redistribute it and/or modify
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
6 ; it under the terms of the GNU General Public License as published by
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
7 ; the Free Software Foundation, either version 3 of the License, or
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
8 ; (at your option) any later version.
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
9
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
10 ; This program is distributed in the hope that it will be useful,
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
11 ; but WITHOUT ANY WARRANTY; without even the implied warranty of
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
12 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
13 ; GNU General Public License for more details.
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
14
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
15 ; You should have received a copy of the GNU General Public License
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
16 ; along with this program. If not, see <http://www.gnu.org/licenses/>.
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
17
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
18
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
19 ; it under the terms of the GNU General Public License as published by
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
20 ; the Free Software Foundation, either versio
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
21 ; includes and isr
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
22 ; written by: Matthias Heinrichs, info@heinrichsweikamp.com
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
23 ; written: 041013
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
24 ; last updated: 081219
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
25 ; known bugs:
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
26 ; ToDo:
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
27
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
28
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
29 LIST P=18F4685 ;directive to define processor
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
30 #include <P18F4685.INC> ;processor specific variable definitions
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
31
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
32 #include definitions.asm ; Defines, I/O Ports and variables
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
33
83
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
34 reset_v code 0x0000
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
35 goto start ; Start!
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
36
83
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
37 inter_v code 0x0008
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
38 bra HighInt ;High Priority Interrups
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
39
83
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
40 inter_asm code 0x0018 ;Low Priority Interrups
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
41 ; *** low priority interrupts not used
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
42 bra HighInt ;High Priority Interrups
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
43
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
44 HighInt:
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
45 movff BSR,0x102 ;save BSR register
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
46 movlb b'00000001' ;select Bank1
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
47
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
48 movff STATUS,status_temp ;save STATUS register
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
49 movff WREG,wreg_temp ;save working register
92
82de387d6e7c Interrupt trashes the PRODH:L registers.
JeanDo
parents: 83
diff changeset
50 movff PRODL,prod_temp+0
82de387d6e7c Interrupt trashes the PRODH:L registers.
JeanDo
parents: 83
diff changeset
51 movff PRODH,prod_temp+1
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
52
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
53 movf PORTB,W ;move portb into latch register
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
54
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
55 btfsc PIR1,TMR1IF ;Timer1 INT (external 32.768kHz Clock)
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
56 call timer1int
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
57
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
58 btfsc INTCON,TMR0IF ;Timer0 INT (Debounce Timer)
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
59 call timer0int
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
60
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
61 btfsc PIR2,TMR3IF ;Timer3 INT (Delay for PWM Buzzer)
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
62 call timer3int
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
63
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
64 btfsc PIR1,RCIF ; UART
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
65 call uartint
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
66
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
67 btfsc INTCON,INT0IF ; Switch left
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
68 call schalter_links
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
69
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
70 btfsc INTCON3,INT1IF ; switch right
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
71 call schalter_rechts
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
72
92
82de387d6e7c Interrupt trashes the PRODH:L registers.
JeanDo
parents: 83
diff changeset
73 movff prod_temp+1,PRODH
82de387d6e7c Interrupt trashes the PRODH:L registers.
JeanDo
parents: 83
diff changeset
74 movff prod_temp+0,PRODL
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
75 movff wreg_temp,WREG ;restore working register
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
76 movff status_temp,STATUS ;restore STATUS register
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
77 movff 0x102,BSR ;restore BSR register
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
78 retfie
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
79
83
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
80 ;=============================================================================
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
81 #include text_table.asm ; includes textmacros
83
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
82
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
83 ;=============================================================================
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
84 osct_asm code
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
85 #include displaytext.asm ; sends texts to wordprocessor
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
86 #include math.asm ; mathematical functions
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
87 #include wait.asm ; waitroutines
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
88 #include valconv.asm ; outputs to POSTINC2
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
89 #include eeprom_rs232.asm ; Internal EEPROM and RS232 Interface
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
90 #include oled_samsung.asm ; Attached in 80-System 8-Bit Mode
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
91 #include menu_custom.asm ; Menu "Custom FunctionsI" and "Custom FunctionsII"
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
92 #include menu.asm ; Main Menu and Setup Menu
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
93 #include menu_reset.asm ; Submenu "Reset"
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
94 #include menu_settime.asm ; Submenu "Set Time"
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
95 #include ms5535.asm ; Interface to MS5535A,B or C pressure sensor
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
96 #include pled_outputs.asm ; div. PLED outputs and background debugger
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
97 #include i2c_eeprom.asm ; for external I2C EEPROM and general I2C Routines
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
98 #include menu_logbook.asm ; Submenu "Logbook"
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
99 #include interface.asm ; Interface routines
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
100 #include menu_ppO2.asm ; Constant ppO2 setup menu
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
101 #include menu_battery.asm ; Submenu "Battery Info"
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
102 #include menu_gassetup.asm ; Menu "Gas Setup"
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
103 #include isr.asm ; Interrupt service routine (RTC&Sensor)
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
104 #include surfmode.asm ; Mainroutines for Surfacemode
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
105 #include divemode.asm ; Mainroutines for Divemode
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
106 #include divemode_menu.asm ; Underwater menu
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
107 #include sleepmode.asm ; Mainroutines for Sleepmode
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
108 #include adc_rtc.asm ; A/D converter (battery control) and RTC init
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
109 #include temp_extrema.asm ; Takes care of the temperature extrema logger
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
110 #include sync_clock.asm ; syncs RTC with PC
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
111 #include start.asm ; Startup and init, checks background debugger
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
112 #include simulator.asm ; Stand-alone simulator routines
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
113 #include io.asm ; Low-Level I/O access
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
114
83
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
115 ;=============================================================================
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
116 #include printf.asm ; jDG's compact printf test implementation.
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
117 #ifdef TESTING
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
118 #include aa_tests.asm ; And testing code.
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
119 #include test_printf.asm ; Special font/colors page
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
120 #endif
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
121
83
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
122 ;=============================================================================
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
123 #ifdef AAFONTS
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
124 ; New antialiased word processor and fonts
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
125 #include aa_wordprocessor.asm ; ASM wordprocessor under tests.
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
126 #else
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
127 ; Include C sub-routines automatically
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
128 p3_wp code 0x09A00 ; Mark segment name into the .map file
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
129 ; #include p3_wordprocessor_9A00_BAFF_0B468.txt ; jDG's C-Code
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
130 #include ostc_part3_wordprocessor_NEW_CURSOR_9A00_to_B960_jump_in_B410.txt ; Christians fonts...
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
131 #endif
62
2972a06b0785 1.71 beta in work
heinrichsweikamp
parents: 58
diff changeset
132
83
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
133 ;=============================================================================
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
134 p2_deco code 0x0C000 ; Mark segment name into the .map file
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
135 #include p2_deco_main_v110d.txt
62
2972a06b0785 1.71 beta in work
heinrichsweikamp
parents: 58
diff changeset
136
83
3e351e25f5d1 adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents: 62
diff changeset
137 ;=============================================================================
58
23dba7f60f88 Mk.2 1.70stable
heinrichsweikamp
parents: 51
diff changeset
138 MESSG "OSTC - diving computer code, Copyright (C) 2010 HeinrichsWeikamp GbR"
0
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
139 MESSG "This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the"
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
140 MESSG "Free Software Foundation, either version 3 of the License, or (at your option) any later version."
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
141 MESSG "This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY"
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
142 MESSG "or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details."
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
143 MESSG "You should have received a copy of the GNU General Public License along with this program.If not, see http://www.gnu.org/licenses/."
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
144
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
145 END ; end of program
96a35aeda5f2 Initial setup
heinrichsweikamp
parents:
diff changeset
146