1 ;-------------------------------------------------------- 2 ; File Created by SDCC : free open source ANSI-C Compiler 3 ; Version 4.0.0 #11528 (MINGW64) 4 ;-------------------------------------------------------- 5 .module max7219 6 .optsdcc -mmcs51 --model-small 7 8 ;-------------------------------------------------------- 9 ; Public variables in this module 10 ;-------------------------------------------------------- 11 .globl _writeWord_PARM_2 12 .globl _getSegments 13 .globl _setBrightnessMax7219 14 .globl _CY 15 .globl _AC 16 .globl _F0 17 .globl _RS1 18 .globl _RS0 19 .globl _OV 20 .globl _F1 21 .globl _P 22 .globl _PS 23 .globl _PT1 24 .globl _PX1 25 .globl _PT0 26 .globl _PX0 27 .globl _RD 28 .globl _WR 29 .globl _T1 30 .globl _T0 31 .globl _INT1 32 .globl _INT0 33 .globl _TXD 34 .globl _RXD 35 .globl _P3_7 36 .globl _P3_6 37 .globl _P3_5 38 .globl _P3_4 39 .globl _P3_3 40 .globl _P3_2 41 .globl _P3_1 42 .globl _P3_0 43 .globl _EA 44 .globl _ES 45 .globl _ET1 46 .globl _EX1 47 .globl _ET0 48 .globl _EX0 49 .globl _P2_7 50 .globl _P2_6 51 .globl _P2_5 52 .globl _P2_4 53 .globl _P2_3 54 .globl _P2_2 55 .globl _P2_1 56 .globl _P2_0 57 .globl _SM0 58 .globl _SM1 59 .globl _SM2 60 .globl _REN 61 .globl _TB8 62 .globl _RB8 63 .globl _TI 64 .globl _RI 65 .globl _P1_7 66 .globl _P1_6 67 .globl _P1_5 68 .globl _P1_4 69 .globl _P1_3 70 .globl _P1_2 71 .globl _P1_1 72 .globl _P1_0 73 .globl _TF1 74 .globl _TR1 75 .globl _TF0 76 .globl _TR0 77 .globl _IE1 78 .globl _IT1 79 .globl _IE0 80 .globl _IT0 81 .globl _P0_7 82 .globl _P0_6 83 .globl _P0_5 84 .globl _P0_4 85 .globl _P0_3 86 .globl _P0_2 87 .globl _P0_1 88 .globl _P0_0 89 .globl _B 90 .globl _ACC 91 .globl _PSW 92 .globl _IP 93 .globl _P3 94 .globl _IE 95 .globl _P2 96 .globl _SBUF 97 .globl _SCON 98 .globl _P1 99 .globl _TH1 100 .globl _TH0 101 .globl _TL1 102 .globl _TL0 103 .globl _TMOD 104 .globl _TCON 105 .globl _PCON 106 .globl _DPH 107 .globl _DPL 108 .globl _SP 109 .globl _P0 110 .globl _cursor 111 .globl _writeWord 112 .globl _initMax7219 113 .globl _clearMax7219 114 .globl _putchar 115 ;-------------------------------------------------------- 116 ; special function registers 117 ;-------------------------------------------------------- 118 .area RSEG (ABS,DATA) 000000 119 .org 0x0000 000080 120 _P0 = 0x0080 000081 121 _SP = 0x0081 000082 122 _DPL = 0x0082 000083 123 _DPH = 0x0083 000087 124 _PCON = 0x0087 000088 125 _TCON = 0x0088 000089 126 _TMOD = 0x0089 00008A 127 _TL0 = 0x008a 00008B 128 _TL1 = 0x008b 00008C 129 _TH0 = 0x008c 00008D 130 _TH1 = 0x008d 000090 131 _P1 = 0x0090 000098 132 _SCON = 0x0098 000099 133 _SBUF = 0x0099 0000A0 134 _P2 = 0x00a0 0000A8 135 _IE = 0x00a8 0000B0 136 _P3 = 0x00b0 0000B8 137 _IP = 0x00b8 0000D0 138 _PSW = 0x00d0 0000E0 139 _ACC = 0x00e0 0000F0 140 _B = 0x00f0 141 ;-------------------------------------------------------- 142 ; special function bits 143 ;-------------------------------------------------------- 144 .area RSEG (ABS,DATA) 000000 145 .org 0x0000 000080 146 _P0_0 = 0x0080 000081 147 _P0_1 = 0x0081 000082 148 _P0_2 = 0x0082 000083 149 _P0_3 = 0x0083 000084 150 _P0_4 = 0x0084 000085 151 _P0_5 = 0x0085 000086 152 _P0_6 = 0x0086 000087 153 _P0_7 = 0x0087 000088 154 _IT0 = 0x0088 000089 155 _IE0 = 0x0089 00008A 156 _IT1 = 0x008a 00008B 157 _IE1 = 0x008b 00008C 158 _TR0 = 0x008c 00008D 159 _TF0 = 0x008d 00008E 160 _TR1 = 0x008e 00008F 161 _TF1 = 0x008f 000090 162 _P1_0 = 0x0090 000091 163 _P1_1 = 0x0091 000092 164 _P1_2 = 0x0092 000093 165 _P1_3 = 0x0093 000094 166 _P1_4 = 0x0094 000095 167 _P1_5 = 0x0095 000096 168 _P1_6 = 0x0096 000097 169 _P1_7 = 0x0097 000098 170 _RI = 0x0098 000099 171 _TI = 0x0099 00009A 172 _RB8 = 0x009a 00009B 173 _TB8 = 0x009b 00009C 174 _REN = 0x009c 00009D 175 _SM2 = 0x009d 00009E 176 _SM1 = 0x009e 00009F 177 _SM0 = 0x009f 0000A0 178 _P2_0 = 0x00a0 0000A1 179 _P2_1 = 0x00a1 0000A2 180 _P2_2 = 0x00a2 0000A3 181 _P2_3 = 0x00a3 0000A4 182 _P2_4 = 0x00a4 0000A5 183 _P2_5 = 0x00a5 0000A6 184 _P2_6 = 0x00a6 0000A7 185 _P2_7 = 0x00a7 0000A8 186 _EX0 = 0x00a8 0000A9 187 _ET0 = 0x00a9 0000AA 188 _EX1 = 0x00aa 0000AB 189 _ET1 = 0x00ab 0000AC 190 _ES = 0x00ac 0000AF 191 _EA = 0x00af 0000B0 192 _P3_0 = 0x00b0 0000B1 193 _P3_1 = 0x00b1 0000B2 194 _P3_2 = 0x00b2 0000B3 195 _P3_3 = 0x00b3 0000B4 196 _P3_4 = 0x00b4 0000B5 197 _P3_5 = 0x00b5 0000B6 198 _P3_6 = 0x00b6 0000B7 199 _P3_7 = 0x00b7 0000B0 200 _RXD = 0x00b0 0000B1 201 _TXD = 0x00b1 0000B2 202 _INT0 = 0x00b2 0000B3 203 _INT1 = 0x00b3 0000B4 204 _T0 = 0x00b4 0000B5 205 _T1 = 0x00b5 0000B6 206 _WR = 0x00b6 0000B7 207 _RD = 0x00b7 0000B8 208 _PX0 = 0x00b8 0000B9 209 _PT0 = 0x00b9 0000BA 210 _PX1 = 0x00ba 0000BB 211 _PT1 = 0x00bb 0000BC 212 _PS = 0x00bc 0000D0 213 _P = 0x00d0 0000D1 214 _F1 = 0x00d1 0000D2 215 _OV = 0x00d2 0000D3 216 _RS0 = 0x00d3 0000D4 217 _RS1 = 0x00d4 0000D5 218 _F0 = 0x00d5 0000D6 219 _AC = 0x00d6 0000D7 220 _CY = 0x00d7 221 ;-------------------------------------------------------- 222 ; overlayable register banks 223 ;-------------------------------------------------------- 224 .area REG_BANK_0 (REL,OVR,DATA) 000000 225 .ds 8 226 ;-------------------------------------------------------- 227 ; internal ram data 228 ;-------------------------------------------------------- 229 .area DSEG (DATA) 000000 230 _cursor:: 000000 231 .ds 1 232 ;-------------------------------------------------------- 233 ; overlayable items in internal ram 234 ;-------------------------------------------------------- 235 .area OSEG (OVR,DATA) 000000 236 _writeWord_PARM_2: 000000 237 .ds 1 238 ;-------------------------------------------------------- 239 ; indirectly addressable internal ram data 240 ;-------------------------------------------------------- 241 .area ISEG (DATA) 242 ;-------------------------------------------------------- 243 ; absolute internal ram data 244 ;-------------------------------------------------------- 245 .area IABS (ABS,DATA) 246 .area IABS (ABS,DATA) 247 ;-------------------------------------------------------- 248 ; bit data 249 ;-------------------------------------------------------- 250 .area BSEG (BIT) 251 ;-------------------------------------------------------- 252 ; paged external ram data 253 ;-------------------------------------------------------- 254 .area PSEG (PAG,XDATA) 255 ;-------------------------------------------------------- 256 ; external ram data 257 ;-------------------------------------------------------- 258 .area XSEG (XDATA) 259 ;-------------------------------------------------------- 260 ; absolute external ram data 261 ;-------------------------------------------------------- 262 .area XABS (ABS,XDATA) 263 ;-------------------------------------------------------- 264 ; external initialized ram data 265 ;-------------------------------------------------------- 266 .area XISEG (XDATA) 267 .area HOME (CODE) 268 .area GSINIT0 (CODE) 269 .area GSINIT1 (CODE) 270 .area GSINIT2 (CODE) 271 .area GSINIT3 (CODE) 272 .area GSINIT4 (CODE) 273 .area GSINIT5 (CODE) 274 .area GSINIT (CODE) 275 .area GSFINAL (CODE) 276 .area CSEG (CODE) 277 ;-------------------------------------------------------- 278 ; global & static initialisations 279 ;-------------------------------------------------------- 280 .area HOME (CODE) 281 .area GSINIT (CODE) 282 .area GSFINAL (CODE) 283 .area GSINIT (CODE) 284 ; max7219.c:10: uChar cursor = 8; 000000 75*00 08 [24] 285 mov _cursor,#0x08 286 ;-------------------------------------------------------- 287 ; Home 288 ;-------------------------------------------------------- 289 .area HOME (CODE) 290 .area HOME (CODE) 291 ;-------------------------------------------------------- 292 ; code 293 ;-------------------------------------------------------- 294 .area CSEG (CODE) 295 ;------------------------------------------------------------ 296 ;Allocation info for local variables in function 'writeWord' 297 ;------------------------------------------------------------ 298 ;bdata Allocated with name '_writeWord_PARM_2' 299 ;command Allocated to registers r7 300 ;counter Allocated to registers r6 301 ;------------------------------------------------------------ 302 ; max7219.c:39: void writeWord(uChar command, uChar bdata){ 303 ; ----------------------------------------- 304 ; function writeWord 305 ; ----------------------------------------- 000000 306 _writeWord: 000007 307 ar7 = 0x07 000006 308 ar6 = 0x06 000005 309 ar5 = 0x05 000004 310 ar4 = 0x04 000003 311 ar3 = 0x03 000002 312 ar2 = 0x02 000001 313 ar1 = 0x01 000000 314 ar0 = 0x00 000000 AF 82 [24] 315 mov r7,dpl 316 ; max7219.c:40: CS = 0; 317 ; assignBit 000002 C2 92 [12] 318 clr _P1_2 319 ; max7219.c:41: CLOCK = 0; 320 ; assignBit 000004 C2 91 [12] 321 clr _P1_1 322 ; max7219.c:43: while(counter--) 000006 7E 08 [12] 323 mov r6,#0x08 000008 324 00101$: 000008 8E 05 [24] 325 mov ar5,r6 00000A 1E [12] 326 dec r6 00000B ED [12] 327 mov a,r5 00000C 60 13 [24] 328 jz 00103$ 329 ; max7219.c:45: DATA = command & 0x80; 00000E EF [12] 330 mov a,r7 00000F 23 [12] 331 rl a 000010 54 01 [12] 332 anl a,#0x01 000012 24 FF [12] 333 add a,#0xff 000014 92 90 [24] 334 mov _P1_0,c 335 ; max7219.c:47: CLOCK = 1; 336 ; assignBit 000016 D2 91 [12] 337 setb _P1_1 338 ; max7219.c:49: CLOCK = 0; 339 ; assignBit 000018 C2 91 [12] 340 clr _P1_1 341 ; max7219.c:50: command = command << 1; 00001A 8F 05 [24] 342 mov ar5,r7 00001C ED [12] 343 mov a,r5 00001D 2D [12] 344 add a,r5 00001E FF [12] 345 mov r7,a 00001F 80 E7 [24] 346 sjmp 00101$ 000021 347 00103$: 348 ; max7219.c:54: while(counter--) 000021 7F 08 [12] 349 mov r7,#0x08 000023 350 00104$: 000023 8F 06 [24] 351 mov ar6,r7 000025 1F [12] 352 dec r7 000026 EE [12] 353 mov a,r6 000027 60 16 [24] 354 jz 00106$ 355 ; max7219.c:56: DATA = bdata & 0x80; 000029 E5*00 [12] 356 mov a,_writeWord_PARM_2 00002B 23 [12] 357 rl a 00002C 54 01 [12] 358 anl a,#0x01 00002E 24 FF [12] 359 add a,#0xff 000030 92 90 [24] 360 mov _P1_0,c 361 ; max7219.c:58: CLOCK = 1; 362 ; assignBit 000032 D2 91 [12] 363 setb _P1_1 364 ; max7219.c:60: CLOCK = 0; 365 ; assignBit 000034 C2 91 [12] 366 clr _P1_1 367 ; max7219.c:61: bdata = bdata << 1; 000036 E5*00 [12] 368 mov a,_writeWord_PARM_2 000038 FE [12] 369 mov r6,a 000039 25 E0 [12] 370 add a,acc 00003B F5*00 [12] 371 mov _writeWord_PARM_2,a 00003D 80 E4 [24] 372 sjmp 00104$ 00003F 373 00106$: 374 ; max7219.c:64: CS = 1; 375 ; assignBit 00003F D2 92 [12] 376 setb _P1_2 377 ; max7219.c:65: } 000041 22 [24] 378 ret 379 ;------------------------------------------------------------ 380 ;Allocation info for local variables in function 'initMax7219' 381 ;------------------------------------------------------------ 382 ; max7219.c:68: void initMax7219(){ 383 ; ----------------------------------------- 384 ; function initMax7219 385 ; ----------------------------------------- 000042 386 _initMax7219: 387 ; max7219.c:69: writeWord(0x0C,0x00); //Shutdown 000042 75*00 00 [24] 388 mov _writeWord_PARM_2,#0x00 000045 75 82 0C [24] 389 mov dpl,#0x0c 000048 12r00r00 [24] 390 lcall _writeWord 391 ; max7219.c:70: writeWord(0x09,0x00); //No one decoded 00004B 75*00 00 [24] 392 mov _writeWord_PARM_2,#0x00 00004E 75 82 09 [24] 393 mov dpl,#0x09 000051 12r00r00 [24] 394 lcall _writeWord 395 ; max7219.c:71: writeWord(0x0B,0x07); //All digits addressable 000054 75*00 07 [24] 396 mov _writeWord_PARM_2,#0x07 000057 75 82 0B [24] 397 mov dpl,#0x0b 00005A 12r00r00 [24] 398 lcall _writeWord 399 ; max7219.c:72: writeWord(0x0C,0x01); //Normal operation 00005D 75*00 01 [24] 400 mov _writeWord_PARM_2,#0x01 000060 75 82 0C [24] 401 mov dpl,#0x0c 402 ; max7219.c:73: } 000063 02r00r00 [24] 403 ljmp _writeWord 404 ;------------------------------------------------------------ 405 ;Allocation info for local variables in function 'clearMax7219' 406 ;------------------------------------------------------------ 407 ;a Allocated to registers r7 408 ;------------------------------------------------------------ 409 ; max7219.c:76: void clearMax7219(){ 410 ; ----------------------------------------- 411 ; function clearMax7219 412 ; ----------------------------------------- 000066 413 _clearMax7219: 414 ; max7219.c:77: initMax7219(); 000066 12r00r42 [24] 415 lcall _initMax7219 416 ; max7219.c:78: for (uChar a = 0; a < 9; a++) 000069 7F 00 [12] 417 mov r7,#0x00 00006B 418 00103$: 00006B BF 09 00 [24] 419 cjne r7,#0x09,00116$ 00006E 420 00116$: 00006E 50 0F [24] 421 jnc 00105$ 422 ; max7219.c:80: writeWord(a,0); 000070 75*00 00 [24] 423 mov _writeWord_PARM_2,#0x00 000073 8F 82 [24] 424 mov dpl,r7 000075 C0 07 [24] 425 push ar7 000077 12r00r00 [24] 426 lcall _writeWord 00007A D0 07 [24] 427 pop ar7 428 ; max7219.c:78: for (uChar a = 0; a < 9; a++) 00007C 0F [12] 429 inc r7 00007D 80 EC [24] 430 sjmp 00103$ 00007F 431 00105$: 432 ; max7219.c:82: } 00007F 22 [24] 433 ret 434 ;------------------------------------------------------------ 435 ;Allocation info for local variables in function 'setBrightnessMax7219' 436 ;------------------------------------------------------------ 437 ;brightness Allocated to registers 438 ;------------------------------------------------------------ 439 ; max7219.c:84: void setBrightnessMax7219(uChar brightness) { 440 ; ----------------------------------------- 441 ; function setBrightnessMax7219 442 ; ----------------------------------------- 000080 443 _setBrightnessMax7219: 000080 85 82*00 [24] 444 mov _writeWord_PARM_2,dpl 445 ; max7219.c:85: writeWord(0xFA,brightness);} 000083 75 82 FA [24] 446 mov dpl,#0xfa 000086 02r00r00 [24] 447 ljmp _writeWord 448 ;------------------------------------------------------------ 449 ;Allocation info for local variables in function 'putchar' 450 ;------------------------------------------------------------ 451 ;buchstabe Allocated to registers r6 r7 452 ;------------------------------------------------------------ 453 ; max7219.c:88: int putchar(int buchstabe) { 454 ; ----------------------------------------- 455 ; function putchar 456 ; ----------------------------------------- 000089 457 _putchar: 000089 AE 82 [24] 458 mov r6,dpl 00008B AF 83 [24] 459 mov r7,dph 460 ; max7219.c:89: if (buchstabe == '\r') { // Carriage return 00008D BE 0D 0A [24] 461 cjne r6,#0x0d,00102$ 000090 BF 00 07 [24] 462 cjne r7,#0x00,00102$ 463 ; max7219.c:90: cursor = 8; 000093 75*00 08 [24] 464 mov _cursor,#0x08 465 ; max7219.c:91: return 0; 000096 90 00 00 [24] 466 mov dptr,#0x0000 000099 22 [24] 467 ret 00009A 468 00102$: 469 ; max7219.c:93: if (buchstabe == '\n') { // New line 00009A BE 0A 07 [24] 470 cjne r6,#0x0a,00104$ 00009D BF 00 04 [24] 471 cjne r7,#0x00,00104$ 472 ; max7219.c:95: return 0; 0000A0 90 00 00 [24] 473 mov dptr,#0x0000 0000A3 22 [24] 474 ret 0000A4 475 00104$: 476 ; max7219.c:97: if (buchstabe == '\b') { // Backspace 0000A4 BE 08 0F [24] 477 cjne r6,#0x08,00108$ 0000A7 BF 00 0C [24] 478 cjne r7,#0x00,00108$ 479 ; max7219.c:98: if (cursor < 8 ) cursor++; 0000AA 74 F8 [12] 480 mov a,#0x100 - 0x08 0000AC 25*00 [12] 481 add a,_cursor 0000AE 40 02 [24] 482 jc 00106$ 0000B0 05*00 [12] 483 inc _cursor 0000B2 484 00106$: 485 ; max7219.c:99: return 0; 0000B2 90 00 00 [24] 486 mov dptr,#0x0000 0000B5 22 [24] 487 ret 0000B6 488 00108$: 489 ; max7219.c:101: if(cursor > 0){ 0000B6 E5*00 [12] 490 mov a,_cursor 0000B8 60 21 [24] 491 jz 00112$ 492 ; max7219.c:102: writeWord(cursor,getSegments[buchstabe]); 0000BA EE [12] 493 mov a,r6 0000BB 24r00 [12] 494 add a,#_getSegments 0000BD F5 82 [12] 495 mov dpl,a 0000BF EF [12] 496 mov a,r7 0000C0 34s00 [12] 497 addc a,#(_getSegments >> 8) 0000C2 F5 83 [12] 498 mov dph,a 0000C4 E4 [12] 499 clr a 0000C5 93 [24] 500 movc a,@a+dptr 0000C6 F5*00 [12] 501 mov _writeWord_PARM_2,a 0000C8 85*00 82 [24] 502 mov dpl,_cursor 0000CB 12r00r00 [24] 503 lcall _writeWord 504 ; max7219.c:103: cursor--; 0000CE 15*00 [12] 505 dec _cursor 506 ; max7219.c:104: if (cursor < 1) cursor = 8; 0000D0 74 FF [12] 507 mov a,#0x100 - 0x01 0000D2 25*00 [12] 508 add a,_cursor 0000D4 40 08 [24] 509 jc 00113$ 0000D6 75*00 08 [24] 510 mov _cursor,#0x08 0000D9 80 03 [24] 511 sjmp 00113$ 0000DB 512 00112$: 513 ; max7219.c:106: else cursor = 8; // After the end of display rewrite from left 0000DB 75*00 08 [24] 514 mov _cursor,#0x08 0000DE 515 00113$: 516 ; max7219.c:107: return 0; 0000DE 90 00 00 [24] 517 mov dptr,#0x0000 518 ; max7219.c:108: } 0000E1 22 [24] 519 ret 520 .area CSEG (CODE) 521 .area CONST (CODE) 000000 522 _getSegments: 000000 00 523 .db #0x00 ; 0 000001 00 524 .db #0x00 ; 0 000002 00 525 .db #0x00 ; 0 000003 00 526 .db #0x00 ; 0 000004 00 527 .db #0x00 ; 0 000005 00 528 .db #0x00 ; 0 000006 00 529 .db #0x00 ; 0 000007 00 530 .db #0x00 ; 0 000008 00 531 .db #0x00 ; 0 000009 00 532 .db #0x00 ; 0 00000A 00 533 .db #0x00 ; 0 00000B 00 534 .db #0x00 ; 0 00000C 00 535 .db #0x00 ; 0 00000D 00 536 .db #0x00 ; 0 00000E 00 537 .db #0x00 ; 0 00000F 00 538 .db #0x00 ; 0 000010 00 539 .db #0x00 ; 0 000011 00 540 .db #0x00 ; 0 000012 00 541 .db #0x00 ; 0 000013 00 542 .db #0x00 ; 0 000014 00 543 .db #0x00 ; 0 000015 00 544 .db #0x00 ; 0 000016 00 545 .db #0x00 ; 0 000017 00 546 .db #0x00 ; 0 000018 00 547 .db #0x00 ; 0 000019 00 548 .db #0x00 ; 0 00001A 00 549 .db #0x00 ; 0 00001B 00 550 .db #0x00 ; 0 00001C 00 551 .db #0x00 ; 0 00001D 00 552 .db #0x00 ; 0 00001E 00 553 .db #0x00 ; 0 00001F 00 554 .db #0x00 ; 0 000020 00 555 .db #0x00 ; 0 000021 B0 556 .db #0xb0 ; 176 000022 22 557 .db #0x22 ; 34 000023 00 558 .db #0x00 ; 0 000024 00 559 .db #0x00 ; 0 000025 00 560 .db #0x00 ; 0 000026 00 561 .db #0x00 ; 0 000027 02 562 .db #0x02 ; 2 000028 4E 563 .db #0x4e ; 78 'N' 000029 78 564 .db #0x78 ; 120 'x' 00002A 00 565 .db #0x00 ; 0 00002B 00 566 .db #0x00 ; 0 00002C 80 567 .db #0x80 ; 128 00002D 01 568 .db #0x01 ; 1 00002E 80 569 .db #0x80 ; 128 00002F 25 570 .db #0x25 ; 37 000030 7E 571 .db #0x7e ; 126 000031 30 572 .db #0x30 ; 48 '0' 000032 6D 573 .db #0x6d ; 109 'm' 000033 79 574 .db #0x79 ; 121 'y' 000034 33 575 .db #0x33 ; 51 '3' 000035 5B 576 .db #0x5b ; 91 000036 5F 577 .db #0x5f ; 95 000037 70 578 .db #0x70 ; 112 'p' 000038 7F 579 .db #0x7f ; 127 000039 7B 580 .db #0x7b ; 123 00003A A0 581 .db #0xa0 ; 160 00003B A0 582 .db #0xa0 ; 160 00003C 0D 583 .db #0x0d ; 13 00003D 09 584 .db #0x09 ; 9 00003E 19 585 .db #0x19 ; 25 00003F E5 586 .db #0xe5 ; 229 000040 6F 587 .db #0x6f ; 111 'o' 000041 77 588 .db #0x77 ; 119 'w' 000042 1F 589 .db #0x1f ; 31 000043 4E 590 .db #0x4e ; 78 'N' 000044 3D 591 .db #0x3d ; 61 000045 4F 592 .db #0x4f ; 79 'O' 000046 47 593 .db #0x47 ; 71 'G' 000047 5E 594 .db #0x5e ; 94 000048 37 595 .db #0x37 ; 55 '7' 000049 30 596 .db #0x30 ; 48 '0' 00004A 3C 597 .db #0x3c ; 60 00004B A7 598 .db #0xa7 ; 167 00004C 0E 599 .db #0x0e ; 14 00004D 76 600 .db #0x76 ; 118 'v' 00004E 15 601 .db #0x15 ; 21 00004F 7E 602 .db #0x7e ; 126 000050 67 603 .db #0x67 ; 103 'g' 000051 FE 604 .db #0xfe ; 254 000052 05 605 .db #0x05 ; 5 000053 5B 606 .db #0x5b ; 91 000054 0F 607 .db #0x0f ; 15 000055 3E 608 .db #0x3e ; 62 000056 1C 609 .db #0x1c ; 28 000057 9C 610 .db #0x9c ; 156 000058 37 611 .db #0x37 ; 55 '7' 000059 3B 612 .db #0x3b ; 59 00005A 6D 613 .db #0x6d ; 109 'm' 00005B 4E 614 .db #0x4e ; 78 'N' 00005C 13 615 .db #0x13 ; 19 00005D 78 616 .db #0x78 ; 120 'x' 00005E 62 617 .db #0x62 ; 98 'b' 00005F 08 618 .db #0x08 ; 8 000060 20 619 .db #0x20 ; 32 000061 7D 620 .db #0x7d ; 125 000062 5F 621 .db #0x5f ; 95 000063 0D 622 .db #0x0d ; 13 000064 3D 623 .db #0x3d ; 61 000065 6F 624 .db #0x6f ; 111 'o' 000066 47 625 .db #0x47 ; 71 'G' 000067 7B 626 .db #0x7b ; 123 000068 17 627 .db #0x17 ; 23 000069 10 628 .db #0x10 ; 16 00006A 18 629 .db #0x18 ; 24 00006B A7 630 .db #0xa7 ; 167 00006C 0C 631 .db #0x0c ; 12 00006D 15 632 .db #0x15 ; 21 00006E 15 633 .db #0x15 ; 21 00006F 1D 634 .db #0x1d ; 29 000070 67 635 .db #0x67 ; 103 'g' 000071 9D 636 .db #0x9d ; 157 000072 05 637 .db #0x05 ; 5 000073 5B 638 .db #0x5b ; 91 000074 0F 639 .db #0x0f ; 15 000075 1C 640 .db #0x1c ; 28 000076 1C 641 .db #0x1c ; 28 000077 9C 642 .db #0x9c ; 156 000078 37 643 .db #0x37 ; 55 '7' 000079 3B 644 .db #0x3b ; 59 00007A ED 645 .db #0xed ; 237 00007B 4E 646 .db #0x4e ; 78 'N' 00007C 30 647 .db #0x30 ; 48 '0' 00007D 78 648 .db #0x78 ; 120 'x' 00007E 01 649 .db #0x01 ; 1 00007F 00 650 .db #0x00 ; 0 651 .area XINIT (CODE) 652 .area CABS (ABS,CODE)