               00010 *KERNEL EXAMPLE - BY DAN PINAL

               00020 *    KERNEL CHANGES COLOR MIDSCREEN DURING EACH SCAN LINE
6000:          00040 PDATA    EQ $6000
D407:          00050 PMBASE    EQ $D407
0230:          00060 SDLSTL    EQ $230
D000:          00070 HPOSPO    EQ $D000
02C0:          00080 PCOLRO    EQ $2CO
D012:          00090 COLPMO    EQ $D012
D01A:          00100 COLBAK    EQ $D0IA
D40A:          00110 WSYNC    EQ $D40A
D40B:          00120 VCOUNT    EQ $D40B
D20E:          00130 IRQEN    EQ $D20E
D40E:          00140 NMIEN    EQ $D40E
0200:          00150 VDSLST    EQ $200
0224:          00160 VVBLKD    EQ $224
022F:          00170 SDMCTL    EQ $22F
D400:          00180 DMACTL    EQ $D400
D01D:          00190 GRACTL    EQ $D01D
E45C:          00200 SETVBV    EQ $E45C
E462:          00210 XITVBV    EQ $E462
6300:          00220 MISSLO    EQ PDATA+$300
6400:          00230 PLAYRO    EQ MISSLO+$100
6500:          00240 PLAYRI    EQ PLAYRO+$100
6600:          00250 PLAYR2    EQ PLAYR1+$100
6700:          00260 PLAYR3    EQ PLAYR2+$100
0278:          00270 STICKO    EQ $278

               00280 *ZERO PAGE EQUATES

00F0:          00290 VTEMPO        EQ $FO
00F1:          00300 VTEMPI        EQ $Fl
00F8:          00310 POTMPO        EQ $F8
00F9:          00320 POTMPI        EQ $F9
               00350 *
               00360 *
               00370 INIT
4000: A9 FB    00380    LDA MIST
4002: 8D 30 02 00390    STA SDLSTL
4005: A9 40    00400    LDA /DLIST
4007: 8D 31 02 00410    STA SDLSTL+l
400A: A9 98    00420    LDA #KERNEL    SET DISPLAY LIST INTERRUPT
400C: 8D 00 02 00430    STA VDSLST
400F: A9 40    00440    LDA /KERNEL
4011: 8D 01 02 00450    STA VDSLST+l
4014: A0 56    00460    LDY #VBLANK    SET VERTICAL BLANK
4016: A2 40    00470    LDX /VBLANK
4018: A9 07    00480    LDA #$07    ;DEFFERRED
401A: 20 5C E4 00490    JSR SETVBV

401D: A9 60    00500    LDA /PDATA ; INIT PM GRAPHICS
401F: 8D 07 D4 00510    STA PMBASE
4022: A9 3E    00520    LDA #$3E
4024: 8D 2F 02 00530    STA SDMCTL

4027: A9 03    00540    LDA #03
4029: 8D 1D D0 00550    STA GRACTL

402C: A9 63    00560    LDA /MISSLO    CLEAR PLAYER/MISSILE RAM

402E: 85 F9    00570    STA POTMPI
4030: A9 00    00580    LDA #00
4032: 85 F8    00590    STA POTMPO
4034: A8       00600    TAY
4035: A2 05    00610    LDX #$05    5 PAGES
               00620 CLEARP
4037: 91 F8    00630    STA (POTMPO),Y
4039: C8       00640    INY

403A: D0 FB    00650    BNE CLEARP
403C: E6 F9    00660    INC POTMPI
403E: CA       00670    DEX
403F: D0 F6    00680    BNE CLEARP
4041: A9 0E    00690    LDA #$OE    WHITE
4043: 8D C0 02 00700    STA PCOLRO
4046: A9 80    00710    LDA #$80
4048: 8D FF 40 00720    STA PLAYRH
404B: 8D 00 41 00730    STA PLAYRV
               00740 ENABLE    INTERRUPTS
404E: A9 C0    00750    LDA #$CO

4050: 8D 0E D4 00760    STA NMIEN
               00770 HERE
4053: 4C 53 40 00780    JMP HERE
               00790 *
               00800 VBLANK
4056: A9 C0    00810    LDA #$CO
4058: 8D 0E D4 00820    STA NMIEN    ;'REENABLE DLI (FOR REV. A O.S.)
405B: AE 78 02 00830    LDX STICKO
405E: 18       00840    CLC
405F: AD FF 40 00850    LDA PLAYRH
4062: 7D D7 40 00860    ADC HOFF,X

4065: C9 30    00870    CMP #$30
               00880 CHECK IF PAST RIGHT OR LEFF EDGE
4067: 90 0A    00890    BCC NEWV
4069: C9 D0    00900    CMP #$DO

406B: B0 06    00910    BCS NEWV
406D: 8D FF 40 00920    STA PLAYRE
4070: 8D 00 D0 00930    STA HPOSPO ; TELL ANTIC
               00940 NEWV
4073: 18       00950    CLC

4074: AD 00 41 00960    LDA PLAYRV

4077: 7D E7 40 00970        ADC VOFF,X
               00980    CHECK IF PAST TOP OR BOTTOM

407A: C9 22    00990    CMP #$22
407C: 90 17    01000    BCC XVBLANK
407E: C9 D0    01010    CMP #$DO
4080: B0 13    01020    BCS XVBLANK

4082: 8D 00 41 01030    STA PLAYRV

4085: 85 F0    01040    STA VTEMPO
4087: A9 64    01050    LDA /PLAYRO
4089: 85 F1    01060    STA VTEMPI
408B: A0 13    01070    LDY 013    20 ELEMENTS
               01080 PDRAW

408D: B9 C4 40 01090    LDA IMAGEJ
4090: 91 F0    01100    STA (VTEMPO),Y

4092: 88       01110    DEY
4093: 10 F8    01120    BPL PDRAW
               01130 XVBLANK
4095: 4C 62 E4 01140    JMP XITVBV
               01150 ;
               01160 KERNEL

4098: 48       01170    PHA    SAVE REGISTERS
4099: 8A       01180    TXA
409A: 48       01190    PHA
409B: 98       01200    TYA
409C: 48       01210    PHA

409D: A0 70    01220    LDY #$70
               01230 DALOOP

409F: 8D 0A D4 01240    STA WSYNC    WAIT TILL BEAM OFFSCREEN

40A2: A9 00    01250    LDA #$00    BLACK

40A4: A2 06    01260    LDX #$06    DELAY TIMER
               01270 UNTIL
40A6: CC 0B D4 01280    CPY VCOUNT    STILL ON SCREEN?
40A9: 90 0E    01290    BCC XKERNEL    LEAVE IF TOO LOW
40AB: 8D 1A D0 01300    STA COLBAK    TURN BACKGROND TO BLACK
               01310 HANGON
40AE: CA       01320    DEX    COUNTDOWN FROM 6 TO 0
40AF: D0 FD    01330    BNE HANGON    BEAM MID-LINE YET
40B1: A2 44    01340    LDX #$44    PINK
40B3: 8E 1A D0 01350    STX COLBAK    TURN SCREEN PINK
40B6: 4C 9F 40 01360    JMP DALOOP    GO GET READY FOR NEXT LINE
               01370 XKERNEL

40B9: A9 00    01380    LDA #$00    TURN SCREEN BLACK
40BB: 8D 1A D0 01390    STA COLBAK

40BE: 68       01400    PLA    RESTORE THE REGISTERS & LEAVE
40BF: A8       01410    TAY
40C0: 68       01420    PLA
40C1: AA       01430    TAX
40C2: 68       01440    PLA
40C3: 40       01450    RTI
               01460

40C4: 00 00 10
40C7: 10 10 10
40CA: 38 38    01470 IMAGE    HS 0000101010103838
40CC: 38 38 7C

40CF: 7C 7C FE

40D2: FE 54    01480    HS 38387C7C7CFEFE54
40D4: 54 00 00 01490        HS 540000
40D7: 00 00 00
40DA: 00 00 02

40DD: 02 02    01500 HOFF    HS 0000000000020202

40DF: 00 FE FE

40E2: FE 00 00
40E5: 00 00    01510    HS 00FEFEFE00000000
40E7: 00 00 00
40EA: 00 00 02
40ED: FE 00    01520 VOFF    HS 000000000002FE00
40EF: 00 02 FE
40F2: 00 00 02
40F5: FE 00    01530    HS 0002FE000002FE00
40F7: 44 76 B8
40FA: 3A       01540 COLOR    HS 4476B83A
40FB: 80 41    01550 DLIST    HS 8041
40FD: FB 40    01560    DA DLIST
40FF: 00       01570 PLAYRH    BS 1
4100: 00       01580 PLAYRV    BS 1
