      .OPT NO EJECT
;
;     GEND.M65
; GENERIC CART ENDBYTES
;
INADD =   $52B2
STADD =   $52B2
CTEND =   $C000
CTADD =   $A000
CTDST = $4000
BUILD = $4000
OFFSET = CTADD-CTDST-BUILD
    *=  $7FFA-$A4
START LDA #$FF
    STA $D301   ;KILL BASIC HARD
    LDA #$01
    STA $09     ;SAY BOOTED
    STA $03F8   ;KILL BASIC SOFT
    LDA # <STADD ;LOAD
    STA $0A     ;DOSVEC WITH
    LDA # >STADD ;STARTADD
    STA $0B     ;DOSVEC+1
    LDA # <INADD ;LOAD
    STA $0C     ;DOSINI AND
    STA $02     ;CASINI WITH
    LDA # >INADD ;INITADD
    STA $0D     ;DOSINI+1
    STA $03     ;CASINI+1
    LDA # <CTADD
    STA $E0     ;STANDARD LOADER
    LDA # >CTADD
    STA $E1
    LDA # <CTDST
    STA $E2
    LDA # >CTDST
    STA $E3
    LDY #$00
L1  LDA ($E0),Y
    STA ($E2),Y
    INY 
    BNE L1
    INC $E1
    INC $E3
    LDA $E1
    CMP # >CTEND
    BNE L1
    JMP INTO-OFFSET ;JMP TO RAM
TXT .BYTE $9B,$1D,$1D,$1D,$1D
    .BYTE $1D,$1D,"          "
    .BYTE " PULL CARTRIDGE"
TXTL =  *-TXT
INTO LDX #$00   ;SO WE CAN PULL
    LDA # <TXT  ;THE CART
    STA $0344   ;SET UP IOCB #0
    LDA # >TXT+$4000
    STA $0345   ;FOR TO DO TXT
    LDA #TXTL
    STA $0348
    LDA #$0B    ;PUT
    STA $0342
    JSR $E456   ;AND DO IT
    LDA #$01
    STA $42     ;CRITIC SET
L2  LDA $D013   ;HARDWARE
    STA $03FA   ;SOFTWARE
    BNE L2      ;INTERLOCK
    INY         ;LOOP
    BNE L2      ;FOR CART PULL
    INX 
    BNE L2
    STA $42     ;SET CRITIC NORM
;BASIC ON=0>3F8
    STA $0244   ;COLDSTART
    JMP $E474   ;GO WARMSTART
INIT STX $03E9  ;CKEY=0
    STX $03EA   ;CASSBT=0
    STX $09     ;BOOT=1 MEANS
    INC $09     ;NO CASS CODE!
    RTS 
XTLEN = *-START
    *=  $7FFA
    .WORD START+BUILD
    .BYTE $00   ;MUST BE 0
    .BYTE $04   ;DOS=5,NODOS=4
    .WORD INIT+BUILD
;ORIGIN AT 130
