MainKernel
   nop
   ldy #PLAYAREAHEIGHT         ;+2      72

KernelLoopOuter                ;        72
   SLEEP 4                     ;+4      76
KernelLoopInner                ;        76
   sta HMOVE                   ;+3       3

   lda #MAID_HEIGHT
   dcp MaidLineCounter2
   bcs DoDraw2
   lda #0
   .byte $2C
DoDraw2
   lda (HeroGfx1Ptra),Y
   sta GRP0                    ;+18     21

   lda ElevRAM,X
   sta PF1                     ;+7      28
   lda #0
   sta PF2                     ;+5      33
   lda ElevRAM+[NUM_RAMBANDS*3],X
   sta PF1                     ;+7      40
BackFromNoSpritesKernelMain

   lda StairCaseTable,Y
   sta HMBL                    ;+7      47
   beq NoSpritesKernelMain     ;+2      49


   lda #MAID_HEIGHT            ;+2      51
   cpy HeroTop0
   bpl SwitchDraw1             ;+5      56
   dcp MaidLineCounter2        ;+5      61
   lda (HeroGfx0Ptra),Y
   sta GRP1                    ;            VDEL
   lda (HeroColorPtra),Y
   sta HMOVE                   ;+16      1

   sta COLUP1                  ;+3       4
BackFromSwitchDraw1


   lda GameFlags3
   eor BackgroundColorTable-1,Y
   sta COLUBK                  ;+10     14


   ;--can't use SwitchDraw for P1 since P0 is VDELed - have to
   ;   use DoDraw, which draws *something* every line.
;   lda #MAID_HEIGHT
;   dcp MaidLineCounter2
   bcc NoDraw1
   lda (HeroGfx1Ptrb),Y
   sta GRP0                    ;+10     24		too late?  No.

   lda #<[3.14 * 100]
   sta pi
   sta PF1                     ;+5      29      too late?  Maybe.
BackFromNoDraw1

   lda ElevRAM+NUM_RAMBANDS,X
   sta PF2                     ;+7      36

   sta.w HMCLR
   lda ElevRAM+[NUM_RAMBANDS*2],X

   cpy HeroTop0

   sta PF2                     ;+14     50

   bpl WaitDraw3
   lda (HeroGfx0Ptrb),Y
   sta.w GRP1                  ;            VDEL
BackFromSwitchDraw3            ;+11     61

;   nop

   dey
   tya
   cmp ElevBandHeight,X
   bne KernelLoopOuter         ;+11    (72)
   dex
   bpl KernelLoopInner         ;+5      76
                               ;        75
   sta HMOVE                   ;+3       2
   cpy #0
   bne NotDoneWithPlayAreaKernels   ;+5       7
                               ;         6
   beq DoneWithPlayAreaKernels ;+3       9   branch always