;This code is listed here for entertainment value only, it should ;not be used for anything important. Do not use this for a saleable product. ;Feel free to pass this on to others in it's entirety. along with this message. ;No Guarantees implicit or otherwise are implied, your mileage may vary. ; Memory Map ; Location Code Data ; 0000h iRAM Internal Bank 0 ; 0000h iRAM R0 [Ihead] ; 0001h iRAM R1 [Itail] ; 0002h iRAM R2 [last temperature reading] ; 0003h iRAM R3 [ROW] ; 0004h iRAM R4 [COL] ; 0005h iRAM R5 unused? ; 0006h iRAM R6 [temporary] ; 0007h iRAM R7 [temporary] ; 0008h iRAM Internal Bank 1 ; 0008h iRAM R0 [ohead] ; 0009h iRAM R1 [otail] ; 000ah iRAM R2 [MYSW] ; 000a.0 iRAM [MYSW.0] RAW ; 000a.1 iRAM [MYSW.1] COLOR ; 000a.2 iRAM [MYSW.2] BROADCAST ; 000bh iRAM R3 [OLDCHAR] ; 000ch iRAM R4 [OLDTEMP] ; 000dh iRAM R5 IBUF[0] ; 000eh iRAM R6 IBUF[1] ; 000fh iRAM R7 IBUF[2] ; 0010h iRAM Internal Bank 2 ; 0010h iRAM R0 IBUF[3] ; 0011h iRAM R1 IBUF[4] ; 0012h iRAM R2 IBUF[5] ; 0013h iRAM R3 IBUF[6] ; 0014h iRAM R4 IBUF[7] ; 0015h iRAM R5 IBUF[8] ; 0016h iRAM R6 IBUF[9] ; 0017h iRAM R7 OBUF[0] ; 0018h iRAM Internal Bank 3 ; 0018h iRAM R0 OBUF[1] ; 0019h iRAM R1 OBUF[2] ; 001ah iRAM R2 OBUF[3] ; 001bh iRAM R3 OBUF[4] ; 001ch iRAM R4 OBUF[5] ; 001dh iRAM R5 OBUF[6] ; 001eh iRAM R6 OBUF[7] ; 001fh iRAM R7 OBUF[8] ; 0020h iRAM Internal (Stack start) ; 0080h RAM Internal P0 ; 0081h RAM Internal SP ; 0082h RAM Internal DPL ; 0083h RAM Internal DPH ; 0084h RAM Internal nothing ; 0087h RAM Internal nothing ; 0088h RAM Internal TCON ; 0089h RAM Internal TMOD ; 008ah RAM Internal TL0 ; 008bh RAM Internal TL1 ; 008ch RAM Internal TH0 ; 008dh RAM Internal TH1 ; 008eh RAM Internal nothing ; 008fh RAM Internal nothing ; 0090h RAM Internal P1 ; 0091h RAM Internal nothing ; 0097h RAM Internal nothing ; 0098h RAM Internal SCON ; 0099h RAM Internal SBUF ; 009ah RAM Internal nothing ; 009fh RAM Internal nothing ; 00a0h RAM Internal P2 ; 00a1h RAM Internal nothing ; 00a7h RAM Internal nothing ; 00a8h RAM Internal IEC ; 00a9h RAM Internal nothing ; 00afh RAM Internal nothing ; 00b0h RAM Internal P3 ; 00b1h RAM Internal nothing ; 00b7h RAM Internal nothing ; 00b8h RAM Internal IPC ; 00b9h RAM Internal nothing ; 00cfh RAM Internal nothing ; 00d0h RAM Internal PSW ; 00d1h RAM Internal nothing ; 00dfh RAM Internal nothing ; 00e0h RAM Internal ACC ; 00e1h RAM Internal nothing ; 00efh RAM Internal nothing ; 00f0h RAM Internal B ; 00f1h RAM Internal nothing ; 00ffh RAM Internal nothing ;COLS EQU 40 ;ROWS EQU 4 COLS EQU 16 ROWS EQU 1 ROW EQU 03h COL EQU 04h MYSW EQU 0Ah OLDCHAR EQU 0Bh OLDTEMP EQU 0Ch RAW EQU 0 COLOR EQU 1 BROADCAST EQU 2 SRD EQU P1.5 SWR EQU P1.7 CTS EQU P1.4 ; Goes low when OK to send or receive. ; The following BCASTs better match the alarms versions. BCAST_ON EQU 254 ; Broadcast on char. BCAST_OFF EQU 253 ; Broadcast off char. ; R5 used for getchar routine. ; R6 ; R7 are temporaries. R05 EQU 05h R06 EQU 06h R07 EQU 07h IBUFSTART EQU 0Dh IBUFEND EQU 17h ; Up to but not including. OBUFSTART EQU 17h OBUFEND EQU 20h ; Up to but not including. ; At 9600 baud, 104.166667 usec/bit. at 5.24288MHz 1 cycle = 2.28882usec. ; number of cycles per bit is 104.166667 / 2.28882 in this case or, ; 46 (45.51) cycles per bit. CPB EQU 46 ; Cycles per bit. sleep MACRO W MOV DPTR,#NOT((W-5)/6) ; 2 cycles ACALL LONGWAIT ; 2 cycles ENDM