A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 1 MACRO ASSEMBLER A51 V8.01 OBJECT MODULE PLACED IN Main.OBJ ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE Main.A51 MPL SET(SMALL) DEBUG XREF EP LOC OBJ LINE SOURCE 1 ;Software for the measurement-instrument with the Microcontroller P89V664 2 ;------------------------------------------------------------------------------------------ --------------------------------------------- 3 NAME Main 4 5 PUBLIC START,PUTCHAR,PUTSTRING,GETKEY,INPUTKEY,MEASURE1S,MEASURE10MS,BEEP,HOME,WAI T40u,WAIT1640u 6 PUBLIC COUNTER0,COUNTER1,COUNTER2,HELP0,HELP1,HELP2,CALIBRATE0,CALIBRATE1,CALIBRAT E2,MAFAL,MAFPB,GMZC,CMAFAL,CMAFPB,CGMZC,MEA_FACTOR,LOGGER_BYTE 7 PUBLIC DSP_BUF0,DSP_BUF1,DSP_BUF2,DSP_BUF3,DSP_BUF4,MEA_VALUE,ALARM,ALARM_QUIT,ALA RM_MSG,KEY,R_S_KEY 8 PUBLIC CALIBRATE01,CALIBRATE11,CALIBRATE21 9 PUBLIC CALIBRATE02,CALIBRATE12,CALIBRATE22 10 PUBLIC CALIBRATE03,CALIBRATE13,CALIBRATE23 11 PUBLIC CALIBRATE04,CALIBRATE14,CALIBRATE24 12 PUBLIC CALIBRATE05,CALIBRATE15,CALIBRATE25 13 14 ;extern C-Functions 15 EXTRN CODE (IIAALPB,II0ALPB,C_CAL0,C_CAL1,C_ADL_MES,C_ADLALPHA_MES,C_ADLBETA_MES,C_ADLTNEUT _MES,C_ADLFNEUT_MES) 16 EXTRN CODE (C_ADLSALPHA_MES,C_ADLSBETGAM_MES,C_ADLSNEUT_MES,C_EDL_MES,C_EDLALPHA_MES,C_EDLB ETA_MES,C_EDLTNEUT_MES,C_EDLFNEUT_MES) 17 EXTRN CODE (C_EDLSALPHA_MES,C_EDLSBETGAM_MES,C_EDLSNEUT_MES,C_ED_MES,C_EDALPHA_MES,C_EDBETA _MES,C_EDTNEUT_MES,C_EDSNEUT_MES) 18 EXTRN CODE (C_EDSALPHA_MES,C_EDSBETGAM_MES,C_ED0SNEUT_MES,C_IR_MES,C_IRA_MES,C_IRB_MES,C_IR NT_MES,C_IRNF_MES) 19 EXTRN CODE (C_IR0A_MES,C_IR0B_MES,C_IR0N_MES,C_IP_MES,C_IPA_MES,C_IPB_MES,C_IPTN_MES,C_IPTF _MES,C_IP0A_MES,C_IP0B_MES,C_IP0N_MES,C_ACTI_MES) 20 21 ;------------------------------------------------------------------------------------------ --------------------------------------------- 22 PROG SEGMENT CODE 23 CONST SEGMENT CODE 24 VAR SEGMENT DATA 25 XRAM SEGMENT XDATA 26 ;------------------------------------------------------------------------------------------ --------------------------------------------- 27 ;Assembler-Constants 28 ;Display-Commands and Adresses 0001 29 DSP_CLR EQU 00000001B ;Clear Display 0002 30 DSP_HOME EQU 00000010B ;Cursor Home 000E 31 DSP_ON EQU 00001110B ;Display ON, Cursor ON, Cursor not flashing 003C 32 DSP_FUNC EQU 00111100B ;8 Bit, 2 Lines, 5 X 7 Font 0014 33 DSP_SHIFT EQU 00010100B ;Cursor/Display-Shift-Left ON 0007 34 DSP_MODE EQU 00000111B ;Cursor Auto-Increment, Shift Left On 0091 35 DSP_RS BIT 0x90.1 ;Display Command/Data 0092 36 DSP_RW BIT 0x90.2 ;Display Read/Write 0093 37 DSP_EN BIT 0x90.3 ;Display Enable (falling) 38 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 2 39 ;Keyboard Codes 0001 40 R_S_KEY EQU 1 0002 41 ENTER_KEY EQU 2 0003 42 LIGHT_KEY EQU 3 0010 43 LEFT_KEY EQU 16 0004 44 DOWN_KEY EQU 4 0008 45 MENUE_KEY EQU 8 0080 46 RIGHT_KEY EQU 128 0040 47 UP_KEY EQU 64 0020 48 RESET_KEY EQU 32 49 50 ;Light, Tone and Alarm-Bits 0094 51 LIGHT EQU 0x90.4 ;Light P1.4 0095 52 TONE EQU 0x90.5 ;Tone P1.5 00B3 53 ALARM EQU 0xb0.3 ;Alarm P3.3 54 55 ;Counter 0,1 56 ;TF0 EQU 0x88.5 ;Overfolw-Flag Timer 0 57 ;TF1 EQU 0x88.7 ;Overflow-Flag Timer 1 00CF 58 TF2 EQU 0xc8.7 ;Overflow-Flag Timer 2 59 60 ;Counter 2 00CD 61 sfr TH2 = 0xcd 00CC 62 sfr TL2 = 0xcc 63 64 ;PCA 00C1 65 sfr CMOD = 0xc1 ;PCA counter mode 00C0 66 sfr CCON = 0xc0 ;PCA counter controll 00C2 67 sfr CCAPM0 = 0xc2 ;PCA-Module 0 Mode 00FA 68 sfr CCAP0H = 0xfa ;Module 0 Capture High 00EA 69 sfr CCAP0L = 0xea ;Module 0 Capture Low 00F9 70 sfr CH = 0xf9 ;Counter High 00E9 71 sfr CL = 0xe9 ;Counter Low 00C6 72 CR EQU 0xc0.6 ;PCA-Run-Bit in CCON 00C7 73 CF EQU 0xc0.7 ;CF-Bit, Overflow-flag of PCA 74 75 ;PCA-Interrupt 00AE 76 EC BIT 0xa8.6 ;PCA Interrupt Enable 00C0 77 CCF0 EQU 0xc0.0 ;Interrupt-Flag, must be cleared by software, will be set by match 00B8 78 sfr IP0 = 0xb8 ;PCA Interrupt-Level 00B7 79 sfr IP0H = 0xb7 ;PCA Interrupt Level High 0033 80 PCA_VECTOR EQU 33H ;PCA Interrupt Vector 81 82 ;Port 4 00A1 83 sfr P4 = 0xa1 ;Address Port 4 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 3 00C8 84 sfr T2CON = 0xc8 ;Timer 2 Register 00C9 85 sfr T2MOD = 0xc9 86 87 ;other SFR 008E 88 sfr AUXR = 0x8e ;Auxiliary Register 00A2 89 sfr AUXR1 = 0xa2 ;Auxiliary Register 1 90 91 ;addresses FFF0 92 PGM_MTP EQU 0xfff0 ;address low-level subroutines 93 ;------------------------------------------------------------------------------------------ --------------------------------------------- 94 ;Messages [TEXT, 0] ---- 95 RSEG CONST 0000 496E6765 96 INIT_MSG: DB 'Ingenieurbüro ',13,'Baumann ',0 ;Init-Message 0004 6E696575 0008 7262FC72 000C 6F20200D 0010 4261756D 0014 616E6E20 0018 20202000 97 98 ;Menue 001C 4D656E75 99 MENU_MSG: DB 'Menue ',13,'->',0 0020 65202020 0024 20200D2D 0028 3E00 002A 46756E6B 100 FUN_MSG: DB 'Funktionen ',13,'<- ENTER ->',0 002E 74696F6E 0032 656E2020 0036 200D3C2D 003A 20454E54 003E 4552202D 0042 3E00 0044 4D657373 101 MEA_MSG: DB 'Messungen ',13,'<- ENTER ->',0 0048 756E6765 004C 6E202020 0050 0D3C2D20 0054 454E5445 0058 52202D3E 005C 00 102 103 ;Measurement ;multi counter 005D C4717569 104 ADL_MSG: DB 'Äqui.-Dosis-Lstg',13,'<- ENTER ->',0 0061 2E2D446F 0065 7369732D 0069 4C737467 006D 0D3C2D20 0071 454E5445 0075 52202D3E 0079 00 007A 414C5048 105 ADLALPHA_MSG: DB 'ALPHA ',13,'<- ENTER ->',0 007E 41202020 0082 20200D3C 0086 2D20454E 008A 54455220 008E 2D3E00 0091 42455441 106 ADLBETGAM_MSG: DB 'BETA + GAMMA ',13,'<- ENTER ->',0 0095 202B2047 0099 414D4D41 009D 20200D3C 00A1 2D20454E 00A5 54455220 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 4 00A9 2D3E00 00AC 54484552 107 ADLNEUTT_MSG: DB 'THERM. NEUTRONEN',13,'<- ENTER ->',0 00B0 4D2E204E 00B4 45555452 00B8 4F4E454E 00BC 0D3C2D20 00C0 454E5445 00C4 52202D3E 00C8 00 00C9 5343484E 108 ADLNEUTS_MSG: DB 'SCHNL. NEUTRONEN',13,'<- ENTER ->',0 00CD 4C2E204E 00D1 45555452 00D5 4F4E454E 00D9 0D3C2D20 00DD 454E5445 00E1 52202D3E 00E5 00 109 ;single counter 00E6 414C5048 110 ADLOALPHA_MSG: DB 'ALPHA ',13,'<- ENTER ->',0 00EA 41202020 00EE 20200D3C 00F2 2D20454E 00F6 54455220 00FA 2D3E00 00FD 42455441 111 ADLOBETGAM_MSG: DB 'BETA + GAMMA ',13,'<- ENTER ->',0 0101 202B2047 0105 414D4D41 0109 20200D3C 010D 2D20454E 0111 54455220 0115 2D3E00 0118 4E455554 112 ADLONEUTT_MSG: DB 'NEUTRONEN ',13,'<- ENTER ->',0 011C 524F4E45 0120 4E202020 0124 0D3C2D20 0128 454E5445 012C 52202D3E 0130 00 113 114 ;multi counter 0131 456E6572 115 EDL_MSG: DB 'Ener.-Dosis-Lstg',13,'<- ENTER ->',0 0135 2E2D446F 0139 7369732D 013D 4C737467 0141 0D3C2D20 0145 454E5445 0149 52202D3E 014D 00 014E 414C5048 116 EDLALPHA_MSG: DB 'ALPHA ',13,'<- ENTER ->',0 0152 41202020 0156 20200D3C 015A 2D20454E 015E 54455220 0162 2D3E00 0165 42455441 117 EDLBETGAM_MSG: DB 'BETA + GAMMA ',13,'<- ENTER ->',0 0169 202B2047 016D 414D4D41 0171 20200D3C 0175 2D20454E 0179 54455220 017D 2D3E00 0180 54484552 118 EDLNEUTT_MSG: DB 'THERM. NEUTRONEN',13,'<- ENTER ->',0 0184 4D2E204E 0188 45555452 018C 4F4E454E 0190 0D3C2D20 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 5 0194 454E5445 0198 52202D3E 019C 00 019D 5343484E 119 EDLNEUTS_MSG: DB 'SCHNL. NEUTRONEN',13,'<- ENTER ->',0 01A1 4C2E204E 01A5 45555452 01A9 4F4E454E 01AD 0D3C2D20 01B1 454E5445 01B5 52202D3E 01B9 00 120 ;single counter 01BA 414C5048 121 EDLOALPHA_MSG: DB 'ALPHA ',13,'<- ENTER ->',0 01BE 41202020 01C2 20200D3C 01C6 2D20454E 01CA 54455220 01CE 2D3E00 01D1 42455441 122 EDLOBETGAM_MSG: DB 'BETA + GAMMA ',13,'<- ENTER ->',0 01D5 202B2047 01D9 414D4D41 01DD 20200D3C 01E1 2D20454E 01E5 54455220 01E9 2D3E00 01EC 4E455554 123 EDLONEUTT_MSG: DB 'NEUTRONEN ',13,'<- ENTER ->',0 01F0 524F4E45 01F4 4E202020 01F8 0D3C2D20 01FC 454E5445 0200 52202D3E 0204 00 124 125 ;multi counter 0205 C4717569 126 ED_MSG: DB 'Äqui.-Eng.-Dosis',13,'<- ENTER ->',0 0209 2E2D456E 020D 672E2D44 0211 6F736973 0215 0D3C2D20 0219 454E5445 021D 52202D3E 0221 00 0222 414C5048 127 EDALPHA_MSG: DB 'ALPHA ',13,'<- ENTER ->',0 0226 41202020 022A 20200D3C 022E 2D20454E 0232 54455220 0236 2D3E00 0239 42455441 128 EDBETGAM_MSG: DB 'BETA + GAMMA ',13,'<- ENTER ->',0 023D 202B2047 0241 414D4D41 0245 20200D3C 0249 2D20454E 024D 54455220 0251 2D3E00 0254 54484552 129 EDNEUTT_MSG: DB 'THERM. NEUTRONEN',13,'<- ENTER ->',0 0258 4D2E204E 025C 45555452 0260 4F4E454E 0264 0D3C2D20 0268 454E5445 026C 52202D3E 0270 00 0271 5343484E 130 EDNEUTS_MSG: DB 'SCHNL. NEUTRONEN',0 0275 4C2E204E 0279 45555452 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 6 027D 4F4E454E 0281 00 131 ;single counter 0282 414C5048 132 EDOALPHA_MSG: DB 'ALPHA ',13,'<- ENTER ->',0 0286 41202020 028A 20200D3C 028E 2D20454E 0292 54455220 0296 2D3E00 0299 42455441 133 EDOBETGAM_MSG: DB 'BETA + GAMMA ',13,'<- ENTER ->',0 029D 202B2047 02A1 414D4D41 02A5 20200D3C 02A9 2D20454E 02AD 54455220 02B1 2D3E00 02B4 4E455554 134 EDONEUTT_MSG: DB 'NEUTRONEN ',13,'<- ENTER ->',0 02B8 524F4E45 02BC 4E202020 02C0 0D3C2D20 02C4 454E5445 02C8 52202D3E 02CC 00 135 136 ;multi counter 02CD 496D7075 137 IR_MSG: DB 'Impulsrate ',13,'<- ENTER ->',0 02D1 6C737261 02D5 74652020 02D9 200D3C2D 02DD 20454E54 02E1 4552202D 02E5 3E00 02E7 414C5048 138 IRALPHA_MSG: DB 'ALPHA ',13,'<- ENTER ->',0 02EB 41202020 02EF 20200D3C 02F3 2D20454E 02F7 54455220 02FB 2D3E00 02FE 42455441 139 IRBETGAM_MSG: DB 'BETA + GAMMA ',13,'<- ENTER ->',0 0302 202B2047 0306 414D4D41 030A 20200D3C 030E 2D20454E 0312 54455220 0316 2D3E00 0319 54484552 140 IRNEUTT_MSG: DB 'THERM. NEUTRONEN',13,'<- ENTER ->',0 031D 4D2E204E 0321 45555452 0325 4F4E454E 0329 0D3C2D20 032D 454E5445 0331 52202D3E 0335 00 0336 5343484E 141 IRNEUTS_MSG: DB 'SCHNL. NEUTRONEN',0 033A 4C2E204E 033E 45555452 0342 4F4E454E 0346 00 142 ;single counter 0347 414C5048 143 IROALPHA_MSG: DB 'ALPHA ',13,'<- ENTER ->',0 034B 41202020 034F 20200D3C 0353 2D20454E 0357 54455220 035B 2D3E00 035E 42455441 144 IROBETGAM_MSG: DB 'BETA + GAMMA ',13,'<- ENTER ->',0 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 7 0362 202B2047 0366 414D4D41 036A 20200D3C 036E 2D20454E 0372 54455220 0376 2D3E00 0379 4E455554 145 IRONEUTT_MSG: DB 'NEUTRONEN ',13,'<- ENTER ->',0 037D 524F4E45 0381 4E202020 0385 0D3C2D20 0389 454E5445 038D 52202D3E 0391 00 146 147 ;multi counter 0392 496D7075 148 IP_MSG: DB 'Impulse ',13,'<- ENTER ->',0 0396 6C736520 039A 2020200D 039E 3C2D2045 03A2 4E544552 03A6 202D3E00 03AA 414C5048 149 IPALPHA_MSG: DB 'ALPHA ',13,'<- ENTER ->',0 03AE 41202020 03B2 20200D3C 03B6 2D20454E 03BA 54455220 03BE 2D3E00 03C1 42455441 150 IPBETGAM_MSG: DB 'BETA + GAMMA ',13,'<- ENTER ->',0 03C5 202B2047 03C9 414D4D41 03CD 20200D3C 03D1 2D20454E 03D5 54455220 03D9 2D3E00 03DC 54484552 151 IPNEUTT_MSG: DB 'THERM. NEUTRONEN',13,'<- ENTER ->',0 03E0 4D2E204E 03E4 45555452 03E8 4F4E454E 03EC 0D3C2D20 03F0 454E5445 03F4 52202D3E 03F8 00 03F9 5343484E 152 IPNEUTS_MSG: DB 'SCHNL. NEUTRONEN',13,'<- ENTER ->',0 03FD 4C2E204E 0401 45555452 0405 4F4E454E 0409 0D3C2D20 040D 454E5445 0411 52202D3E 0415 00 153 ;single counter 0416 414C5048 154 IPOALPHA_MSG: DB 'ALPHA ',13,'<- ENTER ->',0 041A 41202020 041E 20200D3C 0422 2D20454E 0426 54455220 042A 2D3E00 042D 42455441 155 IPOBETGAM_MSG: DB 'BETA + GAMMA ',13,'<- ENTER ->',0 0431 202B2047 0435 414D4D41 0439 20200D3C 043D 2D20454E 0441 54455220 0445 2D3E00 0448 4E455554 156 IPONEUTT_MSG: DB 'NEUTRONEN ',13,'<- ENTER ->',0 044C 524F4E45 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 8 0450 4E202020 0454 0D3C2D20 0458 454E5445 045C 52202D3E 0460 00 157 158 ;activity 0461 416B7469 159 ACTI_MSG: DB 'Aktivität ',13,'<- ENTER ->',0 0465 766974E4 0469 74202020 046D 20200D3C 0471 2D20454E 0475 54455220 0479 2D3E00 160 161 ;Functions 047C 4C6F6767 162 LOGGER_MSG: DB 'Logger AN/AUS ',13,' ',0 0480 65722041 0484 4E2F4155 0488 53200D3C 048C 454E5445 0490 523E2020 0494 202000 0497 44617465 163 SLOGGER_MSG:DB 'Daten sehen ',13,' ',0 049B 6E207365 049F 68656E20 04A3 200D3C45 04A7 4E544552 04AB 3E202020 04AF 2000 04B1 44617465 164 CLOGGER_MSG:DB 'Daten löschen ',13,' ',0 04B5 6E206CF6 04B9 73636865 04BD 6E200D3C 04C1 454E5445 04C5 523E2020 04C9 202000 04CC 5469636B 165 TON_MSG: DB 'Ticks AN/AUS ',13,' ',0 04D0 7320414E 04D4 2F415553 04D8 20200D3C 04DC 454E5445 04E0 523E2020 04E4 202000 04E7 4C696368 166 LIGHT_MSG: DB 'Licht AN/AUS ',13,' ',0 04EB 7420414E 04EF 2F415553 04F3 20200D3C 04F7 454E5445 04FB 523E2020 04FF 202000 0502 52657365 167 RESET_MSG: DB 'Reset ',13,' ',0 0506 74202020 050A 20200D3C 050E 454E5445 0512 523E2020 0516 202000 168 0519 4B616C69 169 CALIB_MSG: DB 'Kalibrierung ',13,13,'starten: ',0 051D 62726965 0521 72756E67 0525 20200D0D 0529 73746172 052D 74656E3A 0531 3C454E54 0535 45523E20 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 9 0539 20202000 053D 50622D46 170 CAPB_MSG: DB 'Pb-Filt.-Kalibr.',13,'starten: ',0 0541 696C742E 0545 2D4B616C 0549 6962722E 054D 0D737461 0551 7274656E 0555 3A3C454E 0559 5445523E 055D 20202020 0561 00 0562 50383956 171 ERASE_MSG: DB 'P89V664 löschen',13,'',0 0566 36363420 056A 6CF67363 056E 68656E0D 0572 3C434F44 0576 45206569 057A 6E676562 057E 656E3E00 172 173 ;other messages 0582 4B616C69 174 CAL_MSG: DB 'Kalibrierung ',13,'starten:',0 0586 62726965 058A 72756E67 058E 20200D73 0592 74617274 0596 656E3A3C 059A 454E5445 059E 523E00 05A1 436F6465 175 CODE_MSG: DB 'Code: ',0 05A5 3A202020 05A9 202000 05AC 6665686C 176 ERR_MSG: DB 'fehlgeschlagen ',13,' ',0 05B0 67657363 05B4 686C6167 05B8 656E200D 05BC 3C454E54 05C0 45523E20 05C4 20202000 05C8 6F2E6B2E 177 OK_MSG: DB 'o.k. ',0 05CC 20202020 05D0 202000 05D3 616B7469 178 ACT_MSG: DB 'aktiv ',0 05D7 76202020 05DB 202000 05DE 53706569 179 BUFFULL_MSG:DB 'Speicher voll !',13,' ',0 05E2 63686572 05E6 20766F6C 05EA 6C20210D 05EE 3C454E54 05F2 45523E20 05F6 20202000 05FA 2020556D 180 ALARM_MSG: DB ' Umkehrdosis ',13,'erreicht ! ',0 05FE 6B656872 0602 646F7369 0606 73202020 060A 0D657272 060E 65696368 0612 74202120 0616 3C522F53 061A 3E00 181 182 ;-------------------- don't change order (beginn) ---------------------------------------- 183 ;calculated constants for use of the instrument in ROM 061C 184 CMAFAL: DS 4 ;measured transmissin-factor of the Al-filter for Beta and Gamma A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 10 0620 185 CGMZC: DS 4 ;the Geiger-Müller-Zähler-constant of the 70072 Tubes 0624 186 CCALIBRATE0:DS 2 ;middle from 5 measurements tube 0 from Beta and Gamma calibration 0626 187 CCALIBRATE1:DS 2 ;middle from 5 measurements tube 1 0628 188 CCALIBRATE2:DS 2 ;middle from 5 measurements tube 2 062A 189 CMAFPB: DS 4 ;measured transmission-factor of the Al-Pb-filter for Neutrons 062E 190 CCALIBRATE3:DS 2 ;middle from 5 measurements tube 0 from Neutron Al-Pb-filter calibration 0630 191 CCALIBRATE4:DS 2 ;middle from 5 measurements tube 1 0632 192 CCALIBRATE5:DS 2 ;middle from 5 measurements tube 2 193 194 ;pointer to actually C_logger 0634 195 C_LOG_PTR: DS 2 ;next free buffer address in C_LOGGER 0636 196 CLOGGER_BYTE:DS 1 ;next free index in C_LOGGER 197 ;256 data-logger-string-buffers 0637 198 C_LOGGER: DS 8670 ;255 copies of DSP_BUF0, each 34 Byte 199 ;------------------------------------------------------------------------------------------ --------------------------------------------- 200 ;Variables, Space 128 Byte ---- 201 RSEG VAR 0000 202 COUNTER0: DS 2 ;Geiger-Müller Impulse Counter 0 or high-word of 32 Bit counter 0002 203 COUNTER1: DS 2 ;Geiger-Müller Impulse Counter 1 or high-word of 32 Bit counter 0004 204 COUNTER2: DS 2 ;Geiger-Müller Impulse Counter 2 or high-word of 32 Bit counter 0006 205 HELP0: DS 2 ;Help-Variable or low-word of 32 Bit counter 0008 206 HELP1: DS 2 ;Help-Variable or low-word of 32 Bit counter 000A 207 HELP2: DS 2 ;Help-Variable or low-word of 32 Bit counter 000C 208 KEY: DS 1 ;last key 209 210 ;Variables, Space: 1792 Byte ---- 211 RSEG XRAM 212 ;measured data by calibrating 0000 213 CALIBRATE01: DS 2 ;Geiger-Müller Calibration Counter 01, sum of 5 seconds 0002 214 CALIBRATE11: DS 2 ;Geiger-Müller Calibration Counter 11, sum of 5 seconds 0004 215 CALIBRATE21: DS 2 ;Geiger-Müller Calibration Counter 21, sum of 5 seconds 0006 216 CALIBRATE02: DS 2 ;Geiger-Müller Calibration Counter 02, sum of 5 seconds 0008 217 CALIBRATE12: DS 2 ;Geiger-Müller Calibration Counter 12, sum of 5 seconds 000A 218 CALIBRATE22: DS 2 ;Geiger-Müller Calibration Counter 22, sum of 5 seconds 000C 219 CALIBRATE03: DS 2 ;Geiger-Müller Calibration Counter 03, sum of 5 seconds 000E 220 CALIBRATE13: DS 2 ;Geiger-Müller Calibration Counter 13, sum of 5 seconds 0010 221 CALIBRATE23: DS 2 ;Geiger-Müller Calibration Counter 23, sum of 5 seconds 0012 222 CALIBRATE04: DS 2 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 11 ;Geiger-Müller Calibration Counter 04, sum of 5 seconds 0014 223 CALIBRATE14: DS 2 ;Geiger-Müller Calibration Counter 14, sum of 5 seconds 0016 224 CALIBRATE24: DS 2 ;Geiger-Müller Calibration Counter 24, sum of 5 seconds 0018 225 CALIBRATE05: DS 2 ;Geiger-Müller Calibration Counter 05, sum of 5 seconds 001A 226 CALIBRATE15: DS 2 ;Geiger-Müller Calibration Counter 15, sum of 5 seconds 001C 227 CALIBRATE25: DS 2 ;Geiger-Müller Calibration Counter 25, sum of 5 seconds 228 ;-------------------- don't change order (end) ------------------------------------------- 229 ;ASCII-buffers for display-output 001E 230 DSP_BUF0: DS 34 ;5 buffers for 34 (17) charakters 0040 231 DSP_BUF1: DS 17 0051 232 DSP_BUF2: DS 17 0062 233 DSP_BUF3: DS 17 0073 234 DSP_BUF4: DS 17 0084 235 MEA_VALUE: DS 4 236 237 ;-------------------- don't change order (begin) ----------------------------------------- 238 ;pointer to actually C_LOGGER 0088 239 LOG_PTR: DS 2 ;address of the first empty 34 Byte C_LOGGER-buffer 008A 240 LOGGER_BYTE: DS 1 ;number of log, 0 if data-logger is deactivated 241 242 ;calculated constants for use of the instrument in XRAM 008B 243 MAFAL: DS 4 ;measured transmissin-factor of the Al-filter for Beta and Gamma 008F 244 GMZC: DS 4 ;the Geiger-Müller-Zähler-constant of the 70072 Tubes 0093 245 CALIBRATE0: DS 2 ;middle from 5 measurements tube 0 from Beta and Gamma calibration 0095 246 CALIBRATE1: DS 2 ;middle from 5 measurements tube 1 0097 247 CALIBRATE2: DS 2 ;middle from 5 measurements tube 2 0099 248 MAFPB: DS 4 ;measured transmission-factor of the Al-Pb-filter for Neutrons 009D 249 CALIBRATE3: DS 2 ;middle from 5 measurements tube 0 from Neutron Al-Pb-filter calibration 009F 250 CALIBRATE4: DS 2 ;middle from 5 measurements tube 1 00A1 251 CALIBRATE5: DS 2 ;middle from 5 measurements tube 2 252 ;-------------------- don't change (end) order ------------------------------------------- 253 ;----------------------------------------------------------------------------------------- 00A3 254 MEA_FACTOR: DS 2 ;measuring-factor depending form measuring time, 1 for 1 s, 100 for 10 ms 00A5 255 ALARM_QUIT: DS 1 ;byte indicates quitted alarm when 1 256 ;------------------------------------------------------------------------------------------ -------------------------------------------- 257 ;Programm-Start ---- 258 RSEG PROG 259 0000 120000 F 260 CHIP_ERASE: CALL HOME 0003 900000 F 261 MOV DPTR,#CODE_MSG 0006 120000 F 262 CALL PUTSTRING ;Code-Mesg. 0009 120000 F 263 CALL INPUTKEY 000C B4015B 264 CJNE A,#R_S_KEY,ERASE0 ;1st R/S-Key ? 000F 120000 F 265 CALL INPUTKEY A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 12 0012 B40155 266 CJNE A,#R_S_KEY,ERASE0 ;2nd R/S-Key ? 0015 120000 F 267 CALL INPUTKEY 0018 B4014F 268 CJNE A,#R_S_KEY,ERASE0 ;3rd R/S-KEY ? 001B 120000 F 269 CALL INPUTKEY 001E B40149 270 CJNE A,#R_S_KEY,ERASE0 ;4th R/S-KEY ? 271 ;code accepted 0021 D2B3 272 SETB ALARM ;switch on Piezo 273 ;erase Status Bit and Boot Vector 0023 A904 274 MOV R1,04h ;erase command 0025 12FFF0 275 CALL PGM_MTP ;call command 0028 04 276 INC A ;A = 0 -> done 0029 B4013E 277 CJNE A,#1,ERASE0 278 ;o.k. 002C 120000 F 279 CALL HOME 002F 900000 F 280 MOV DPTR,#OK_MSG 0032 120000 F 281 CALL PUTSTRING 282 ;erase block 4, 48 kByte to 64 kByte 0035 9000C0 283 MOV DPTR,#0x00c0 0038 7901 284 MOV R1,#0x01 003A 12FFF0 285 CALL PGM_MTP ;call command 003D 04 286 INC A ;A = 0 -> done 003E B40129 287 CJNE A,#1,ERASE0 288 ;o.k. 0041 120000 F 289 CALL HOME 0044 900000 F 290 MOV DPTR,#OK_MSG 0047 120000 F 291 CALL PUTSTRING 292 ;erase block 3, 32 kByte to 48 kByte 004A 900080 293 MOV DPTR,#0x0080 004D 7901 294 MOV R1,#0x01 004F 12FFF0 295 CALL PGM_MTP ;call command 296 ;erase block 2, 16 kByte to 32 kByte 0052 900040 297 MOV DPTR,#0x0040 0055 7901 298 MOV R1,#0x01 0057 12FFF0 299 CALL PGM_MTP ;call command 300 ;erase block 0, 0 kByte to 8 kByte 005A 900000 301 MOV DPTR,#0x0000 005D 7901 302 MOV R1,#0x01 005F 12FFF0 303 CALL PGM_MTP ;call command 304 ;erase block 1, 8 kByte to 16 kByte 0062 900020 305 MOV DPTR,#0x0020 0065 7901 306 MOV R1,#0x01 0067 12FFF0 307 CALL PGM_MTP ;call command 308 ;now is all flash ROM erased 309 ;--------------------------- 006A 120000 F 310 ERASE0: CALL BEEP 006D 120000 F 311 CALL HOME 0070 900000 F 312 MOV DPTR,#ERR_MSG 0073 120000 F 313 CALL PUTSTRING 0076 120000 F 314 CALL INPUTKEY 0079 020000 F 315 JMP MENUE_2550 ;code-mistake, from beginning 316 317 ;----------------------------------------------------------- A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 13 318 319 ;set AUXR and POF in PCON, o.k. 007C 758E02 320 START: MOV AUXR,#00000010B ;use expanded RAM on chip, set EXTRAM, clear AO 007F E587 321 MOV A,PCON ;set Power On Flag 0081 4410 322 ORL A,#00010000B 0083 F587 323 MOV PCON,A 324 325 ;set security bits 1 and 2 0085 7905 326 MOV R1,#0x05 0087 758200 327 MOV DPL,#0 ;write protect 008A 12FFF0 328 CALL PGM_MTP 008D 7905 329 MOV R1,#0x05 008F 758201 330 MOV DPL,#1 ;read protect 0092 12FFF0 331 CALL PGM_MTP 332 333 ;set Interrupts, o.k. 0095 75B840 334 MOV IP0,#01000000B ;preset IP0 for PCA 0098 75B720 335 MOV IP0H,#0100000B ;presst IP0H 009B D2AF 336 SETB EA ;enable Interrupts 009D D2AE 337 SETB EC ;enable Interrupt for PCA 338 339 ;set Port-Outputs to Initial, o.k. 009F 7580FF 340 MOV P0,#11111111B ;Display-Data 00A2 759039 341 MOV P1,#00111001B ;Display-Enable ON, Light ON and Tone ON, T2 as Input 00A5 75A0FF 342 MOV P2,#11111111B ;Keyboard all as Input 00A8 75B038 343 MOV P3,#00111000B ;P3 mostly OFF, Alarm Bit 3, T0, T1 as Input 00AB 43A1FF 344 ORL P4,#11111111B ;P4 all ON 345 346 ;init PCA module 0 for 16 Bit software-timer, make Beep and switch off Initial-Alarm, o.k. 00AE 75C181 347 MOV CMOD,#10000001B ;run in Idle-Mode, Enable Interrupt 00B1 75C000 348 MOV CCON,#00000000B ;Bit 6=1 means RUN, Bit 0=1 means CCF0-Bit-Module 0 00B4 75C249 349 MOV CCAPM0,#01001001B ;as Software-Timer, Interrupt enabled 00B7 75FAFF 350 MOV CCAP0H,#11111111B 00BA 75EAFF 351 MOV CCAP0L,#11111111B ;load 65535 to CCAP0, corresponds to 9.8304 ms 00BD 120000 F 352 CALL BEEP ;9.8304 ms Beep with switch off 353 354 ;init display, o.k. 00C0 C291 355 CLR DSP_RS 00C2 C292 356 CLR DSP_RW 00C4 743C 357 MOV A,#DSP_FUNC ;Function SET 00C6 120000 F 358 CALL PUTCHAR 00C9 740E 359 MOV A,#DSP_ON ;Display ON 00CB 120000 F 360 CALL PUTCHAR 00CE 120000 F 361 CALL HOME ;clear Display A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 14 00D1 7407 362 MOV A,#DSP_MODE ;Cursor Auto-Increment 00D3 120000 F 363 CALL PUTCHAR 364 365 ;init LOG_PTR and LOGGER_BYTE, o.k. 00D6 900000 F 366 MOV DPTR,#C_LOG_PTR ;actually pointer to first empty buffer 00D9 A883 367 MOV R0,DPH 00DB A982 368 MOV R1,DPL 00DD 900000 F 369 MOV DPTR,#LOG_PTR 00E0 E9 370 MOV A,R1 00E1 F0 371 MOVX @DPTR,A 00E2 A3 372 INC DPTR 00E3 E8 373 MOV A,R0 00E4 F0 374 MOVX @DPTR,A 00E5 E4 375 CLR A 00E6 900000 F 376 MOV DPTR,#CLOGGER_BYTE ;get C-LOGGER_BYTE to LOGGER_BYTE 00E9 93 377 MOVC A,@A+DPTR 00EA 900000 F 378 MOV DPTR,#LOGGER_BYTE 00ED F0 379 MOVX @DPTR,A 380 381 ;display Init-Message and wait for 1 s, o.k. 00EE 900000 F 382 MENUE: MOV DPTR,#INIT_MSG 00F1 120000 F 383 CALL PUTSTRING 00F4 120000 F 384 CALL MEASURE1S ;wait 1 s 00F7 120000 F 385 CALL BEEP 00FA 120000 F 386 MENUE_0: CALL GETKEY ;wait for Menue-Key 00FD B408FA 387 CJNE A,#MENUE_KEY,MENUE_0 ;Me nue-Key ? 388 ;Menue-Key pressed ----------------------------- 0100 120000 F 389 MENUE_A: CALL HOME 0103 900000 F 390 MOV DPTR,#MENU_MSG 0106 120000 F 391 CALL PUTSTRING ;Menue-Msg 0109 120000 F 392 MENUE_1: CALL GETKEY 010C B480FA 393 CJNE A,#RIGHT_KEY,MENUE_1 394 ;Right-Key pressed ----------------------------- 010F 120000 F 395 MENUE_10: CALL HOME 0112 900000 F 396 MOV DPTR,#FUN_MSG 0115 120000 F 397 CALL PUTSTRING ;Function-Msg. 0118 120000 F 398 MENUE_2: CALL GETKEY 011B B40203 399 CJNE A,#ENTER_KEY,MENUE_2M0 011E 020000 F 400 JMP MENUE_2A 0121 B41002 401 MENUE_2M0: CJNE A,#LEFT_KEY,MENUE_2M1 0124 80DA 402 JMP MENUE_A 0126 B480EF 403 MENUE_2M1: CJNE A,#RIGHT_KEY,MENUE_2 404 ;Right-Key pressed, the Functions -------------- 0129 120000 F 405 MENUE_2M: CALL HOME 012C 900000 F 406 MOV DPTR,#MEA_MSG 012F 120000 F 407 CALL PUTSTRING ;Measurement-MSG. 0132 120000 F 408 MENUE_2M3: CALL GETKEY 0135 B41002 409 CJNE A,#LEFT_KEY,MENUE_2M2 0138 80D5 410 JMP MENUE_10 013A B48003 411 MENUE_2M2: CJNE A,#RIGHT_KEY,MENUE_2M4 013D 020000 F 412 JMP MENUE_2A 0140 B402EF 413 MENUE_2M4: CJNE A,#ENTER_KEY,MENUE_2M3 414 ;Right-Key pressed ----------------------------- 0143 120000 F 415 MENUE_20: CALL HOME 0146 900000 F 416 MOV DPTR,#ADL_MSG 0149 120000 F 417 CALL PUTSTRING A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 15 ;ADL, multi 014C 120000 F 418 MEN_2_1_0: CALL GETKEY 014F B40219 419 CJNE A,#ENTER_KEY,MEN_2_1_0A 420 ;measurement ADL, all 421 ;loop, exit to MENUE 0152 120000 F 422 ADL0: CALL MEASURE1S 0155 120000 F 423 CALL C_ADL_MES 0158 120000 F 424 CALL HOME 015B 900000 F 425 MOV DPTR,#DSP_BUF0 ;display ADL-measuring result 015E 120000 F 426 CALL XPUTSTRING 0161 120000 F 427 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 0164 E500 F 428 MOV A,KEY ;get Last keypress during measuring 0166 B408E9 429 CJNE A,#MENUE_KEY,ADL0 0169 80D8 430 JMP MENUE_20 016B B41002 431 MEN_2_1_0A: CJNE A,#LEFT_KEY,MEN_2_1_0B 016E 80B9 432 JMP MENUE_2M 0170 B480D9 433 MEN_2_1_0B: CJNE A,#RIGHT_KEY,MEN_2_1_0 434 ;Right-Key pressed ----------------------------- 0173 120000 F 435 MENUE_30: CALL HOME 0176 900000 F 436 MOV DPTR,#ADLALPHA_MSG 0179 120000 F 437 CALL PUTSTRING ;ADL, Alpha 017C 120000 F 438 MEN_3_1_0: CALL GETKEY 017F B40219 439 CJNE A,#ENTER_KEY,MEN_3_1_0A 440 ;measurement ADL, Alpha 441 ;loop, exit to MENUE 0182 120000 F 442 ADLA0: CALL MEASURE1S 0185 120000 F 443 CALL C_ADLALPHA_MES 0188 120000 F 444 CALL HOME 018B 900000 F 445 MOV DPTR,#DSP_BUF0 ;display ADL-Alpha-measuring result 018E 120000 F 446 CALL XPUTSTRING 0191 120000 F 447 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 0194 E500 F 448 MOV A,KEY ;get Last keypress during measuring 0196 B408E9 449 CJNE A,#MENUE_KEY,ADLA0 0199 80D8 450 JMP MENUE_30 019B B41002 451 MEN_3_1_0A: CJNE A,#LEFT_KEY,MEN_3_1_0B 019E 80A3 452 JMP MENUE_20 01A0 B480D9 453 MEN_3_1_0B: CJNE A,#RIGHT_Key,MEN_3_1_0 454 ;Right-Key pressed ----------------------------- 01A3 120000 F 455 MENUE_40: CALL HOME 01A6 900000 F 456 MOV DPTR,#ADLBETGAM_MSG 01A9 120000 F 457 CALL PUTSTRING ;ADL, Beta and Gamma 01AC 120000 F 458 MEN_4_1_0: CALL GETKEY 01AF B40219 459 CJNE A,#ENTER_KEY,MEN_4_1_0A 460 ;measurement ADL, Beta and Gamma 461 ;loop, exit to MENUE 01B2 120000 F 462 ADLB0: CALL MEASURE1S 01B5 120000 F 463 CALL C_ADLBETA_MES 01B8 120000 F 464 CALL HOME 01BB 900000 F 465 MOV DPTR,#DSP_BUF0 ;display ADL-Beta + Gamma-measuring result 01BE 120000 F 466 CALL XPUTSTRING 01C1 120000 F 467 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 01C4 E500 F 468 MOV A,KEY ;get Last keypress during measuring 01C6 B408E9 469 CJNE A,#MENUE_KEY,ADLB0 01C9 80D8 470 JMP MENUE_40 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 16 01CB B41002 471 MEN_4_1_0A: CJNE A,#LEFT_KEY,MEN_4_1_0B 01CE 80A3 472 JMP MENUE_30 01D0 B480D9 473 MEN_4_1_0B: CJNE A,#RIGHT_Key,MEN_4_1_0 474 ;Right-Key pressed ----------------------------- 01D3 120000 F 475 MENUE_50: CALL HOME 01D6 900000 F 476 MOV DPTR,#ADLNEUTT_MSG 01D9 120000 F 477 CALL PUTSTRING ;ADL, therm. Neutr. 01DC 120000 F 478 MEN_5_1_0: CALL GETKEY 01DF B40219 479 CJNE A,#ENTER_KEY,MEN_5_1_0A 480 ;measurement ADL, therm. Neut. 481 ;loop, exit to MENUE 01E2 120000 F 482 ADLTN0: CALL MEASURE1S 01E5 120000 F 483 CALL C_ADLTNEUT_MES 01E8 120000 F 484 CALL HOME 01EB 900000 F 485 MOV DPTR,#DSP_BUF0 ;display ADL-therm.-Neutrons-measuring result 01EE 120000 F 486 CALL XPUTSTRING 01F1 120000 F 487 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 01F4 E500 F 488 MOV A,KEY ;get Last keypress during measuring 01F6 B408E9 489 CJNE A,#MENUE_KEY,ADLTN0 01F9 80D8 490 JMP MENUE_50 01FB B41002 491 MEN_5_1_0A: CJNE A,#LEFT_KEY,MEN_5_1_0B 01FE 80A3 492 JMP MENUE_40 0200 B480D9 493 MEN_5_1_0B: CJNE A,#RIGHT_Key,MEN_5_1_0 494 ;Right-Key pressed ----------------------------- 0203 120000 F 495 MENUE_60: CALL HOME 0206 900000 F 496 MOV DPTR,#ADLNEUTS_MSG 0209 120000 F 497 CALL PUTSTRING ;ADL, fast Neutr. 020C 120000 F 498 MEN_6_1_0: CALL GETKEY 020F B40219 499 CJNE A,#ENTER_KEY,MEN_6_1_0A 500 ;measurement ADL, fast Neutr. 501 ;loop, exit to MENUE 0212 120000 F 502 ADLFN0: CALL MEASURE1S 0215 120000 F 503 CALL C_ADLFNEUT_MES 0218 120000 F 504 CALL HOME 021B 900000 F 505 MOV DPTR,#DSP_BUF0 ;display ADL-fast-Neutrons-measuring result 021E 120000 F 506 CALL XPUTSTRING 0221 120000 F 507 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 0224 E500 F 508 MOV A,KEY ;get Last keypress during measuring 0226 B408E9 509 CJNE A,#MENUE_KEY,ADLFN0 0229 80D8 510 JMP MENUE_60 022B B41002 511 MEN_6_1_0A: CJNE A,#LEFT_KEY,MEN_6_1_0B 022E 80A3 512 JMP MENUE_50 0230 B480D9 513 MEN_6_1_0B: CJNE A,#RIGHT_Key,MEN_6_1_0 514 ;Right-Key pressed ----------------------------- 0233 120000 F 515 MENUE_70: CALL HOME 0236 900000 F 516 MOV DPTR,#ADLOALPHA_MSG 0239 120000 F 517 CALL PUTSTRING ;ADL, Alpha, single 023C 120000 F 518 MEN_7_1_0: CALL GETKEY 023F B40219 519 CJNE A,#ENTER_KEY,MEN_7_1_0A 520 ;measurement ADL, Alpha, single 521 ;loop, exit to MENUE 0242 120000 F 522 ADLSA: CALL MEASURE1S 0245 120000 F 523 CALL C_ADLSALPHA_MES 0248 120000 F 524 CALL HOME 024B 900000 F 525 MOV DPTR,#DSP_BUF0 ;display ADL-Alpha, if surly only Alpha-radiation 024E 120000 F 526 CALL XPUTSTRING A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 17 0251 120000 F 527 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 0254 E500 F 528 MOV A,KEY ;get Last keypress during measuring 0256 B408E9 529 CJNE A,#MENUE_KEY,ADLSA 0259 80D8 530 JMP MENUE_70 025B B41002 531 MEN_7_1_0A: CJNE A,#LEFT_KEY,MEN_7_1_0B 025E 80A3 532 JMP MENUE_60 0260 B480D9 533 MEN_7_1_0B: CJNE A,#RIGHT_Key,MEN_7_1_0 534 ;Right-Key pressed ----------------------------- 0263 120000 F 535 MENUE_80: CALL HOME 0266 900000 F 536 MOV DPTR,#ADLOBETGAM_MSG 0269 120000 F 537 CALL PUTSTRING ;ADL, Beta and Gamma, single 026C 120000 F 538 MEN_8_1_0: CALL GETKEY 026F B40219 539 CJNE A,#ENTER_KEY,MEN_8_1_0A 540 ;measurement ADL, Beta and Gamma, single 541 ;loop, exit to MENUE 0272 120000 F 542 ADLSB: CALL MEASURE1S 0275 120000 F 543 CALL C_ADLSBETGAM_MES 0278 120000 F 544 CALL HOME 027B 900000 F 545 MOV DPTR,#DSP_BUF0 ;display ADL-Beta+Gamma, if surly only Beta and Gamma-radiation 027E 120000 F 546 CALL XPUTSTRING 0281 120000 F 547 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 0284 E500 F 548 MOV A,KEY ;get Last keypress during measuring 0286 B408E9 549 CJNE A,#MENUE_KEY,ADLSB 0289 80D8 550 JMP MENUE_80 028B B41002 551 MEN_8_1_0A: CJNE A,#LEFT_KEY,MEN_8_1_0B 028E 80A3 552 JMP MENUE_70 0290 B480D9 553 MEN_8_1_0B: CJNE A,#RIGHT_Key,MEN_8_1_0 554 ;Right-Key pressed ----------------------------- 0293 120000 F 555 MENUE_90: CALL HOME 0296 900000 F 556 MOV DPTR,#ADLONEUTT_MSG 0299 120000 F 557 CALL PUTSTRING ;ADL, therm. Neutr., single 029C 120000 F 558 MEN_9_1_0: CALL GETKEY 029F B40219 559 CJNE A,#ENTER_KEY,MEN_9_1_0A 560 ;measurement ADL, Neutrons 561 ;loop, exit to MENUE 02A2 120000 F 562 ADLSN: CALL MEASURE1S 02A5 120000 F 563 CALL C_ADLSNEUT_MES 02A8 120000 F 564 CALL HOME 02AB 900000 F 565 MOV DPTR,#DSP_BUF0 ;display ADL-Neutrons, if surly only Neutron-radiation 02AE 120000 F 566 CALL XPUTSTRING 02B1 120000 F 567 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 02B4 E500 F 568 MOV A,KEY ;get Last keypress during measuring 02B6 B408E9 569 CJNE A,#MENUE_KEY,ADLSN 02B9 80D8 570 JMP MENUE_90 02BB B41002 571 MEN_9_1_0A: CJNE A,#LEFT_KEY,MEN_9_1_0B 02BE 80A3 572 JMP MENUE_80 02C0 B480D9 573 MEN_9_1_0B: CJNE A,#RIGHT_Key,MEN_9_1_0 574 ;Right-Key pressed ----------------------------- 02C3 120000 F 575 MENUE_100: CALL HOME 02C6 900000 F 576 MOV DPTR,#EDL_MSG 02C9 120000 F 577 CALL PUTSTRING ;EDL, multi 02CC 120000 F 578 MEN_10_1_0: CALL GETKEY 02CF B40219 579 CJNE A,#ENTER_KEY,MEN_10_1_0A 580 ;measurement EDL, multi 581 ;loop, exit to MENUE A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 18 02D2 120000 F 582 EDL0: CALL MEASURE1S 02D5 120000 F 583 CALL C_EDL_MES 02D8 120000 F 584 CALL HOME 02DB 900000 F 585 MOV DPTR,#DSP_BUF0 ;display EDL-multi-measuring result 02DE 120000 F 586 CALL XPUTSTRING 02E1 120000 F 587 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 02E4 E500 F 588 MOV A,KEY ;get Last keypress during measuring 02E6 B408E9 589 CJNE A,#MENUE_KEY,EDL0 02E9 80D8 590 JMP MENUE_100 02EB B41002 591 MEN_10_1_0A:CJNE A,#LEFT_KEY,MEN_10_1_0B 02EE 80A3 592 JMP MENUE_90 02F0 B480D9 593 MEN_10_1_0B:CJNE A,#RIGHT_Key,MEN_10_1_0 594 ;Right-Key pressed ----------------------------- 02F3 120000 F 595 MENUE_11: CALL HOME 02F6 900000 F 596 MOV DPTR,#EDLALPHA_MSG 02F9 120000 F 597 CALL PUTSTRING ;EDL, Alpha 02FC 120000 F 598 MEN_11_1_0: CALL GETKEY 02FF B40219 599 CJNE A,#ENTER_KEY,MEN_11_1_0A 600 ;measurement EDL, Alpha 601 ;loop, exit to MENUE 0302 120000 F 602 EDLA0: CALL MEASURE1S 0305 120000 F 603 CALL C_EDLALPHA_MES 0308 120000 F 604 CALL HOME 030B 900000 F 605 MOV DPTR,#DSP_BUF0 ;display EDL-Alpha-measuring result 030E 120000 F 606 CALL XPUTSTRING 0311 120000 F 607 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 0314 E500 F 608 MOV A,KEY ;get Last keypress during measuring 0316 B408E9 609 CJNE A,#MENUE_KEY,EDLA0 0319 80D8 610 JMP MENUE_11 031B B41002 611 MEN_11_1_0A:CJNE A,#LEFT_KEY,MEN_11_1_0B 031E 80A3 612 JMP MENUE_100 0320 B480D9 613 MEN_11_1_0B:CJNE A,#RIGHT_Key,MEN_11_1_0 614 ;Right-Key pressed ----------------------------- 0323 120000 F 615 MENUE_12: CALL HOME 0326 900000 F 616 MOV DPTR,#EDLBETGAM_MSG 0329 120000 F 617 CALL PUTSTRING ;EDL, Beta and Gamma 032C 120000 F 618 MEN_12_1_0: CALL GETKEY 032F B40219 619 CJNE A,#ENTER_KEY,MEN_12_1_0A 620 ;measurement EDL, Beta and Gamma 621 ;loop, exit to MENUE 0332 120000 F 622 EDLB0: CALL MEASURE1S 0335 120000 F 623 CALL C_EDLBETA_MES 0338 120000 F 624 CALL HOME 033B 900000 F 625 MOV DPTR,#DSP_BUF0 ;display EDL-Beta + Gamma-measuring result 033E 120000 F 626 CALL XPUTSTRING 0341 120000 F 627 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 0344 E500 F 628 MOV A,KEY ;get Last keypress during measuring 0346 B408E9 629 CJNE A,#MENUE_KEY,EDLB0 0349 80D8 630 JMP MENUE_12 034B B41002 631 MEN_12_1_0A:CJNE A,#LEFT_KEY,MEN_12_1_0B 034E 80A3 632 JMP MENUE_11 0350 B480D9 633 MEN_12_1_0B:CJNE A,#RIGHT_Key,MEN_12_1_0 634 ;Right-Key pressed ----------------------------- 0353 120000 F 635 MENUE_13: CALL HOME 0356 900000 F 636 MOV DPTR,#EDLNEUTT_MSG A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 19 0359 120000 F 637 CALL PUTSTRING ;EDL, therm. Neutr. 035C 120000 F 638 MEN_13_1_0: CALL GETKEY 035F B40219 639 CJNE A,#ENTER_KEY,MEN_13_1_0A 640 ;measurement EDL, therm. Neutr. 641 ;loop, exit to MENUE 0362 120000 F 642 EDLTN0: CALL MEASURE1S 0365 120000 F 643 CALL C_EDLTNEUT_MES 0368 120000 F 644 CALL HOME 036B 900000 F 645 MOV DPTR,#DSP_BUF0 ;display EDL-therm.-Neutrons-measuring result 036E 120000 F 646 CALL XPUTSTRING 0371 120000 F 647 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 0374 E500 F 648 MOV A,KEY ;get Last keypress during measuring 0376 B408E9 649 CJNE A,#MENUE_KEY,EDLTN0 0379 80D8 650 JMP MENUE_13 037B B41002 651 MEN_13_1_0A:CJNE A,#LEFT_KEY,MEN_13_1_0B 037E 80A3 652 JMP MENUE_12 0380 B480D9 653 MEN_13_1_0B:CJNE A,#RIGHT_Key,MEN_13_1_0 654 ;Right-Key pressed ----------------------------- 0383 120000 F 655 MENUE_14: CALL HOME 0386 900000 F 656 MOV DPTR,#EDLNEUTS_MSG 0389 120000 F 657 CALL PUTSTRING ;EDL, fast neutr. 038C 120000 F 658 MEN_14_1_0: CALL GETKEY 038F B40219 659 CJNE A,#ENTER_KEY,MEN_14_1_0A 660 ;measurement EDL, fast Neutr. 661 ;loop, exit to MENUE 0392 120000 F 662 EDLFN0: CALL MEASURE1S 0395 120000 F 663 CALL C_EDLFNEUT_MES 0398 120000 F 664 CALL HOME 039B 900000 F 665 MOV DPTR,#DSP_BUF0 ;display EDL-fast-Neutrons-measuring result 039E 120000 F 666 CALL XPUTSTRING 03A1 120000 F 667 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 03A4 E500 F 668 MOV A,KEY ;get Last keypress during measuring 03A6 B408E9 669 CJNE A,#MENUE_KEY,EDLFN0 03A9 80D8 670 JMP MENUE_14 03AB B41002 671 MEN_14_1_0A:CJNE A,#LEFT_KEY,MEN_14_1_0B 03AE 80A3 672 JMP MENUE_13 03B0 B480D9 673 MEN_14_1_0B:CJNE A,#RIGHT_KEY,MEN_14_1_0 674 ;Right-Key pressed ----------------------------- 03B3 120000 F 675 MENUE_15: CALL HOME 03B6 900000 F 676 MOV DPTR,#EDLOALPHA_MSG 03B9 120000 F 677 CALL PUTSTRING ;EDL, Alpha, single 03BC 120000 F 678 MEN_15_1_0: CALL GETKEY 03BF B40219 679 CJNE A,#ENTER_KEY,MEN_15_1_0A 680 ;measurement EDL, Alpha, single 681 ;loop, exit to MENUE 03C2 120000 F 682 EDLSA: CALL MEASURE1S 03C5 120000 F 683 CALL C_EDLSALPHA_MES 03C8 120000 F 684 CALL HOME 03CB 900000 F 685 MOV DPTR,#DSP_BUF0 ;display EDL-Alpha, if surly only Alpha-radiation 03CE 120000 F 686 CALL XPUTSTRING 03D1 120000 F 687 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 03D4 E500 F 688 MOV A,KEY ;get Last keypress during measuring 03D6 B408E9 689 CJNE A,#MENUE_KEY,EDLSA 03D9 80D8 690 JMP MENUE_15 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 20 03DB B41002 691 MEN_15_1_0A:CJNE A,#LEFT_KEY,MEN_15_1_0B 03DE 80A3 692 JMP MENUE_14 03E0 B480D9 693 MEN_15_1_0B:CJNE A,#RIGHT_KEY,MEN_15_1_0 694 ;Right-Key pressed ----------------------------- 03E3 120000 F 695 MENUE_16: CALL HOME 03E6 900000 F 696 MOV DPTR,#EDLOBETGAM_MSG 03E9 120000 F 697 CALL PUTSTRING ;EDL, Beta and Gamma, single 03EC 120000 F 698 MEN_16_1_0: CALL GETKEY 03EF B40219 699 CJNE A,#ENTER_KEY,MEN_16_1_0A 700 ;measurement EDL, Beta and Gamma, single 701 ;loop, exit to MENUE 03F2 120000 F 702 EDLSB: CALL MEASURE1S 03F5 120000 F 703 CALL C_EDLSBETGAM_MES 03F8 120000 F 704 CALL HOME 03FB 900000 F 705 MOV DPTR,#DSP_BUF0 ;display EDL-Beta+Gamma, if surly only Beta and Gamma-radiation 03FE 120000 F 706 CALL XPUTSTRING 0401 120000 F 707 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 0404 E500 F 708 MOV A,KEY ;get Last keypress during measuring 0406 B408E9 709 CJNE A,#MENUE_KEY,EDLSB 0409 80D8 710 JMP MENUE_16 040B B41002 711 MEN_16_1_0A:CJNE A,#LEFT_KEY,MEN_16_1_0B 040E 80A3 712 JMP MENUE_15 0410 B480D9 713 MEN_16_1_0B:CJNE A,#RIGHT_KEY,MEN_16_1_0 714 ;Right-Key pressed ----------------------------- 0413 120000 F 715 MENUE_17: CALL HOME 0416 900000 F 716 MOV DPTR,#EDLONEUTT_MSG 0419 120000 F 717 CALL PUTSTRING ;EDL, therm. Neutr., single 041C 120000 F 718 MEN_17_1_0: CALL GETKEY 041F B40219 719 CJNE A,#ENTER_KEY,MEN_17_1_0A 720 ;measurement EDL, therm. Neutr., single 721 ;loop, exit to MENUE 0422 120000 F 722 EDLSN: CALL MEASURE1S 0425 120000 F 723 CALL C_EDLSNEUT_MES 0428 120000 F 724 CALL HOME 042B 900000 F 725 MOV DPTR,#DSP_BUF0 ;display EDL-Neutrons, if surly only Neutron-radiation 042E 120000 F 726 CALL XPUTSTRING 0431 120000 F 727 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 0434 E500 F 728 MOV A,KEY ;get Last keypress during measuring 0436 B408E9 729 CJNE A,#MENUE_KEY,EDLSN 0439 80D8 730 JMP MENUE_17 043B B41002 731 MEN_17_1_0A:CJNE A,#LEFT_KEY,MEN_17_1_0B 043E 80A3 732 JMP MENUE_16 0440 B480D9 733 MEN_17_1_0B:CJNE A,#RIGHT_KEY,MEN_17_1_0 734 ;Right-Key pressed ----------------------------- 0443 120000 F 735 MENUE_ED: CALL HOME 0446 900000 F 736 MOV DPTR,#ED_MSG 0449 120000 F 737 CALL PUTSTRING ;ED, multi 044C 120000 F 738 ME_ED_1_0: CALL GETKEY 044F B4021C 739 CJNE A,#ENTER_KEY,ME_ED_1_0A 740 ;measurement ED, multi 0452 120000 F 741 CALL CLEAR_VAR 742 ;loop, exit to MENUE 0455 120000 F 743 ED_0: CALL MEASUREED 0458 120000 F 744 CALL C_ED_MES 045B 120000 F 745 CALL HOME 045E 900000 F 746 MOV DPTR,#DSP_BUF0 ;display ED-multi-measuring result A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 21 0461 120000 F 747 CALL XPUTSTRING 0464 120000 F 748 CALL DATA_LOGGER ;look wheather data-logger is switched on 0467 E500 F 749 MOV A,KEY ;get last key during measuring 0469 B408E9 750 CJNE A,#MENUE_KEY,ED_0 ;go on with measuring 046C 80D5 751 JMP MENUE_ED 046E B41002 752 ME_ED_1_0A: CJNE A,#LEFT_KEY,ME_ED_1_0B 0471 80A0 753 JMP MENUE_17 0473 B480D6 754 ME_ED_1_0B: CJNE A,#RIGHT_KEY,ME_ED_1_0 755 ;Right-Key pressed ----------------------------- 0476 120000 F 756 MENUE_EDA: CALL HOME 0479 900000 F 757 MOV DPTR,#EDALPHA_MSG 047C 120000 F 758 CALL PUTSTRING ;ED, Alpha, multi 047F 120000 F 759 EDA_1_0: CALL GETKEY 0482 B4021C 760 CJNE A,#ENTER_KEY,EDA_1_0A 761 ;measurement ED, Alpha, multi 0485 120000 F 762 CALL CLEAR_VAR 763 ;loop, exit to MENUE 0488 120000 F 764 EDA_0: CALL MEASUREED 048B 120000 F 765 CALL C_EDALPHA_MES 048E 120000 F 766 CALL HOME 0491 900000 F 767 MOV DPTR,#DSP_BUF0 ;display ED-multi-measuring result 0494 120000 F 768 CALL XPUTSTRING 0497 120000 F 769 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 049A E500 F 770 MOV A,KEY ;get last key during measuring 049C B408E9 771 CJNE A,#MENUE_KEY,EDA_0 ;go on with measuring 049F 80D5 772 JMP MENUE_EDA 04A1 B41002 773 EDA_1_0A: CJNE A,#LEFT_KEY,EDA_1_0B 04A4 809D 774 JMP MENUE_ED 04A6 B480D6 775 EDA_1_0B: CJNE A,#RIGHT_KEY,EDA_1_0 776 ;Right-Key pressed ----------------------------- 04A9 120000 F 777 MENUE_EDBG: CALL HOME 04AC 900000 F 778 MOV DPTR,#EDBETGAM_MSG 04AF 120000 F 779 CALL PUTSTRING ;ED, Beta + Gamma, multi 04B2 120000 F 780 EDBG_1_0: CALL GETKEY 04B5 B4021C 781 CJNE A,#ENTER_KEY,EDBG_1_0A 782 ;measurement ED, Beta and Gamma, multi 04B8 120000 F 783 CALL CLEAR_VAR 784 ;loop, exit to MENUE 04BB 120000 F 785 EDBG_0: CALL MEASUREED 04BE 120000 F 786 CALL C_EDBETA_MES 04C1 120000 F 787 CALL HOME 04C4 900000 F 788 MOV DPTR,#DSP_BUF0 ;display ED-multi-measuring result 04C7 120000 F 789 CALL XPUTSTRING 04CA 120000 F 790 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 04CD E500 F 791 MOV A,KEY 04CF B408E9 792 CJNE A,#MENUE_KEY,EDBG_0 04D2 80D5 793 JMP MENUE_EDBG 04D4 B41002 794 EDBG_1_0A: CJNE A,#LEFT_KEY,EDBG_1_0B 04D7 809D 795 JMP MENUE_EDA 04D9 B480D6 796 EDBG_1_0B: CJNE A,#RIGHT_KEY,EDBG_1_0 797 ;Right-Key pressed ----------------------------- 04DC 120000 F 798 MENUE_EDNT: CALL HOME 04DF 900000 F 799 MOV DPTR,#EDNEUTT_MSG 04E2 120000 F 800 CALL PUTSTRING A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 22 ;ED, therm. Neutrons, multi 04E5 120000 F 801 EDNT_1_0: CALL GETKEY 04E8 B4021C 802 CJNE A,#ENTER_KEY,EDNT_1_0A 803 ;measurement ED, therm. Neutrons, multi 04EB 120000 F 804 CALL CLEAR_VAR 805 ;loop, exit to MENUE 04EE 120000 F 806 EDNT_0: CALL MEASUREED 04F1 120000 F 807 CALL C_EDTNEUT_MES 04F4 120000 F 808 CALL HOME 04F7 900000 F 809 MOV DPTR,#DSP_BUF0 ;display ED-multi-measuring result 04FA 120000 F 810 CALL XPUTSTRING 04FD 120000 F 811 CALL DATA_LOGGER 0500 E500 F 812 MOV A,KEY 0502 B408E9 813 CJNE A,#MENUE_KEY,EDNT_0 0505 80D5 814 JMP MENUE_EDNT 0507 B41002 815 EDNT_1_0A: CJNE A,#LEFT_KEY,EDNT_1_0B 050A 809D 816 JMP MENUE_EDBG 050C B480D6 817 EDNT_1_0B: CJNE A,#RIGHT_KEY,EDNT_1_0 818 ;Right-Key pressed ----------------------------- 050F 120000 F 819 MENUE_EDNF: CALL HOME 0512 900000 F 820 MOV DPTR,#EDNEUTS_MSG 0515 120000 F 821 CALL PUTSTRING ;ED, fast Neutrons, multi 0518 120000 F 822 EDNS_1_0: CALL GETKEY 051B B4021C 823 CJNE A,#ENTER_KEY,EDNS_1_0A 824 ;measurement ED, fast Neuttrons, multi 051E 120000 F 825 CALL CLEAR_VAR 826 ;loop, exit to MENUE 0521 120000 F 827 EDNF_0: CALL MEASUREED 0524 120000 F 828 CALL C_EDSNEUT_MES 0527 120000 F 829 CALL HOME 052A 900000 F 830 MOV DPTR,#DSP_BUF0 ;display ED-multi-measuring result 052D 120000 F 831 CALL XPUTSTRING 0530 120000 F 832 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 0533 E500 F 833 MOV A,KEY 0535 B408E9 834 CJNE A,#MENUE_KEY,EDNF_0 0538 80D5 835 JMP MENUE_EDNF 053A B41002 836 EDNS_1_0A: CJNE A,#LEFT_KEY,EDNS_1_0B 053D 809D 837 JMP MENUE_EDNT 053F B480D6 838 EDNS_1_0B: CJNE A,#RIGHT_KEY,EDNS_1_0 839 ;Right-Key pressed ----------------------------- 0542 120000 F 840 MENUE_ED0A: CALL HOME 0545 900000 F 841 MOV DPTR,#EDOALPHA_MSG 0548 120000 F 842 CALL PUTSTRING ;ED, Alpha, single 054B 120000 F 843 ED0A_1_0: CALL GETKEY 054E B4021B 844 CJNE A,#ENTER_KEY,ED0A_1_0A 845 ;measurement ED, Alpha, single 0551 120000 F 846 CALL CLEAR_VAR 847 ;loop, exit to MENUE 0554 120000 F 848 EDAS_0: CALL MEASUREED 0557 120000 F 849 CALL C_EDSALPHA_MES 055A 120000 F 850 CALL HOME 055D 900000 F 851 MOV DPTR,#DSP_BUF0 ;display ED-single-measuring result 0560 120000 F 852 CALL XPUTSTRING 0563 120000 F 853 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 0566 E8 854 MOV A,R0 0567 B408EA 855 CJNE A,#MENUE_KEY,EDAS_0 056A 80D6 856 JMP MENUE_ED0A 056C B41002 857 ED0A_1_0A: CJNE A,#LEFT_KEY,ED0A_1_0B 056F 809E 858 JMP MENUE_EDNF A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 23 0571 B480D7 859 ED0A_1_0B: CJNE A,#RIGHT_KEY,ED0A_1_0 860 ;Right-Key pressed ----------------------------- 0574 120000 F 861 MENUE_ED0BG:CALL HOME 0577 900000 F 862 MOV DPTR,#EDOBETGAM_MSG 057A 120000 F 863 CALL PUTSTRING ;ED, Beta + Gamma, single 057D 120000 F 864 ED0BGS_1_0: CALL GETKEY 0580 B4021C 865 CJNE A,#ENTER_KEY,ED0BGS_1_0A 866 ;measurement ED, Beta + Gamma, single 0583 120000 F 867 CALL CLEAR_VAR 868 ;loop, exit to MENUE 0586 120000 F 869 EDBS_0: CALL MEASUREED 0589 120000 F 870 CALL C_EDSBETGAM_MES 058C 120000 F 871 CALL HOME 058F 900000 F 872 MOV DPTR,#DSP_BUF0 ;display ED-single-measuring result 0592 120000 F 873 CALL XPUTSTRING 0595 120000 F 874 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 0598 E500 F 875 MOV A,KEY 059A B408E9 876 CJNE A,#MENUE_KEY,EDBS_0 059D 80D5 877 JMP MENUE_ED0BG 059F B41002 878 ED0BGS_1_0A:CJNE A,#LEFT_KEY,ED0BGS_1_0B 05A2 809E 879 JMP MENUE_ED0A 05A4 B480D6 880 ED0BGS_1_0B:CJNE A,#RIGHT_KEY,ED0BGS_1_0 881 ;Right-Key pressed ----------------------------- 05A7 120000 F 882 MENUE_ED0TN:CALL HOME 05AA 900000 F 883 MOV DPTR,#EDONEUTT_MSG 05AD 120000 F 884 CALL PUTSTRING ;ED, Neutrons, single 05B0 120000 F 885 ED0TN_1_0: CALL GETKEY 05B3 B4021B 886 CJNE A,#ENTER_KEY,ED0TN_1_0A 887 ;measurement ED, Neutrons, single 05B6 120000 F 888 CALL CLEAR_VAR 889 ;loop, exit to MENUE 05B9 120000 F 890 EDONS_0: CALL MEASUREED 05BC 120000 F 891 CALL C_ED0SNEUT_MES 05BF 120000 F 892 CALL HOME 05C2 900000 F 893 MOV DPTR,#DSP_BUF0 ;display ED-single-measuring result 05C5 120000 F 894 CALL XPUTSTRING 05C8 120000 F 895 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 05CB E8 896 MOV A,R0 05CC B408EA 897 CJNE A,#MENUE_KEY,EDONS_0 05CF 80D6 898 JMP MENUE_ED0TN 05D1 B41002 899 ED0TN_1_0A: CJNE A,#LEFT_KEY,ED0TN_1_0B 05D4 809E 900 JMP MENUE_ED0BG 05D6 B480D7 901 ED0TN_1_0B: CJNE A,#RIGHT_KEY,ED0TN_1_0 902 ;Right-Key pressed ----------------------------- 05D9 120000 F 903 MENUE_18: CALL HOME 05DC 900000 F 904 MOV DPTR,#IR_MSG 05DF 120000 F 905 CALL PUTSTRING ;IR, multi 05E2 120000 F 906 MEN_18_1_0: CALL GETKEY 05E5 B40219 907 CJNE A,#ENTER_KEY,MEN_18_1_0A 908 ;measurement IR, multi 909 ;loop, exit to MENUE_A 05E8 120000 F 910 IR: CALL MEASURE1S 05EB 120000 F 911 CALL C_IR_MES 05EE 120000 F 912 CALL HOME 05F1 900000 F 913 MOV DPTR,#DSP_BUF0 ;display IR-measuring result 05F4 120000 F 914 CALL XPUTSTRING 05F7 120000 F 915 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 24 05FA E500 F 916 MOV A,KEY ;get Last keypress during measuring 05FC B408E9 917 CJNE A,#MENUE_KEY,IR 05FF 80D8 918 JMP MENUE_18 0601 B41002 919 MEN_18_1_0A:CJNE A,#LEFT_KEY,MEN_18_1_0B 0604 80A1 920 JMP MENUE_ED0TN 0606 B480D9 921 MEN_18_1_0B:CJNE A,#RIGHT_Key,MEN_18_1_0 922 ;Right-Key pressed ----------------------------- 0609 120000 F 923 MENUE_19: CALL HOME 060C 900000 F 924 MOV DPTR,#IRALPHA_MSG 060F 120000 F 925 CALL PUTSTRING ;IR, Alpha 0612 120000 F 926 MEN_19_1_0: CALL GETKEY 0615 B40219 927 CJNE A,#ENTER_KEY,MEN_19_1_0A 928 ;measurement IR, Alpha 929 ;loop, exit to MENUE 0618 120000 F 930 IRA: CALL MEASURE1S 061B 120000 F 931 CALL C_IRA_MES 061E 120000 F 932 CALL HOME 0621 900000 F 933 MOV DPTR,#DSP_BUF0 ;display IR-measuring result 0624 120000 F 934 CALL XPUTSTRING 0627 120000 F 935 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 062A E500 F 936 MOV A,KEY ;get Last keypress during measuring 062C B408E9 937 CJNE A,#MENUE_KEY,IRA 062F 80D8 938 JMP MENUE_19 0631 B41002 939 MEN_19_1_0A:CJNE A,#LEFT_KEY,MEN_19_1_0B 0634 80A3 940 JMP MENUE_18 0636 B480D9 941 MEN_19_1_0B:CJNE A,#RIGHT_Key,MEN_19_1_0 942 ;Right-Key pressed ----------------------------- 0639 120000 F 943 MENUE20: CALL HOME 063C 900000 F 944 MOV DPTR,#IRBETGAM_MSG 063F 120000 F 945 CALL PUTSTRING ;IR, Beta and Gamma 0642 120000 F 946 MEN20_1_0: CALL GETKEY 0645 B40219 947 CJNE A,#ENTER_KEY,MEN20_1_0A 948 ;measurement IR, Beta and Gamma 949 ;loop, exit to MENUE 0648 120000 F 950 IRB: CALL MEASURE1S 064B 120000 F 951 CALL C_IRB_MES 064E 120000 F 952 CALL HOME 0651 900000 F 953 MOV DPTR,#DSP_BUF0 ;display IR-measuring result 0654 120000 F 954 CALL XPUTSTRING 0657 120000 F 955 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 065A E500 F 956 MOV A,KEY ;get Last keypress during measuring 065C B408E9 957 CJNE A,#MENUE_KEY,IRB 065F 80D8 958 JMP MENUE20 0661 B41002 959 MEN20_1_0A: CJNE A,#LEFT_KEY,MEN20_1_0B 0664 80A3 960 JMP MENUE_19 0666 B480D9 961 MEN20_1_0B: CJNE A,#RIGHT_Key,MEN20_1_0 962 ;Right-Key pressed ----------------------------- 0669 120000 F 963 MENUE21: CALL HOME 066C 900000 F 964 MOV DPTR,#IRNEUTT_MSG 066F 120000 F 965 CALL PUTSTRING ;IR, therm. Neutr. 0672 120000 F 966 MEN21_1_0: CALL GETKEY 0675 B40219 967 CJNE A,#ENTER_KEY,MEN21_1_0A 968 ;measurement IR, therm. Neutr. 969 ;loop, exit to MENUE 0678 120000 F 970 IRNT: CALL MEASURE1S 067B 120000 F 971 CALL C_IRNT_MES A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 25 067E 120000 F 972 CALL HOME 0681 900000 F 973 MOV DPTR,#DSP_BUF0 ;display IR-measuring result 0684 120000 F 974 CALL XPUTSTRING 0687 120000 F 975 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 068A E500 F 976 MOV A,KEY ;get Last keypress during measuring 068C B408E9 977 CJNE A,#MENUE_KEY,IRNT 068F 80D8 978 JMP MENUE21 0691 B41002 979 MEN21_1_0A: CJNE A,#LEFT_KEY,MEN21_1_0B 0694 80A3 980 JMP MENUE20 0696 B480D9 981 MEN21_1_0B: CJNE A,#RIGHT_Key,MEN21_1_0 982 ;Right-Key pressed ----------------------------- 0699 120000 F 983 MENUE22: CALL HOME 069C 900000 F 984 MOV DPTR,#IRNEUTS_MSG 069F 120000 F 985 CALL PUTSTRING ;IR, fast Neutr. 06A2 120000 F 986 MEN22_1_0: CALL GETKEY 06A5 B40219 987 CJNE A,#ENTER_KEY,MEN22_1_0A 988 ;measurement IR, fast Neutr. 989 ;loop, exit to MENUE 06A8 120000 F 990 IRNF: CALL MEASURE1S 06AB 120000 F 991 CALL C_IRNF_MES 06AE 120000 F 992 CALL HOME 06B1 900000 F 993 MOV DPTR,#DSP_BUF0 ;display IR-measuring result 06B4 120000 F 994 CALL XPUTSTRING 06B7 120000 F 995 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 06BA E500 F 996 MOV A,KEY ;get Last keypress during measuring 06BC B408E9 997 CJNE A,#MENUE_KEY,IRNF 06BF 80D8 998 JMP MENUE22 06C1 B41002 999 MEN22_1_0A: CJNE A,#LEFT_KEY,MEN22_1_0B 06C4 80A3 1000 JMP MENUE21 06C6 B480D9 1001 MEN22_1_0B: CJNE A,#RIGHT_Key,MEN22_1_0 1002 ;Right-Key pressed ----------------------------- 06C9 120000 F 1003 MENUE23: CALL HOME 06CC 900000 F 1004 MOV DPTR,#IROALPHA_MSG 06CF 120000 F 1005 CALL PUTSTRING ;IR, Alpha, single 06D2 120000 F 1006 MEN23_1_0: CALL GETKEY 06D5 B40219 1007 CJNE A,#ENTER_KEY,MEN23_1_0A 1008 ;measurement IR, Alpha, single 1009 ;loop, exit to MENUE 06D8 120000 F 1010 IR0A: CALL MEASURE1S 06DB 120000 F 1011 CALL C_IR0A_MES 06DE 120000 F 1012 CALL HOME 06E1 900000 F 1013 MOV DPTR,#DSP_BUF0 ;display IR-measuring result 06E4 120000 F 1014 CALL XPUTSTRING 06E7 120000 F 1015 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 06EA E500 F 1016 MOV A,KEY ;get Last keypress during measuring 06EC B408E9 1017 CJNE A,#MENUE_KEY,IR0A 06EF 80D8 1018 JMP MENUE23 06F1 B41002 1019 MEN23_1_0A: CJNE A,#LEFT_KEY,MEN23_1_0B 06F4 80A3 1020 JMP MENUE22 06F6 B480D9 1021 MEN23_1_0B: CJNE A,#RIGHT_Key,MEN23_1_0 1022 ;Right-Key pressed ----------------------------- 06F9 120000 F 1023 MENUE24: CALL HOME 06FC 900000 F 1024 MOV DPTR,#IROBETGAM_MSG 06FF 120000 F 1025 CALL PUTSTRING ;IR, Beta and Gamma, single A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 26 0702 120000 F 1026 MEN24_1_0: CALL GETKEY 0705 B40219 1027 CJNE A,#ENTER_KEY,MEN24_1_0A 1028 ;measurement IR, Beta and Gamma, single 1029 ;loop, exit to MENUE 0708 120000 F 1030 IR0B: CALL MEASURE1S 070B 120000 F 1031 CALL C_IR0B_MES 070E 120000 F 1032 CALL HOME 0711 900000 F 1033 MOV DPTR,#DSP_BUF0 ;display IR-measuring result 0714 120000 F 1034 CALL XPUTSTRING 0717 120000 F 1035 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 071A E500 F 1036 MOV A,KEY ;get Last keypress during measuring 071C B408E9 1037 CJNE A,#MENUE_KEY,IR0B 071F 80D8 1038 JMP MENUE24 0721 B41002 1039 MEN24_1_0A: CJNE A,#LEFT_KEY,MEN24_1_0B 0724 80A3 1040 JMP MENUE23 0726 B480D9 1041 MEN24_1_0B: CJNE A,#RIGHT_Key,MEN24_1_0 1042 ;Right-Key pressed ----------------------------- 0729 120000 F 1043 MENUE25: CALL HOME 072C 900000 F 1044 MOV DPTR,#IRONEUTT_MSG 072F 120000 F 1045 CALL PUTSTRING ;IR, Neutr., single 0732 120000 F 1046 MEN25_1_0: CALL GETKEY 0735 B40219 1047 CJNE A,#ENTER_KEY,MEN25_1_0A 1048 ;measurement IR, therm. Neutr., single 1049 ;loop, exit to MENUE 0738 120000 F 1050 IR0N: CALL MEASURE1S 073B 120000 F 1051 CALL C_IR0N_MES 073E 120000 F 1052 CALL HOME 0741 900000 F 1053 MOV DPTR,#DSP_BUF0 ;display IR-measuring result 0744 120000 F 1054 CALL XPUTSTRING 0747 120000 F 1055 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 074A E500 F 1056 MOV A,KEY ;get Last keypress during measuring 074C B408E9 1057 CJNE A,#MENUE_KEY,IR0N 074F 80D8 1058 JMP MENUE25 0751 B41002 1059 MEN25_1_0A: CJNE A,#LEFT_KEY,MEN25_1_0B 0754 80A3 1060 JMP MENUE24 0756 B480D9 1061 MEN25_1_0B: CJNE A,#RIGHT_Key,MEN25_1_0 1062 ;Right-Key pressed ----------------------------- 0759 120000 F 1063 MENUE26: CALL HOME 075C 900000 F 1064 MOV DPTR,#IP_MSG 075F 120000 F 1065 CALL PUTSTRING ;IP, multi 0762 120000 F 1066 MEN26_1_0: CALL GETKEY 0765 B4021C 1067 CJNE A,#ENTER_KEY,MEN26_1_0A 1068 ;measurement IP, multi 0768 120000 F 1069 CALL CLEAR_VAR 1070 ;loop, exit to MENUE 076B 120000 F 1071 IP_0: CALL MEASUREED 076E 120000 F 1072 CALL C_IP_MES 0771 120000 F 1073 CALL HOME 0774 900000 F 1074 MOV DPTR,#DSP_BUF0 ;display IP-measuring result 0777 120000 F 1075 CALL XPUTSTRING 077A 120000 F 1076 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 077D E500 F 1077 MOV A,KEY 077F B408E9 1078 CJNE A,#MENUE_KEY,IP_0 0782 80D5 1079 JMP MENUE26 0784 B41002 1080 MEN26_1_0A: CJNE A,#LEFT_KEY,MEN26_1_0B 0787 80A0 1081 JMP MENUE25 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 27 0789 B480D6 1082 MEN26_1_0B: CJNE A,#RIGHT_Key,MEN26_1_0 1083 ;Right-Key pressed ----------------------------- 078C 120000 F 1084 MENUE27: CALL HOME 078F 900000 F 1085 MOV DPTR,#IPALPHA_MSG 0792 120000 F 1086 CALL PUTSTRING ;IP, Alpha 0795 120000 F 1087 MEN27_1_0: CALL GETKEY 0798 B4021C 1088 CJNE A,#ENTER_KEY,MEN27_1_0A 1089 ;measurement IR, Alpha 079B 120000 F 1090 CALL CLEAR_VAR 1091 ;loop, exit to MENUE 079E 120000 F 1092 IP_A0: CALL MEASUREED 07A1 120000 F 1093 CALL C_IPA_MES 07A4 120000 F 1094 CALL HOME 07A7 900000 F 1095 MOV DPTR,#DSP_BUF0 ;display IP-measuring result 07AA 120000 F 1096 CALL XPUTSTRING 07AD 120000 F 1097 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 07B0 E500 F 1098 MOV A,KEY 07B2 B408E9 1099 CJNE A,#MENUE_KEY,IP_A0 07B5 80D5 1100 JMP MENUE27 07B7 B41002 1101 MEN27_1_0A: CJNE A,#LEFT_KEY,MEN27_1_0B 07BA 809D 1102 JMP MENUE26 07BC B480D6 1103 MEN27_1_0B: CJNE A,#RIGHT_Key,MEN27_1_0 1104 ;Right-Key pressed ----------------------------- 07BF 120000 F 1105 MENUE28: CALL HOME 07C2 900000 F 1106 MOV DPTR,#IPBETGAM_MSG 07C5 120000 F 1107 CALL PUTSTRING ;IP, Beta and Gamma 07C8 120000 F 1108 MEN28_1_0: CALL GETKEY 07CB B4021C 1109 CJNE A,#ENTER_KEY,MEN28_1_0A 1110 ;measurement IP, Beta and Gamma 1111 ;clear COUNTER0 - COUNTER2 and HELP0 - HELP2 07CE 120000 F 1112 CALL CLEAR_VAR 1113 ;loop, exit to MENUE 07D1 120000 F 1114 IP_B0: CALL MEASUREED 07D4 120000 F 1115 CALL C_IPB_MES 07D7 120000 F 1116 CALL HOME 07DA 900000 F 1117 MOV DPTR,#DSP_BUF0 ;display IP-measuring result 07DD 120000 F 1118 CALL XPUTSTRING 07E0 120000 F 1119 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 07E3 E500 F 1120 MOV A,KEY 07E5 B408E9 1121 CJNE A,#MENUE_KEY,IP_B0 07E8 80D5 1122 JMP MENUE28 07EA B41002 1123 MEN28_1_0A: CJNE A,#LEFT_KEY,MEN28_1_0B 07ED 809D 1124 JMP MENUE27 07EF B480D6 1125 MEN28_1_0B: CJNE A,#RIGHT_Key,MEN28_1_0 1126 ;Right-Key pressed ----------------------------- 07F2 120000 F 1127 MENUE29: CALL HOME 07F5 900000 F 1128 MOV DPTR,#IPNEUTT_MSG 07F8 120000 F 1129 CALL PUTSTRING ;IP, therm. Neutr. 07FB 120000 F 1130 MEN29_1_0: CALL GETKEY 07FE B4021C 1131 CJNE A,#ENTER_KEY,MEN29_1_0A 1132 ;measurement IP, therm. Neutr. 0801 120000 F 1133 CALL CLEAR_VAR 1134 ;loop, exit to MENUE 0804 120000 F 1135 IP_TN0: CALL MEASUREED 0807 120000 F 1136 CALL C_IPTN_MES 080A 120000 F 1137 CALL HOME 080D 900000 F 1138 MOV DPTR,#DSP_BUF0 ;display IP-measuring result 0810 120000 F 1139 CALL XPUTSTRING A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 28 0813 120000 F 1140 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 0816 E500 F 1141 MOV A,KEY 0818 B408E9 1142 CJNE A,#MENUE_KEY,IP_TN0 081B 80D5 1143 JMP MENUE29 081D B41002 1144 MEN29_1_0A: CJNE A,#LEFT_KEY,MEN29_1_0B 0820 809D 1145 JMP MENUE28 0822 B480D6 1146 MEN29_1_0B: CJNE A,#RIGHT_Key,MEN29_1_0 1147 ;Right-Key pressed ----------------------------- 0825 120000 F 1148 MENUE30: CALL HOME 0828 900000 F 1149 MOV DPTR,#IPNEUTS_MSG 082B 120000 F 1150 CALL PUTSTRING ;IP, fast Neutr. 082E 120000 F 1151 MEN30_1_0: CALL GETKEY 0831 B4021C 1152 CJNE A,#ENTER_KEY,MEN30_1_0A 1153 ;measurement IP, fast Neutr. 0834 120000 F 1154 CALL CLEAR_VAR 1155 ;loop, exit to MENUE 0837 120000 F 1156 IP_NF0: CALL MEASUREED 083A 120000 F 1157 CALL C_IPTF_MES 083D 120000 F 1158 CALL HOME 0840 900000 F 1159 MOV DPTR,#DSP_BUF0 ;display IP-measuring result 0843 120000 F 1160 CALL XPUTSTRING 0846 120000 F 1161 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 0849 E500 F 1162 MOV A,KEY 084B B408E9 1163 CJNE A,#MENUE_KEY,IP_NF0 084E 80D5 1164 JMP MENUE30 0850 B41002 1165 MEN30_1_0A: CJNE A,#LEFT_KEY,MEN30_1_0B 0853 809D 1166 JMP MENUE29 0855 B480D6 1167 MEN30_1_0B: CJNE A,#RIGHT_Key,MEN30_1_0 1168 ;Right-Key pressed ----------------------------- 0858 120000 F 1169 MENUE31: CALL HOME 085B 900000 F 1170 MOV DPTR,#IPOALPHA_MSG 085E 120000 F 1171 CALL PUTSTRING ;IP, Alpha, single 0861 120000 F 1172 MEN31_1_0: CALL GETKEY 0864 B4021C 1173 CJNE A,#ENTER_KEY,MEN31_1_0A 1174 ;measurement IP, Alpha, single 0867 120000 F 1175 CALL CLEAR_VAR 1176 ;loop, exit to MENUE 086A 120000 F 1177 IP_0A0: CALL MEASUREED 086D 120000 F 1178 CALL C_IP0A_MES 0870 120000 F 1179 CALL HOME 0873 900000 F 1180 MOV DPTR,#DSP_BUF0 ;display IP-measuring result 0876 120000 F 1181 CALL XPUTSTRING 0879 120000 F 1182 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 087C E500 F 1183 MOV A,KEY 087E B408E9 1184 CJNE A,#MENUE_KEY,IP_0A0 0881 80D5 1185 JMP MENUE31 0883 B41002 1186 MEN31_1_0A: CJNE A,#LEFT_KEY,MEN31_1_0B 0886 809D 1187 JMP MENUE30 0888 B480D6 1188 MEN31_1_0B: CJNE A,#RIGHT_Key,MEN31_1_0 1189 ;Right-Key pressed ----------------------------- 088B 120000 F 1190 MENUE32: CALL HOME 088E 900000 F 1191 MOV DPTR,#IPOBETGAM_MSG 0891 120000 F 1192 CALL PUTSTRING ;IP, Beta and Gamma, single 0894 120000 F 1193 MEN32_1_0: CALL GETKEY 0897 B4021C 1194 CJNE A,#ENTER_KEY,MEN32_1_0A 1195 ;measurement IP, BETA + Gamma 089A 120000 F 1196 CALL CLEAR_VAR 1197 ;loop, exit to MENUE A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 29 089D 120000 F 1198 IP_0B0: CALL MEASUREED 08A0 120000 F 1199 CALL C_IP0B_MES 08A3 120000 F 1200 CALL HOME 08A6 900000 F 1201 MOV DPTR,#DSP_BUF0 ;display IP-measuring result 08A9 120000 F 1202 CALL XPUTSTRING 08AC 120000 F 1203 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 08AF E500 F 1204 MOV A,KEY 08B1 B408E9 1205 CJNE A,#MENUE_KEY,IP_0B0 08B4 80D5 1206 JMP MENUE32 08B6 B41002 1207 MEN32_1_0A: CJNE A,#LEFT_KEY,MEN32_1_0B 08B9 809D 1208 JMP MENUE31 08BB B480D6 1209 MEN32_1_0B: CJNE A,#RIGHT_Key,MEN32_1_0 1210 ;Right-Key pressed ----------------------------- 08BE 120000 F 1211 MENUE33: CALL HOME 08C1 900000 F 1212 MOV DPTR,#IPONEUTT_MSG 08C4 120000 F 1213 CALL PUTSTRING ;IP, therm. Neutr., single 08C7 120000 F 1214 MEN33_1_0: CALL GETKEY 08CA B4021C 1215 CJNE A,#ENTER_KEY,MEN33_1_0A 1216 ;measurement IP, therm. Neutr., single 08CD 120000 F 1217 CALL CLEAR_VAR 1218 ;loop, exit to MENUE 08D0 120000 F 1219 IP_TNS0: CALL MEASUREED 08D3 120000 F 1220 CALL C_IP0N_MES 08D6 120000 F 1221 CALL HOME 08D9 900000 F 1222 MOV DPTR,#DSP_BUF0 ;display IP-measuring result 08DC 120000 F 1223 CALL XPUTSTRING 08DF 120000 F 1224 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 08E2 E500 F 1225 MOV A,KEY 08E4 B408E9 1226 CJNE A,#MENUE_KEY,IP_TNS0 08E7 80D5 1227 JMP MENUE33 08E9 B41002 1228 MEN33_1_0A: CJNE A,#LEFT_KEY,MEN33_1_0B 08EC 809D 1229 JMP MENUE32 08EE B480D6 1230 MEN33_1_0B: CJNE A,#RIGHT_Key,MEN33_1_0 1231 ;Right-Key pressed ----------------------------- 08F1 120000 F 1232 MENUE34: CALL HOME 08F4 900000 F 1233 MOV DPTR,#ACTI_MSG 08F7 120000 F 1234 CALL PUTSTRING ;activity 08FA 120000 F 1235 MEN34_1_0: CALL GETKEY 08FD B402E9 1236 CJNE A,#ENTER_KEY,MEN33_1_0A 1237 ;measurement activity 1238 ;loop, exit to MENUE 0900 120000 F 1239 ACT_0: CALL MEASURE1S 0903 120000 F 1240 CALL C_ACTI_MES 0906 120000 F 1241 CALL HOME 0909 900000 F 1242 MOV DPTR,#DSP_BUF0 ;display activity-measuring result 090C 120000 F 1243 CALL XPUTSTRING 090F 120000 F 1244 CALL DATA_LOGGER ;look wheather data-logger is swithed on, handle it 0912 E500 F 1245 MOV A,KEY 0914 B408E9 1246 CJNE A,#MENUE_KEY,ACT_0 0917 80D8 1247 JMP MENUE34 0919 B41002 1248 MEN34_1_0A: CJNE A,#LEFT_KEY,MEN34_1_0B 091C 80A0 1249 JMP MENUE33 091E B480D9 1250 MEN34_1_0B: CJNE A,#RIGHT_Key,MEN34_1_0 0921 020000 F 1251 JMP MENUE_2M 1252 ;-----------Functions (from MENUE_2)------------------------ 1253 ;Right-Key pressed ----------------------------- 0924 120000 F 1254 MENUE_2A: CALL HOME 0927 900000 F 1255 MOV DPTR,#LOGGER_MSG A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 30 092A 120000 F 1256 CALL PUTSTRING ;Logger-Msg. 092D 120000 F 1257 MENUE_128: CALL GETKEY 0930 B41003 1258 CJNE A,#LEFT_KEY,MENUE_128A 0933 020000 F 1259 JMP MENUE_2M 0936 B48002 1260 MENUE_128A: CJNE A,#RIGHT_KEY,MENUE_128C 0939 8034 1261 JMP MENUE_128B0 093B B402EF 1262 MENUE_128C: CJNE A,#ENTER_KEY,MENUE_128 093E 900000 F 1263 MOV DPTR,#LOGGER_BYTE 0941 E0 1264 MOVX A,@DPTR 0942 C3 1265 CLR C 0943 9400 1266 SUBB A,#0 0945 6024 1267 JZ ON_128C ;is off 0947 E4 1268 CLR A 0948 F0 1269 MOVX @DPTR,A ;switch off logger and clear 0949 900000 F 1270 MENUE_128E: MOV DPTR,#C_LOG_PTR ;dest. address to DPTR1 094C 05A2 1271 INC AUXR1 094E 900000 F 1272 MOV DPTR,#LOG_PTR ;source address to DPTR0 0951 7F00 1273 MOV R7,#0 ;number of byte 0953 E0 1274 CONST_COPY5:MOVX A,@DPTR ;get Byte 1275 ;use IAP-call ;put Byte 0954 05A2 1276 INC AUXR1 ;switch to DPTR1 0956 7902 1277 MOV R1,#02h 0958 12FFF0 1278 CALL PGM_MTP 095B A3 1279 INC DPTR 095C 05A2 1280 INC AUXR1 ;switch to DPTR0 095E A3 1281 INC DPTR 095F 0F 1282 INC R7 0960 BF03F0 1283 CJNE R7,#3,CONST_COPY5 ;number of Byte copied 0963 900000 F 1284 MOV DPTR,#OK_MSG 0966 120000 F 1285 CALL PUTSTRING 0969 80B9 1286 JMP MENUE_2A 096B 04 1287 ON_128C: INC A ;switch on logger 096C F0 1288 MOVX @DPTR,A 096D 80DA 1289 JMP MENUE_128E 1290 ;Right_KEY pressed ----------------------------- 096F 120000 F 1291 MENUE_128B0:CALL HOME 0972 900000 F 1292 MOV DPTR,#SLOGGER_MSG 0975 120000 F 1293 CALL PUTSTRING ;SLogger-Msg. 0978 120000 F 1294 MENUE_128B: CALL GETKEY 097B B41002 1295 CJNE A,#LEFT_KEY,MENU_128C 097E 80A4 1296 JMP MENUE_2A 1297 ;view logger data 0980 B4024A 1298 MENU_128C: CJNE A,#ENTER_KEY,MENU_128G 0983 900000 F 1299 MOV DPTR,#LOGGER_BYTE 0986 E0 1300 MOVX A,@DPTR 0987 FD 1301 MOV R5,A 0988 1D 1302 DEC R5 ;now index of last entry 0989 900000 F 1303 MOV DPTR,#C_LOGGER 098C 7E00 1304 MOV R6,#0 ;counter 098E 120000 F 1305 MENU_128C0: CALL HOME 0991 120000 F 1306 CALL PUTSTRING A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 31 0994 120000 F 1307 CALL INPUTKEY 0997 B44017 1308 CJNE A,#UP_KEY,MENU_128E 099A 0E 1309 INC R6 ;increment counter 099B C3 1310 CLR C 099C EE 1311 MOV A,R6 099D 9D 1312 SUBB A,R5 099E 60EE 1313 JZ MENU_128C0 ;show the same value 1314 ;DPTR + 34 09A0 C3 1315 CLR C 09A1 E582 1316 MOV A,DPL 09A3 2422 1317 ADD A,#34 09A5 F582 1318 MOV DPL,A 09A7 50E5 1319 JNC MENU_128C0 09A9 E583 1320 MOV A,DPH 09AB 2401 1321 ADD A,#1 09AD F583 1322 MOV DPH,A ;DPTR + 34 09AF 80DD 1323 JMP MENU_128C0 ;show next 09B1 B40419 1324 MENU_128E: CJNE A,#DOWN_KEY,MENU_128G 09B4 1E 1325 DEC R6 ;decrement counter 09B5 EE 1326 MOV A,R6 09B6 C3 1327 CLR C 09B7 9400 1328 SUBB A,#0 09B9 40D3 1329 JC MENU_128C0 ;show the same value 1330 ;DPTR - 34 09BB E582 1331 MOV A,DPL 09BD C3 1332 CLR C 09BE 9422 1333 SUBB A,#34 09C0 F582 1334 MOV DPL,A 09C2 50CA 1335 JNC MENU_128C0 09C4 C3 1336 CLR C 09C5 E583 1337 MOV A,DPH 09C7 9401 1338 SUBB A,#1 09C9 F583 1339 MOV DPH,A ;DPTR - 34 09CB 80C1 1340 JMP MENU_128C0 ;show last 09CD B480A8 1341 MENU_128G: CJNE A,#RIGHT_KEY,MENUE_128B 1342 ;Right_KEY pressed ----------------------------- 09D0 120000 F 1343 MENUE_1290: CALL HOME 09D3 900000 F 1344 MOV DPTR,#CLOGGER_MSG 09D6 120000 F 1345 CALL PUTSTRING ;CLogger-Msg. 09D9 120000 F 1346 MENUE_129: CALL GETKEY 09DC B41002 1347 CJNE A,#LEFT_KEY,MENUE_129A 09DF 808E 1348 JMP MENUE_128B0 09E1 B40230 1349 MENUE_129A: CJNE A,#ENTER_KEY,MENUE_129B 1350 ;set LOGGER_BYTE to 0 and LOG_PTR and C_LOG_PTR to default 09E4 E4 1351 CLR A 09E5 900000 F 1352 MOV DPTR,#LOGGER_BYTE 09E8 F0 1353 MOVX @DPTR,A 09E9 900000 F 1354 MOV DPTR,#C_LOGGER ;actually pointer to first default, base-address 09EC A883 1355 MOV R0,DPH 09EE A982 1356 MOV R1,DPL 09F0 900000 F 1357 MOV DPTR,#LOG_PTR 09F3 E9 1358 MOV A,R1 09F4 F0 1359 MOVX @DPTR,A 09F5 A3 1360 INC DPTR 09F6 E8 1361 MOV A,R0 09F7 F0 1362 MOVX @DPTR,A A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 32 09F8 900000 F 1363 MOV DPTR,#C_LOG_PTR ;dest. address to DPTR1 09FB 05A2 1364 INC AUXR1 09FD 900000 F 1365 MOV DPTR,#LOG_PTR ;source address to DPTR0 0A00 7F00 1366 MOV R7,#0 ;number of byte 0A02 E0 1367 CONST_COPY6:MOVX A,@DPTR ;get Byte 1368 ;use IAP-call ;put Byte 0A03 05A2 1369 INC AUXR1 ;switch to DPTR1 0A05 7902 1370 MOV R1,#02h 0A07 12FFF0 1371 CALL PGM_MTP 0A0A A3 1372 INC DPTR 0A0B 05A2 1373 INC AUXR1 ;switch to DPTR0 0A0D A3 1374 INC DPTR 0A0E 0F 1375 INC R7 0A0F BF03F0 1376 CJNE R7,#3,CONST_COPY6 ;number of Byte copied 0A12 80BC 1377 JMP MENUE_1290 0A14 B480C2 1378 MENUE_129B: CJNE A,#RIGHT_KEY,MENUE_129 1379 ;Right_KEY pressed ----------------------------- 0A17 120000 F 1380 MENUE_1300: CALL HOME 0A1A 900000 F 1381 MOV DPTR,#TON_MSG 0A1D 120000 F 1382 CALL PUTSTRING ;Tone-Msg. 0A20 120000 F 1383 MENUE_130: CALL GETKEY 0A23 B40204 1384 CJNE A,#ENTER_KEY,MENUE_130A 0A26 B295 1385 CPL TONE 0A28 80F6 1386 JMP MENUE_130 0A2A B41002 1387 MENUE_130A: CJNE A,#LEFT_KEY,MENUE_130B 0A2D 80A1 1388 JMP MENUE_1290 0A2F B480EE 1389 MENUE_130B: CJNE A,#RIGHT_KEY,MENUE_130 1390 ;Right_KEY pressed ----------------------------- 0A32 120000 F 1391 MENUE_1320: CALL HOME 0A35 900000 F 1392 MOV DPTR,#LIGHT_MSG 0A38 120000 F 1393 CALL PUTSTRING ;Light-Msg. 0A3B 120000 F 1394 MENUE_131: CALL GETKEY 0A3E B40202 1395 CJNE A,#ENTER_KEY,MENUE_131A 0A41 80F8 1396 JMP MENUE_131 0A43 B41002 1397 MENUE_131A: CJNE A,#LEFT_KEY,MENUE_131B 0A46 80CF 1398 JMP MENUE_1300 0A48 B480F0 1399 MENUE_131B: CJNE A,#RIGHT_KEY,MENUE_131 1400 ;Right_KEY pressed ----------------------------- 0A4B 120000 F 1401 MENUE_RES: CALL HOME 0A4E 900000 F 1402 MOV DPTR,#RESET_MSG 0A51 120000 F 1403 CALL PUTSTRING ;Reset-Msg. 0A54 120000 F 1404 MENUE_RES1: CALL GETKEY 0A57 B40203 1405 CJNE A,#ENTER_KEY,MENUE_RES2 0A5A 020000 F 1406 JMP START 0A5D B41002 1407 MENUE_RES2: CJNE A,#LEFT_KEY,MENUE_RES3 0A60 80D0 1408 JMP MENUE_1320 0A62 B480EF 1409 MENUE_RES3: CJNE A,#RIGHT_KEY,MENUE_RES1 1410 ;Right_KEY pressed ----------------------------- 0A65 120000 F 1411 MENUE_2540: CALL HOME ;tube-calibration and Al-filter-calibration 0A68 900000 F 1412 MOV DPTR,#CALIB_MSG 0A6B 120000 F 1413 CALL PUTSTRING ;Calibrate-Msg. 0A6E 120000 F 1414 MENUE_254: CALL GETKEY 0A71 B40211 1415 CJNE A,#ENTER_KEY,MENUE_254A A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 33 0A74 120000 F 1416 CALL CALIBRAT0 ;call subroutine 0A77 120000 F 1417 MENUE_254X3:CALL HOME 0A7A 900000 F 1418 MOV DPTR,#OK_MSG 0A7D 120000 F 1419 CALL PUTSTRING 0A80 120000 F 1420 CALL BEEP 0A83 80E0 1421 JMP MENUE_2540 1422 ;ready 0A85 B41002 1423 MENUE_254A: CJNE A,#LEFT_KEY,MENUE_254B 0A88 80C1 1424 JMP MENUE_RES 0A8A B480E1 1425 MENUE_254B: CJNE A,#RIGHT_KEY,MENUE_254 1426 ;Right_KEY pressed ----------------------------- 0A8D 120000 F 1427 MENUE_2545: CALL HOME ;PbAl-filter calibration 0A90 900000 F 1428 MOV DPTR,#CAPB_MSG 0A93 120000 F 1429 CALL PUTSTRING ;Calibrate-Msg. 0A96 120000 F 1430 MENUE_2546: CALL GETKEY 0A99 B40211 1431 CJNE A,#ENTER_KEY,MENUE_254D 0A9C 120000 F 1432 CALL CALIBRAT1 ;call subroutine 0A9F 120000 F 1433 MENUE_254C: CALL HOME 0AA2 900000 F 1434 MOV DPTR,#OK_MSG 0AA5 120000 F 1435 CALL PUTSTRING 0AA8 120000 F 1436 CALL BEEP 0AAB 80E0 1437 JMP MENUE_2545 1438 ;ready 0AAD B41002 1439 MENUE_254D: CJNE A,#LEFT_KEY,MENUE_254E 0AB0 80B3 1440 JMP MENUE_2540 0AB2 B480E1 1441 MENUE_254E: CJNE A,#RIGHT_KEY,MENUE_2546 1442 ;Right_KEY pressed ----------------------------- 0AB5 120000 F 1443 MENUE_2550: CALL HOME 0AB8 900000 F 1444 MOV DPTR,#ERASE_MSG 0ABB 120000 F 1445 CALL PUTSTRING ;Erase-Msg. 0ABE 120000 F 1446 MENUE_255: CALL GETKEY 0AC1 B40203 1447 CJNE A,#ENTER_KEY,MENUE_255A 1448 ;---------- request for Code and start the erase-sub 0AC4 020000 F 1449 JMP CHIP_ERASE 0AC7 B41002 1450 MENUE_255A: CJNE A,#LEFT_KEY,MENUE_255B 0ACA 80C1 1451 JMP MENUE_2545 0ACC B480EF 1452 MENUE_255B: CJNE A,#RIGHT_KEY,MENUE_255 0ACF 020000 F 1453 LJMP MENUE_A 1454 ;------------------------------------------------------------------------------------------ --------------------------------------------- 1455 ;Subroutines following 1456 ;------------------------------------------------------------------------------------------ --------------------------------------------- 1457 ;Measuring counts in T0, T1, T2 and write result after 1 s +- 25 ns to WORD:(COUNTER0, COUNTER1, COUNTER2), o.k. 0AD2 1458 MEASURE1S: ;Init Counter 0,1 and 2, (reset overflow), o.k. 0AD2 758955 1459 MOV TMOD,#01010101B ;Timer 0,1:Mode 1, C/F=1, TRn=1, M1=0, M0=1, TnGate=0 0AD5 758850 1460 MOV TCON,#01010000B ;Timer 0 and 1 stoped by Bit 4 and 6=0, Bit 5 is Timer 0 overflow, Bit 7 is Timer 1 overflow 0AD8 75C900 1461 MOV T2MOD,#00000000 ;16 Bit Counter 0ADB 75C806 1462 MOV T2CON,#00000110B ;Timer 2 stopped by Bit 2=0 1463 ;set interrupt vector 0ADE 900000 F 1464 MOV DPTR,#IRQ_MEAS ;address Interrupt-Routine 0AE1 858334 1465 MOV PCA_VECTOR+1,DPH 0AE4 858233 1466 MOV PCA_VECTOR,DPL ;set Measuring-Interrupt-Vector 0AE7 7865 1467 MOV R0,#101 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 34 ;counter-help-register, 101 times interrupt 0AE9 E4 1468 CLR A 0AEA F5CD 1469 MOV TH2,A 0AEC F58D 1470 MOV TH1,A 0AEE F58C 1471 MOV TH0,A 0AF0 F5CC 1472 MOV TL2,A 0AF2 F58B 1473 MOV TL1,A 0AF4 F58A 1474 MOV TL0,A ;clear counter-register 1475 ;***** time-critical-zone, because counting impulses ***** 0AF6 D2C6 1476 SETB CR ;start software-timer for 101 x 9.8304 ms, 12 periods 1477 ;get key during measuring-wait 0AF8 E580 1478 MEASURE1: MOV A,P0 ;read Port 0 0AFA 04 1479 INC A 0AFB C3 1480 CLR C 0AFC 9400 1481 SUBB A,#0 0AFE 6003 1482 JZ MEASURE4 ;no key pressed 0B00 14 1483 DEC A ;key pressed 0B01 8002 1484 JMP MEASURE5 0B03 74FF 1485 MEASURE4: MOV A,#11111111B 0B05 F500 F 1486 MEASURE5: MOV KEY,A ;last keypress during measuring 0B07 80EF 1487 SJMP MEASURE1 0B09 00 1488 MEASURE2: NOP 0B0A C3 1489 CLR C 0B0B 7400 F 1490 MOV A,#MEA_FACTOR 0B0D 9464 1491 SUBB A,#100 0B0F 7002 1492 JNZ MEASURE2A 0B11 8014 1493 JMP MEASURE10MS 0B13 C3 1494 MEASURE2A: CLR C ;clear carry for test overflow 0B14 728D 1495 ORL C,TF0 ;or overflow-bit to carry 0B16 5002 1496 JNC MEASURE3 ;no overflow 0B18 800D 1497 JMP MEASURE10MS ;overflow, switch to 10 ms-measuring 0B1A 900000 F 1498 MEASURE3: MOV DPTR,#MEA_FACTOR+1 0B1D 7401 1499 MOV A,#1 ;set measuring factor for measuring-time = 1 s 0B1F E0 1500 MOVX A,@DPTR 0B20 75FAFF 1501 MOV CCAP0H,#11111111B 0B23 75EAFF 1502 MOV CCAP0L,#11111111B ;again load 65535 to CCAP0, corresponds to 9.8304 ms 0B26 22 1503 MEASURE6: RET ;end of measuring, return to calling programm 1504 1505 ;Measuring counts in T0, T1, T2 and write result after 10 ms +- 25 ns to WORD:(COUNTER0, COUNTER1, COUNTER2), o.k. 1506 ;Init Counter 0,1 and 2, (reset overflow) 0B27 758850 1507 MEASURE10MS:MOV TCON,#01010000B ;Ti mer 0 and 1 stoped by Bit 4 and 6=0, Bit 6 is Timer 0 overflow 0B2A 75C900 1508 MOV T2MOD,#00000000 ;16 Bit Counter 0B2D 75C806 1509 MOV T2CON,#00000110B ;Timer 2 stopped by Bit 2=0 1510 ;set interrupt vector 0B30 900000 F 1511 MOV DPTR,#IRQ_MEASX ;address Interrupt-Routine 0B33 858334 1512 MOV PCA_VECTOR+1,DPH 0B36 858233 1513 MOV PCA_VECTOR,DPL ;set Measuring-Interrupt-Vector A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 35 0B39 E4 1514 CLR A 0B3A F5CD 1515 MOV TH2,A 0B3C F58D 1516 MOV TH1,A 0B3E F58C 1517 MOV TH0,A 0B40 F5CC 1518 MOV TL2,A 0B42 F58B 1519 MOV TL1,A 0B44 F58A 1520 MOV TL0,A ;clear counter-register 1521 ;***** time-critical-zone, because counting impulses ***** 0B46 D2C6 1522 SETB CR ;start software-timer for 9.8304 ms, 12 periods 0B48 1523 XMEASURE1: ;get key during measuring-wait 0B48 E580 1524 MOV A,P0 ;read Port 0 0B4A 04 1525 INC A 0B4B C3 1526 CLR C 0B4C 9400 1527 SUBB A,#0 0B4E 6003 1528 JZ XMEASURE4 ;no key pressed 0B50 14 1529 DEC A ;key pressed 0B51 8002 1530 JMP XMEASURE5 0B53 74FF 1531 XMEASURE4: MOV A,#11111111B 0B55 F500 F 1532 XMEASURE5: MOV KEY,A ;last keypress during measuring 0B57 80EF 1533 SJMP XMEASURE1 0B59 00 1534 XMEASURE2: NOP 0B5A E58C 1535 MOV A,TH0 0B5C C3 1536 CLR C 0B5D 9402 1537 SUBB A,#2 ;TH0 < 2 ? 0B5F 5010 1538 JNC XMEAS3 ;no, TL0 >= 2, o.k. this measuring 0B61 E58A 1539 MOV A,TL0 0B63 C3 1540 CLR C 0B64 948A 1541 SUBB A,#138 ;TL0 < 138 ? 0B66 5009 1542 JNC XMEAS3 ;no TL0 >= 138, o.k. this measuring 0B68 7401 1543 MOV A,#1 0B6A 900000 F 1544 MOV DPTR,#MEA_FACTOR 0B6D F0 1545 MOVX @DPTR,A 0B6E 020000 F 1546 JMP MEASURE1S ;yes, TL0 < 138, switch to 1 s - measuring 0B71 900000 F 1547 XMEAS3: MOV DPTR,#MEA_FACTOR+1 ;stay in 10 ms measuring 0B74 7464 1548 MOV A,#100 ;set measuring-factor for measuring-time = 10 ms 0B76 F0 1549 MOVX @DPTR,A 0B77 75FAFF 1550 MOV CCAP0H,#11111111B 0B7A 75EAFF 1551 MOV CCAP0L,#11111111B ;again load 65535 to CCAP0, corresponds to 9.8304 ms 0B7D 22 1552 RET 1553 1554 ;measuring of ED, check for overflow of capture-counter and add in COUNTER0 - COUNTER2, 0B7E E580 1555 MEASUREED: MOV A,P0 ;read Port 0 0B80 04 1556 INC A 0B81 C3 1557 CLR C 0B82 9400 1558 SUBB A,#0 0B84 6003 1559 JZ ED_MEA_A ;no key pressed 0B86 14 1560 DEC A ;key pressed 0B87 8002 1561 JMP ED_MEA_B A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 36 0B89 74FF 1562 ED_MEA_A: MOV A,#11111111B 0B8B F500 F 1563 ED_MEA_B: MOV KEY,A ;last keypress during measuring 0B8D C3 1564 CLR C ;no, poll overflow-flag of Timer 0 0B8E 728D 1565 ORL C,TF0 ;or overflow-bit to carry 0B90 5011 1566 JNC ED_MEA_2 ;no overflow 0B92 C3 1567 CLR C 0B93 C28D 1568 CLR TF0 ;clear overflow-flag 0B95 900000 F 1569 MOV DPTR,#COUNTER0 ;overflow, add 1 to COUNTER0 0B98 E0 1570 MOVX A,@DPTR 0B99 2401 1571 ADD A,#1 0B9B F0 1572 MOVX @DPTR,A 0B9C 5005 1573 JNC ED_MEA_2 0B9E A3 1574 INC DPTR 0B9F E0 1575 MOVX A,@DPTR 0BA0 2401 1576 ADD A,#1 0BA2 F0 1577 MOVX @DPTR,A 0BA3 C3 1578 ED_MEA_2: CLR C ;no, poll overflow-flag of Timer 0 0BA4 728F 1579 ORL C,TF1 ;or overflow-bit to carry 0BA6 5011 1580 JNC ED_MEA_3 ;no overflow 0BA8 C3 1581 CLR C 0BA9 C28F 1582 CLR TF1 ;clear overflow-flag 0BAB 900000 F 1583 MOV DPTR,#COUNTER1 ;overflow, add 1 to COUNTER1 0BAE E0 1584 MOVX A,@DPTR 0BAF 2401 1585 ADD A,#1 0BB1 F0 1586 MOVX @DPTR,A 0BB2 50EF 1587 JNC ED_MEA_2 0BB4 A3 1588 INC DPTR 0BB5 E0 1589 MOVX A,@DPTR 0BB6 2401 1590 ADD A,#1 0BB8 F0 1591 MOVX @DPTR,A 0BB9 C3 1592 ED_MEA_3: CLR C ;no, poll overflow-flag of Timer 0 0BBA 72CF 1593 ORL C,TF2 ;or overflow-bit to carry 0BBC 50C0 1594 JNC MEASUREED ;no overflow, repeat 0BBE C3 1595 CLR C 0BBF C2CF 1596 CLR TF2 ;clear oberflow-flag 0BC1 900000 F 1597 MOV DPTR,#COUNTER2 ;overflow, add 1 to COUNTER0 0BC4 E0 1598 MOVX A,@DPTR 0BC5 2401 1599 ADD A,#1 0BC7 F0 1600 MOVX @DPTR,A 0BC8 50D9 1601 JNC ED_MEA_2 0BCA A3 1602 INC DPTR 0BCB E0 1603 MOVX A,@DPTR 0BCC 2401 1604 ADD A,#1 0BCE F0 1605 MOVX @DPTR,A 0BCF 858A00 F 1606 ED_MEA_EX: MOV HELP0,TL0 ;counted impulses from T0,T1,T2 to HELP0,HELP1 and HELP2 LOW and HIGH-Byte 0BD2 858B00 F 1607 MOV HELP1,TL1 0BD5 85CC00 F 1608 MOV HELP2,TL2 0BD8 858C00 F 1609 MOV HELP0+1,TH0 0BDB 858D00 F 1610 MOV HELP1+1,TH1 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 37 0BDE 85CD00 F 1611 MOV HELP2+1,TH2 0BE1 22 1612 RET ;back to caller 1613 1614 ;data-logger 0BE2 900000 F 1615 DATA_LOGGER:MOV DPTR,#LOGGER_BYTE 0BE5 E0 1616 MOVX A,@DPTR 0BE6 C3 1617 CLR C 0BE7 9400 1618 SUBB A,#0 0BE9 606B 1619 JZ DATA_3 ;switched off 0BEB C3 1620 CLR C ;switched on 0BEC 94FF 1621 SUBB A,#255 ;buffer full ? 0BEE 7001 1622 JNZ DATA_A ;no 0BF0 22 1623 RET ;buffer full, go back, the same as off 0BF1 FE 1624 DATA_A: MOV R6,A ;switched on, hold A 1625 ;*****is switched on, hold measuring-value ? 0BF2 120000 F 1626 CALL INPUTKEY ;stop until keypress, get key to A 0BF5 B48001 1627 CJNE A,#RIGHT_KEY,DATA_1 ;RIGHT_KEY -> hold value not, ENTER_KEY -> hold value 0BF8 22 1628 DATA_0: RET ;return 0BF9 B402FC 1629 DATA_1: CJNE A,#ENTER_KEY,DATA_0 0BFC EE 1630 MOV A,R6 0BFD 04 1631 INC A 0BFE 900000 F 1632 MOV DPTR,#LOGGER_BYTE 0C01 F0 1633 MOVX @DPTR,A ;set for next data 0C02 05A2 1634 INC AUXR1 ;switch to DPTR1 0C04 900000 F 1635 MOV DPTR,#LOG_PTR ;hold value in LOGGER_BYTE 0C07 E0 1636 MOVX A,@DPTR 0C08 F8 1637 MOV R0,A ;low byte 0C09 A3 1638 INC DPTR 0C0A E0 1639 MOVX A,@DPTR 0C0B F9 1640 MOV R1,A ;high byte 0C0C F583 1641 MOV DPH,A 0C0E E8 1642 MOV A,R0 0C0F F582 1643 MOV DPL,A ;address of next empty ROM-buffer 0C11 05A2 1644 INC AUXR1 ;switch to DPTR0 1645 ;write 34 Byte with IAP 0C13 900000 F 1646 MOV DPTR,#DSP_BUF0 ;source address to DPTR0 0C16 7F00 1647 MOV R7,#0 ;counter for number of byte 0C18 E0 1648 CONST_COPY3:MOVX A,@DPTR ;get Byte 1649 ;use IAP-call ;put Byte 0C19 05A2 1650 INC AUXR1 ;switch to DPTR1 0C1B 7902 1651 MOV R1,#02h 0C1D 12FFF0 1652 CALL PGM_MTP 0C20 A3 1653 INC DPTR 0C21 05A2 1654 INC AUXR1 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 38 ;switch to DPTR0 0C23 A3 1655 INC DPTR 0C24 0F 1656 INC R7 0C25 BF22F0 1657 CJNE R7,#34,CONST_COPY3 ;number of Byte copied, the buffer is 34 Byte long 1658 ;update LOG_PTR for next free buffer 0C28 05A2 1659 INC AUXR1 0C2A E582 1660 MOV A,DPL 0C2C 05A2 1661 INC AUXR1 0C2E 900000 F 1662 MOV DPTR,#LOG_PTR 0C31 F0 1663 MOVX @DPTR,A 0C32 05A2 1664 INC AUXR1 0C34 E583 1665 MOV A,DPH 0C36 05A2 1666 INC AUXR1 0C38 F0 1667 MOVX @DPTR,A 0C39 120000 F 1668 CALL BEEP ;stored 0C3C EE 1669 MOV A,R6 ;incremented LOGGER_BYTE = 0 ? 0C3D C3 1670 CLR C 0C3E 9400 1671 SUBB A,#0 0C40 7014 1672 JNZ DATA_3 ;no buffer not full, next 1673 ;buffer full message 0C42 14 1674 DEC A 0C43 900000 F 1675 MOV DPTR,#LOGGER_BYTE 0C46 F0 1676 MOVX @DPTR,A ;set LOGGER_BYTE to 255 0C47 120000 F 1677 CALL HOME ;yes 0C4A 900000 F 1678 MOV DPTR,#BUFFULL_MSG ;buffer full message 0C4D 120000 F 1679 CALL PUTSTRING 1680 ;switch off automatic data-logger 0C50 120000 F 1681 DATA_2: CALL GETKEY 0C53 B402FA 1682 CJNE A,#ENTER_KEY,DATA_2 0C56 22 1683 DATA_3: RET 1684 1685 ;Display a character, character in A expected, o.k. 0C57 FF 1686 PUTCHAR: MOV R7,A ;save to R7 0C58 C3 1687 CLR C 0C59 940D 1688 SUBB A,#13 0C5B 600B 1689 JZ PUTCHAR0 ;CR 0C5D EF 1690 MOV A,R7 0C5E F580 1691 MOV P0,A ;write A to Port 0 0C60 C293 1692 CLR DSP_EN ;clear Display-Enable P1.3, 12 periods 0C62 120000 F 1693 CALL WAIT40u 0C65 D293 1694 SETB DSP_EN ;set Display-Enable P1.3, 12 periods 0C67 22 1695 RET ;24 periods 0C68 7580CF 1696 PUTCHAR0: MOV P0,#11001111B ;set DD-ADDR. to 4Fh --> End of Line 2 0C6B C293 1697 CLR DSP_EN 0C6D 120000 F 1698 CALL WAIT40u 0C70 D293 1699 SETB DSP_EN 0C72 22 1700 RET 1701 1702 ;Display a string from ROM with 0 at the end, start-address of Text in DPTR, o.k. 0C73 E4 1703 PUTSTRING: CLR A 0C74 93 1704 MOVC A,@A+DPTR A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 39 ;get charakter 0C75 C3 1705 CLR C 0C76 9400 1706 SUBB A,#0 0C78 6006 1707 JZ EXIT_STRING ;character is 0 0C7A 120000 F 1708 CALL PUTCHAR ;PUTCHar 0C7D A3 1709 INC DPTR ;next charakter 0C7E 80F3 1710 SJMP PUTSTRING ;doit 0C80 22 1711 EXIT_STRING:RET ;return 1712 1713 ;Display a string from RAM with 0 at the end, start-address of Text in DPTR, o.k. 0C81 E0 1714 XPUTSTRING: MOVX A,@DPTR ;get charakter 0C82 C3 1715 CLR C 0C83 9400 1716 SUBB A,#0 0C85 6006 1717 JZ EXIT_XSTR ;character is 0 0C87 120000 F 1718 CALL PUTCHAR ;PUTCHar 0C8A A3 1719 INC DPTR ;next charakter 0C8B 80F4 1720 SJMP XPUTSTRING ;doit 0C8D 22 1721 EXIT_XSTR: RET ;return 1722 1723 ;Get key from Port 2 or Light-Key from Port 1.6 into A, o.k. 0C8E E580 1724 GETKEY: MOV A,P0 ;read Port 0 0C90 04 1725 INC A 0C91 C3 1726 CLR C 0C92 9400 1727 SUBB A,#0 0C94 6003 1728 JZ GET_LIGHT ;no key pressed 0C96 14 1729 DEC A ;key pressed 0C97 800E 1730 SJMP EXIT_KEY ;in A 0C99 E590 1731 GET_LIGHT: MOV A,P1 ;read Port 1 0C9B C3 1732 CLR C 0C9C 9440 1733 SUBB A,#01000000B 0C9E 6003 1734 JZ GET_LIGHT1 ;Light-key pressed 0CA0 74FF 1735 MOV A,#11111111B 0CA2 22 1736 RET ;no Light-Key pressed 0CA3 7403 1737 GET_LIGHT1: MOV A,#00000011B ;Light-Key pressed 0CA5 B294 1738 CPL LIGHT ;toggle P1.4 0CA7 22 1739 EXIT_KEY: RET ;ready 1740 1741 ;Input Key, o.k. 0CA8 120000 F 1742 INPUTKEY: CALL GETKEY 0CAB B4FF02 1743 CJNE A,#255,INPUT_EXIT ;Key pressed 0CAE 80F8 1744 SJMP INPUTKEY ;wait for Key in Loop 0CB0 22 1745 INPUT_EXIT: RET A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 40 ;Key pressed, return 1746 1747 ;make Beep with Alarm-Piezo, o.k. 0CB1 900000 F 1748 BEEP: MOV DPTR,#IRQ_BEEP 0CB4 858334 1749 MOV PCA_VECTOR+1,DPH 0CB7 858233 1750 MOV PCA_VECTOR,DPL ;set Beep-stop-Interrupt-Vector 0CBA D2B3 1751 SETB ALARM ;switch on Piezo 0CBC D2C6 1752 SETB CR ;start software-timer 0CBE 22 1753 RET ;ready 1754 1755 ;clear Display, o.k. 0CBF E501 1756 HOME: MOV A,DSP_CLR 0CC1 120000 F 1757 CALL PUTCHAR 0CC4 120000 F 1758 CALL WAIT1640u 0CC7 75808F 1759 MOV P0,#10001111B ;set DD-ADDR. to 4Fh --> End of Line 1 0CCA C293 1760 CLR DSP_EN 0CCC 120000 F 1761 CALL WAIT40u 0CCF D293 1762 SETB DSP_EN 0CD1 22 1763 RET 1764 1765 ;wait 40 us, o.k. 0CD2 75FA00 1766 WAIT40u: MOV CCAP0H,#00000000B ;24 periods 0CD5 75EAE9 1767 MOV CCAP0L,#11101001B ;load 233 to CCAP0, corresponds to 34.9 us, 24 periods 0CD8 900000 F 1768 MOV DPTR,#IRQ_WAIT ;address Interrupt-Routine, 24 periods 0CDB 858334 1769 MOV PCA_VECTOR+1,DPH ;24 periods 0CDE 858233 1770 MOV PCA_VECTOR,DPL ;set Measuring-Interrupt-Vector, 24 periods 0CE1 900000 F 1771 MOV DPTR,#WAIT401 ;get address for PC, 24 periods 0CE4 C082 1772 PUSH DPL ;24 periods 0CE6 C083 1773 PUSH DPH ;24 periods 0CE8 D2C6 1774 SETB CR ;start software timer, 12 periods 0CEA 00 1775 WAIT400: NOP 0CEB 80FD 1776 SJMP WAIT400 0CED 00 1777 WAIT401: NOP 0CEE 22 1778 RET ;24 periods 1779 1780 ;wait 1640 us, o.k. 0CEF 75FA2A 1781 WAIT1640u: MOV CCAP0H,#00101010B ;24 periods 0CF2 75EA94 1782 MOV CCAP0L,#10010100B ;load 10900 to CCAP0, corresponds to 1634.9 us, 24 periods 0CF5 900000 F 1783 MOV DPTR,#IRQ_WAIT ;address Interrupt-Routine, 24 periods 0CF8 858334 1784 MOV PCA_VECTOR+1,DPH ;24 periods 0CFB 858233 1785 MOV PCA_VECTOR,DPL ;set Measuring-Interrupt-Vector, 24 periods 0CFE 900000 F 1786 MOV DPTR,#WAIT16401 ;get address for PC, 24 periods 0D01 C082 1787 PUSH DPL ;24 periods 0D03 C083 1788 PUSH DPH A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 41 ;24 periods 0D05 D2C6 1789 SETB CR ;start software timer, 12 periods 0D07 00 1790 WAIT1640: NOP 0D08 80FD 1791 SJMP WAIT1640 0D0A 00 1792 WAIT16401: NOP 0D0B 22 1793 RET ;24 periods 1794 1795 ;Calibrate, o.k. 0D0C 020000 F 1796 MENUE_ERA: JMP ERASE0 ;(target was out of range for CJNE) 0D0F 120000 F 1797 CALIBRAT0: CALL HOME 0D12 900000 F 1798 MOV DPTR,#CODE_MSG 0D15 120000 F 1799 CALL PUTSTRING ;Code-Mesg. 1800 ;request for code and start calibration 0D18 120000 F 1801 CALL INPUTKEY 0D1B B401EE 1802 CJNE A,#R_S_KEY,MENUE_ERA ;1s t R/S-Key ? 0D1E 120000 F 1803 CALL INPUTKEY 0D21 B401E8 1804 CJNE A,#R_S_KEY,MENUE_ERA ;2n d R/S-Key ? 0D24 120000 F 1805 CALL INPUTKEY 0D27 B401E2 1806 CJNE A,#R_S_KEY,MENUE_ERA ;3r d R/S-KEY ? 0D2A 120000 F 1807 CALL INPUTKEY 0D2D B401DC 1808 CJNE A,#R_S_KEY,MENUE_ERA ;4t h R/S-KEY ? 0D30 120000 F 1809 CALL HOME 0D33 900000 F 1810 MOV DPTR,#ACT_MSG 0D36 120000 F 1811 CALL PUTSTRING 1812 ;code accepted 1813 ;beginn calibration 0D39 120000 F 1814 CALL MEASURE1S ;1 st measure 1815 ;copy R0 Byte from XRAM DPTR0 to XRAM DPTR1 0D3C 900000 F 1816 MOV DPTR,#COUNTER0 ;source address to DPTR0 0D3F 05A2 1817 INC AUXR1 ;switch to DPTR1 0D41 900000 F 1818 MOV DPTR,#CALIBRATE01 ;dest. Address to DPTR1 0D44 05A2 1819 INC AUXR1 ;switch to DPTR0 0D46 7806 1820 MOV R0,#6 ;number of byte 0D48 120000 F 1821 CALL CONST_COPY0 0D4B 120000 F 1822 CALL MEASURE1S 1823 ;copy 6 Byte from XRAM to XRAM for every tube 0D4E 900000 F 1824 MOV DPTR,#COUNTER0 ;source address to DPTR0 0D51 05A2 1825 INC AUXR1 ;switch to DPTR1 0D53 900000 F 1826 MOV DPTR,#CALIBRATE02 ;dest. Address to DPTR1 0D56 05A2 1827 INC AUXR1 ;switch to DPTR0 0D58 7806 1828 MOV R0,#6 ;number of byte 0D5A 120000 F 1829 CALL CONST_COPY0 0D5D 120000 F 1830 CALL MEASURE1S 1831 ;copy 6 Byte from XRAM to XRAM for every tube 0D60 900000 F 1832 MOV DPTR,#COUNTER0 ;source address to DPTR0 0D63 05A2 1833 INC AUXR1 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 42 ;switch to DPTR1 0D65 900000 F 1834 MOV DPTR,#CALIBRATE03 ;dest. Address to DPTR1 0D68 05A2 1835 INC AUXR1 ;switch to DPTR0 0D6A 7806 1836 MOV R0,#6 ;number of byte 0D6C 120000 F 1837 CALL CONST_COPY0 0D6F 120000 F 1838 CALL MEASURE1S 1839 ;copy 6 Byte from XRAM to XRAM for every tube 0D72 900000 F 1840 MOV DPTR,#COUNTER0 ;source address to DPTR0 0D75 05A2 1841 INC AUXR1 ;switch to DPTR1 0D77 900000 F 1842 MOV DPTR,#CALIBRATE04 ;dest. Address to DPTR1 0D7A 05A2 1843 INC AUXR1 ;switch to DPTR0 0D7C 7806 1844 MOV R0,#6 ;number of byte 0D7E 120000 F 1845 CALL CONST_COPY0 0D81 120000 F 1846 CALL MEASURE1S 1847 ;copy 6 Byte from XRAM to XRAM for every tube 0D84 900000 F 1848 MOV DPTR,#COUNTER0 ;source address to DPTR0 0D87 05A2 1849 INC AUXR1 ;switch to DPTR1 0D89 900000 F 1850 MOV DPTR,#CALIBRATE05 ;dest. Address to DPTR1 0D8C 05A2 1851 INC AUXR1 ;switch to DPTR0 0D8E 7806 1852 MOV R0,#6 ;number of byte 0D90 120000 F 1853 CALL CONST_COPY0 0D93 120000 F 1854 CALL C_CAL0 ;C subroutine for fp-calculations 1855 ;copy 3 phys. double constants and 3 int values from XRAM to ROM fo r use of the instrument 0D96 900000 F 1856 MOV DPTR,#MAFAL ;source address to DPTR0 0D99 05A2 1857 INC AUXR1 ;switch to DPTR1 0D9B 900000 F 1858 MOV DPTR,#CMAFAL ;dest. Address to DPTR1 0D9E 05A2 1859 INC AUXR1 ;switch to DPTR0 0DA0 7F00 1860 MOV R7,#0 ;number of byte 0DA2 E0 1861 CONST_COPY1:MOVX A,@DPTR ;get Byte 1862 ;use IAP-call ;put Byte 0DA3 05A2 1863 INC AUXR1 ;switch to DPTR1 0DA5 7902 1864 MOV R1,#02h 0DA7 12FFF0 1865 CALL PGM_MTP 0DAA A3 1866 INC DPTR 0DAB 05A2 1867 INC AUXR1 ;switch to DPTR0 0DAD A3 1868 INC DPTR 0DAE 0F 1869 INC R7 0DAF BF12F0 1870 CJNE R7,#18,CONST_COPY1 ;number of Byte copied 0DB2 7400 F 1871 MOV A,#COUNTER0 0DB4 C3 1872 CLR C 0DB5 9464 1873 SUBB A,#100 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 43 0DB7 5007 1874 JNC CALIB_10A ;radiation found 0DB9 7400 F 1875 MOV A,#COUNTER0+1 0DBB C3 1876 CLR C 0DBC 9401 1877 SUBB A,#1 0DBE 401C 1878 JC CAL_PRINT ;no radiation found 1879 ;copy 2 phys. double constants from XRAM to ROM to correct manually calculated values 0DC0 900000 F 1880 CALIB_10A: MOV DPTR,#MAFAL ;source address to DPTR0 0DC3 05A2 1881 INC AUXR1 ;switch to DPTR1 0DC5 900000 F 1882 MOV DPTR,#IIAALPB ;dest. Address to DPTR1 0DC8 05A2 1883 INC AUXR1 ;switch to DPTR0 0DCA 7F00 1884 MOV R7,#0 ;number of byte 0DCC E0 1885 CONST_COPYX:MOVX A,@DPTR ;get Byte 1886 ;use IAP-call ;put Byte 0DCD 05A2 1887 INC AUXR1 ;switch to DPTR1 0DCF 7902 1888 MOV R1,#02h 0DD1 12FFF0 1889 CALL PGM_MTP 0DD4 A3 1890 INC DPTR 0DD5 05A2 1891 INC AUXR1 ;switch to DPTR0 0DD7 A3 1892 INC DPTR 0DD8 0F 1893 INC R7 0DD9 BF08F0 1894 CJNE R7,#8,CONST_COPYX ;number of Byte copied 1895 ;print DSP_BUF0 - DSP_BUF4 0DDC 120000 F 1896 CAL_PRINT: CALL HOME 0DDF 900000 F 1897 MOV DPTR,#DSP_BUF0 ;CALIBRATE0 0DE2 120000 F 1898 CALL XPUTSTRING 0DE5 120000 F 1899 CALL INPUTKEY 0DE8 120000 F 1900 CALL HOME 0DEB 900000 F 1901 MOV DPTR,#DSP_BUF1 ;CALIBRATE1 0DEE 120000 F 1902 CALL XPUTSTRING 0DF1 120000 F 1903 CALL INPUTKEY 0DF4 120000 F 1904 CALL HOME 0DF7 900000 F 1905 MOV DPTR,#DSP_BUF2 ;CALIBRATE2 0DFA 120000 F 1906 CALL XPUTSTRING 0DFD 120000 F 1907 CALL INPUTKEY 0E00 120000 F 1908 CALL HOME 0E03 900000 F 1909 MOV DPTR,#DSP_BUF3 ;GMZC 0E06 120000 F 1910 CALL XPUTSTRING 0E09 120000 F 1911 CALL INPUTKEY 0E0C 120000 F 1912 CALL HOME 0E0F 900000 F 1913 MOV DPTR,#DSP_BUF4 ;MAFAL 0E12 120000 F 1914 CALL XPUTSTRING 0E15 120000 F 1915 CALL INPUTKEY 0E18 22 1916 RET 1917 ;Calibrate, o.k. 0E19 020000 F 1918 MENUE_ERA1: JMP ERASE0 0E1C 120000 F 1919 CALIBRAT1: CALL HOME 0E1F 900000 F 1920 MOV DPTR,#CODE_MSG 0E22 120000 F 1921 CALL PUTSTRING A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 44 ;Code-Mesg. 1922 ;request for code and start calibration 0E25 120000 F 1923 CALL INPUTKEY 0E28 B401EE 1924 CJNE A,#R_S_KEY,MENUE_ERA1 ;1s t R/S-Key ? 0E2B 120000 F 1925 CALL INPUTKEY 0E2E B401E8 1926 CJNE A,#R_S_KEY,MENUE_ERA1 ;2n d R/S-Key ? 0E31 120000 F 1927 CALL INPUTKEY 0E34 B401E2 1928 CJNE A,#R_S_KEY,MENUE_ERA1 ;3r d R/S-KEY ? 0E37 120000 F 1929 CALL INPUTKEY 0E3A B401DC 1930 CJNE A,#R_S_KEY,MENUE_ERA1 ;4t h R/S-KEY ? 0E3D 120000 F 1931 CALL HOME 0E40 900000 F 1932 MOV DPTR,#ACT_MSG 0E43 120000 F 1933 CALL PUTSTRING 1934 ;code accepted 1935 ;beginn calibration of Al-Pb-Filter for Neutrons 0E46 120000 F 1936 CALL MEASURE1S ;1 st measure 1937 ;copy R0 Byte from XRAM DPTR0 to XRAM DPTR1 0E49 900000 F 1938 MOV DPTR,#COUNTER0 ;source address to DPTR0 0E4C 05A2 1939 INC AUXR1 ;switch to DPTR1 0E4E 900000 F 1940 MOV DPTR,#CALIBRATE01 ;dest. Address to DPTR1 0E51 05A2 1941 INC AUXR1 ;switch to DPTR0 0E53 7806 1942 MOV R0,#6 ;number of byte 0E55 120000 F 1943 CALL CONST_COPY0 0E58 120000 F 1944 CALL MEASURE1S 1945 ;copy 6 Byte from XRAM to XRAM for 2 tubes 0E5B 900000 F 1946 MOV DPTR,#COUNTER0 ;source address to DPTR0 0E5E 05A2 1947 INC AUXR1 ;switch to DPTR1 0E60 900000 F 1948 MOV DPTR,#CALIBRATE02 ;dest. Address to DPTR1 0E63 05A2 1949 INC AUXR1 ;switch to DPTR0 0E65 7806 1950 MOV R0,#6 ;number of byte 0E67 120000 F 1951 CALL CONST_COPY0 0E6A 120000 F 1952 CALL MEASURE1S 1953 ;copy 6 Byte from XRAM to XRAM for 2 tubes 0E6D 900000 F 1954 MOV DPTR,#COUNTER0 ;source address to DPTR0 0E70 05A2 1955 INC AUXR1 ;switch to DPTR1 0E72 900000 F 1956 MOV DPTR,#CALIBRATE03 ;dest. Address to DPTR1 0E75 05A2 1957 INC AUXR1 ;switch to DPTR0 0E77 7806 1958 MOV R0,#6 ;number of byte 0E79 120000 F 1959 CALL CONST_COPY0 0E7C 120000 F 1960 CALL MEASURE1S 1961 ;copy 6 Byte from XRAM to XRAM for 2 tubes 0E7F 900000 F 1962 MOV DPTR,#COUNTER0 ;source address to DPTR0 0E82 05A2 1963 INC AUXR1 ;switch to DPTR1 0E84 900000 F 1964 MOV DPTR,#CALIBRATE04 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 45 ;dest. Address to DPTR1 0E87 05A2 1965 INC AUXR1 ;switch to DPTR0 0E89 7806 1966 MOV R0,#6 ;number of byte 0E8B 120000 F 1967 CALL CONST_COPY0 0E8E 120000 F 1968 CALL MEASURE1S 1969 ;copy 6 Byte from XRAM to XRAM for 2 tubes 0E91 900000 F 1970 MOV DPTR,#COUNTER0 ;source address to DPTR0 0E94 05A2 1971 INC AUXR1 ;switch to DPTR1 0E96 900000 F 1972 MOV DPTR,#CALIBRATE05 ;dest. Address to DPTR1 0E99 05A2 1973 INC AUXR1 ;switch to DPTR0 0E9B 7806 1974 MOV R0,#6 ;number of byte 0E9D 120000 F 1975 CALL CONST_COPY0 0EA0 120000 F 1976 CALL C_CAL1 ;C subroutine for fp-calculations 0EA3 7400 F 1977 MOV A,#COUNTER0 0EA5 C3 1978 CLR C 0EA6 9464 1979 SUBB A,#100 0EA8 5007 1980 JNC CALIB_10 ;radiation found 0EAA 7400 F 1981 MOV A,#COUNTER0+1 0EAC C3 1982 CLR C 0EAD 9401 1983 SUBB A,#1 0EAF 4038 1984 JC CAL_PRINT1 ;no radiation found 1985 ;copy 1 phys. double constant from XRAM to ROM for use of the instr ument 0EB1 900000 F 1986 CALIB_10: MOV DPTR,#MAFPB ;source address to DPTR0 0EB4 05A2 1987 INC AUXR1 ;switch to DPTR1 0EB6 900000 F 1988 MOV DPTR,#CMAFPB ;dest. Address to DPTR1 0EB9 05A2 1989 INC AUXR1 ;switch to DPTR0 0EBB 7F00 1990 MOV R7,#0 ;number of byte 0EBD E0 1991 CONST_COPY2:MOVX A,@DPTR ;get Byte 1992 ;use IAP-call ;put Byte 0EBE 05A2 1993 INC AUXR1 ;switch to DPTR1 0EC0 7902 1994 MOV R1,#02h 0EC2 12FFF0 1995 CALL PGM_MTP 0EC5 A3 1996 INC DPTR 0EC6 05A2 1997 INC AUXR1 ;switch to DPTR0 0EC8 A3 1998 INC DPTR 0EC9 0F 1999 INC R7 0ECA BF0AF0 2000 CJNE R7,#10,CONST_COPY2 ;number of Byte copied 2001 ;copy 1 phys. double constant from XRAM to ROM to correct manually calc ulated values 0ECD 900000 F 2002 MOV DPTR,#MAFPB ;source address to DPTR0 0ED0 05A2 2003 INC AUXR1 ;switch to DPTR1 0ED2 900000 F 2004 MOV DPTR,#II0ALPB ;dest. Address to DPTR1 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 46 0ED5 05A2 2005 INC AUXR1 ;switch to DPTR0 0ED7 7F00 2006 MOV R7,#0 ;number of byte 0ED9 E0 2007 CONST_COPYZ:MOVX A,@DPTR ;get Byte 2008 ;use IAP-call ;put Byte 0EDA 05A2 2009 INC AUXR1 ;switch to DPTR1 0EDC 7902 2010 MOV R1,#02h 0EDE 12FFF0 2011 CALL PGM_MTP 0EE1 A3 2012 INC DPTR 0EE2 05A2 2013 INC AUXR1 ;switch to DPTR0 0EE4 A3 2014 INC DPTR 0EE5 0F 2015 INC R7 0EE6 BF04F0 2016 CJNE R7,#4,CONST_COPYZ ;number of Byte copied 0EE9 2017 CAL_PRINT1: ;print DSP_BUF0 0EE9 120000 F 2018 CALL HOME 0EEC 900000 F 2019 MOV DPTR,#DSP_BUF0 ;MAFPB 0EEF 120000 F 2020 CALL XPUTSTRING 0EF2 120000 F 2021 CALL INPUTKEY 0EF5 120000 F 2022 CALL HOME 0EF8 900000 F 2023 MOV DPTR,#DSP_BUF1 ;CALIBRATE0 0EFB 120000 F 2024 CALL XPUTSTRING 0EFE 120000 F 2025 CALL INPUTKEY 0F01 120000 F 2026 CALL HOME 0F04 900000 F 2027 MOV DPTR,#DSP_BUF2 ;CALIBRATE2 0F07 120000 F 2028 CALL XPUTSTRING 0F0A 120000 F 2029 CALL INPUTKEY 0F0D 22 2030 RET 2031 ;copy R0 Byte from XRAM DPTR0 to XRAM DPTR1 0F0E E0 2032 CONST_COPY0:MOVX A,@DPTR ;get Byte 0F0F 05A2 2033 INC AUXR1 ;switch to DPTR1 0F11 F0 2034 MOVX @DPTR,A ;put Byte 0F12 A3 2035 INC DPTR 0F13 05A2 2036 INC AUXR1 ;switch to DPTR0 0F15 A3 2037 INC DPTR 0F16 18 2038 DEC R0 0F17 B800F4 2039 CJNE R0,#0,CONST_COPY0 ;number copied 0F1A 22 2040 RET 2041 2042 ;clear COUNTER0 - COUNTER2 and HELP0 - HELP2 and ALARM_QUIT 0F1B E4 2043 CLEAR_VAR: CLR A 0F1C F500 F 2044 MOV COUNTER0,A 0F1E F500 F 2045 MOV COUNTER0+1,A 0F20 F500 F 2046 MOV COUNTER1,A 0F22 F500 F 2047 MOV COUNTER1+1,A 0F24 F500 F 2048 MOV COUNTER2,A 0F26 F500 F 2049 MOV COUNTER2+1,A 0F28 F500 F 2050 MOV HELP0,A 0F2A F500 F 2051 MOV HELP0+1,A 0F2C F500 F 2052 MOV HELP1,A 0F2E F500 F 2053 MOV HELP1+1,A 0F30 F500 F 2054 MOV HELP2,A 0F32 F500 F 2055 MOV HELP2+1,A A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 47 ;clear COUNTER0 to COUNTER2 and HELP0 to HELP2 0F34 900000 F 2056 MOV DPTR,#ALARM_QUIT 0F37 F0 2057 MOVX @DPTR,A ;clear ALARM_QUIT to 0 for this measuring 0F38 22 2058 RET 2059 ;------------------------------------------------------------------------------------------ -------------------------------------------- 2060 ;Interrupt-Routines 2061 ;------------------------------------------------------------------------------------------ -------------------------------------------- 2062 ;PCA-Interrupt-Routines 2063 ;Wait Interrupt - Routine 0F39 C2C6 2064 IRQ_WAIT: CLR CR ;stop software-timer, 12 periods 0F3B C2C0 2065 CLR CCF0 ;reset CCF0-Bit, 12 periods 0F3D C082 2066 PUSH DPL ;24 periods 0F3F C083 2067 PUSH DPH ;24 periods 0F41 32 2068 RETI ;return from Interrupt, 24 periods 2069 2070 ;stop Beep, o.k. 0F42 C2C6 2071 IRQ_BEEP: CLR CR ;stop software-timer 0F44 C2C7 2072 CLR CF ;clear overflow-flag of PCA 0F46 C2C0 2073 CLR CCF0 ;reset CCF0-Bit 0F48 C2B3 2074 CLR ALARM ;End of Beep 0F4A 32 2075 RETI ;return from Interrupt 2076 2077 ;measuring for 1 second, 101 x 9.8304 ms + rest, o.k. 0F4B C2C0 2078 IRQ_MEAS: CLR CCF0 ;reset CCF0-Bit, 12 periods 0F4D C2C7 2079 CLR CF ;clear overflow-flag of PCA, 12 periods 0F4F C2C6 2080 CLR CR ;stop software-timer, 12 periods 0F51 18 2081 DEC R0 ;count backward, 12 periods 0F52 E8 2082 MOV A,R0 ;12 periods 0F53 C3 2083 CLR C ;12 periods 0F54 9400 2084 SUBB A,#0 ;12 periods 0F56 7036 2085 JNZ IRQ_MEAS02 ;not ready, wait for next Interrupt, 24 periods 2086 ;insert 7.1152 ms rest-wait 0F58 75FAB9 2087 MOV CCAP0H,#10111001B ;24 periods 0F5B 75EA4B 2088 MOV CCAP0L,#01001011B ;load 47435 to CCAP0, corresponds to 7.1152 ms, 24 periods 0F5E 900000 F 2089 MOV DPTR,#IRQ_MEAS1 ;address Interrupt-Routine, 24 periods 0F61 858334 2090 MOV PCA_VECTOR+1,DPH ;24 periods 0F64 858233 2091 MOV PCA_VECTOR,DPL ;set Measuring-Interrupt-Vector, 24 periods 0F67 D2C6 2092 SETB CR ;start software timer, 12 periods 0F69 00 2093 IRQ_MEAS0: NOP A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 48 0F6A 80FD 2094 SJMP IRQ_MEAS0 ;wait 2095 ;transfer data 0F6C 00 2096 IRQ_MEAS01: NOP 0F6D 858A00 F 2097 MOV COUNTER0,TL0 ;24 periods 0F70 858B00 F 2098 MOV COUNTER1,TL1 ;24 periods 0F73 85CC00 F 2099 MOV COUNTER2,TL2 ;copy counted ticks from Timer-Register, 24 periods 0F76 858C00 F 2100 MOV COUNTER0+1,TH0 ;24 periods 0F79 858D00 F 2101 MOV COUNTER1+1,TH1 ;24 periods 0F7C 85CD00 F 2102 MOV COUNTER2+1,TH2 ;24 periods 2103 ;***** end of time-critical-zone ***** 0F7F 05A2 2104 INC AUXR1 ;switch DPTR 0F81 1581 2105 DEC SP 0F83 1581 2106 DEC SP ;clear old PC on Stack 0F85 900000 F 2107 MOV DPTR,#MEASURE2 ;get address for PC 0F88 C082 2108 PUSH DPL 0F8A C083 2109 PUSH DPH ;set new PC on Stack 0F8C 05A2 2110 INC AUXR1 ;switch back DPTR 0F8E 32 2111 IRQ_MEAS02: RETI ;return from interrupt 2112 0F8F C2C6 2113 IRQ_MEAS1: CLR CR ;stop software-timer, 12 periods 0F91 C2C7 2114 CLR CF ;clear overflow-flag of PCA, 12 periods 0F93 C2C0 2115 CLR CCF0 ;clear CCF0-Bit, 12 periods 0F95 05A2 2116 INC AUXR1 ;switch DPTR, 12 periods 0F97 1581 2117 DEC SP ;12 periods 0F99 1581 2118 DEC SP ;clear old PC on Stack, 12 periods 0F9B 900000 F 2119 MOV DPTR,#IRQ_MEAS01 ;get address for PC, 24 periods 0F9E C082 2120 PUSH DPL ;24 periods 0FA0 C083 2121 PUSH DPH ;set new PC on Stack, 24 periods 0FA2 05A2 2122 INC AUXR1 ;switch back DPTR, 12 periods 0FA4 32 2123 RETI ;return to IRQ_MES0, 24 periods 2124 0FA5 C2C6 2125 IRQ_MEASX: CLR CR ;stop software-timer, 12 periods 0FA7 C2C7 2126 CLR CF ;clear overflow-flag of PCA, 12 periods 0FA9 C2C0 2127 CLR CCF0 ;clear CCF0-Bit, 12 periods 2128 ;insert 0.1615 ms rest-wait 0FAB 75FA04 2129 MOV CCAP0H,#00000100B ;24 periods 0FAE 75EA35 2130 MOV CCAP0L,#00110101B ;load 1077 to CCAP0, corresponds to 0.1615 ms, 24 periods A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 49 0FB1 900000 F 2131 MOV DPTR,#IRQ_MEASX1 ;address Interrupt-Routine, 24 periods 0FB4 858334 2132 MOV PCA_VECTOR+1,DPH ;24 periods 0FB7 858233 2133 MOV PCA_VECTOR,DPL ;set Measuring-Interrupt-Vector, 24 periods 0FBA D2C6 2134 SETB CR ;start software timer, 12 periods 0FBC 00 2135 IRQ_MEASX0: NOP 0FBD 80FD 2136 SJMP IRQ_MEASX0 ;wait 0FBF 00 2137 IRQ_MEASX01:NOP 2138 ;transfer data 0FC0 858A00 F 2139 MOV COUNTER0,TL0 ;24 periods 0FC3 858B00 F 2140 MOV COUNTER1,TL1 ;24 periods 0FC6 85CC00 F 2141 MOV COUNTER2,TL2 ;copy counted ticks from Timer-Register, 24 periods 0FC9 858C00 F 2142 MOV COUNTER0+1,TH0 ;24 periods 0FCC 858D00 F 2143 MOV COUNTER1+1,TH1 ;24 periods 0FCF 85CD00 F 2144 MOV COUNTER2+1,TH2 ;24 periods 2145 ;***** end of time-critical-zone ***** 0FD2 05A2 2146 INC AUXR1 ;switch DPTR, 12 periods 0FD4 1581 2147 DEC SP ;12 periods 0FD6 1581 2148 DEC SP ;clear old PC on Stack, 12 periods 0FD8 900000 F 2149 MOV DPTR,#XMEASURE2 ;get address for PC, 24 periods 0FDB C082 2150 PUSH DPL ;24 periods 0FDD C083 2151 PUSH DPH ;set new PC on Stack, 24 periods 0FDF 05A2 2152 INC AUXR1 ;switch back DPTR, 12 periods 0FE1 32 2153 RETI ;return to IRQ_MES0, 24 periods 2154 0FE2 C2C6 2155 IRQ_MEASX1: CLR CR ;stop software-timer, 12 periods 0FE4 C2C7 2156 CLR CF ;clear overflow-flag of PCA, 12 periods 0FE6 C2C0 2157 CLR CCF0 ;clear CCF0-Bit, 12 periods 0FE8 05A2 2158 INC AUXR1 ;switch DPTR, 12 periods 0FEA 1581 2159 DEC SP ;12 periods 0FEC 1581 2160 DEC SP ;clear old PC on Stack, 12 periods 0FEE 900000 F 2161 MOV DPTR,#IRQ_MEASX01 ;get address for PC, 24 periods 0FF1 C082 2162 PUSH DPL ;24 periods 0FF3 C083 2163 PUSH DPH ;set new PC on Stack, 24 periods 0FF5 05A2 2164 INC AUXR1 ;switch back DPTR, 12 periods 0FF7 32 2165 RETI ;return to IRQ_MES0, 24 periods 2166 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 50 2167 END A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 51 XREF SYMBOL TABLE LISTING ---- ------ ----- ------- N A M E T Y P E V A L U E ATTRIBUTES / REFERENCES ACTI_MSG . . . . . C ADDR 0461H R SEG=CONST 159# 1233 ACT_0. . . . . . . C ADDR 0900H R SEG=PROG 1239# 1246 ACT_MSG. . . . . . C ADDR 05D3H R SEG=CONST 178# 1810 1932 ADL0 . . . . . . . C ADDR 0152H R SEG=PROG 422# 429 ADLA0. . . . . . . C ADDR 0182H R SEG=PROG 442# 449 ADLALPHA_MSG . . . C ADDR 007AH R SEG=CONST 105# 436 ADLB0. . . . . . . C ADDR 01B2H R SEG=PROG 462# 469 ADLBETGAM_MSG. . . C ADDR 0091H R SEG=CONST 106# 456 ADLFN0 . . . . . . C ADDR 0212H R SEG=PROG 502# 509 ADLNEUTS_MSG . . . C ADDR 00C9H R SEG=CONST 108# 496 ADLNEUTT_MSG . . . C ADDR 00ACH R SEG=CONST 107# 476 ADLOALPHA_MSG. . . C ADDR 00E6H R SEG=CONST 110# 516 ADLOBETGAM_MSG . . C ADDR 00FDH R SEG=CONST 111# 536 ADLONEUTT_MSG. . . C ADDR 0118H R SEG=CONST 112# 556 ADLSA. . . . . . . C ADDR 0242H R SEG=PROG 522# 529 ADLSB. . . . . . . C ADDR 0272H R SEG=PROG 542# 549 ADLSN. . . . . . . C ADDR 02A2H R SEG=PROG 562# 569 ADLTN0 . . . . . . C ADDR 01E2H R SEG=PROG 482# 489 ADL_MSG. . . . . . C ADDR 005DH R SEG=CONST 104# 416 ALARM. . . . . . . B ADDR 00B0H.3 A 7 53# 272 1751 2074 ALARM_MSG. . . . . C ADDR 05FAH R SEG=CONST 7 180# ALARM_QUIT . . . . X ADDR 00A5H R SEG=XRAM 7 255# 2056 AUXR . . . . . . . D ADDR 008EH A 88# 320 AUXR1. . . . . . . D ADDR 00A2H A 89# 1271 1276 1280 1364 1369 1373 1634 1644 1650 1654 1659 1661 1664 1666 1817 1819 1825 1827 1833 1835 1841 1843 1849 1851 1857 1859 1863 1867 1881 1883 1887 1891 1939 1941 1947 1949 1955 1957 1963 1965 1971 1973 1987 1989 1993 1997 2003 2005 2009 2013 2033 2036 2104 2110 2116 2122 2146 2152 2158 2164 BEEP . . . . . . . C ADDR 0CB1H R SEG=PROG 5 310 352 385 1420 1436 1668 1748# BUFFULL_MSG. . . . C ADDR 05DEH R SEG=CONST 179# 1678 CALIBRAT0. . . . . C ADDR 0D0FH R SEG=PROG 1416 1797# CALIBRAT1. . . . . C ADDR 0E1CH R SEG=PROG 1432 1919# CALIBRATE0 . . . . X ADDR 0093H R SEG=XRAM 6 245# CALIBRATE01. . . . X ADDR 0000H R SEG=XRAM 8 213# 1818 1940 CALIBRATE02. . . . X ADDR 0006H R SEG=XRAM 9 216# 1826 1948 CALIBRATE03. . . . X ADDR 000CH R SEG=XRAM 10 219# 1834 1956 CALIBRATE04. . . . X ADDR 0012H R SEG=XRAM 11 222# 1842 1964 CALIBRATE05. . . . X ADDR 0018H R SEG=XRAM 12 225# 1850 1972 CALIBRATE1 . . . . X ADDR 0095H R SEG=XRAM 6 246# CALIBRATE11. . . . X ADDR 0002H R SEG=XRAM 8 214# CALIBRATE12. . . . X ADDR 0008H R SEG=XRAM 9 217# CALIBRATE13. . . . X ADDR 000EH R SEG=XRAM 10 220# CALIBRATE14. . . . X ADDR 0014H R SEG=XRAM 11 223# CALIBRATE15. . . . X ADDR 001AH R SEG=XRAM 12 226# CALIBRATE2 . . . . X ADDR 0097H R SEG=XRAM 6 247# CALIBRATE21. . . . X ADDR 0004H R SEG=XRAM 8 215# CALIBRATE22. . . . X ADDR 000AH R SEG=XRAM 9 218# CALIBRATE23. . . . X ADDR 0010H R SEG=XRAM 10 221# CALIBRATE24. . . . X ADDR 0016H R SEG=XRAM 11 224# CALIBRATE25. . . . X ADDR 001CH R SEG=XRAM 12 227# CALIBRATE3 . . . . X ADDR 009DH R SEG=XRAM 249# CALIBRATE4 . . . . X ADDR 009FH R SEG=XRAM 250# CALIBRATE5 . . . . X ADDR 00A1H R SEG=XRAM 251# CALIB_10 . . . . . C ADDR 0EB1H R SEG=PROG 1980 1986# CALIB_10A. . . . . C ADDR 0DC0H R SEG=PROG 1874 1880# CALIB_MSG. . . . . C ADDR 0519H R SEG=CONST 169# 1412 CAL_MSG. . . . . . C ADDR 0582H R SEG=CONST 174# CAL_PRINT. . . . . C ADDR 0DDCH R SEG=PROG 1878 1896# CAL_PRINT1 . . . . C ADDR 0EE9H R SEG=PROG 1984 2017# CAPB_MSG . . . . . C ADDR 053DH R SEG=CONST 170# 1428 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 52 CCALIBRATE0. . . . C ADDR 0624H R SEG=CONST 186# CCALIBRATE1. . . . C ADDR 0626H R SEG=CONST 187# CCALIBRATE2. . . . C ADDR 0628H R SEG=CONST 188# CCALIBRATE3. . . . C ADDR 062EH R SEG=CONST 190# CCALIBRATE4. . . . C ADDR 0630H R SEG=CONST 191# CCALIBRATE5. . . . C ADDR 0632H R SEG=CONST 192# CCAP0H . . . . . . D ADDR 00FAH A 68# 350 1501 1550 1766 1781 2087 2129 CCAP0L . . . . . . D ADDR 00EAH A 69# 351 1502 1551 1767 1782 2088 2130 CCAPM0 . . . . . . D ADDR 00C2H A 67# 349 CCF0 . . . . . . . B ADDR 00C0H.0 A 77# 2065 2073 2078 2115 2127 2157 CCON . . . . . . . D ADDR 00C0H A 66# 348 CF . . . . . . . . B ADDR 00C0H.7 A 73# 2072 2079 2114 2126 2156 CGMZC. . . . . . . C ADDR 0620H R SEG=CONST 6 185# CH . . . . . . . . D ADDR 00F9H A 70# CHIP_ERASE . . . . C ADDR 0000H R SEG=PROG 260# 1449 CL . . . . . . . . D ADDR 00E9H A 71# CLEAR_VAR. . . . . C ADDR 0F1BH R SEG=PROG 741 762 783 804 825 846 867 888 1069 1090 1112 1133 1154 1175 1196 1217 2043# CLOGGER_BYTE . . . C ADDR 0636H R SEG=CONST 196# 376 CLOGGER_MSG. . . . C ADDR 04B1H R SEG=CONST 164# 1344 CMAFAL . . . . . . C ADDR 061CH R SEG=CONST 6 184# 1858 CMAFPB . . . . . . C ADDR 062AH R SEG=CONST 6 189# 1988 CMOD . . . . . . . D ADDR 00C1H A 65# 347 CODE_MSG . . . . . C ADDR 05A1H R SEG=CONST 175# 261 1798 1920 CONST. . . . . . . C SEG 2815H REL=UNIT 23# 95 CONST_COPY0. . . . C ADDR 0F0EH R SEG=PROG 1821 1829 1837 1845 1853 1943 1951 1959 1967 1975 2032# 2039 CONST_COPY1. . . . C ADDR 0DA2H R SEG=PROG 1861# 1870 CONST_COPY2. . . . C ADDR 0EBDH R SEG=PROG 1991# 2000 CONST_COPY3. . . . C ADDR 0C18H R SEG=PROG 1648# 1657 CONST_COPY5. . . . C ADDR 0953H R SEG=PROG 1274# 1283 CONST_COPY6. . . . C ADDR 0A02H R SEG=PROG 1367# 1376 CONST_COPYX. . . . C ADDR 0DCCH R SEG=PROG 1885# 1894 CONST_COPYZ. . . . C ADDR 0ED9H R SEG=PROG 2007# 2016 COUNTER0 . . . . . D ADDR 0000H R SEG=VAR 6 202# 1569 1816 1824 1832 1840 1848 1871 1875 1938 1946 1954 1962 1970 1977 1981 2044 2045 2097 2100 2139 2142 COUNTER1 . . . . . D ADDR 0002H R SEG=VAR 6 203# 1583 2046 2047 2098 2101 2140 2143 COUNTER2 . . . . . D ADDR 0004H R SEG=VAR 6 204# 1597 2048 2049 2099 2102 2141 2144 CR . . . . . . . . B ADDR 00C0H.6 A 72# 1476 1522 1752 1774 1789 2064 2071 2080 2092 2113 2125 2134 2155 C_ACTI_MES . . . . C ADDR ----- EXT 19# 1240 C_ADLALPHA_MES . . C ADDR ----- EXT 15# 443 C_ADLBETA_MES. . . C ADDR ----- EXT 15# 463 C_ADLFNEUT_MES . . C ADDR ----- EXT 15# 503 C_ADLSALPHA_MES. . C ADDR ----- EXT 16# 523 C_ADLSBETGAM_MES . C ADDR ----- EXT 16# 543 C_ADLSNEUT_MES . . C ADDR ----- EXT 16# 563 C_ADLTNEUT_MES . . C ADDR ----- EXT 15# 483 C_ADL_MES. . . . . C ADDR ----- EXT 15# 423 C_CAL0 . . . . . . C ADDR ----- EXT 15# 1854 C_CAL1 . . . . . . C ADDR ----- EXT 15# 1976 C_ED0SNEUT_MES . . C ADDR ----- EXT 18# 891 C_EDALPHA_MES. . . C ADDR ----- EXT 17# 765 C_EDBETA_MES . . . C ADDR ----- EXT 17# 786 C_EDLALPHA_MES . . C ADDR ----- EXT 16# 603 C_EDLBETA_MES. . . C ADDR ----- EXT 16# 623 C_EDLFNEUT_MES . . C ADDR ----- EXT 16# 663 C_EDLSALPHA_MES. . C ADDR ----- EXT 17# 683 C_EDLSBETGAM_MES . C ADDR ----- EXT 17# 703 C_EDLSNEUT_MES . . C ADDR ----- EXT 17# 723 C_EDLTNEUT_MES . . C ADDR ----- EXT 16# 643 C_EDL_MES. . . . . C ADDR ----- EXT 16# 583 C_EDSALPHA_MES . . C ADDR ----- EXT 18# 849 C_EDSBETGAM_MES. . C ADDR ----- EXT 18# 870 C_EDSNEUT_MES. . . C ADDR ----- EXT 17# 828 C_EDTNEUT_MES. . . C ADDR ----- EXT 17# 807 C_ED_MES . . . . . C ADDR ----- EXT 17# 744 C_IP0A_MES . . . . C ADDR ----- EXT 19# 1178 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 53 C_IP0B_MES . . . . C ADDR ----- EXT 19# 1199 C_IP0N_MES . . . . C ADDR ----- EXT 19# 1220 C_IPA_MES. . . . . C ADDR ----- EXT 19# 1093 C_IPB_MES. . . . . C ADDR ----- EXT 19# 1115 C_IPTF_MES . . . . C ADDR ----- EXT 19# 1157 C_IPTN_MES . . . . C ADDR ----- EXT 19# 1136 C_IP_MES . . . . . C ADDR ----- EXT 19# 1072 C_IR0A_MES . . . . C ADDR ----- EXT 19# 1011 C_IR0B_MES . . . . C ADDR ----- EXT 19# 1031 C_IR0N_MES . . . . C ADDR ----- EXT 19# 1051 C_IRA_MES. . . . . C ADDR ----- EXT 18# 931 C_IRB_MES. . . . . C ADDR ----- EXT 18# 951 C_IRNF_MES . . . . C ADDR ----- EXT 18# 991 C_IRNT_MES . . . . C ADDR ----- EXT 18# 971 C_IR_MES . . . . . C ADDR ----- EXT 18# 911 C_LOGGER . . . . . C ADDR 0637H R SEG=CONST 198# 1303 1354 C_LOG_PTR. . . . . C ADDR 0634H R SEG=CONST 195# 366 1270 1363 DATA_0 . . . . . . C ADDR 0BF8H R SEG=PROG 1628# 1629 DATA_1 . . . . . . C ADDR 0BF9H R SEG=PROG 1627 1629# DATA_2 . . . . . . C ADDR 0C50H R SEG=PROG 1681# 1682 DATA_3 . . . . . . C ADDR 0C56H R SEG=PROG 1619 1672 1683# DATA_A . . . . . . C ADDR 0BF1H R SEG=PROG 1622 1624# DATA_LOGGER. . . . C ADDR 0BE2H R SEG=PROG 427 447 467 487 507 527 547 567 587 607 627 647 667 687 707 727 748 769 790 811 832 853 874 895 915 935 955 975 995 1015 1035 1055 1076 1097 1119 1140 1161 1182 1203 1224 1244 1615# DOWN_KEY . . . . . N NUMB 0004H A 44# 1324 DPH. . . . . . . . D ADDR 0083H A 367 1320 1322 1337 1339 1355 1465 1512 1641 1665 1749 1769 1773 1784 1788 2067 2090 2109 2121 2132 2151 2163 DPL. . . . . . . . D ADDR 0082H A 327 330 368 1316 1318 1331 1334 1356 1466 1513 1643 1660 1750 1770 1772 1785 1787 2066 2091 2108 2120 2133 2150 2162 DSP_BUF0 . . . . . X ADDR 001EH R SEG=XRAM 7 230# 425 445 465 485 505 525 545 565 585 605 625 645 665 685 705 725 746 767 788 809 830 851 872 893 913 933 953 973 993 1013 1033 1053 1074 1095 1117 1138 1159 1180 1201 1222 1242 1646 1897 2019 DSP_BUF1 . . . . . X ADDR 0040H R SEG=XRAM 7 231# 1901 2023 DSP_BUF2 . . . . . X ADDR 0051H R SEG=XRAM 7 232# 1905 2027 DSP_BUF3 . . . . . X ADDR 0062H R SEG=XRAM 7 233# 1909 DSP_BUF4 . . . . . X ADDR 0073H R SEG=XRAM 7 234# 1913 DSP_CLR. . . . . . N NUMB 0001H A 29# 1756 DSP_EN . . . . . . B ADDR 0090H.3 A 37# 1692 1694 1697 1699 1760 1762 DSP_FUNC . . . . . N NUMB 003CH A 32# 357 DSP_HOME . . . . . N NUMB 0002H A 30# DSP_MODE . . . . . N NUMB 0007H A 34# 362 DSP_ON . . . . . . N NUMB 000EH A 31# 359 DSP_RS . . . . . . B ADDR 0090H.1 A 35# 355 DSP_RW . . . . . . B ADDR 0090H.2 A 36# 356 DSP_SHIFT. . . . . N NUMB 0014H A 33# EA . . . . . . . . B ADDR 00A8H.7 A 336 EC . . . . . . . . B ADDR 00A8H.6 A 76# 337 ED0A_1_0 . . . . . C ADDR 054BH R SEG=PROG 843# 859 ED0A_1_0A. . . . . C ADDR 056CH R SEG=PROG 844 857# ED0A_1_0B. . . . . C ADDR 0571H R SEG=PROG 857 859# ED0BGS_1_0 . . . . C ADDR 057DH R SEG=PROG 864# 880 ED0BGS_1_0A. . . . C ADDR 059FH R SEG=PROG 865 878# ED0BGS_1_0B. . . . C ADDR 05A4H R SEG=PROG 878 880# ED0TN_1_0. . . . . C ADDR 05B0H R SEG=PROG 885# 901 ED0TN_1_0A . . . . C ADDR 05D1H R SEG=PROG 886 899# ED0TN_1_0B . . . . C ADDR 05D6H R SEG=PROG 899 901# EDALPHA_MSG. . . . C ADDR 0222H R SEG=CONST 127# 757 EDAS_0 . . . . . . C ADDR 0554H R SEG=PROG 848# 855 EDA_0. . . . . . . C ADDR 0488H R SEG=PROG 764# 771 EDA_1_0. . . . . . C ADDR 047FH R SEG=PROG 759# 775 EDA_1_0A . . . . . C ADDR 04A1H R SEG=PROG 760 773# EDA_1_0B . . . . . C ADDR 04A6H R SEG=PROG 773 775# EDBETGAM_MSG . . . C ADDR 0239H R SEG=CONST 128# 778 EDBG_0 . . . . . . C ADDR 04BBH R SEG=PROG 785# 792 EDBG_1_0 . . . . . C ADDR 04B2H R SEG=PROG 780# 796 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 54 EDBG_1_0A. . . . . C ADDR 04D4H R SEG=PROG 781 794# EDBG_1_0B. . . . . C ADDR 04D9H R SEG=PROG 794 796# EDBS_0 . . . . . . C ADDR 0586H R SEG=PROG 869# 876 EDL0 . . . . . . . C ADDR 02D2H R SEG=PROG 582# 589 EDLA0. . . . . . . C ADDR 0302H R SEG=PROG 602# 609 EDLALPHA_MSG . . . C ADDR 014EH R SEG=CONST 116# 596 EDLB0. . . . . . . C ADDR 0332H R SEG=PROG 622# 629 EDLBETGAM_MSG. . . C ADDR 0165H R SEG=CONST 117# 616 EDLFN0 . . . . . . C ADDR 0392H R SEG=PROG 662# 669 EDLNEUTS_MSG . . . C ADDR 019DH R SEG=CONST 119# 656 EDLNEUTT_MSG . . . C ADDR 0180H R SEG=CONST 118# 636 EDLOALPHA_MSG. . . C ADDR 01BAH R SEG=CONST 121# 676 EDLOBETGAM_MSG . . C ADDR 01D1H R SEG=CONST 122# 696 EDLONEUTT_MSG. . . C ADDR 01ECH R SEG=CONST 123# 716 EDLSA. . . . . . . C ADDR 03C2H R SEG=PROG 682# 689 EDLSB. . . . . . . C ADDR 03F2H R SEG=PROG 702# 709 EDLSN. . . . . . . C ADDR 0422H R SEG=PROG 722# 729 EDLTN0 . . . . . . C ADDR 0362H R SEG=PROG 642# 649 EDL_MSG. . . . . . C ADDR 0131H R SEG=CONST 115# 576 EDNEUTS_MSG. . . . C ADDR 0271H R SEG=CONST 130# 820 EDNEUTT_MSG. . . . C ADDR 0254H R SEG=CONST 129# 799 EDNF_0 . . . . . . C ADDR 0521H R SEG=PROG 827# 834 EDNS_1_0 . . . . . C ADDR 0518H R SEG=PROG 822# 838 EDNS_1_0A. . . . . C ADDR 053AH R SEG=PROG 823 836# EDNS_1_0B. . . . . C ADDR 053FH R SEG=PROG 836 838# EDNT_0 . . . . . . C ADDR 04EEH R SEG=PROG 806# 813 EDNT_1_0 . . . . . C ADDR 04E5H R SEG=PROG 801# 817 EDNT_1_0A. . . . . C ADDR 0507H R SEG=PROG 802 815# EDNT_1_0B. . . . . C ADDR 050CH R SEG=PROG 815 817# EDOALPHA_MSG . . . C ADDR 0282H R SEG=CONST 132# 841 EDOBETGAM_MSG. . . C ADDR 0299H R SEG=CONST 133# 862 EDONEUTT_MSG . . . C ADDR 02B4H R SEG=CONST 134# 883 EDONS_0. . . . . . C ADDR 05B9H R SEG=PROG 890# 897 ED_0 . . . . . . . C ADDR 0455H R SEG=PROG 743# 750 ED_MEA_2 . . . . . C ADDR 0BA3H R SEG=PROG 1566 1573 1578# 1587 1601 ED_MEA_3 . . . . . C ADDR 0BB9H R SEG=PROG 1580 1592# ED_MEA_A . . . . . C ADDR 0B89H R SEG=PROG 1559 1562# ED_MEA_B . . . . . C ADDR 0B8BH R SEG=PROG 1561 1563# ED_MEA_EX. . . . . C ADDR 0BCFH R SEG=PROG 1606# ED_MSG . . . . . . C ADDR 0205H R SEG=CONST 126# 736 ENTER_KEY. . . . . N NUMB 0002H A 41# 399 413 419 439 459 479 499 519 539 559 579 599 619 639 659 679 699 719 739 760 781 802 823 844 865 886 907 927 947 967 987 1007 1027 1047 1067 1088 1109 1131 1152 1173 1194 1215 1236 1262 1298 1349 1384 1395 1405 1415 1431 1447 1629 1682 ERASE0 . . . . . . C ADDR 006AH R SEG=PROG 264 266 268 270 277 287 310# 1796 1918 ERASE_MSG. . . . . C ADDR 0562H R SEG=CONST 171# 1444 ERR_MSG. . . . . . C ADDR 05ACH R SEG=CONST 176# 312 EXIT_KEY . . . . . C ADDR 0CA7H R SEG=PROG 1730 1739# EXIT_STRING. . . . C ADDR 0C80H R SEG=PROG 1707 1711# EXIT_XSTR. . . . . C ADDR 0C8DH R SEG=PROG 1717 1721# FUN_MSG. . . . . . C ADDR 002AH R SEG=CONST 100# 396 GETKEY . . . . . . C ADDR 0C8EH R SEG=PROG 5 386 392 398 408 418 438 458 478 498 518 538 558 578 598 618 638 658 678 698 718 738 759 780 801 822 843 864 885 906 926 946 966 986 1006 1026 1046 1066 1087 1108 1130 1151 1172 1193 1214 1235 1257 1294 1346 1383 1394 1404 1414 1430 1446 1681 1724# 1742 GET_LIGHT. . . . . C ADDR 0C99H R SEG=PROG 1728 1731# GET_LIGHT1 . . . . C ADDR 0CA3H R SEG=PROG 1734 1737# GMZC . . . . . . . X ADDR 008FH R SEG=XRAM 6 244# HELP0. . . . . . . D ADDR 0006H R SEG=VAR 6 205# 1606 1609 2050 2051 HELP1. . . . . . . D ADDR 0008H R SEG=VAR 6 206# 1607 1610 2052 2053 HELP2. . . . . . . D ADDR 000AH R SEG=VAR 6 207# 1608 1611 2054 2055 HOME . . . . . . . C ADDR 0CBFH R SEG=PROG 5 260 279 289 311 361 389 395 405 415 424 435 444 455 464 475 484 495 504 515 524 535 544 555 564 575 584 595 604 615 624 635 644 655 664 675 684 695 704 715 724 735 745 756 766 777 787 798 808 819 829 840 850 861 871 882 892 903 912 923 932 943 952 963 972 983 992 1003 1012 1023 1032 1043 1052 1063 1073 1084 1094 1105 1116 1127 1137 1148 1158 1169 1179 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 55 1190 1200 1211 1221 1232 1241 1254 1291 1305 1343 1380 1391 1401 1411 1417 1427 1433 1443 1677 1756# 1797 1809 1896 1900 1904 1908 1912 1919 1931 2018 2022 2026 II0ALPB. . . . . . C ADDR ----- EXT 15# 2004 IIAALPB. . . . . . C ADDR ----- EXT 15# 1882 INIT_MSG . . . . . C ADDR 0000H R SEG=CONST 96# 382 INPUTKEY . . . . . C ADDR 0CA8H R SEG=PROG 5 263 265 267 269 314 1307 1626 1742# 1744 1801 1803 1805 1807 1899 1903 1907 1911 1915 1923 1925 1927 1929 2021 2025 2029 INPUT_EXIT . . . . C ADDR 0CB0H R SEG=PROG 1743 1745# IP0. . . . . . . . D ADDR 00B8H A 78# 334 IP0H . . . . . . . D ADDR 00B7H A 79# 335 IPALPHA_MSG. . . . C ADDR 03AAH R SEG=CONST 149# 1085 IPBETGAM_MSG . . . C ADDR 03C1H R SEG=CONST 150# 1106 IPNEUTS_MSG. . . . C ADDR 03F9H R SEG=CONST 152# 1149 IPNEUTT_MSG. . . . C ADDR 03DCH R SEG=CONST 151# 1128 IPOALPHA_MSG . . . C ADDR 0416H R SEG=CONST 154# 1170 IPOBETGAM_MSG. . . C ADDR 042DH R SEG=CONST 155# 1191 IPONEUTT_MSG . . . C ADDR 0448H R SEG=CONST 156# 1212 IP_0 . . . . . . . C ADDR 076BH R SEG=PROG 1071# 1078 IP_0A0 . . . . . . C ADDR 086AH R SEG=PROG 1177# 1184 IP_0B0 . . . . . . C ADDR 089DH R SEG=PROG 1198# 1205 IP_A0. . . . . . . C ADDR 079EH R SEG=PROG 1092# 1099 IP_B0. . . . . . . C ADDR 07D1H R SEG=PROG 1114# 1121 IP_MSG . . . . . . C ADDR 0392H R SEG=CONST 148# 1064 IP_NF0 . . . . . . C ADDR 0837H R SEG=PROG 1156# 1163 IP_TN0 . . . . . . C ADDR 0804H R SEG=PROG 1135# 1142 IP_TNS0. . . . . . C ADDR 08D0H R SEG=PROG 1219# 1226 IR . . . . . . . . C ADDR 05E8H R SEG=PROG 910# 917 IR0A . . . . . . . C ADDR 06D8H R SEG=PROG 1010# 1017 IR0B . . . . . . . C ADDR 0708H R SEG=PROG 1030# 1037 IR0N . . . . . . . C ADDR 0738H R SEG=PROG 1050# 1057 IRA. . . . . . . . C ADDR 0618H R SEG=PROG 930# 937 IRALPHA_MSG. . . . C ADDR 02E7H R SEG=CONST 138# 924 IRB. . . . . . . . C ADDR 0648H R SEG=PROG 950# 957 IRBETGAM_MSG . . . C ADDR 02FEH R SEG=CONST 139# 944 IRNEUTS_MSG. . . . C ADDR 0336H R SEG=CONST 141# 984 IRNEUTT_MSG. . . . C ADDR 0319H R SEG=CONST 140# 964 IRNF . . . . . . . C ADDR 06A8H R SEG=PROG 990# 997 IRNT . . . . . . . C ADDR 0678H R SEG=PROG 970# 977 IROALPHA_MSG . . . C ADDR 0347H R SEG=CONST 143# 1004 IROBETGAM_MSG. . . C ADDR 035EH R SEG=CONST 144# 1024 IRONEUTT_MSG . . . C ADDR 0379H R SEG=CONST 145# 1044 IRQ_BEEP . . . . . C ADDR 0F42H R SEG=PROG 1748 2071# IRQ_MEAS . . . . . C ADDR 0F4BH R SEG=PROG 1464 2078# IRQ_MEAS0. . . . . C ADDR 0F69H R SEG=PROG 2093# 2094 IRQ_MEAS01 . . . . C ADDR 0F6CH R SEG=PROG 2096# 2119 IRQ_MEAS02 . . . . C ADDR 0F8EH R SEG=PROG 2085 2111# IRQ_MEAS1. . . . . C ADDR 0F8FH R SEG=PROG 2089 2113# IRQ_MEASX. . . . . C ADDR 0FA5H R SEG=PROG 1511 2125# IRQ_MEASX0 . . . . C ADDR 0FBCH R SEG=PROG 2135# 2136 IRQ_MEASX01. . . . C ADDR 0FBFH R SEG=PROG 2137# 2161 IRQ_MEASX1 . . . . C ADDR 0FE2H R SEG=PROG 2131 2155# IRQ_WAIT . . . . . C ADDR 0F39H R SEG=PROG 1768 1783 2064# IR_MSG . . . . . . C ADDR 02CDH R SEG=CONST 137# 904 KEY. . . . . . . . D ADDR 000CH R SEG=VAR 7 208# 428 448 468 488 508 528 548 568 588 608 628 648 668 688 708 728 749 770 791 812 833 875 916 936 956 976 996 1016 1036 1056 1077 1098 1120 1141 1162 1183 1204 1225 1245 1486 1532 1563 LEFT_KEY . . . . . N NUMB 0010H A 43# 401 409 431 451 471 491 511 531 551 571 591 611 631 651 671 691 711 731 752 773 794 815 836 857 878 899 919 939 959 979 999 1019 1039 1059 1080 1101 1123 1144 1165 1186 1207 1228 1248 1258 1295 1347 1387 1397 1407 1423 1439 1450 LIGHT. . . . . . . B ADDR 0090H.4 A 51# 1738 LIGHT_KEY. . . . . N NUMB 0003H A 42# LIGHT_MSG. . . . . C ADDR 04E7H R SEG=CONST 166# 1392 LOGGER_BYTE. . . . X ADDR 008AH R SEG=XRAM 6 240# 378 1263 1299 1352 1615 1632 1675 LOGGER_MSG . . . . C ADDR 047CH R SEG=CONST 162# 1255 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 56 LOG_PTR. . . . . . X ADDR 0088H R SEG=XRAM 239# 369 1272 1357 1365 1635 1662 MAFAL. . . . . . . X ADDR 008BH R SEG=XRAM 6 243# 1856 1880 MAFPB. . . . . . . X ADDR 0099H R SEG=XRAM 6 248# 1986 2002 MAIN . . . . . . . N NUMB ----- 3 MEASURE1 . . . . . C ADDR 0AF8H R SEG=PROG 1478# 1487 MEASURE10MS. . . . C ADDR 0B27H R SEG=PROG 5 1493 1497 1507# MEASURE1S. . . . . C ADDR 0AD2H R SEG=PROG 5 384 422 442 462 482 502 522 542 562 582 602 622 642 662 682 702 722 910 930 950 970 990 1010 1030 1050 1239 1458# 1546 1814 1822 1830 1838 1846 1936 1944 1952 1960 1968 MEASURE2 . . . . . C ADDR 0B09H R SEG=PROG 1488# 2107 MEASURE2A. . . . . C ADDR 0B13H R SEG=PROG 1492 1494# MEASURE3 . . . . . C ADDR 0B1AH R SEG=PROG 1496 1498# MEASURE4 . . . . . C ADDR 0B03H R SEG=PROG 1482 1485# MEASURE5 . . . . . C ADDR 0B05H R SEG=PROG 1484 1486# MEASURE6 . . . . . C ADDR 0B26H R SEG=PROG 1503# MEASUREED. . . . . C ADDR 0B7EH R SEG=PROG 743 764 785 806 827 848 869 890 1071 1092 1114 1135 1156 1177 1198 1219 1555# 1594 MEA_FACTOR . . . . X ADDR 00A3H R SEG=XRAM 6 254# 1490 1498 1544 1547 MEA_MSG. . . . . . C ADDR 0044H R SEG=CONST 101# 406 MEA_VALUE. . . . . X ADDR 0084H R SEG=XRAM 7 235# MEN20_1_0. . . . . C ADDR 0642H R SEG=PROG 946# 961 MEN20_1_0A . . . . C ADDR 0661H R SEG=PROG 947 959# MEN20_1_0B . . . . C ADDR 0666H R SEG=PROG 959 961# MEN21_1_0. . . . . C ADDR 0672H R SEG=PROG 966# 981 MEN21_1_0A . . . . C ADDR 0691H R SEG=PROG 967 979# MEN21_1_0B . . . . C ADDR 0696H R SEG=PROG 979 981# MEN22_1_0. . . . . C ADDR 06A2H R SEG=PROG 986# 1001 MEN22_1_0A . . . . C ADDR 06C1H R SEG=PROG 987 999# MEN22_1_0B . . . . C ADDR 06C6H R SEG=PROG 999 1001# MEN23_1_0. . . . . C ADDR 06D2H R SEG=PROG 1006# 1021 MEN23_1_0A . . . . C ADDR 06F1H R SEG=PROG 1007 1019# MEN23_1_0B . . . . C ADDR 06F6H R SEG=PROG 1019 1021# MEN24_1_0. . . . . C ADDR 0702H R SEG=PROG 1026# 1041 MEN24_1_0A . . . . C ADDR 0721H R SEG=PROG 1027 1039# MEN24_1_0B . . . . C ADDR 0726H R SEG=PROG 1039 1041# MEN25_1_0. . . . . C ADDR 0732H R SEG=PROG 1046# 1061 MEN25_1_0A . . . . C ADDR 0751H R SEG=PROG 1047 1059# MEN25_1_0B . . . . C ADDR 0756H R SEG=PROG 1059 1061# MEN26_1_0. . . . . C ADDR 0762H R SEG=PROG 1066# 1082 MEN26_1_0A . . . . C ADDR 0784H R SEG=PROG 1067 1080# MEN26_1_0B . . . . C ADDR 0789H R SEG=PROG 1080 1082# MEN27_1_0. . . . . C ADDR 0795H R SEG=PROG 1087# 1103 MEN27_1_0A . . . . C ADDR 07B7H R SEG=PROG 1088 1101# MEN27_1_0B . . . . C ADDR 07BCH R SEG=PROG 1101 1103# MEN28_1_0. . . . . C ADDR 07C8H R SEG=PROG 1108# 1125 MEN28_1_0A . . . . C ADDR 07EAH R SEG=PROG 1109 1123# MEN28_1_0B . . . . C ADDR 07EFH R SEG=PROG 1123 1125# MEN29_1_0. . . . . C ADDR 07FBH R SEG=PROG 1130# 1146 MEN29_1_0A . . . . C ADDR 081DH R SEG=PROG 1131 1144# MEN29_1_0B . . . . C ADDR 0822H R SEG=PROG 1144 1146# MEN30_1_0. . . . . C ADDR 082EH R SEG=PROG 1151# 1167 MEN30_1_0A . . . . C ADDR 0850H R SEG=PROG 1152 1165# MEN30_1_0B . . . . C ADDR 0855H R SEG=PROG 1165 1167# MEN31_1_0. . . . . C ADDR 0861H R SEG=PROG 1172# 1188 MEN31_1_0A . . . . C ADDR 0883H R SEG=PROG 1173 1186# MEN31_1_0B . . . . C ADDR 0888H R SEG=PROG 1186 1188# MEN32_1_0. . . . . C ADDR 0894H R SEG=PROG 1193# 1209 MEN32_1_0A . . . . C ADDR 08B6H R SEG=PROG 1194 1207# MEN32_1_0B . . . . C ADDR 08BBH R SEG=PROG 1207 1209# MEN33_1_0. . . . . C ADDR 08C7H R SEG=PROG 1214# 1230 MEN33_1_0A . . . . C ADDR 08E9H R SEG=PROG 1215 1228# 1236 MEN33_1_0B . . . . C ADDR 08EEH R SEG=PROG 1228 1230# MEN34_1_0. . . . . C ADDR 08FAH R SEG=PROG 1235# 1250 MEN34_1_0A . . . . C ADDR 0919H R SEG=PROG 1248# MEN34_1_0B . . . . C ADDR 091EH R SEG=PROG 1248 1250# MENUE. . . . . . . C ADDR 00EEH R SEG=PROG 382# A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 57 MENUE20. . . . . . C ADDR 0639H R SEG=PROG 943# 958 980 MENUE21. . . . . . C ADDR 0669H R SEG=PROG 963# 978 1000 MENUE22. . . . . . C ADDR 0699H R SEG=PROG 983# 998 1020 MENUE23. . . . . . C ADDR 06C9H R SEG=PROG 1003# 1018 1040 MENUE24. . . . . . C ADDR 06F9H R SEG=PROG 1023# 1038 1060 MENUE25. . . . . . C ADDR 0729H R SEG=PROG 1043# 1058 1081 MENUE26. . . . . . C ADDR 0759H R SEG=PROG 1063# 1079 1102 MENUE27. . . . . . C ADDR 078CH R SEG=PROG 1084# 1100 1124 MENUE28. . . . . . C ADDR 07BFH R SEG=PROG 1105# 1122 1145 MENUE29. . . . . . C ADDR 07F2H R SEG=PROG 1127# 1143 1166 MENUE30. . . . . . C ADDR 0825H R SEG=PROG 1148# 1164 1187 MENUE31. . . . . . C ADDR 0858H R SEG=PROG 1169# 1185 1208 MENUE32. . . . . . C ADDR 088BH R SEG=PROG 1190# 1206 1229 MENUE33. . . . . . C ADDR 08BEH R SEG=PROG 1211# 1227 1249 MENUE34. . . . . . C ADDR 08F1H R SEG=PROG 1232# 1247 MENUE_0. . . . . . C ADDR 00FAH R SEG=PROG 386# 387 MENUE_1. . . . . . C ADDR 0109H R SEG=PROG 392# 393 MENUE_10 . . . . . C ADDR 010FH R SEG=PROG 395# 410 MENUE_100. . . . . C ADDR 02C3H R SEG=PROG 575# 590 612 MENUE_11 . . . . . C ADDR 02F3H R SEG=PROG 595# 610 632 MENUE_12 . . . . . C ADDR 0323H R SEG=PROG 615# 630 652 MENUE_128. . . . . C ADDR 092DH R SEG=PROG 1257# 1262 MENUE_128A . . . . C ADDR 0936H R SEG=PROG 1258 1260# MENUE_128B . . . . C ADDR 0978H R SEG=PROG 1294# 1341 MENUE_128B0. . . . C ADDR 096FH R SEG=PROG 1261 1291# 1348 MENUE_128C . . . . C ADDR 093BH R SEG=PROG 1260 1262# MENUE_128E . . . . C ADDR 0949H R SEG=PROG 1270# 1289 MENUE_129. . . . . C ADDR 09D9H R SEG=PROG 1346# 1378 MENUE_1290 . . . . C ADDR 09D0H R SEG=PROG 1343# 1377 1388 MENUE_129A . . . . C ADDR 09E1H R SEG=PROG 1347 1349# MENUE_129B . . . . C ADDR 0A14H R SEG=PROG 1349 1378# MENUE_13 . . . . . C ADDR 0353H R SEG=PROG 635# 650 672 MENUE_130. . . . . C ADDR 0A20H R SEG=PROG 1383# 1386 1389 MENUE_1300 . . . . C ADDR 0A17H R SEG=PROG 1380# 1398 MENUE_130A . . . . C ADDR 0A2AH R SEG=PROG 1384 1387# MENUE_130B . . . . C ADDR 0A2FH R SEG=PROG 1387 1389# MENUE_131. . . . . C ADDR 0A3BH R SEG=PROG 1394# 1396 1399 MENUE_131A . . . . C ADDR 0A43H R SEG=PROG 1395 1397# MENUE_131B . . . . C ADDR 0A48H R SEG=PROG 1397 1399# MENUE_1320 . . . . C ADDR 0A32H R SEG=PROG 1391# 1408 MENUE_14 . . . . . C ADDR 0383H R SEG=PROG 655# 670 692 MENUE_15 . . . . . C ADDR 03B3H R SEG=PROG 675# 690 712 MENUE_16 . . . . . C ADDR 03E3H R SEG=PROG 695# 710 732 MENUE_17 . . . . . C ADDR 0413H R SEG=PROG 715# 730 753 MENUE_18 . . . . . C ADDR 05D9H R SEG=PROG 903# 918 940 MENUE_19 . . . . . C ADDR 0609H R SEG=PROG 923# 938 960 MENUE_2. . . . . . C ADDR 0118H R SEG=PROG 398# 403 MENUE_20 . . . . . C ADDR 0143H R SEG=PROG 415# 430 452 MENUE_254. . . . . C ADDR 0A6EH R SEG=PROG 1414# 1425 MENUE_2540 . . . . C ADDR 0A65H R SEG=PROG 1411# 1421 1440 MENUE_2545 . . . . C ADDR 0A8DH R SEG=PROG 1427# 1437 1451 MENUE_2546 . . . . C ADDR 0A96H R SEG=PROG 1430# 1441 MENUE_254A . . . . C ADDR 0A85H R SEG=PROG 1415 1423# MENUE_254B . . . . C ADDR 0A8AH R SEG=PROG 1423 1425# MENUE_254C . . . . C ADDR 0A9FH R SEG=PROG 1433# MENUE_254D . . . . C ADDR 0AADH R SEG=PROG 1431 1439# MENUE_254E . . . . C ADDR 0AB2H R SEG=PROG 1439 1441# MENUE_254X3. . . . C ADDR 0A77H R SEG=PROG 1417# MENUE_255. . . . . C ADDR 0ABEH R SEG=PROG 1446# 1452 MENUE_2550 . . . . C ADDR 0AB5H R SEG=PROG 315 1443# MENUE_255A . . . . C ADDR 0AC7H R SEG=PROG 1447 1450# MENUE_255B . . . . C ADDR 0ACCH R SEG=PROG 1450 1452# MENUE_2A . . . . . C ADDR 0924H R SEG=PROG 400 412 1254# 1286 1296 MENUE_2M . . . . . C ADDR 0129H R SEG=PROG 405# 432 1251 1259 MENUE_2M0. . . . . C ADDR 0121H R SEG=PROG 399 401# MENUE_2M1. . . . . C ADDR 0126H R SEG=PROG 401 403# A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 58 MENUE_2M2. . . . . C ADDR 013AH R SEG=PROG 409 411# MENUE_2M3. . . . . C ADDR 0132H R SEG=PROG 408# 413 MENUE_2M4. . . . . C ADDR 0140H R SEG=PROG 411 413# MENUE_30 . . . . . C ADDR 0173H R SEG=PROG 435# 450 472 MENUE_40 . . . . . C ADDR 01A3H R SEG=PROG 455# 470 492 MENUE_50 . . . . . C ADDR 01D3H R SEG=PROG 475# 490 512 MENUE_60 . . . . . C ADDR 0203H R SEG=PROG 495# 510 532 MENUE_70 . . . . . C ADDR 0233H R SEG=PROG 515# 530 552 MENUE_80 . . . . . C ADDR 0263H R SEG=PROG 535# 550 572 MENUE_90 . . . . . C ADDR 0293H R SEG=PROG 555# 570 592 MENUE_A. . . . . . C ADDR 0100H R SEG=PROG 389# 402 1453 MENUE_ED . . . . . C ADDR 0443H R SEG=PROG 735# 751 774 MENUE_ED0A . . . . C ADDR 0542H R SEG=PROG 840# 856 879 MENUE_ED0BG. . . . C ADDR 0574H R SEG=PROG 861# 877 900 MENUE_ED0TN. . . . C ADDR 05A7H R SEG=PROG 882# 898 920 MENUE_EDA. . . . . C ADDR 0476H R SEG=PROG 756# 772 795 MENUE_EDBG . . . . C ADDR 04A9H R SEG=PROG 777# 793 816 MENUE_EDNF . . . . C ADDR 050FH R SEG=PROG 819# 835 858 MENUE_EDNT . . . . C ADDR 04DCH R SEG=PROG 798# 814 837 MENUE_ERA. . . . . C ADDR 0D0CH R SEG=PROG 1796# 1802 1804 1806 1808 MENUE_ERA1 . . . . C ADDR 0E19H R SEG=PROG 1918# 1924 1926 1928 1930 MENUE_KEY. . . . . N NUMB 0008H A 45# 387 429 449 469 489 509 529 549 569 589 609 629 649 669 689 709 729 750 771 792 813 834 855 876 897 917 937 957 977 997 1017 1037 1057 1078 1099 1121 1142 1163 1184 1205 1226 1246 MENUE_RES. . . . . C ADDR 0A4BH R SEG=PROG 1401# 1424 MENUE_RES1 . . . . C ADDR 0A54H R SEG=PROG 1404# 1409 MENUE_RES2 . . . . C ADDR 0A5DH R SEG=PROG 1405 1407# MENUE_RES3 . . . . C ADDR 0A62H R SEG=PROG 1407 1409# MENU_128C. . . . . C ADDR 0980H R SEG=PROG 1295 1298# MENU_128C0 . . . . C ADDR 098EH R SEG=PROG 1305# 1313 1319 1323 1329 1335 1340 MENU_128E. . . . . C ADDR 09B1H R SEG=PROG 1308 1324# MENU_128G. . . . . C ADDR 09CDH R SEG=PROG 1298 1324 1341# MENU_MSG . . . . . C ADDR 001CH R SEG=CONST 99# 390 MEN_10_1_0 . . . . C ADDR 02CCH R SEG=PROG 578# 593 MEN_10_1_0A. . . . C ADDR 02EBH R SEG=PROG 579 591# MEN_10_1_0B. . . . C ADDR 02F0H R SEG=PROG 591 593# MEN_11_1_0 . . . . C ADDR 02FCH R SEG=PROG 598# 613 MEN_11_1_0A. . . . C ADDR 031BH R SEG=PROG 599 611# MEN_11_1_0B. . . . C ADDR 0320H R SEG=PROG 611 613# MEN_12_1_0 . . . . C ADDR 032CH R SEG=PROG 618# 633 MEN_12_1_0A. . . . C ADDR 034BH R SEG=PROG 619 631# MEN_12_1_0B. . . . C ADDR 0350H R SEG=PROG 631 633# MEN_13_1_0 . . . . C ADDR 035CH R SEG=PROG 638# 653 MEN_13_1_0A. . . . C ADDR 037BH R SEG=PROG 639 651# MEN_13_1_0B. . . . C ADDR 0380H R SEG=PROG 651 653# MEN_14_1_0 . . . . C ADDR 038CH R SEG=PROG 658# 673 MEN_14_1_0A. . . . C ADDR 03ABH R SEG=PROG 659 671# MEN_14_1_0B. . . . C ADDR 03B0H R SEG=PROG 671 673# MEN_15_1_0 . . . . C ADDR 03BCH R SEG=PROG 678# 693 MEN_15_1_0A. . . . C ADDR 03DBH R SEG=PROG 679 691# MEN_15_1_0B. . . . C ADDR 03E0H R SEG=PROG 691 693# MEN_16_1_0 . . . . C ADDR 03ECH R SEG=PROG 698# 713 MEN_16_1_0A. . . . C ADDR 040BH R SEG=PROG 699 711# MEN_16_1_0B. . . . C ADDR 0410H R SEG=PROG 711 713# MEN_17_1_0 . . . . C ADDR 041CH R SEG=PROG 718# 733 MEN_17_1_0A. . . . C ADDR 043BH R SEG=PROG 719 731# MEN_17_1_0B. . . . C ADDR 0440H R SEG=PROG 731 733# MEN_18_1_0 . . . . C ADDR 05E2H R SEG=PROG 906# 921 MEN_18_1_0A. . . . C ADDR 0601H R SEG=PROG 907 919# MEN_18_1_0B. . . . C ADDR 0606H R SEG=PROG 919 921# MEN_19_1_0 . . . . C ADDR 0612H R SEG=PROG 926# 941 MEN_19_1_0A. . . . C ADDR 0631H R SEG=PROG 927 939# MEN_19_1_0B. . . . C ADDR 0636H R SEG=PROG 939 941# MEN_2_1_0. . . . . C ADDR 014CH R SEG=PROG 418# 433 MEN_2_1_0A . . . . C ADDR 016BH R SEG=PROG 419 431# MEN_2_1_0B . . . . C ADDR 0170H R SEG=PROG 431 433# A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 59 MEN_3_1_0. . . . . C ADDR 017CH R SEG=PROG 438# 453 MEN_3_1_0A . . . . C ADDR 019BH R SEG=PROG 439 451# MEN_3_1_0B . . . . C ADDR 01A0H R SEG=PROG 451 453# MEN_4_1_0. . . . . C ADDR 01ACH R SEG=PROG 458# 473 MEN_4_1_0A . . . . C ADDR 01CBH R SEG=PROG 459 471# MEN_4_1_0B . . . . C ADDR 01D0H R SEG=PROG 471 473# MEN_5_1_0. . . . . C ADDR 01DCH R SEG=PROG 478# 493 MEN_5_1_0A . . . . C ADDR 01FBH R SEG=PROG 479 491# MEN_5_1_0B . . . . C ADDR 0200H R SEG=PROG 491 493# MEN_6_1_0. . . . . C ADDR 020CH R SEG=PROG 498# 513 MEN_6_1_0A . . . . C ADDR 022BH R SEG=PROG 499 511# MEN_6_1_0B . . . . C ADDR 0230H R SEG=PROG 511 513# MEN_7_1_0. . . . . C ADDR 023CH R SEG=PROG 518# 533 MEN_7_1_0A . . . . C ADDR 025BH R SEG=PROG 519 531# MEN_7_1_0B . . . . C ADDR 0260H R SEG=PROG 531 533# MEN_8_1_0. . . . . C ADDR 026CH R SEG=PROG 538# 553 MEN_8_1_0A . . . . C ADDR 028BH R SEG=PROG 539 551# MEN_8_1_0B . . . . C ADDR 0290H R SEG=PROG 551 553# MEN_9_1_0. . . . . C ADDR 029CH R SEG=PROG 558# 573 MEN_9_1_0A . . . . C ADDR 02BBH R SEG=PROG 559 571# MEN_9_1_0B . . . . C ADDR 02C0H R SEG=PROG 571 573# ME_ED_1_0. . . . . C ADDR 044CH R SEG=PROG 738# 754 ME_ED_1_0A . . . . C ADDR 046EH R SEG=PROG 739 752# ME_ED_1_0B . . . . C ADDR 0473H R SEG=PROG 752 754# OK_MSG . . . . . . C ADDR 05C8H R SEG=CONST 177# 280 290 1284 1418 1434 ON_128C. . . . . . C ADDR 096BH R SEG=PROG 1267 1287# P0 . . . . . . . . D ADDR 0080H A 340 1478 1524 1555 1691 1696 1724 1759 P1 . . . . . . . . D ADDR 0090H A 341 1731 P2 . . . . . . . . D ADDR 00A0H A 342 P3 . . . . . . . . D ADDR 00B0H A 343 P4 . . . . . . . . D ADDR 00A1H A 83# 344 PCA_VECTOR . . . . N NUMB 0033H A 80# 1465 1466 1512 1513 1749 1750 1769 1770 1784 1785 2090 2091 2132 2133 PCON . . . . . . . D ADDR 0087H A 321 323 PGM_MTP. . . . . . N NUMB FFF0H A 92# 275 285 295 299 303 307 328 331 1278 1371 1652 1865 1889 1995 2011 PROG . . . . . . . C SEG 0FF8H REL=UNIT 22# 258 PUTCHAR. . . . . . C ADDR 0C57H R SEG=PROG 5 358 360 363 1686# 1708 1718 1757 PUTCHAR0 . . . . . C ADDR 0C68H R SEG=PROG 1689 1696# PUTSTRING. . . . . C ADDR 0C73H R SEG=PROG 5 262 281 291 313 383 391 397 407 417 437 457 477 497 517 537 557 577 597 617 637 657 677 697 717 737 758 779 800 821 842 863 884 905 925 945 965 985 1005 1025 1045 1065 1086 1107 1129 1150 1171 1192 1213 1234 1256 1285 1293 1306 1345 1382 1393 1403 1413 1419 1429 1435 1445 1679 1703# 1710 1799 1811 1921 1933 RESET_KEY. . . . . N NUMB 0020H A 48# RESET_MSG. . . . . C ADDR 0502H R SEG=CONST 167# 1402 RIGHT_KEY. . . . . N NUMB 0080H A 46# 393 403 411 433 453 473 493 513 533 553 573 593 613 633 653 673 693 713 733 754 775 796 817 838 859 880 901 921 941 961 981 1001 1021 1041 1061 1082 1103 1125 1146 1167 1188 1209 1230 1250 1260 1341 1378 1389 1399 1409 1425 1441 1452 1627 R_S_KEY. . . . . . N NUMB 0001H A 7 40# 264 266 268 270 1802 1804 1806 1808 1924 1926 1928 1930 SLOGGER_MSG. . . . C ADDR 0497H R SEG=CONST 163# 1292 SP . . . . . . . . D ADDR 0081H A 2105 2106 2117 2118 2147 2148 2159 2160 START. . . . . . . C ADDR 007CH R SEG=PROG 5 320# 1406 T2CON. . . . . . . D ADDR 00C8H A 84# 1462 1509 T2MOD. . . . . . . D ADDR 00C9H A 85# 1461 1508 TCON . . . . . . . D ADDR 0088H A 1460 1507 TF0. . . . . . . . B ADDR 0088H.5 A 1495 1565 1568 TF1. . . . . . . . B ADDR 0088H.7 A 1579 1582 TF2. . . . . . . . B ADDR 00C8H.7 A 58# 1593 1596 TH0. . . . . . . . D ADDR 008CH A 1471 1517 1535 1609 2100 2142 TH1. . . . . . . . D ADDR 008DH A 1470 1516 1610 2101 2143 TH2. . . . . . . . D ADDR 00CDH A 61# 1469 1515 1611 2102 2144 TL0. . . . . . . . D ADDR 008AH A 1474 1520 1539 1606 2097 2139 TL1. . . . . . . . D ADDR 008BH A 1473 1519 1607 2098 2140 TL2. . . . . . . . D ADDR 00CCH A 62# 1472 1518 1608 2099 2141 TMOD . . . . . . . D ADDR 0089H A 1459 TONE . . . . . . . B ADDR 0090H.5 A 52# 1385 A51 MACRO ASSEMBLER MAIN 11/05/2008 02:42:32 PAGE 60 TON_MSG. . . . . . C ADDR 04CCH R SEG=CONST 165# 1381 UP_KEY . . . . . . N NUMB 0040H A 47# 1308 VAR. . . . . . . . D SEG 000DH REL=UNIT 24# 201 WAIT1640 . . . . . C ADDR 0D07H R SEG=PROG 1790# 1791 WAIT16401. . . . . C ADDR 0D0AH R SEG=PROG 1786 1792# WAIT1640U. . . . . C ADDR 0CEFH R SEG=PROG 5 1758 1781# WAIT400. . . . . . C ADDR 0CEAH R SEG=PROG 1775# 1776 WAIT401. . . . . . C ADDR 0CEDH R SEG=PROG 1771 1777# WAIT40U. . . . . . C ADDR 0CD2H R SEG=PROG 5 1693 1698 1761 1766# XMEAS3 . . . . . . C ADDR 0B71H R SEG=PROG 1538 1542 1547# XMEASURE1. . . . . C ADDR 0B48H R SEG=PROG 1523# 1533 XMEASURE2. . . . . C ADDR 0B59H R SEG=PROG 1534# 2149 XMEASURE4. . . . . C ADDR 0B53H R SEG=PROG 1528 1531# XMEASURE5. . . . . C ADDR 0B55H R SEG=PROG 1530 1532# XPUTSTRING . . . . C ADDR 0C81H R SEG=PROG 426 446 466 486 506 526 546 566 586 606 626 646 666 686 706 726 747 768 789 810 831 852 873 894 914 934 954 974 994 1014 1034 1054 1075 1096 1118 1139 1160 1181 1202 1223 1243 1714# 1720 1898 1902 1906 1910 1914 2020 2024 2028 XRAM . . . . . . . X SEG 00A6H REL=UNIT 25# 211 REGISTER BANK(S) USED: 0 ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)