Finish asm annotation with function code calls
authorDan White <dan@whiteaudio.com>
Mon, 2 Jan 2012 06:59:46 +0000 (00:59 -0600)
committerDan White <dan@whiteaudio.com>
Mon, 2 Jan 2012 06:59:46 +0000 (00:59 -0600)
rom-label.asm

index 1a7afe27804e01771cf173944879e213a8e8d235..770345aad65607279aefc87adca584d02d64165a 100644 (file)
@@ -122,10 +122,23 @@ Symbol Table:
 
 
 RAM_global_variables:
+  pageAdr: 0x4006
   commandmode: 0x400a
+  length: 0x400e
+  readLineInProgress: 0x4010
+  line[64]: 0x4012
+
+  __bss_start: 0x403f
+  crc: 0x4052
+  end: 0x446e
   ringBufferIn: 0x4470
   ringBufferOut: 0x4478
-  outRingBuffer[]: 0x447a
+  outRingBuffer[256]: 0x447a
+  error: 0x457a
+  packetNum: 0x4a96
+  pageD[256]: 0x4a9a
+  start: 0x4b9a
+  __bss_end: 0x4b9f
 
 rom.hex:     file format ihex
 
@@ -321,6 +334,7 @@ SPINoSwap:
     3144:       10 42 fe ff     br      &0xfffe 
 
 
+
 ;-----------------------------------------------------------------------
 ; Bootloader through UART0
 gotoMain:
@@ -367,19 +381,21 @@ Assembly_Code:
     316e:       30 40 d2 31     br      #main ;#0x31d2 
 
 
+
+init:
     3172:       7c 46           mov.b   @r6+,   r12     
-    3174:       54 40 3f 40     mov.b   0x403f, r4      ;PC rel. 0x071b7
+    3174:       54 40 3f 40     mov.b   __bss_start, r4 ;0x403f, r4   ;PC rel. 0x071b7
     3178:       00 40           brpc            
     317a:       8f 43 00 00     mov     #0,     0(r15)  ;r3 As==00, CRCDI_L(r15)
     317e:       2f 53           incd    r15             
     3180:       3f 90 9f 4b     cmp     #19359, r15     ;#0x4b9f
     3184:       fa 2b           jnc     $-10            ;abs 0x317a
-    3186:       92 43 9a 4b     mov     #1,     &0x4b9a ;r3 As==01
-    318a:       92 43 96 4a     mov     #1,     &0x4a96 ;r3 As==01
+    3186:       92 43 9a 4b     mov     #1,     &start  ;&0x4b9a ;r3 As==01
+    318a:       92 43 96 4a     mov     #1,     &packetNum ;&0x4a96 ;r3 As==01
     318e:       30 41           ret                     
 
-                            string0:
-                            ; "\nSend via XMODEM (CRC or 1K) the extended hex file to program.\n>"
+string0:
+; "\nSend via XMODEM (CRC or 1K) the extended hex file to program.\n>"
     3190:       0a 53
     3192:       65 6e
     3194:       64 20
@@ -481,14 +497,21 @@ main:
 ;end #main
 ;-----------------------------------------------------------------------
 
+
+
+;-----------------------------------------------------------------------
+waitForUARTEmpty:
     3224:       32 d2           eint                    
     3226:       a2 b3 00 22     bit     #2,     &UART0_CR       ;r3 As==10
     322a:       fc 23           jnz     $-6             ;abs 0x3224
     322c:       30 41           ret                     
+;end waitForUARTEmpty
+;-----------------------------------------------------------------------
 
 
 
-                            timeSetup:
+;-----------------------------------------------------------------------
+timeSetup:
     322e:       0b 12           push    r11             
     3230:       0a 12           push    r10             
     3232:       82 43 00 1c     mov     #0,     &TMR0_CR        ;r3 As==00
@@ -562,15 +585,20 @@ main:
     32a4:       3b 41           pop     r11             
                             ;return r15 (time)
     32a6:       30 41           ret                     
+; end timeSetup
+;-----------------------------------------------------------------------
 
 
 
+;-----------------------------------------------------------------------
+emit:
     32a8:       4d 4f           mov.b   r15,    r13     
     32aa:       1e 42 70 44     mov     &ringBufferIn,r14 ;&0x4470,r14     
     32ae:       1e 53           inc     r14             
     32b0:       0c 4e           mov     r14,    r12     
     32b2:       7c f3           and.b   #-1,    r12     ;r3 As==11
     32b4:       3e 53           add     #-1,    r14     ;r3 As==11
+;wait for output buffer to have space
     32b6:       32 d2           eint                    
     32b8:       82 9c 78 44     cmp     r12,    &ringBufferOut ;&0x4478 
     32bc:       fc 27           jz      $-6             ;abs 0x32b6
@@ -583,125 +611,174 @@ main:
     32d2:       01 24           jz      $+4             ;abs 0x32d6
     32d4:       30 41           ret                     
     32d6:       7f 40 0d 00     mov.b   #13,    r15     ;#0x000d
-    32da:       b0 12 a8 32     call    #0x32a8 
+    32da:       b0 12 a8 32     call    #emit           ;#0x32a8 
     32de:       fa 3f           jmp     $-10            ;abs 0x32d4
     32e0:       ce 4d 7a 44     mov.b   r13,    17530(r14);0x447a(r14)
     32e4:       82 4c 70 44     mov     r12,    &ringBufferIn ;&0x4470 
     32e8:       f2 3f           jmp     $-26            ;abs 0x32ce
+;end emit
+;-----------------------------------------------------------------------
+
+
+
+;-----------------------------------------------------------------------
+PrintString:
     32ea:       0b 12           push    r11             
     32ec:       0b 4f           mov     r15,    r11     
     32ee:       cf 93 00 00     tst.b   0(r15)          ;CRCDI_L(r15)
     32f2:       07 24           jz      $+16            ;abs 0x3302
     32f4:       6f 4b           mov.b   @r11,   r15     
     32f6:       1b 53           inc     r11             
-    32f8:       b0 12 a8 32     call    #0x32a8 
+    32f8:       b0 12 a8 32     call    #emit           ;#0x32a8 
     32fc:       cb 93 00 00     tst.b   0(r11)          ;CRCDI_L(r11)
     3300:       f9 23           jnz     $-12            ;abs 0x32f4
     3302:       3b 41           pop     r11             
     3304:       30 41           ret                     
-    3306:       49 6e           addc.b  r14,    r9      
-    3308:       63 6f           .word   0x6f63; ????    Illegal as 2-op instr
-    330a:       6d 70           subc.b  pc,     r13     
-    330c:       6c 65           addc.b  @r5,    r12     
-    330e:       74 65           addc.b  @r5+,   r4      
-    3310:       20 68           addc    @r8,pc  
-    3312:       65 78           subc.b  @r8,    r5      
-    3314:       20 66           addc    @r6,pc  
-    3316:       69 6c           addc.b  @r12,   r9      
-    3318:       65 00 4e 6f     movapc, &0x56f4e
-    331c:       6e 2d           jc      $+734           ;abs 0x35fa
-    331e:       68 65           addc.b  @r5,    r8      
-    3320:       78 20           jnz     $+242           ;abs 0x3412
-    3322:       63 68           .word   0x6863; ????    Illegal as 2-op instr
-    3324:       61 72           subc.b  #4,sp   ;r2 As==10
-    3326:       61 63           addc.b  #2,sp   ;r3 As==10
-    3328:       74 65           addc.b  @r5+,   r4      
-    332a:       72 20           jnz     $+230           ;abs 0x3410
-    332c:       66 6f           addc.b  @r15,   r6      
-    332e:       75 6e           addc.b  @r14+,  r5      
-    3330:       64 20           jnz     $+202           ;abs 0x33fa
-    3332:       69 6e           addc.b  @r14,   r9      
-    3334:       20 66           addc    @r6,pc  
-    3336:       69 6c           addc.b  @r12,   r9      
-    3338:       65 00 48 65     movapc, &0x56548
-    333c:       78 20           jnz     $+242           ;abs 0x342e
-    333e:       63 6f           .word   0x6f63; ????    Illegal as 2-op instr
-    3340:       64 65           addc.b  @r5,    r4      
-    3342:       20 6c           addc    @r12,pc 
-    3344:       65 6e           addc.b  @r14,   r5      
-    3346:       67 74           subc.b  @r4,    r7      
-    3348:       68 20           jnz     $+210           ;abs 0x341a
-    334a:       65 72           subc.b  #4,     r5      ;r2 As==10
-    334c:       72 6f           addc.b  @r15+,sr        
-    334e:       72 00 48 65     movapc, &0x6548 
-    3352:       78 20           jnz     $+242           ;abs 0x3444
-    3354:       63 68           .word   0x6863; ????    Illegal as 2-op instr
-    3356:       65 63           addc.b  #2,     r5      ;r3 As==10
-    3358:       6b 73           subc.b  #2,     r11     ;r3 As==10
-    335a:       75 6d           addc.b  @r13+,  r5      
-    335c:       20 65           addc    @r5,pc  
-    335e:       72 72           subc.b  #8,sr   ;r2 As==11
-    3360:       6f 72           subc.b  #4,     r15     ;r2 As==10
-    3362:       00 46           br      r6              
-    3364:       6c 61           addc.b  sp,     r12     
-    3366:       73 68           .word   0x6873; ????    Illegal as 2-op instr
-    3368:       20 77           subc    @r7,pc  
-    336a:       72 69           addc.b  @r9+,sr 
-    336c:       74 69           addc.b  @r9+,   r4      
-    336e:       6e 67           addc.b  @r7,    r14     
-    3370:       20 70           subc    pc,pc   
-    3372:       72 6f           addc.b  @r15+,sr        
-    3374:       62 6c           addc.b  @r12,sr 
-    3376:       65 6d           addc.b  @r13,   r5      
-    3378:       00 54           add     r4,pc   
-    337a:       72 61           addc.b  @r1+,sr 
-    337c:       6e 73           subc.b  #2,     r14     ;r3 As==10
-    337e:       66 65           addc.b  @r5,    r6      
-    3380:       72 20           jnz     $+230           ;abs 0x3466
-    3382:       63 61           .word   0x6163; ????    Illegal as 2-op instr
-    3384:       6e 63           addc.b  #2,     r14     ;r3 As==10
-    3386:       65 6c           addc.b  @r12,   r5      
-    3388:       6c 65           addc.b  @r5,    r12     
-    338a:       64 00 06 33     movapc, &0x43306
+;end PrintString
+;-----------------------------------------------------------------------
+
+
+;string errorMessages[0] = "Incomplete hex file"
+    3306:       49 6e
+    3308:       63 6f
+    330a:       6d 70
+    330c:       6c 65
+    330e:       74 65
+    3310:       20 68
+    3312:       65 78
+    3314:       20 66
+    3316:       69 6c
+    3318:       65 00
+
+;string errorMessages[2] = "Non-hex character found in file"
+    331a:       4e 6f
+    331c:       6e 2d
+    331e:       68 65
+    3320:       78 20
+    3322:       63 68
+    3324:       61 72
+    3326:       61 63
+    3328:       74 65
+    332a:       72 20
+    332c:       66 6f
+    332e:       75 6e
+    3330:       64 20
+    3332:       69 6e
+    3334:       20 66
+    3336:       69 6c
+    3338:       65 00
+    
+;string errorMessages[3] = "Hex code length error"
+    333a:       48 65
+    333c:       78 20
+    333e:       63 6f
+    3340:       64 65
+    3342:       20 6c
+    3344:       65 6e
+    3346:       67 74
+    3348:       68 20
+    334a:       65 72
+    334c:       72 6f
+    334e:       72 00
+    
+;string errorMessages[4] = "Hex checksum error"
+    3350:       48 65
+    3352:       78 20
+    3354:       63 68
+    3356:       65 63
+    3358:       6b 73
+    335a:       75 6d
+    335c:       20 65
+    335e:       72 72
+    3360:       6f 72
+    3362:       00
+    
+'string errorMessages[5] = "Flash writing problem"
+    3363:       46
+    3364:       6c 61
+    3366:       73 68
+    3368:       20 77
+    336a:       72 69
+    336c:       74 69
+    336e:       6e 67
+    3370:       20 70
+    3372:       72 6f
+    3374:       62 6c
+    3376:       65 6d
+    3378:       00
+
+;string errorMessages[6] = "Transfer cancelled"
+    3379:       54
+    337a:       72 61
+    337c:       6e 73
+    337e:       66 65
+    3380:       72 20
+    3382:       63 61
+    3384:       6e 63
+    3386:       65 6c
+    3388:       6c 65
+    338a:       64 00
+    
+    338c:       06 33     movapc, &0x43306
     338e:       00 00           bra     pc              
     3390:       1a 33           jn      $-458           ;abs 0x31c6
     3392:       3a 33           jn      $-394           ;abs 0x3208
     3394:       50 33           jn      $-350           ;abs 0x3236
     3396:       63 33           jn      $-312           ;abs 0x325e
     3398:       79 33           jn      $-268           ;abs 0x328c
-    339a:       0a 45           mov     r5,     r10     
-    339c:       72 72           subc.b  #8,sr   ;r2 As==11
-    339e:       6f 72           subc.b  #4,     r15     ;r2 As==10
-    33a0:       3a 20           jnz     $+118           ;abs 0x3416
-    33a2:       00 0a           bra     @r10            
-    33a4:       48 65           addc.b  r5,     r8      
-    33a6:       78 20           jnz     $+242           ;abs 0x3498
-    33a8:       66 69           addc.b  @r9,    r6      
-    33aa:       6c 65           addc.b  @r5,    r12     
-    33ac:       20 6c           addc    @r12,pc 
-    33ae:       69 6e           addc.b  @r14,   r9      
-    33b0:       65 20           jnz     $+204           ;abs 0x347c
-    33b2:       6e 75           subc.b  @r5,    r14     
-    33b4:       6d 3a           jl      $-804           ;abs 0x3090
-    33b6:       20 00 0a 3e     bra     &0x03e0a        
-    33ba:       00 0a           bra     @r10            
-    33bc:       43 6f           .word   0x6f43; ????    Illegal as 2-op instr
-    33be:       6d 70           subc.b  pc,     r13     
-    33c0:       6c 65           addc.b  @r5,    r12     
-    33c2:       74 65           addc.b  @r5+,   r4      
-    33c4:       3a 20           jnz     $+118           ;abs 0x343a
-    33c6:       00 62           addcsr,pc       
-    33c8:       79 74           subc.b  @r4+,   r9      
-    33ca:       65 73           subc.b  #2,     r5      ;r3 As==10
-    33cc:       20 70           subc    pc,pc   
-    33ce:       72 6f           addc.b  @r15+,sr        
-    33d0:       67 72           subc.b  #4,     r7      ;r2 As==10
-    33d2:       61 6d           addc.b  @r13,sp 
-    33d4:       6d 65           addc.b  @r5,    r13     
-    33d6:       64 2e           jc      $-822           ;abs 0x30a0
-    33d8:       00 00           bra     pc              
-
-                            TMR0_INT:
+
+;string "\nError: "
+    339a:       0a 45
+    339c:       72 72
+    339e:       6f 72
+    33a0:       3a 20
+    33a2:       00
+
+;string "\nHex file line num: "
+    33a3:       0a   
+    33a4:       48 65
+    33a6:       78 20
+    33a8:       66 69
+    33aa:       6c 65
+    33ac:       20 6c
+    33ae:       69 6e
+    33b0:       65 20
+    33b2:       6e 75
+    33b4:       6d 3a
+    33b6:       20 00
+
+;string "\n>"
+    33b8:       0a 3e
+    33ba:       00
+    
+;string "\nComplete: "
+    33bb:       0a
+    33bc:       43 6f
+    33be:       6d 70
+    33c0:       6c 65
+    33c2:       74 65
+    33c4:       3a 20
+    33c6:       00
+    
+;string "bytes programmed."
+    33c7:       62
+    33c8:       79 74
+    33ca:       65 73
+    33cc:       20 70
+    33ce:       72 6f
+    33d0:       67 72
+    33d2:       61 6d
+    33d4:       6d 65
+    33d6:       64 2e
+    33d8:       00
+;alignment padding byte
+    33d9:       00
+
+
+
+
+;-----------------------------------------------------------------------
+TMR0_INT:
     33da:       0f 12           push    r15             
     33dc:       0e 12           push    r14             
     33de:       0d 12           push    r13             
@@ -715,21 +792,21 @@ main:
     33f2:       2f 93           cmp     #2,     r15     ;r3 As==10
     33f4:       47 20           jnz     $+144           ;abs 0x3484
     33f6:       a2 c2 00 1c     bic     #4,     &TMR0_CR        ;r2 As==10
-    33fa:       92 93 7a 45     cmp     #1,     &0x457a ;r3 As==01
+    33fa:       92 93 7a 45     cmp     #1,     &error  ;&0x457a ;r3 As==01
     33fe:       22 24           jz      $+70            ;abs 0x3444
     3400:       3f 40 9a 33     mov     #13210, r15     ;#0x339a
     3404:       b0 12 ea 32     call    #PrintString ;0x32ea 
-    3408:       1f 42 7a 45     mov     &0x457a,r15     
+    3408:       1f 42 7a 45     mov     &error, r15     ;&0x457a,r15     
     340c:       0f 5f           rla     r15             
     340e:       1f 4f 8c 33     mov     13196(r15),r15  ;0x338c(r15)
     3412:       b0 12 ea 32     call    #PrintString ;0x32ea 
     3416:       3f 40 a3 33     mov     #13219, r15     ;#0x33a3
     341a:       b0 12 ea 32     call    #PrintString ;0x32ea 
     341e:       1f 42 02 40     mov     &0x4002,r15     
-    3422:       b0 12 50 3e     call    #0x3e50 
+    3422:       b0 12 50 3e     call    #printNumber    ;#0x3e50 
     3426:       3f 40 b8 33     mov     #13240, r15     ;#0x33b8
     342a:       b0 12 ea 32     call    #PrintString ;0x32ea 
-    342e:       b0 12 24 32     call    #0x3224 
+    342e:       b0 12 24 32     call    #waitForUARTEmpty ;#0x3224 
     3432:       b0 12 76 31     call    #0x3176 
     3436:       92 43 04 1c     mov     #1,     &TMR0_CNT       ;r3 As==01
     343a:       1f 42 02 1c     mov     &TMR0_SR,r15    
@@ -738,7 +815,7 @@ main:
     3444:       3f 40 bb 33     mov     #13243, r15     ;#0x33bb
     3448:       b0 12 ea 32     call    #PrintString ;0x32ea 
     344c:       1f 42 08 40     mov     &0x4008,r15     
-    3450:       b0 12 50 3e     call    #0x3e50 
+    3450:       b0 12 50 3e     call    #printNumber    ;#0x3e50 
     3454:       3f 40 c7 33     mov     #13255, r15     ;#0x33c7
     3458:       b0 12 ea 32     call    #PrintString ;0x32ea 
     345c:       e4 3f           jmp     $-54            ;abs 0x3426
@@ -747,20 +824,23 @@ main:
     3466:       98 4a 
     3468:       0d 20           jnz     $+28            ;abs 0x3484
     346a:       7f 40 43 00     mov.b   #67,    r15     ;#0x0043
-    346e:       b0 12 a8 32     call    #0x32a8 
+    346e:       b0 12 a8 32     call    #emit           ;#0x32a8 
     3472:       82 43 98 4a     mov     #0,     &0x4a98 ;r3 As==00
     3476:       06 3c           jmp     $+14            ;abs 0x3484
     3478:       82 43 72 44     mov     #0,     &0x4472 ;r3 As==00
     347c:       7f 40 15 00     mov.b   #21,    r15     ;#0x0015
-    3480:       b0 12 a8 32     call    #0x32a8 
+    3480:       b0 12 a8 32     call    #emit           ;#0x32a8 
     3484:       3c 41           pop     r12             
     3486:       3d 41           pop     r13             
     3488:       3e 41           pop     r14             
     348a:       3f 41           pop     r15             
     348c:       00 13           reti                    
+;end TMR0_INT
+;-----------------------------------------------------------------------
+
+
 
 ;-----------------------------------------------------------------------
-;
 UART_ISR:
     348e:       0f 12           push    r15             
     3490:       0e 12           push    r14             
@@ -801,6 +881,10 @@ UART_ISR:
 ;end #UART_ISR
 ;-----------------------------------------------------------------------
 
+
+
+;-----------------------------------------------------------------------
+toUpper:
     34d8:       cf 93 00 00     tst.b   0(r15)          ;CRCDI_L(r15)
     34dc:       0c 24           jz      $+26            ;abs 0x34f6
     34de:       6e 4f           mov.b   @r15,   r14     
@@ -812,6 +896,13 @@ UART_ISR:
     34f0:       cf 93 00 00     tst.b   0(r15)          ;CRCDI_L(r15)
     34f4:       f4 23           jnz     $-22            ;abs 0x34de
     34f6:       30 41           ret                     
+;end toUpper
+;-----------------------------------------------------------------------
+
+
+
+;-----------------------------------------------------------------------
+strcmpm:
     34f8:       cf 93 00 00     tst.b   0(r15)          ;CRCDI_L(r15)
     34fc:       0e 24           jz      $+30            ;abs 0x351a
     34fe:       ce 93 00 00     tst.b   0(r14)          ;CRCDI_L(r14)
@@ -828,34 +919,64 @@ UART_ISR:
     351c:       30 41           ret                     
     351e:       1f 43           mov     #1,     r15     ;r3 As==01
     3520:       30 41           ret                     
-    3522:       45 52           add.bsr,        r5      
-    3524:       41 53           add.b   #0,sp   ;r3 As==00
-    3526:       45 00           rrcm.a  #1,     r5      
-    3528:       53 45           .word   0x4553; ????    Illegal as 2-op instr
-    352a:       43 54           .word   0x5443; ????    Illegal as 2-op instr
-    352c:       4f 52           add.bsr,        r15     
-    352e:       20 45           br      @r5             
-    3530:       52 41 53 45     mov.b   17747sp)sr      ;0x4553sp)
-    3534:       20 00 57 52     bra     &0x05257        
-    3538:       49 54           add.b   r4,     r9      
-    353a:       45 20           jnz     $+140           ;abs 0x35c6
-    353c:       00 52           addsr,pc        
-    353e:       45 41           mov.bsp,        r5      
-    3540:       44 20           jnz     $+138           ;abs 0x35ca
-    3542:       00 49           br      r9              
-    3544:       44 00           rrcm.a  #1,     r4      
-    3546:       53 54           .word   0x5453; ????    Illegal as 2-op instr
-    3548:       41 52           add.bsr,sp      
-    354a:       54 00           rrcm    #1,     r4      
-    354c:       52 45 53 45     mov.b   17747(r5)sr     ;0x4553(r5)
-    3550:       54 00           rrcm    #1,     r4      
-    3552:       52 45 2d 42     mov.b   16941(r5)sr     ;0x422d(r5)
-    3556:       41 55           add.b   r5,sp   
-    3558:       44 00           rrcm.a  #1,     r4      
-    355a:       46 52           add.bsr,        r6      
-    355c:       45 41           mov.bsp,        r5      
-    355e:       44 20           jnz     $+138           ;abs 0x35e8
-    3560:       00 00           bra     pc              
+;end strcmpm
+;-----------------------------------------------------------------------
+
+
+;string commands[0] = "ERASE"
+    3522:       45 52
+    3524:       41 53
+    3526:       45 00
+
+;string commands[1] = "SECTOR ERASE "
+    3528:       53 45
+    352a:       43 54
+    352c:       4f 52
+    352e:       20 45
+    3530:       52 41
+    3532:       53 45
+    3534:       20 00
+
+;string commands[2] = "WRITE "
+    3536:       57 52
+    3538:       49 54
+    353a:       45 20
+    353c:       00
+    
+;string commands[3] = "READ "
+    353d:       52
+    353e:       45 41
+    3540:       44 20
+    3542:       00
+    
+;string commands[4] = "ID"
+    3543:       49
+    3544:       44 00
+
+;string commands[5] = "START"
+    3546:       53 54
+    3548:       41 52
+    354a:       54 00
+
+;string commands[6] = "RESET"
+    354c:       52 45
+    354d:       53 45
+    3550:       54 00
+
+;string commands[7] = "RE-BAUD"
+    3552:       52 45
+    3554:       2d 42
+    3556:       41 55
+    3558:       44 00
+
+;string commands[8] = "FREAD"
+    355a:       46 52
+    355c:       45 41
+    355e:       44 20
+    3560:       00 00
+
+
+
     3562:       22 35           jge     $+582           ;abs 0x37a8
     3564:       28 35           jge     $+594           ;abs 0x37b6
     3566:       36 35           jge     $+622           ;abs 0x37d4
@@ -865,6 +986,10 @@ UART_ISR:
     356e:       4c 35           jge     $+666           ;abs 0x3808
     3570:       52 35           jge     $+678           ;abs 0x3816
     3572:       5a 35           jge     $+694           ;abs 0x3828
+
+
+;-----------------------------------------------------------------------
+parseCommands:
     3574:       0b 12           push    r11             
     3576:       0a 12           push    r10             
     3578:       0a 4f           mov     r15,    r10     
@@ -873,7 +998,7 @@ UART_ISR:
     357e:       0f 5f           rla     r15             
     3580:       1e 4f 62 35     mov     13666(r15),r14  ;0x3562(r15)
     3584:       0f 4a           mov     r10,    r15     
-    3586:       b0 12 f8 34     call    #0x34f8 
+    3586:       b0 12 f8 34     call    #strcmpm        ;#0x34f8 
     358a:       0f 93           tst     r15             
     358c:       06 24           jz      $+14            ;abs 0x359a
     358e:       1b 53           inc     r11             
@@ -886,41 +1011,59 @@ UART_ISR:
     359e:       3a 41           pop     r10             
     35a0:       3b 41           pop     r11             
     35a2:       30 41           ret                     
-    35a4:       0a 45           mov     r5,     r10     
-    35a6:       72 61           addc.b  @r1+,sr 
-    35a8:       73 65           .word   0x6573; ????    Illegal as 2-op instr
-    35aa:       20 43           br      #2              ;r3 As==10
-    35ac:       6f 6d           addc.b  @r13,   r15     
-    35ae:       70 6c           addc.b  @r12+,pc        
-    35b0:       65 74           subc.b  @r4,    r5      
-    35b2:       65 00 53 65     movapc, &0x56553
-    35b6:       6e 64           addc.b  @r4,    r14     
-    35b8:       20 53           incdpc          
-    35ba:       70 61           addc.b  @r1+,pc 
-    35bc:       63 65           .word   0x6563; ????    Illegal as 2-op instr
-    35be:       00 20           jnz     $+2             ;abs 0x35c0
-    35c0:       20 00 53 74     bra     &0x07453        
-    35c4:       61 72           subc.b  #4,sp   ;r2 As==10
-    35c6:       74 69           addc.b  @r9+,   r4      
-    35c8:       6e 67           addc.b  @r7,    r14     
-    35ca:       20 55           add     @r5,pc  
-    35cc:       73 65           .word   0x6573; ????    Illegal as 2-op instr
-    35ce:       72 20           jnz     $+230           ;abs 0x36b4
-    35d0:       50 72 6f 67     subc.b  &0x676fpc       
-    35d4:       72 61           addc.b  @r1+,sr 
-    35d6:       6d 2e           jc      $-804           ;abs 0x32b2
-    35d8:       2e 2e           jc      $-930           ;abs 0x3236
-    35da:       0a 00           mova    pc,     r10     
-    35dc:       52 65 73 65     addc.b  25971(r5)sr     ;0x6573(r5)
-    35e0:       74 74           subc.b  @r4+,   r4      
-    35e2:       69 6e           addc.b  @r14,   r9      
-    35e4:       67 2e           jc      $-816           ;abs 0x32b4
-    35e6:       2e 2e           jc      $-930           ;abs 0x3244
-    35e8:       0a 00           mova    pc,     r10     
+;end parseCommands
+;-----------------------------------------------------------------------
+
+
+
+;string "\nErase Complete"
+    35a4:       0a 45
+    35a6:       72 61
+    35a8:       73 65
+    35aa:       20 43
+    35ac:       6f 6d
+    35ae:       70 6c
+    35b0:       65 74
+    35b2:       65 00
+
+;string "Send Space"
+    35b4:       53 65
+    35b6:       6e 64
+    35b8:       20 53
+    35ba:       70 61
+    35bc:       63 65
+    35be:       00
+
+;string "  "
+    35bf:       20
+    35c0:       20 00
+    
+;string "Starting User Program...\n"
+    35c2:       53 74
+    35c4:       61 72
+    35c6:       74 69
+    35c8:       6e 67
+    35ca:       20 55
+    35cc:       73 65
+    35ce:       72 20
+    35d0:       50 72
+    35d2:       6f 67
+    35d4:       72 61
+    35d6:       6d 2e
+    35d8:       2e 2e
+    35da:       0a 00
+
+;string "Resetting...\n"
+    35dc:       52 65
+    35de:       73 65
+    35e0:       74 74
+    35e2:       69 6e
+    35e4:       67 2e
+    35e6:       2e 2e
+    35e8:       0a 00
 
 
 ;-----------------------------------------------------------------------
-;
 readPacket:
     35ea:       0b 12           push    r11             
     35ec:       0a 12           push    r10             
@@ -952,22 +1095,22 @@ readPacket:
     3628:       7f 90 0d 00     cmp.b   #13,    r15     ;#0x000d
     362c:       06 24           jz      $+14            ;abs 0x363a
     362e:       7f 40 15 00     mov.b   #21,    r15     ;#0x0015
-    3632:       b0 12 a8 32     call    #0x32a8 
+    3632:       b0 12 a8 32     call    #emit           ;#0x32a8 
     3636:       30 40 20 3a     br      #0x3a20 
     363a:       4f 4b           mov.b   r11,    r15     
     363c:       fa 3f           jmp     $-10            ;abs 0x3632
     363e:       7f 40 2e 00     mov.b   #46,    r15     ;#0x002e
-    3642:       b0 12 a8 32     call    #0x32a8 
+    3642:       b0 12 a8 32     call    #emit           ;#0x32a8 
     3646:       92 43 0a 40     mov     #1, &commandmode ;&0x400a ;r3 As==01
     364a:       b2 40 03 00     mov     #3, &0x4476 ;#0x0003
     364e:       76 44 
     3650:       30 40 20 3a     br      #0x3a20 
-    3654:       b2 40 06 00     mov     #6,     &0x457a ;#CRCRESR_L
+    3654:       b2 40 06 00     mov     #6,     &error  ;&0x457a ;#CRCRESR_L
     3658:       7a 45 
     365a:       a2 43 76 44     mov     #2,     &0x4476 ;r3 As==10
     365e:       30 40 20 3a     br      #0x3a20 
     3662:       7f 40 06 00     mov.b   #6,     r15     ;#CRCRESR_L
-    3666:       b0 12 a8 32     call    #0x32a8 
+    3666:       b0 12 a8 32     call    #emit           ;#0x32a8 
     366a:       f7 3f           jmp     $-16            ;abs 0x365a
     366c:       b2 40 04 04     mov     #1028,  &0x4004 ;#0x0404
     3670:       04 40 
@@ -985,7 +1128,7 @@ readPacket:
     3694:       1f 92 04 40     cmp     &0x4004,r15     
     3698:       c3 2d           jc      $+904           ;abs 0x3a20
     369a:       4f 4b           mov.b   r11,    r15     
-    369c:       b0 12 2a 3a     call    #0x3a2a 
+    369c:       b0 12 2a 3a     call    #instantcrc     ;#0x3a2a 
     36a0:       bf 3d           jmp     $+896           ;abs 0x3a20
     36a2:       1f 42 00 40     mov     &RAMStart,r15   
     36a6:       0f 5f           rla     r15             
@@ -996,7 +1139,7 @@ readPacket:
     36b6:       0f 5f           rla     r15             
     36b8:       1f 4f 72 31     mov     12658(r15),r15  ;0x3172(r15)
     36bc:       5d 4f 01 00     mov.b   1(r15), r13     ;CRCDI_H(r15)
-    36c0:       1e 42 96 4a     mov     &0x4a96,r14     
+    36c0:       1e 42 96 4a     mov     &packetNum, r14 ;&0x4a96,r14     
     36c4:       0d 9e           cmp     r14,    r13     
     36c6:       17 24           jz      $+48            ;abs 0x36f6
     36c8:       0d 9e           cmp     r14,    r13     
@@ -1006,17 +1149,17 @@ readPacket:
     36d4:       9c 4b 
     36d6:       09 28           jnc     $+20            ;abs 0x36ea
     36d8:       7f 40 18 00     mov.b   #24,    r15     ;#0x0018
-    36dc:       b0 12 a8 32     call    #0x32a8 
-    36e0:       82 43 52 40     mov     #0,     &0x4052 ;r3 As==00
+    36dc:       b0 12 a8 32     call    #emit           ;#0x32a8 
+    36e0:       82 43 52 40     mov     #0,     &crc    ;&0x4052 ;r3 As==00
     36e4:       82 43 72 44     mov     #0,     &0x4472 ;r3 As==00
     36e8:       9b 3d           jmp     $+824           ;abs 0x3a20
     36ea:       7f 40 15 00     mov.b   #21,    r15     ;#0x0015
     36ee:       f6 3f           jmp     $-18            ;abs 0x36dc
     36f0:       7f 40 06 00     mov.b   #6,     r15     ;#CRCRESR_L
     36f4:       9e 3f           jmp     $-194           ;abs 0x3632
-    36f6:       1d 42 52 40     mov     &0x4052,r13     
+    36f6:       1d 42 52 40     mov     &crc, r13       ;&0x4052,r13     
     36fa:       1e 42 72 44     mov     &0x4472,r14     
-    36fe:       b0 12 58 3a     call    #0x3a58 
+    36fe:       b0 12 58 3a     call    #comparecrc     ;#0x3a58 
     3702:       0f 93           tst     r15             
     3704:       f2 27           jz      $-26            ;abs 0x36ea
     3706:       1b 42 00 40     mov     &RAMStart,r11   
@@ -1024,18 +1167,18 @@ readPacket:
     370e:       0f 4b           mov     r11,    r15     
     3710:       1f e3           xor     #1,     r15     ;r3 As==01
     3712:       82 4f 00 40     mov     r15,    &RAMStart       
-    3716:       1f 42 96 4a     mov     &0x4a96,r15     
+    3716:       1f 42 96 4a     mov     &packetNum, r15 ;&0x4a96,r15     
     371a:       1f 53           inc     r15             
-    371c:       c2 4f 96 4a     mov.b   r15,    &0x4a96 
+    371c:       c2 4f 96 4a     mov.b   r15,    &packetNum ;&0x4a96 
     3720:       c2 43 97 4a     mov.b   #0,     &0x4a97 ;r3 As==00
     3724:       7f 40 06 00     mov.b   #6,     r15     ;#CRCRESR_L
-    3728:       b0 12 a8 32     call    #0x32a8 
-    372c:       82 43 52 40     mov     #0,     &0x4052 ;r3 As==00
+    3728:       b0 12 a8 32     call    #emit           ;#0x32a8 
+    372c:       82 43 52 40     mov     #0,     &crc    ;&0x4052 ;r3 As==00
     3730:       82 43 72 44     mov     #0,     &0x4472 ;r3 As==00
     3734:       0b 5b           rla     r11             
     3736:       0e 4a           mov     r10,    r14     
     3738:       1f 4b 72 31     mov     12658(r11),r15  ;0x3172(r11)
-    373c:       b0 12 72 3a     call    #0x3a72 
+    373c:       b0 12 72 3a     call    #readLine       ;#0x3a72 
     3740:       cf 3f           jmp     $-96            ;abs 0x36e0
     3742:       b2 40 84 00     mov     #132,   &0x4004 ;#0x0084
     3746:       04 40 
@@ -1046,7 +1189,7 @@ readPacket:
     3754:       cf 4b 00 00     mov.b   r11,    0(r15)  ;CRCDI_L(r15)
     3758:       92 53 72 44     inc     &0x4472 
     375c:       4f 4b           mov.b   r11,    r15     
-    375e:       b0 12 a8 32     call    #0x32a8 
+    375e:       b0 12 a8 32     call    #emit           ;#0x32a8 
     3762:       7b 92           cmp.b   #8,     r11     ;r2 As==11
     3764:       53 25           jz      $+680           ;abs 0x3a0c
     3766:       7b 90 0a 00     cmp.b   #10,    r11     ;#0x000a
@@ -1054,13 +1197,13 @@ readPacket:
     376c:       7b 90 0d 00     cmp.b   #13,    r11     ;#0x000d
     3770:       57 21           jnz     $+688           ;abs 0x3a20
     3772:       7f 40 0a 00     mov.b   #10,    r15     ;#0x000a
-    3776:       b0 12 a8 32     call    #0x32a8 
+    3776:       b0 12 a8 32     call    #emit           ;#0x32a8 
     377a:       1f 42 72 44     mov     &0x4472,r15     
     377e:       cf 43 7c 46     mov.b   #0,     18044(r15);r3 As==00, 0x467c(r15)
     3782:       0f 4a           mov     r10,    r15     
-    3784:       b0 12 d8 34     call    #0x34d8 
+    3784:       b0 12 d8 34     call    #toUpper        ;#0x34d8 
     3788:       0f 4a           mov     r10,    r15     
-    378a:       b0 12 74 35     call    #0x3574 
+    378a:       b0 12 74 35     call    #parseCommands  ;#0x3574 
     378e:       3f 90 0a 00     cmp     #10,    r15     ;#0x000a
     3792:       1e 2c           jc      $+62            ;abs 0x37d0
     3794:       0f 5f           rla     r15             
@@ -1076,13 +1219,13 @@ readPacket:
     37aa:       62 39           jl      $+710           ;abs 0x3a70
     37ac:       68 39           jl      $+722           ;abs 0x3a7e
     37ae:       0f 43           clr     r15             
-    37b0:       b0 12 00 3e     call    #0x3e00 
+    37b0:       b0 12 00 3e     call    #eraseSector    ;#0x3e00 
     37b4:       1f 43           mov     #1,     r15     ;r3 As==01
-    37b6:       b0 12 00 3e     call    #0x3e00 
+    37b6:       b0 12 00 3e     call    #eraseSector    ;#0x3e00 
     37ba:       2f 43           mov     #2,     r15     ;r3 As==10
-    37bc:       b0 12 00 3e     call    #0x3e00 
+    37bc:       b0 12 00 3e     call    #eraseSector    ;#0x3e00 
     37c0:       3f 40 03 00     mov     #3,     r15     ;#0x0003
-    37c4:       b0 12 00 3e     call    #0x3e00 
+    37c4:       b0 12 00 3e     call    #eraseSector    ;#0x3e00 
     37c8:       3f 40 a4 35     mov     #13732, r15     ;#0x35a4
     37cc:       b0 12 ea 32     call    #PrintString ;0x32ea 
     37d0:       3f 40 b8 33     mov     #13240, r15     ;#0x33b8
@@ -1091,11 +1234,11 @@ readPacket:
     37dc:       82 43 0a 40     mov     #0, &commandmode ;&0x400a ;r3 As==00
     37e0:       81 3f           jmp     $-252           ;abs 0x36e4
     37e2:       7f 40 3f 00     mov.b   #63,    r15     ;#0x003f
-    37e6:       b0 12 a8 32     call    #0x32a8 
+    37e6:       b0 12 a8 32     call    #emit           ;#0x32a8 
     37ea:       f2 3f           jmp     $-26            ;abs 0x37d0
     37ec:       5f 42 89 46     mov.b   &0x4689,r15     
     37f0:       3f f0 0f 00     and     #15,    r15     ;#0x000f
-    37f4:       b0 12 00 3e     call    #0x3e00 
+    37f4:       b0 12 00 3e     call    #eraseSector    ;#0x3e00 
     37f8:       eb 3f           jmp     $-40            ;abs 0x37d0
     37fa:       2e 42           mov     #4,     r14     ;r2 As==10
     37fc:       3f 40 82 46     mov     #18050, r15     ;#0x4682
@@ -1145,7 +1288,7 @@ readPacket:
     3880:       a7 3f           jmp     $-176           ;abs 0x37d0
     3882:       3f 40 b4 35     mov     #13748, r15     ;#0x35b4
     3886:       b0 12 ea 32     call    #PrintString ;0x32ea 
-    388a:       b0 12 24 32     call    #0x3224 
+    388a:       b0 12 24 32     call    #waitForUARTEmpty ;#0x3224 
     388e:       d3 3f           jmp     $-88            ;abs 0x3836
     3890:       2e 42           mov     #4,     r14     ;r2 As==10
     3892:       3f 40 81 46     mov     #18049, r15     ;#0x4681
@@ -1174,33 +1317,33 @@ readPacket:
     38d0:       39 b0 07 00     bit     #7,     r9      ;#CRCRESR_L
     38d4:       0b 20           jnz     $+24            ;abs 0x38ec
     38d6:       7f 40 0a 00     mov.b   #10,    r15     ;#0x000a
-    38da:       b0 12 a8 32     call    #0x32a8 
+    38da:       b0 12 a8 32     call    #emit           ;#0x32a8 
     38de:       0f 4b           mov     r11,    r15     
-    38e0:       b0 12 fe 3e     call    #0x3efe 
+    38e0:       b0 12 fe 3e     call    #printHexWord   ;#0x3efe 
     38e4:       3f 40 bf 35     mov     #13759, r15     ;#0x35bf
     38e8:       b0 12 ea 32     call    #PrintString ;0x32ea 
     38ec:       0f 4b           mov     r11,    r15     
     38ee:       2b 53           incd    r11             
     38f0:       2f 4f           mov     @r15,   r15     
-    38f2:       b0 12 fe 3e     call    #0x3efe 
+    38f2:       b0 12 fe 3e     call    #printHexWord   ;#0x3efe 
     38f6:       19 53           inc     r9              
     38f8:       09 98           cmp     r8,     r9      
     38fa:       ea 2b           jnc     $-42            ;abs 0x38d0
     38fc:       69 3f           jmp     $-300           ;abs 0x37d0
     38fe:       2f 4b           mov     @r11,   r15     
-    3900:       b0 12 fe 3e     call    #0x3efe 
+    3900:       b0 12 fe 3e     call    #printHexWord   ;#0x3efe 
     3904:       65 3f           jmp     $-308           ;abs 0x37d0
     3906:       1f 42 40 26     mov     &0x2640,r15     
-    390a:       b0 12 fe 3e     call    #0x3efe 
+    390a:       b0 12 fe 3e     call    #printHexWord   ;#0x3efe 
     390e:       1f 42 42 26     mov     &0x2642,r15     
-    3912:       b0 12 fe 3e     call    #0x3efe 
+    3912:       b0 12 fe 3e     call    #printHexWord   ;#0x3efe 
     3916:       1f 42 44 26     mov     &0x2644,r15     
-    391a:       b0 12 fe 3e     call    #0x3efe 
+    391a:       b0 12 fe 3e     call    #printHexWord   ;#0x3efe 
     391e:       1f 42 46 26     mov     &0x2646,r15     
     3922:       ee 3f           jmp     $-34            ;abs 0x3900
     3924:       3f 40 c2 35     mov     #13762, r15     ;#0x35c2
     3928:       b0 12 ea 32     call    #PrintString ;0x32ea 
-    392c:       b0 12 24 32     call    #0x3224 
+    392c:       b0 12 24 32     call    #waitForUARTEmpty ;#0x3224 
     3930:       32 c2           dint                    
     3932:       82 43 00 22     mov     #0,     &UART0_CR       ;r3 As==00
     3936:       b2 40 00 02     mov     #512,   &TMR0_CR        ;#0x0200
@@ -1211,7 +1354,7 @@ readPacket:
     3946:       44 3f           jmp     $-374           ;abs 0x37d0
     3948:       3f 40 dc 35     mov     #13788, r15     ;#0x35dc
     394c:       b0 12 ea 32     call    #PrintString ;0x32ea 
-    3950:       b0 12 24 32     call    #0x3224 
+    3950:       b0 12 24 32     call    #waitForUARTEmpty ;#0x3224 
     3954:       32 c2           dint                    
     3956:       82 43 00 22     mov     #0,     &UART0_CR       ;r3 As==00
     395a:       b2 d0 00 01     bis     #256,   &0x2600 ;#0x0100
@@ -1249,20 +1392,20 @@ readPacket:
     39b2:       3d 40 9e 4b     mov     #19358, r13     ;#0x4b9e
     39b6:       0e 4a           mov     r10,    r14     
     39b8:       0f 4b           mov     r11,    r15     
-    39ba:       b0 12 de 3b     call    #0x3bde 
+    39ba:       b0 12 de 3b     call    #readFlash      ;#0x3bde 
     39be:       09 43           clr     r9              
     39c0:       09 98           cmp     r8,     r9      
     39c2:       06 2f           jc      $-498           ;abs 0x37d0
     39c4:       39 b0 0f 00     bit     #15,    r9      ;#0x000f
     39c8:       13 20           jnz     $+40            ;abs 0x39f0
     39ca:       7f 40 0a 00     mov.b   #10,    r15     ;#0x000a
-    39ce:       b0 12 a8 32     call    #0x32a8 
+    39ce:       b0 12 a8 32     call    #emit           ;#0x32a8 
     39d2:       0e 4b           mov     r11,    r14     
     39d4:       0f 43           clr     r15             
     39d6:       0f 4e           mov     r14,    r15     
     39d8:       b0 12 e4 3e     call    #0x3ee4 
     39dc:       0f 4a           mov     r10,    r15     
-    39de:       b0 12 fe 3e     call    #0x3efe 
+    39de:       b0 12 fe 3e     call    #printHexWord   ;#0x3efe 
     39e2:       3f 40 bf 35     mov     #13759, r15     ;#0x35bf
     39e6:       b0 12 ea 32     call    #PrintString ;0x32ea 
     39ea:       3a 50 10 00     add     #16,    r10     ;#AES_STATE_SIZE
@@ -1270,7 +1413,7 @@ readPacket:
     39f0:       5f 49 9e 4b     mov.b   19358(r9),r15   ;0x4b9e(r9)
     39f4:       b0 12 e4 3e     call    #0x3ee4 
     39f8:       7f 40 20 00     mov.b   #32,    r15     ;#AES_KEY_SIZE
-    39fc:       b0 12 a8 32     call    #0x32a8 
+    39fc:       b0 12 a8 32     call    #emit           ;#0x32a8 
     3a00:       19 53           inc     r9              
     3a02:       09 98           cmp     r8,     r9      
     3a04:       df 2b           jnc     $-64            ;abs 0x39c4
@@ -1279,23 +1422,26 @@ readPacket:
     3a0a:       d2 3f           jmp     $-90            ;abs 0x39b0
     3a0c:       a2 83 72 44     decd    &0x4472 
     3a10:       7f 40 20 00     mov.b   #32,    r15     ;#AES_KEY_SIZE
-    3a14:       b0 12 a8 32     call    #0x32a8 
+    3a14:       b0 12 a8 32     call    #emit           ;#0x32a8 
     3a18:       7f 42           mov.b   #8,     r15     ;r2 As==11
-    3a1a:       b0 12 a8 32     call    #0x32a8 
+    3a1a:       b0 12 a8 32     call    #emit           ;#0x32a8 
     3a1e:       a3 3e           jmp     $-696           ;abs 0x3766
     3a20:       38 41           pop     r8              
     3a22:       39 41           pop     r9              
     3a24:       3a 41           pop     r10             
     3a26:       3b 41           pop     r11             
     3a28:       30 41           ret                     
+;end readPacket
 ;-----------------------------------------------------------------------
 
 
 
+;-----------------------------------------------------------------------
+instantcrc:
     3a2a:       7f f3           and.b   #-1,    r15     ;r3 As==11
     3a2c:       8f 10           swpb    r15             
-    3a2e:       1f e2 52 40     xor     &0x4052,r15     
-    3a32:       82 4f 52 40     mov     r15,    &0x4052 
+    3a2e:       1f e2 52 40     xor     &crc, r15       ;&0x4052,r15     
+    3a32:       82 4f 52 40     mov     r15,    &crc    ;&0x4052 
     3a36:       3e 40 07 00     mov     #7,     r14     ;#CRCRESR_L
     3a3a:       0f 93           tst     r15             
     3a3c:       08 34           jge     $+18            ;abs 0x3a4e
@@ -1307,8 +1453,16 @@ readPacket:
     3a4c:       02 3c           jmp     $+6             ;abs 0x3a52
     3a4e:       0f 5f           rla     r15             
     3a50:       f9 3f           jmp     $-12            ;abs 0x3a44
-    3a52:       82 4f 52 40     mov     r15,    &0x4052 
+    3a52:       82 4f 52 40     mov     r15,    &crc    ;&0x4052 
     3a56:       30 41           ret                     
+;end instantcrc
+;-----------------------------------------------------------------------
+
+
+
+
+;-----------------------------------------------------------------------
+comparecrc:
     3a58:       0c 4f           mov     r15,    r12     
     3a5a:       0c 5e           add     r14,    r12     
     3a5c:       5f 4c ff ff     mov.b   -1(r12),r15     ;0xffff(r12)
@@ -1321,6 +1475,14 @@ readPacket:
     3a6c:       30 41           ret                     
     3a6e:       1f 43           mov     #1,     r15     ;r3 As==01
     3a70:       30 41           ret                     
+;end comparecrc
+;-----------------------------------------------------------------------
+
+
+
+
+;-----------------------------------------------------------------------
+readLine:
     3a72:       0b 12           push    r11             
     3a74:       0a 12           push    r10             
     3a76:       09 12           push    r9              
@@ -1328,14 +1490,14 @@ readPacket:
     3a7a:       07 12           push    r7              
     3a7c:       07 4f           mov     r15,    r7      
     3a7e:       0a 4e           mov     r14,    r10     
-    3a80:       82 93 10 40     tst     &0x4010 
+    3a80:       82 93 10 40     tst     &readLineInProgress ;&0x4010 
     3a84:       05 24           jz      $+12            ;abs 0x3a90
-    3a86:       82 43 10 40     mov     #0,     &0x4010 ;r3 As==00
-    3a8a:       b2 40 05 00     mov     #5,     &0x457a ;#CRCINIRES_L
+    3a86:       82 43 10 40     mov     #0,     &readLineInProgress ;&0x4010 ;r3 As==00
+    3a8a:       b2 40 05 00     mov     #5,     &error  ;&0x457a ;#CRCINIRES_L
     3a8e:       7a 45 
-    3a90:       82 93 7a 45     tst     &0x457a 
+    3a90:       82 93 7a 45     tst     &error          ;&0x457a 
     3a94:       91 20           jnz     $+292           ;abs 0x3bb8
-    3a96:       92 43 10 40     mov     #1,     &0x4010 ;r3 As==01
+    3a96:       92 43 10 40     mov     #1,     &readLineInProgress ;&0x4010 ;r3 As==01
     3a9a:       3a 53           add     #-1,    r10     ;r3 As==11
     3a9c:       38 40 03 00     mov     #3,     r8      ;#0x0003
     3aa0:       08 9a           cmp     r10,    r8      
@@ -1349,32 +1511,32 @@ readPacket:
     3ab4:       12 24           jz      $+38            ;abs 0x3ada
     3ab6:       7e 90 3a 00     cmp.b   #58,    r14     ;#0x003a
     3aba:       06 24           jz      $+14            ;abs 0x3ac8
-    3abc:       1f 42 0e 40     mov     &0x400e,r15     
+    3abc:       1f 42 0e 40     mov     &length, r15    ;&0x400e,r15     
     3ac0:       cf 4e 12 40     mov.b   r14,    16402(r15);0x4012(r15)
-    3ac4:       92 53 0e 40     inc     &0x400e 
-    3ac8:       82 93 6e 44     tst     &0x446e 
+    3ac4:       92 53 0e 40     inc     &length         ;&0x400e 
+    3ac8:       82 93 6e 44     tst     &end            ;&0x446e 
     3acc:       03 20           jnz     $+8             ;abs 0x3ad4
     3ace:       18 53           inc     r8              
     3ad0:       08 9a           cmp     r10,    r8      
     3ad2:       e8 2b           jnc     $-46            ;abs 0x3aa4
-    3ad4:       82 43 10 40     mov     #0,     &0x4010 ;r3 As==00
+    3ad4:       82 43 10 40     mov     #0,     &readLineInProgress ;&0x4010 ;r3 As==00
     3ad8:       6f 3c           jmp     $+224           ;abs 0x3bb8
-    3ada:       1e 42 0e 40     mov     &0x400e,r14     
+    3ada:       1e 42 0e 40     mov     &length, r14    ;&0x400e,r14     
     3ade:       0e 93           tst     r14             
     3ae0:       f3 27           jz      $-24            ;abs 0x3ac8
     3ae2:       92 53 02 40     inc     &0x4002 
-    3ae6:       82 93 7a 45     tst     &0x457a 
+    3ae6:       82 93 7a 45     tst     &error          ;&0x457a 
     3aea:       f4 23           jnz     $-22            ;abs 0x3ad4
-    3aec:       3f 40 12 40     mov     #16402, r15     ;#0x4012
+    3aec:       3f 40 12 40     mov     #line, r15      ;#16402, r15     ;#0x4012
     3af0:       b0 12 1c 3f     call    #0x3f1c 
     3af4:       0f 93           tst     r15             
     3af6:       05 24           jz      $+12            ;abs 0x3b02
-    3af8:       a2 43 7a 45     mov     #2,     &0x457a ;r3 As==10
-    3afc:       82 43 0e 40     mov     #0,     &0x400e ;r3 As==00
+    3af8:       a2 43 7a 45     mov     #2,     &error  ;&0x457a ;r3 As==10
+    3afc:       82 43 0e 40     mov     #0,     &length ;&0x400e ;r3 As==00
     3b00:       e3 3f           jmp     $-56            ;abs 0x3ac8
-    3b02:       59 42 12 40     mov.b   &0x4012,r9      
+    3b02:       59 42 12 40     mov.b   &line, r9       ;&0x4012,r9      
     3b06:       4e 49           mov.b   r9,     r14     
-    3b08:       1d 42 0e 40     mov     &0x400e,r13     
+    3b08:       1d 42 0e 40     mov     &length, r13    ;&0x400e,r13     
     3b0c:       3d 50 f6 ff     add     #-10,   r13     ;#0xfff6
     3b10:       0f 4d           mov     r13,    r15     
     3b12:       12 c3           clrc                    
@@ -1382,7 +1544,7 @@ readPacket:
     3b16:       3d 50 0a 00     add     #10,    r13     ;#0x000a
     3b1a:       0e 9f           cmp     r15,    r14     
     3b1c:       04 24           jz      $+10            ;abs 0x3b26
-    3b1e:       b2 40 03 00     mov     #3,     &0x457a ;#0x0003
+    3b1e:       b2 40 03 00     mov     #3,     &error  ;&0x457a ;#0x0003
     3b22:       7a 45 
     3b24:       eb 3f           jmp     $-40            ;abs 0x3afc
     3b26:       0b 43           clr     r11             
@@ -1394,7 +1556,7 @@ readPacket:
     3b32:       0f 10           rrc     r15             
     3b34:       0c 9f           cmp     r15,    r12     
     3b36:       0b 2c           jc      $+24            ;abs 0x3b4e
-    3b38:       3d 40 12 40     mov     #16402, r13     ;#0x4012
+    3b38:       3d 40 12 40     mov     #line, r13      ;#16402, r13     ;#0x4012
     3b3c:       6f 4d           mov.b   @r13,   r15     
     3b3e:       1d 53           inc     r13             
     3b40:       0b 5f           add     r15,    r11     
@@ -1412,7 +1574,7 @@ readPacket:
     3b5a:       7f f3           and.b   #-1,    r15     ;r3 As==11
     3b5c:       0e 9f           cmp     r15,    r14     
     3b5e:       03 24           jz      $+8             ;abs 0x3b66
-    3b60:       a2 42 7a 45     mov     #4,     &0x457a ;r2 As==10
+    3b60:       a2 42 7a 45     mov     #4,     &error  ;&0x457a ;r2 As==10
     3b64:       cb 3f           jmp     $-104           ;abs 0x3afc
     3b66:       5f 42 15 40     mov.b   &0x4015,r15     
     3b6a:       6f 93           cmp.b   #2,     r15     ;r3 As==10
@@ -1423,7 +1585,7 @@ readPacket:
     3b74:       82 5f 08 40     add     r15,    &0x4008 
     3b78:       b0 12 40 3d     call    #0x3d40 
     3b7c:       bf 3f           jmp     $-128           ;abs 0x3afc
-    3b7e:       92 43 6e 44     mov     #1,     &0x446e ;r3 As==01
+    3b7e:       92 43 6e 44     mov     #1,     &end    ;&0x446e ;r3 As==01
     3b82:       fa 3f           jmp     $-10            ;abs 0x3b78
     3b84:       6f 93           cmp.b   #2,     r15     ;r3 As==10
     3b86:       08 24           jz      $+18            ;abs 0x3b98
@@ -1453,15 +1615,35 @@ readPacket:
     3bbe:       3a 41           pop     r10             
     3bc0:       3b 41           pop     r11             
     3bc2:       30 41           ret                     
+;end readLine
+;-----------------------------------------------------------------------
+
+
+
+;-----------------------------------------------------------------------
+SPISend_TDRE:
     3bc4:       0e 4f           mov     r15,    r14     
     3bc6:       92 b3 06 20     bit     #1,     &SPI0_SR        ;r3 As==01
     3bca:       fd 27           jz      $-4             ;abs 0x3bc6
     3bcc:       82 4e 04 20     mov     r14,    &SPI0_TDR       
     3bd0:       30 41           ret                     
-    3bd2:       b0 12 c4 3b     call    #0x3bc4 
+;end SPISend_TDRE
+;-----------------------------------------------------------------------
+
+
+
+;-----------------------------------------------------------------------
+SPISend_TXEMPTY
+    3bd2:       b0 12 c4 3b     call    #SPISend_TDRE   ;#0x3bc4 
     3bd6:       a2 b3 06 20     bit     #2,     &SPI0_SR        ;r3 As==10
     3bda:       fd 27           jz      $-4             ;abs 0x3bd6
     3bdc:       30 41           ret                     
+;-----------------------------------------------------------------------
+
+
+
+;-----------------------------------------------------------------------
+readFlash:
     3bde:       0b 12           push    r11             
     3be0:       0a 12           push    r10             
     3be2:       09 12           push    r9              
@@ -1472,7 +1654,7 @@ readPacket:
     3bec:       09 4c           mov     r12,    r9      
     3bee:       92 c3 08 1a     bic     #1,     &PAOUT  ;r3 As==01
     3bf2:       3f 40 00 03     mov     #768,   r15     ;#0x0300
-    3bf6:       b0 12 c4 3b     call    #0x3bc4 
+    3bf6:       b0 12 c4 3b     call    #SPISend_TDRE   ;#0x3bc4 
     3bfa:       0e 4a           mov     r10,    r14     
     3bfc:       0f 4b           mov     r11,    r15     
     3bfe:       8e 10           swpb    r14             
@@ -1481,17 +1663,17 @@ readPacket:
     3c04:       0e ef           xor     r15,    r14     
     3c06:       7f f3           and.b   #-1,    r15     ;r3 As==11
     3c08:       0f 4e           mov     r14,    r15     
-    3c0a:       b0 12 c4 3b     call    #0x3bc4 
+    3c0a:       b0 12 c4 3b     call    #SPISend_TDRE   ;#0x3bc4 
     3c0e:       0f 4a           mov     r10,    r15     
-    3c10:       b0 12 c4 3b     call    #0x3bc4 
+    3c10:       b0 12 c4 3b     call    #SPISend_TDRE   ;#0x3bc4 
     3c14:       0f 4a           mov     r10,    r15     
     3c16:       7f f3           and.b   #-1,    r15     ;r3 As==11
     3c18:       8f 10           swpb    r15             
-    3c1a:       b0 12 c4 3b     call    #0x3bc4 
+    3c1a:       b0 12 c4 3b     call    #SPISend_TDRE   ;#0x3bc4 
     3c1e:       0f 43           clr     r15             
-    3c20:       b0 12 c4 3b     call    #0x3bc4 
+    3c20:       b0 12 c4 3b     call    #SPISend_TDRE   ;#0x3bc4 
     3c24:       0f 43           clr     r15             
-    3c26:       b0 12 c4 3b     call    #0x3bc4 
+    3c26:       b0 12 c4 3b     call    #SPISend_TDRE   ;#0x3bc4 
     3c2a:       1f 42 02 20     mov     &SPI0_RDR,r15   
     3c2e:       c8 4f 00 00     mov.b   r15,    0(r8)   ;CRCDI_L(r8)
     3c32:       18 53           inc     r8              
@@ -1505,21 +1687,42 @@ readPacket:
     3c46:       3a 41           pop     r10             
     3c48:       3b 41           pop     r11             
     3c4a:       30 41           ret                     
+;end readFlash
+;-----------------------------------------------------------------------
+
+
+
+;-----------------------------------------------------------------------
+waitForFlash:
     3c4c:       92 c3 08 1a     bic     #1,     &PAOUT  ;r3 As==01
     3c50:       3f 40 00 05     mov     #1280,  r15     ;#0x0500
-    3c54:       b0 12 c4 3b     call    #0x3bc4 
+    3c54:       b0 12 c4 3b     call    #SPISend_TDRE   ;#0x3bc4 
     3c58:       0f 43           clr     r15             
-    3c5a:       b0 12 d2 3b     call    #0x3bd2 
+    3c5a:       b0 12 d2 3b     call    #SPISend_TXEMPTY ;#0x3bd2 
     3c5e:       92 d3 08 1a     bis     #1,     &PAOUT  ;r3 As==01
     3c62:       92 b3 02 20     bit     #1,     &SPI0_RDR       ;r3 As==01
     3c66:       f2 23           jnz     $-26            ;abs 0x3c4c
     3c68:       30 41           ret                     
-    3c6a:       b0 12 4c 3c     call    #0x3c4c 
+;end waitForFlash
+;-----------------------------------------------------------------------
+
+
+
+;-----------------------------------------------------------------------
+EnableWriting:
+    3c6a:       b0 12 4c 3c     call    #waitForFlash   ;#0x3c4c 
     3c6e:       92 c3 08 1a     bic     #1,     &PAOUT  ;r3 As==01
     3c72:       3f 40 00 06     mov     #1536,  r15     ;#0x0600
-    3c76:       b0 12 d2 3b     call    #0x3bd2 
+    3c76:       b0 12 d2 3b     call    #SPISend_TXEMPTY ;#0x3bd2 
     3c7a:       92 d3 08 1a     bis     #1,     &PAOUT  ;r3 As==01
     3c7e:       30 41           ret                     
+;end EnableWriting
+;-----------------------------------------------------------------------
+
+
+
+;-----------------------------------------------------------------------
+writeFlash:
     3c80:       0b 12           push    r11             
     3c82:       0a 12           push    r10             
     3c84:       09 12           push    r9              
@@ -1527,22 +1730,22 @@ readPacket:
     3c88:       0e 41           movsp,  r14     
     3c8a:       0f 41           movsp,  r15     
     3c8c:       2f 53           incd    r15             
-    3c8e:       b0 12 fc 3c     call    #0x3cfc 
+    3c8e:       b0 12 fc 3c     call    #checkForPageD  ;#0x3cfc 
     3c92:       09 4f           mov     r15,    r9      
     3c94:       a1 91 02 00     cmp     sp,     2sp)    ;CRCDIRB_Hsp)
     3c98:       2c 24           jz      $+90            ;abs 0x3cf2
-    3c9a:       b0 12 6a 3c     call    #0x3c6a 
+    3c9a:       b0 12 6a 3c     call    #Enable Writing ;#0x3c6a 
     3c9e:       92 c3 08 1a     bic     #1,     &PAOUT  ;r3 As==01
     3ca2:       3f 40 00 0a     mov     #2560,  r15     ;#0x0a00
-    3ca6:       b0 12 c4 3b     call    #0x3bc4 
-    3caa:       1f 42 06 40     mov     &0x4006,r15     
-    3cae:       b0 12 c4 3b     call    #0x3bc4 
-    3cb2:       5f 42 06 40     mov.b   &0x4006,r15     
+    3ca6:       b0 12 c4 3b     call    #SPISend_TDRE   ;#0x3bc4 
+    3caa:       1f 42 06 40     mov     &pageAdr, r15   ;&0x4006,r15     
+    3cae:       b0 12 c4 3b     call    #SPISend_TDRE   ;#0x3bc4 
+    3cb2:       5f 42 06 40     mov.b   &pageAdr, r15   ;&0x4006,r15     
     3cb6:       8f 10           swpb    r15             
-    3cb8:       b0 12 c4 3b     call    #0x3bc4 
+    3cb8:       b0 12 c4 3b     call    #SPISend_TDRE   ;#0x3bc4 
     3cbc:       5f 41 02 00     mov.b   2sp),   r15     ;CRCDIRB_Hsp)
     3cc0:       8f 10           swpb    r15             
-    3cc2:       b0 12 c4 3b     call    #0x3bc4 
+    3cc2:       b0 12 c4 3b     call    #SPISend_TDRE   ;#0x3bc4 
     3cc6:       1b 41 02 00     mov     2sp),   r11     ;CRCDIRB_Hsp)
     3cca:       2b 91           cmp     sp,     r11     
     3ccc:       0b 34           jge     $+24            ;abs 0x3ce4
@@ -1551,7 +1754,7 @@ readPacket:
     3cd4:       6f 4a           mov.b   @r10,   r15     
     3cd6:       1a 53           inc     r10             
     3cd8:       8f 10           swpb    r15             
-    3cda:       b0 12 c4 3b     call    #0x3bc4 
+    3cda:       b0 12 c4 3b     call    #SPISend_TDRE   ;#0x3bc4 
     3cde:       1b 53           inc     r11             
     3ce0:       2b 91           cmp     sp,     r11     
     3ce2:       f8 3b           jl      $-14            ;abs 0x3cd4
@@ -1565,6 +1768,13 @@ readPacket:
     3cf6:       3a 41           pop     r10             
     3cf8:       3b 41           pop     r11             
     3cfa:       30 41           ret                     
+;end writeFlash
+;-----------------------------------------------------------------------
+
+
+
+;-----------------------------------------------------------------------
+checkForPageD:
     3cfc:       0d 43           clr     r13             
     3cfe:       cd 93 9a 4a     tst.b   19098(r13)      ;0x4a9a(r13)
     3d02:       04 20           jnz     $+10            ;abs 0x3d0c
@@ -1589,24 +1799,31 @@ readPacket:
     3d3a:       30 41           ret                     
     3d3c:       1f 43           mov     #1,     r15     ;r3 As==01
     3d3e:       30 41           ret                     
+;end checkForPageD
+;-----------------------------------------------------------------------
+
+
+
+;-----------------------------------------------------------------------
+writePage:
     3d40:       0b 12           push    r11             
-    3d42:       92 93 9a 4b     cmp     #1,     &0x4b9a ;r3 As==01
+    3d42:       92 93 9a 4b     cmp     #1,     &start  ;&0x4b9a ;r3 As==01
     3d46:       40 24           jz      $+130           ;abs 0x3dc8
-    3d48:       92 93 6e 44     cmp     #1,     &0x446e ;r3 As==01
+    3d48:       92 93 6e 44     cmp     #1,     &end    ;&0x446e ;r3 As==01
     3d4c:       36 24           jz      $+110           ;abs 0x3dba
     3d4e:       5f 42 13 40     mov.b   &0x4013,r15     
     3d52:       1f 52 0c 40     add     &0x400c,r15     
-    3d56:       82 9f 06 40     cmp     r15,    &0x4006 
+    3d56:       82 9f 06 40     cmp     r15,    &pageAdr ;&0x4006 
     3d5a:       0a 24           jz      $+22            ;abs 0x3d70
-    3d5c:       b0 12 80 3c     call    #0x3c80 
-    3d60:       b0 12 de 3d     call    #0x3dde 
+    3d5c:       b0 12 80 3c     call    #writeFlash     ;#0x3c80 
+    3d60:       b0 12 de 3d     call    #erasePage      ;#0x3dde 
     3d64:       5f 42 13 40     mov.b   &0x4013,r15     
     3d68:       1f 52 0c 40     add     &0x400c,r15     
-    3d6c:       82 4f 06 40     mov     r15,    &0x4006 
+    3d6c:       82 4f 06 40     mov     r15,    &pageAdr ;&0x4006 
     3d70:       5e 42 14 40     mov.b   &0x4014,r14     
     3d74:       2b 42           mov     #4,     r11     ;r2 As==10
-    3d76:       3d 40 12 40     mov     #16402, r13     ;#0x4012
-    3d7a:       5f 42 12 40     mov.b   &0x4012,r15     
+    3d76:       3d 40 12 40     mov     #line, r13      ;#16402, r13     ;#0x4012
+    3d7a:       5f 42 12 40     mov.b   &line, r15      ;&0x4012,r15     
     3d7e:       2f 52           add     #4,     r15     ;r2 As==10
     3d80:       0b 9f           cmp     r15,    r11     
     3d82:       2b 34           jge     $+88            ;abs 0x3dda
@@ -1618,34 +1835,46 @@ readPacket:
     3d94:       0a 24           jz      $+22            ;abs 0x3daa
     3d96:       1e 53           inc     r14             
     3d98:       1b 53           inc     r11             
-    3d9a:       3d 40 12 40     mov     #16402, r13     ;#0x4012
-    3d9e:       5f 42 12 40     mov.b   &0x4012,r15     
+    3d9a:       3d 40 12 40     mov     #line, r13      ;#16402, r13     ;#0x4012
+    3d9e:       5f 42 12 40     mov.b   &line, r15      ;&0x4012,r15     
     3da2:       2f 52           add     #4,     r15     ;r2 As==10
     3da4:       0b 9f           cmp     r15,    r11     
     3da6:       ee 3b           jl      $-34            ;abs 0x3d84
     3da8:       18 3c           jmp     $+50            ;abs 0x3dda
-    3daa:       b0 12 80 3c     call    #0x3c80 
-    3dae:       b0 12 de 3d     call    #0x3dde 
+    3daa:       b0 12 80 3c     call    #writeFlash     ;#0x3c80 
+    3dae:       b0 12 de 3d     call    #erasePage      ;#0x3dde 
     3db2:       3e 43           mov     #-1,    r14     ;r3 As==11
-    3db4:       92 53 06 40     inc     &0x4006 
+    3db4:       92 53 06 40     inc     &pageAdr        ;&0x4006 
     3db8:       ee 3f           jmp     $-34            ;abs 0x3d96
-    3dba:       b0 12 80 3c     call    #0x3c80 
-    3dbe:       b0 12 de 3d     call    #0x3dde 
-    3dc2:       92 43 7a 45     mov     #1,     &0x457a ;r3 As==01
+    3dba:       b0 12 80 3c     call    #writeFlash     ;#0x3c80 
+    3dbe:       b0 12 de 3d     call    #erasePage      ;#0x3dde 
+    3dc2:       92 43 7a 45     mov     #1,     &error  ;&0x457a ;r3 As==01
     3dc6:       09 3c           jmp     $+20            ;abs 0x3dda
     3dc8:       5f 42 13 40     mov.b   &0x4013,r15     
     3dcc:       1f 52 0c 40     add     &0x400c,r15     
-    3dd0:       82 4f 06 40     mov     r15,    &0x4006 
-    3dd4:       82 43 9a 4b     mov     #0,     &0x4b9a ;r3 As==00
+    3dd0:       82 4f 06 40     mov     r15,    &pageAdr  ;&0x4006 
+    3dd4:       82 43 9a 4b     mov     #0,     &start  ;&0x4b9a ;r3 As==00
     3dd8:       b7 3f           jmp     $-144           ;abs 0x3d48
     3dda:       3b 41           pop     r11             
     3ddc:       30 41           ret                     
+;end writePage
+;-----------------------------------------------------------------------
+
+
+
+;-----------------------------------------------------------------------
+erasePage:
     3dde:       0f 43           clr     r15             
     3de0:       cf 43 9a 4a     mov.b   #0,     19098(r15);r3 As==00, 0x4a9a(r15)
     3de4:       1f 53           inc     r15             
     3de6:       3f 90 00 01     cmp     #256,   r15     ;#0x0100
     3dea:       fa 3b           jl      $-10            ;abs 0x3de0
     3dec:       30 41           ret                     
+;end erasePage
+;-----------------------------------------------------------------------
+
+
+
     3dee:       0a 53           add     #0,     r10     ;r3 As==00
     3df0:       65 63           addc.b  #2,     r5      ;r3 As==10
     3df2:       74 6f           addc.b  @r15+,  r4      
@@ -1655,31 +1884,42 @@ readPacket:
     3dfa:       61 73           subc.b  #2,sp   ;r3 As==10
     3dfc:       65 64           addc.b  @r4,    r5      
     3dfe:       00 00           bra     pc              
+
+
+;-----------------------------------------------------------------------
+eraseSector:
     3e00:       0b 12           push    r11             
     3e02:       0b 4f           mov     r15,    r11     
-    3e04:       b0 12 6a 3c     call    #0x3c6a 
+    3e04:       b0 12 6a 3c     call    #EnableWriting ;#0x3c6a 
     3e08:       92 c3 08 1a     bic     #1,     &PAOUT  ;r3 As==01
     3e0c:       3f 40 00 d8     mov     #-10240,r15     ;#0xd800
-    3e10:       b0 12 c4 3b     call    #0x3bc4 
+    3e10:       b0 12 c4 3b     call    #SPISend_TDRE   ;#0x3bc4 
     3e14:       0f 4b           mov     r11,    r15     
     3e16:       7f f3           and.b   #-1,    r15     ;r3 As==11
     3e18:       8f 10           swpb    r15             
-    3e1a:       b0 12 c4 3b     call    #0x3bc4 
+    3e1a:       b0 12 c4 3b     call    #SPISend_TDRE   ;#0x3bc4 
     3e1e:       0f 43           clr     r15             
-    3e20:       b0 12 c4 3b     call    #0x3bc4 
+    3e20:       b0 12 c4 3b     call    #SPISend_TDRE   ;#0x3bc4 
     3e24:       0f 43           clr     r15             
-    3e26:       b0 12 d2 3b     call    #0x3bd2 
+    3e26:       b0 12 d2 3b     call    #SPISend_TXEMPTY ;#0x3bd2 
     3e2a:       92 d3 08 1a     bis     #1,     &PAOUT  ;r3 As==01
-    3e2e:       b0 12 4c 3c     call    #0x3c4c 
+    3e2e:       b0 12 4c 3c     call    #waitForFlash   ;#0x3c4c 
     3e32:       3f 40 ee 3d     mov     #15854, r15     ;#0x3dee
     3e36:       b0 12 ea 32     call    #PrintString ;0x32ea 
     3e3a:       4f 4b           mov.b   r11,    r15     
     3e3c:       7f 50 30 00     add.b   #48,    r15     ;#0x0030
-    3e40:       b0 12 a8 32     call    #0x32a8 
+    3e40:       b0 12 a8 32     call    #emit           ;#0x32a8 
     3e44:       3f 40 f7 3d     mov     #15863, r15     ;#0x3df7
     3e48:       b0 12 ea 32     call    #PrintString ;0x32ea 
     3e4c:       3b 41           pop     r11             
     3e4e:       30 41           ret                     
+;end eraseSector
+;-----------------------------------------------------------------------
+
+
+
+;-----------------------------------------------------------------------
+printNumber:
     3e50:       0b 12           push    r11             
     3e52:       0a 12           push    r10             
     3e54:       09 12           push    r9              
@@ -1697,11 +1937,11 @@ readPacket:
     3e70:       36 40 06 00     mov     #6,     r6      ;#CRCRESR_L
     3e74:       0c 48           mov     r8,     r12     
     3e76:       3a 40 0a 00     mov     #10,    r10     ;#0x000a
-    3e7a:       b0 12 c2 3f     call    #0x3fc2 
+    3e7a:       b0 12 c2 3f     call    #modulus        ;#0x3fc2 
     3e7e:       09 4e           mov     r14,    r9      
     3e80:       0c 48           mov     r8,     r12     
     3e82:       3a 40 0a 00     mov     #10,    r10     ;#0x000a
-    3e86:       b0 12 c2 3f     call    #0x3fc2 
+    3e86:       b0 12 c2 3f     call    #modulus        ;#0x3fc2 
     3e8a:       08 4c           mov     r12,    r8      
     3e8c:       0f 46           mov     r6,     r15     
     3e8e:       0f 51           addsp,  r15     
@@ -1714,7 +1954,7 @@ readPacket:
     3ea0:       07 93           tst     r7              
     3ea2:       08 34           jge     $+18            ;abs 0x3eb4
     3ea4:       7f 40 2d 00     mov.b   #45,    r15     ;#0x002d
-    3ea8:       b0 12 a8 32     call    #0x32a8 
+    3ea8:       b0 12 a8 32     call    #emit           ;#0x32a8 
     3eac:       03 3c           jmp     $+8             ;abs 0x3eb4
     3eae:       38 e3           inv     r8              
     3eb0:       18 53           inc     r8              
@@ -1730,35 +1970,63 @@ readPacket:
     3ec6:       3a 41           pop     r10             
     3ec8:       3b 41           pop     r11             
     3eca:       30 41           ret                     
+;end printNumber
+;-----------------------------------------------------------------------
+
+
+
+;-----------------------------------------------------------------------
+printHexChar:
     3ecc:       3f f0 0f 00     and     #15,    r15     ;#0x000f
     3ed0:       3f 90 0a 00     cmp     #10,    r15     ;#0x000a
     3ed4:       02 38           jl      $+6             ;abs 0x3eda
     3ed6:       3f 50 07 00     add     #7,     r15     ;#CRCRESR_L
     3eda:       3f 50 30 00     add     #48,    r15     ;#0x0030
-    3ede:       b0 12 a8 32     call    #0x32a8 
+    3ede:       b0 12 a8 32     call    #emit           ;#0x32a8 
     3ee2:       30 41           ret                     
+;end printHexChar
+;-----------------------------------------------------------------------
+
+
+
+;-----------------------------------------------------------------------
+printHexByte:
     3ee4:       0b 12           push    r11             
     3ee6:       0b 4f           mov     r15,    r11     
     3ee8:       0f 11           rra     r15             
     3eea:       0f 11           rra     r15             
     3eec:       0f 11           rra     r15             
     3eee:       0f 11           rra     r15             
-    3ef0:       b0 12 cc 3e     call    #0x3ecc 
+    3ef0:       b0 12 cc 3e     call    #printHexChar   ;#0x3ecc 
     3ef4:       0f 4b           mov     r11,    r15     
-    3ef6:       b0 12 cc 3e     call    #0x3ecc 
+    3ef6:       b0 12 cc 3e     call    #printHexChar   ;#0x3ecc 
     3efa:       3b 41           pop     r11             
     3efc:       30 41           ret                     
+;end printHexByte
+;-----------------------------------------------------------------------
+
+
+
+;-----------------------------------------------------------------------
+printHexWord:
     3efe:       0b 12           push    r11             
     3f00:       0b 4f           mov     r15,    r11     
     3f02:       8f 10           swpb    r15             
     3f04:       8f 11           sxt     r15             
-    3f06:       b0 12 e4 3e     call    #0x3ee4 
+    3f06:       b0 12 e4 3e     call    #printHexByte   ;#0x3ee4 
     3f0a:       0f 4b           mov     r11,    r15     
-    3f0c:       b0 12 e4 3e     call    #0x3ee4 
+    3f0c:       b0 12 e4 3e     call    #printHexByte   ;#0x3ee4 
     3f10:       7f 40 20 00     mov.b   #32,    r15     ;#AES_KEY_SIZE
-    3f14:       b0 12 a8 32     call    #0x32a8 
+    3f14:       b0 12 a8 32     call    #emit           ;#0x32a8 
     3f18:       3b 41           pop     r11             
     3f1a:       30 41           ret                     
+;end printHexWord
+;-----------------------------------------------------------------------
+
+
+
+;-----------------------------------------------------------------------
+ASCIItoBin:
     3f1c:       0b 12           push    r11             
     3f1e:       0a 12           push    r10             
     3f20:       0b 4f           mov     r15,    r11     
@@ -1817,11 +2085,14 @@ readPacket:
     3fa0:       3a 41           pop     r10             
     3fa2:       3b 41           pop     r11             
     3fa4:       30 41           ret                     
+;end ASCIItoBin
+;-----------------------------------------------------------------------
 
 
 
-                            divide:
-                            ;r12 = divide(r12, r14)
+;-----------------------------------------------------------------------
+divide:
+;r12 = divide(r12, r14)
     3fa6:       0e ee           xor     r14,    r14     
     3fa8:       3b 40 11 00     mov     #17,    r11     ;#0x0011
     3fac:       05 3c           jmp     $+12            ;abs 0x3fb8
@@ -1835,10 +2106,15 @@ readPacket:
     3fbc:       1b 83           dec     r11             
     3fbe:       f7 23           jnz     $-16            ;abs 0x3fae
     3fc0:       30 41           ret                     
+;end divide
+;-----------------------------------------------------------------------
+
 
 
 
 
+;-----------------------------------------------------------------------
+modulus:
     3fc2:       0d 43           clr     r13             
     3fc4:       3c b0 00 80     bit     #-32768,r12     ;#0x8000
     3fc8:       03 28           jnc     $+8             ;abs 0x3fd0
@@ -1863,5 +2139,7 @@ readPacket:
     3ff2:       3c e3           inv     r12             
     3ff4:       1c 53           inc     r12             
     3ff6:       30 41           ret                     
+;end modulus
+;-----------------------------------------------------------------------
         ...