Micro Computer Control Corp. MA51 (T) 8051 Relocatable Macro Assembler Version 1.14 07-JAN-93 DEBUG Sat Jan 08 19:40:42 2005 PAGE 1 OBJECT MODULE PLACED IN DEBUG.OBJ ASSEMBLER INVOKED BY: MA51 DEBUG.SRC LOC OBJ LINE SOURCE 2 ;This code is listed here for entertainment value only, it should 3 ;not be used for anything important. Do not use this for a saleable product. 4 ;Feel free to pass this on to others in it's entirety. along with this message. 5 ;No Guarantees implicit or otherwise are implied, your mileage may vary. 8 9 10 $RB(0) 11 $RB(1) =1 12 $NOMOD51 INCLUDE(87C752.pdf) =1 14 ;This code is listed here for entertainment value only, it should =1 15 ;not be used for anything important. Do not use this for a saleable product. =1 16 ;Feel free to pass this on to others in it's entirety. along with this message. =1 17 ;No Guarantees implicit or otherwise are implied, your mileage may vary. =1 20 =1 21 ; Philips/Signetics 87C752 Processor Descriptor File =1 22 $NOLIST =1 186 $INCLUDE(common.inc) =1 188 ;This code is listed here for entertainment value only, it should =1 189 ;not be used for anything important. Do not use this for a saleable product. =1 190 ;Feel free to pass this on to others in it's entirety. along with this message. =1 191 ;No Guarantees implicit or otherwise are implied, your mileage may vary. =1 194 =1 195 ; Memory Map =1 196 ; Location Code Data =1 197 ; 0000h iRAM Internal Bank 0 =1 198 ; 0000h iRAM R0 [Ihead] =1 199 ; 0001h iRAM R1 [Itail] =1 200 ; 0002h iRAM R2 [last temperature reading] =1 201 ; 0003h iRAM R3 [ROW] =1 202 ; 0004h iRAM R4 [COL] =1 203 ; 0005h iRAM R5 unused? =1 204 ; 0006h iRAM R6 [temporary] =1 205 ; 0007h iRAM R7 [temporary] =1 206 =1 207 ; 0008h iRAM Internal Bank 1 =1 208 ; 0008h iRAM R0 [ohead] =1 209 ; 0009h iRAM R1 [otail] =1 210 ; 000ah iRAM R2 [MYSW] =1 211 ; 000a.0 iRAM [MYSW.0] RAW =1 212 ; 000a.1 iRAM [MYSW.1] COLOR =1 213 ; 000a.2 iRAM [MYSW.2] BROADCAST =1 214 ; 000bh iRAM R3 [OLDCHAR] =1 215 ; 000ch iRAM R4 [OLDTEMP] =1 216 ; 000dh iRAM R5 IBUF[0] =1 217 ; 000eh iRAM R6 IBUF[1] =1 218 ; 000fh iRAM R7 IBUF[2] =1 219 =1 220 ; 0010h iRAM Internal Bank 2 DEBUG Sat Jan 08 19:40:42 2005 PAGE 2 LOC OBJ LINE SOURCE =1 221 ; 0010h iRAM R0 IBUF[3] =1 222 ; 0011h iRAM R1 IBUF[4] =1 223 ; 0012h iRAM R2 IBUF[5] =1 224 ; 0013h iRAM R3 IBUF[6] =1 225 ; 0014h iRAM R4 IBUF[7] =1 226 ; 0015h iRAM R5 IBUF[8] =1 227 ; 0016h iRAM R6 IBUF[9] =1 228 ; 0017h iRAM R7 OBUF[0] =1 229 =1 230 ; 0018h iRAM Internal Bank 3 =1 231 ; 0018h iRAM R0 OBUF[1] =1 232 ; 0019h iRAM R1 OBUF[2] =1 233 ; 001ah iRAM R2 OBUF[3] =1 234 ; 001bh iRAM R3 OBUF[4] =1 235 ; 001ch iRAM R4 OBUF[5] =1 236 ; 001dh iRAM R5 OBUF[6] =1 237 ; 001eh iRAM R6 OBUF[7] =1 238 ; 001fh iRAM R7 OBUF[8] =1 239 =1 240 ; 0020h iRAM Internal (Stack start) =1 241 ; 0080h RAM Internal P0 =1 242 ; 0081h RAM Internal SP =1 243 ; 0082h RAM Internal DPL =1 244 ; 0083h RAM Internal DPH =1 245 ; 0084h RAM Internal nothing =1 246 ; 0087h RAM Internal nothing =1 247 ; 0088h RAM Internal TCON =1 248 ; 0089h RAM Internal TMOD =1 249 ; 008ah RAM Internal TL0 =1 250 ; 008bh RAM Internal TL1 =1 251 ; 008ch RAM Internal TH0 =1 252 ; 008dh RAM Internal TH1 =1 253 ; 008eh RAM Internal nothing =1 254 ; 008fh RAM Internal nothing =1 255 ; 0090h RAM Internal P1 =1 256 ; 0091h RAM Internal nothing =1 257 ; 0097h RAM Internal nothing =1 258 ; 0098h RAM Internal SCON =1 259 ; 0099h RAM Internal SBUF =1 260 ; 009ah RAM Internal nothing =1 261 ; 009fh RAM Internal nothing =1 262 ; 00a0h RAM Internal P2 =1 263 ; 00a1h RAM Internal nothing =1 264 ; 00a7h RAM Internal nothing =1 265 ; 00a8h RAM Internal IEC =1 266 ; 00a9h RAM Internal nothing =1 267 ; 00afh RAM Internal nothing =1 268 ; 00b0h RAM Internal P3 =1 269 ; 00b1h RAM Internal nothing =1 270 ; 00b7h RAM Internal nothing =1 271 ; 00b8h RAM Internal IPC =1 272 ; 00b9h RAM Internal nothing =1 273 ; 00cfh RAM Internal nothing =1 274 ; 00d0h RAM Internal PSW =1 275 ; 00d1h RAM Internal nothing =1 276 ; 00dfh RAM Internal nothing =1 277 ; 00e0h RAM Internal ACC =1 278 ; 00e1h RAM Internal nothing =1 279 ; 00efh RAM Internal nothing =1 280 ; 00f0h RAM Internal B =1 281 ; 00f1h RAM Internal nothing =1 282 ; 00ffh RAM Internal nothing =1 283 DEBUG Sat Jan 08 19:40:42 2005 PAGE 3 LOC OBJ LINE SOURCE =1 284 =1 285 ;COLS EQU 40 =1 286 ;ROWS EQU 4 0010 =1 287 COLS EQU 16 0001 =1 288 ROWS EQU 1 =1 289 0003 =1 290 ROW EQU 03h 0004 =1 291 COL EQU 04h =1 292 000A =1 293 MYSW EQU 0Ah 000B =1 294 OLDCHAR EQU 0Bh 000C =1 295 OLDTEMP EQU 0Ch =1 296 0000 =1 297 RAW EQU 0 0001 =1 298 COLOR EQU 1 0002 =1 299 BROADCAST EQU 2 =1 300 0095 =1 301 SRD EQU P1.5 0097 =1 302 SWR EQU P1.7 0094 =1 303 CTS EQU P1.4 ; Goes low when OK to send or receive. =1 304 =1 305 ; The following BCASTs better match the alarms versions. 00FE =1 306 BCAST_ON EQU 254 ; Broadcast on char. 00FD =1 307 BCAST_OFF EQU 253 ; Broadcast off char. =1 308 =1 309 ; R5 used for getchar routine. =1 310 ; R6 =1 311 ; R7 are temporaries. 0005 =1 312 R05 EQU 05h 0006 =1 313 R06 EQU 06h 0007 =1 314 R07 EQU 07h =1 315 000D =1 316 IBUFSTART EQU 0Dh 0017 =1 317 IBUFEND EQU 17h ; Up to but not including. =1 318 0017 =1 319 OBUFSTART EQU 17h 0020 =1 320 OBUFEND EQU 20h ; Up to but not including. =1 321 =1 322 ; At 9600 baud, 104.166667 usec/bit. at 5.24288MHz 1 cycle = 2.28882usec. =1 323 ; number of cycles per bit is 104.166667 / 2.28882 in this case or, =1 324 ; 46 (45.51) cycles per bit. 002E =1 325 CPB EQU 46 ; Cycles per bit. =1 326 327 sleep MACRO W 328 MOV DPTR,#NOT((W-5)/6) ; 2 cycles 329 ACALL LONGWAIT ; 2 cycles 330 ENDM =1 331 332 333 EXTRN CODE(PUTCHAR) 334 EXTRN CODE(NORMLCD) 335 336 PUBLIC HEXSTR 337 338 CLIBC SEGMENT CODE 339 RSEG CLIBC 340 341 0000 342 HEXSTR: 0000 C0E0 343 PUSH ACC 0002 C0E0 344 PUSH ACC 0004 C4 345 SWAP A 0005 1100 F 346 ACALL HEXCHAR DEBUG Sat Jan 08 19:40:42 2005 PAGE 4 LOC OBJ LINE SOURCE 0007 1100 F 347 ACALL PUTCHAR 348 0009 D0E0 349 POP ACC 000B 1100 F 350 ACALL HEXCHAR 000D 1100 F 351 ACALL PUTCHAR 352 000F D0E0 353 POP ACC 0011 22 354 RET 355 0012 356 HEXCHAR: 0012 540F 357 ANL A,#0Fh 0014 30E308 358 JNB ACC.3,DECDIGIT 0017 20E203 359 JB ACC.2,ALPHADIGIT 001A 30E102 360 JNB ACC.1,DECDIGIT 001D 361 ALPHADIGIT: 001D 2407 362 ADD A,#07h 001F 363 DECDIGIT: 001F 2430 364 ADD A,#30h 0021 22 365 RET 366 367 368 $EJECT DEBUG Sat Jan 08 19:40:42 2005 PAGE 5 LOC OBJ LINE SOURCE 369 END 370 DEBUG Sat Jan 08 19:40:42 2005 PAGE 6 SYMBOL TABLE LISTING ------ ----- ------- N A M E T Y P E V A L U E A T T R I B U T E S AADR0...... NUMB 0001H A AADR1...... NUMB 0002H A AADR2...... NUMB 0004H A AC......... B ADDR 00D0H.6 A ACC........ D ADDR 00E0H A ADAT....... D ADDR 0084H A ADCI....... NUMB 0010H A ADCON...... D ADDR 00A0H A ADCS....... NUMB 0008H A ALPHADIGIT. C ADDR 001DH R SEG = CLIBC ARL........ B ADDR 0098H.4 A ATN........ B ADDR 0098H.6 A B.......... D ADDR 00F0H A BCAST_OFF.. NUMB 00FDH A BCAST_ON... NUMB 00FEH A BROADCAST.. NUMB 0002H A CARL....... B ADDR 0098H.4 A CDR........ B ADDR 0098H.5 A CLIBC...... C SEG 0022H R REL = UNIT CLRTI...... B ADDR 00D8H.5 A COL........ NUMB 0004H A COLOR...... NUMB 0001H A COLS....... NUMB 0010H A CPB........ NUMB 002EH A CSTP....... B ADDR 0098H.2 A CSTR....... B ADDR 0098H.3 A CT0........ B ADDR 00D8H.0 A CT1........ B ADDR 00D8H.1 A CTS........ B ADDR 0090H.4 A CXA........ B ADDR 0098H.7 A CY......... B ADDR 00D0H.7 A DECDIGIT... C ADDR 001FH R SEG = CLIBC DPH........ D ADDR 0083H A DPL........ D ADDR 0082H A DRDY....... B ADDR 0098H.5 A EA......... B ADDR 00A8H.7 A EI2........ B ADDR 00A8H.4 A EN......... NUMB 0040H A EN2........ NUMB 0080H A ENADC...... NUMB 0020H A EPWM....... B ADDR 00A8H.3 A ET0........ B ADDR 00A8H.1 A EX0........ B ADDR 00A8H.0 A EX1........ B ADDR 00A8H.2 A F0......... B ADDR 00D0H.5 A GATE....... B ADDR 0088H.7 A HEXCHAR.... C ADDR 0012H R SEG = CLIBC HEXSTR..... C ADDR 0000H R PUB SEG = CLIBC I2CFG...... D ADDR 00D8H A I2CON...... D ADDR 0098H A I2DAT...... D ADDR 0099H A I2STA...... D ADDR 00F8H A IBUFEND.... NUMB 0017H A IBUFSTART.. NUMB 000DH A IDLE....... B ADDR 0098H.6 A IDLES...... B ADDR 00F8H.6 A IE......... D ADDR 00A8H A IE0........ B ADDR 0088H.3 A IE1........ B ADDR 0088H.1 A INT0....... B ADDR 0090H.5 A INT1....... B ADDR 0090H.6 A IT0........ B ADDR 0088H.2 A IT1........ B ADDR 0088H.0 A KP_C1...... B ADDR 00B0H.5 A KP_C2...... B ADDR 00B0H.4 A KP_C3...... B ADDR 00B0H.0 A KP_C4...... B ADDR 00B0H.1 A KP_C5...... B ADDR 00B0H.2 A KP_C6...... B ADDR 00B0H.3 A KP_R1...... B ADDR 0080H.3 A KP_R2...... B ADDR 0080H.2 A KP_R3...... B ADDR 0090H.0 A KP_R4...... B ADDR 0090H.1 A LCD_D4..... B ADDR 00B0H.0 A LCD_D5..... B ADDR 00B0H.1 A LCD_D6..... B ADDR 00B0H.2 A LCD_D7..... B ADDR 00B0H.3 A LCD_EN..... B ADDR 00B0H.6 A LCD_EN2.... B ADDR 00B0H.7 A LCD_RS..... B ADDR 00B0H.5 A LCD_RW..... B ADDR 00B0H.4 A MAKSTP..... B ADDR 00F8H.2 A MAKSTR..... B ADDR 00F8H.3 A MASTER..... B ADDR 0098H.1 A MASTRQ..... B ADDR 00D8H.6 A MYSW....... NUMB 000AH A NORMLCD.... C ADDR ---- EXT OBUFEND.... NUMB 0020H A OBUFSTART.. NUMB 0017H A OLDCHAR.... NUMB 000BH A OLDTEMP.... NUMB 000CH A OV......... B ADDR 00D0H.2 A P.......... B ADDR 00D0H.0 A P0......... D ADDR 0080H A P0_0....... B ADDR 0080H.0 A P0_1....... B ADDR 0080H.1 A P0_2....... B ADDR 0080H.2 A P1......... D ADDR 0090H A P1_0....... B ADDR 0090H.0 A P1_1....... B ADDR 0090H.1 A P1_2....... B ADDR 0090H.2 A P1_3....... B ADDR 0090H.3 A P1_4....... B ADDR 0090H.4 A P1_5....... B ADDR 0090H.5 A P1_6....... B ADDR 0090H.6 A P1_7....... B ADDR 0090H.7 A P3......... D ADDR 00B0H A P3_0....... B ADDR 00B0H.0 A P3_1....... B ADDR 00B0H.1 A P3_2....... B ADDR 00B0H.2 A P3_3....... B ADDR 00B0H.3 A P3_4....... B ADDR 00B0H.4 A P3_5....... B ADDR 00B0H.5 A P3_6....... B ADDR 00B0H.6 A P3_7....... B ADDR 00B0H.7 A PCON....... D ADDR 0087H A PSW........ D ADDR 00D0H A PUTCHAR.... C ADDR ---- EXT PWCM....... D ADDR 008EH A PWENA...... D ADDR 00FEH A PWMP....... D ADDR 008FH A R05........ NUMB 0005H A R06........ NUMB 0006H A R07........ NUMB 0007H A RAW........ NUMB 0000H A RDAT....... B ADDR 0098H.7 A ROW........ NUMB 0003H A ROWS....... NUMB 0001H A RS0........ B ADDR 00D0H.3 A RS1........ B ADDR 00D0H.4 A RTH........ D ADDR 008DH A RTL........ D ADDR 008BH A SCL........ B ADDR 0080H.0 A SDA........ B ADDR 0080H.1 A SLAVEN..... B ADDR 00D8H.7 A SP......... D ADDR 0081H A SRD........ B ADDR 0090H.5 A STP........ B ADDR 0098H.2 A STR........ B ADDR 0098H.3 A SWR........ B ADDR 0090H.7 A T0......... B ADDR 0090H.7 A TCON....... D ADDR 0088H A TF......... B ADDR 0088H.5 A TH......... D ADDR 008CH A TIRUN...... B ADDR 00D8H.4 A TL......... D ADDR 008AH A TR......... B ADDR 0088H.4 A XACTV...... B ADDR 00F8H.4 A XDATAS..... B ADDR 00F8H.5 A XSTP....... B ADDR 0098H.0 A XSTPS...... B ADDR 00F8H.0 A XSTR....... B ADDR 0098H.1 A XSTRS...... B ADDR 00F8H.1 A REGISTER BANK(S) USED: 0 ASSEMBLY COMPLETE, NO ERROR FOUND