/*
Great Escape
Atari 8-bit conversion

C64 -> Atari color mapping
C64 A8  RGB
--- --  ---
0   00  000000
1   0E  EEEEEE
2   26  B64736
3   9C  7CEBFC
4   58  C555F0
5   BA  6DDD42
6   74  213BCD
7   EE  FFF765
8   18  C77C23
9   E6  896F00
A   2A  FA8B7A
B   06  666666
C   0A  AAAAAA
D   BE  B1FF86
E   7A  87A1FF
F   0E  EEEEEE
*/

		icl 'atari.hea'
	
framebuffer		equ $c200
bitmapchars		equ $d800
statuspanel		equ $dc00
bitmapscreen	equ $e000

morale_text_screen_pos	equ statuspanel+$00*$100+$02*$08
morale_screen_pos		equ statuspanel+$01*$100+$03*$08
bell_top_screen_pos		equ statuspanel+$00*$100+$11*$08
bell_middle_screen_pos	equ statuspanel+$01*$100+$11*$08
bell_bottom_screen_pos	equ statuspanel+$02*$100+$11*$08
score_text_screen_pos	equ statuspanel+$00*$100+$1A*$08
score_screen_pos		equ statuspanel+$01*$100+$1A*$08
message_screen_pos		equ statuspanel+$03*$100+$01*$08
item1_screen_pos		equ statuspanel+$00*$100+$09*$08
item2_screen_pos		equ statuspanel+$00*$100+$0c*$08

; colors
black			equ $00
white			equ $0e

; original game dump
		org $800
		ins 'ge.dmp'
; patches
;-------------------------------------------------------------------------
;$403D  A9 01     LDA #$01
;$403F  8D 20 D0  STA $D020 	; background color white
		org $403d
		lda #white
		sta colbak
		
;-------------------------------------------------------------------------
;$4047  A9 00     LDA #$00
;$4049  8D 20 D0  STA $D020 ; background color black
		org $4047
		lda #black
		sta colbak
		
;-------------------------------------------------------------------------
;//------------------------------
;$4051  A9 7F     LDA #$7F	; select column 7
;$4053  8D 00 DC  STA $DC00 	; Select Keyboard Column 7-0    (0=Select, 1=Not select)
;$4056  AD 01 DC  LDA $DC01 
;$4059  C9 7F     CMP #$7F	; stop key?
;$405B  D0 0C     BNE L_BRS_($4069)_($405B) OK
;//------------------------------
;L_BRS_($405D)_($4067) OK
;//------------------------------
;$405D  A9 7F     LDA #$7F
;$405F  8D 00 DC  STA $DC00 
;$4062  AD 01 DC  LDA $DC01 
;$4065  C9 7F     CMP #$7F
;$4067  F0 F4     BEQ L_BRS_($405D)_($4067) OK
;//------------------------------
;L_BRS_($4069)_($405B) OK
//------------------------------
;$4069  60        RTS 
		org $4051
;		lda #$04	; 2
;k1		bit skstat	; 3
;		bne k1		; 2
;k2		bit skstat	; 3
;		beq k2		; 2
;		rts			; 1
		rts
		:$406a-* nop
		ert *<>$406a
		
;-------------------------------------------------------------------------
;$4128  A9 35     LDA #$35	; I/O enable
;$412A  85 01     STA $01 
;$412C  A9 FF     LDA #$FF
;$412E  8D 00 DC  STA $DC00 	; Select Keyboard Column 7-0    (0=Select, 1=Not select)
;$4131  AD 01 DC  LDA $DC01 	; Joystick 2 read
;$4134  49 FF     EOR #$FF
;$4136  A2 30     LDX #$30	; RAM
;$4138  86 01     STX $01 
		org $4128
		lda porta
		eor #$ff
		and #$0f
		lsr trig1
		bcs l1	
		ora #$10
l1		:$413a-* nop		
		ert *<>$413a
		
;-------------------------------------------------------------------------
; $4297  EC 22 DF  CPX $DF22 	; color attribute of?
		org $4297
		cpx morale_color
		
;-------------------------------------------------------------------------
;$42EA  A9 58     LDA #$58	; TODO: Print @ FA58
;$42EC  85 06     STA $06 
;$42EE  A9 FA     LDA #$FA
;$42F0  85 07     STA $07 
		org $42EA
		lda #<morale_screen_pos
		sta $06
		lda #>morale_screen_pos
		sta $07

;-------------------------------------------------------------------------	
;$4353  8A        TXA 
;$4354  A2 05     LDX #$05		; set color for morale?
;//------------------------------
;L_BRS_($4356)_($435D) OK
;//------------------------------
;$4356  9D 22 DF  STA $DF22,X 
;$4359  9D 4A DF  STA $DF4A,X 
;$435C  CA        DEX 
;$435D  10 F7     BPL L_BRS_($4356)_($435D) OK
;$435F  60        RTS 
		org $4353
		stx morale_color	; 3
		txa					; 1
		ldx #$ff			; 2
		rts					; 1
		:$4360-* nop
		ert *<>$4360
		
;-------------------------------------------------------------------------	
;$4370  AD C9 FA  LDA $FAC9 	; TODO: Print ? @FAC9
		org $4370
		lda bell_middle_screen_pos+1

;-------------------------------------------------------------------------	
;$4386  99 C9 FA  STA $FAC9,Y 
		org $4386
		sta bell_middle_screen_pos+1,y
		
;-------------------------------------------------------------------------	
;$4394  99 08 FC  STA $FC08,Y 	; FC08
		org $4394
		sta bell_bottom_screen_pos,y

;-------------------------------------------------------------------------	
;$4402  A9 10     LDA #$10
;$4404  85 06     STA $06 
;$4406  A9 FB     LDA #$FB
;$4408  85 07     STA $07 
		org $4402
		lda #<score_screen_pos
		sta $06
		lda #>score_screen_pos
		sta $07
		
;-------------------------------------------------------------------------	
;$442E  A0 16     LDY #$16		; set color for game window
;//------------------------------
;L_BRS_($4430)_($4461) OK
;//------------------------------
;$4430  99 58 DC  STA $DC58,Y 
;$4433  99 80 DC  STA $DC80,Y 
;$4436  99 A8 DC  STA $DCA8,Y 
;$4439  99 D0 DC  STA $DCD0,Y 
;$443C  99 F8 DC  STA $DCF8,Y 
;$443F  99 20 DD  STA $DD20,Y 
;$4442  99 48 DD  STA $DD48,Y 
;$4445  99 70 DD  STA $DD70,Y 
;$4448  99 98 DD  STA $DD98,Y 
;$444B  99 C0 DD  STA $DDC0,Y 
;$444E  99 E8 DD  STA $DDE8,Y 
;$4451  99 10 DE  STA $DE10,Y 
;$4454  99 38 DE  STA $DE38,Y 
;$4457  99 60 DE  STA $DE60,Y 
;$445A  99 88 DE  STA $DE88,Y 
;$445D  99 B0 DE  STA $DEB0,Y 
;$4460  88        DEY 
;$4461  10 CD     BPL L_BRS_($4430)_($4461) OK
;$4463  60        RTS 
		org $442e
		sta workscreen_color	; 3
		pha						; 1
		and #$0f				; 2
		tay						; 1
		lda c64colors,y			; 3
		sta colpf2				; 3
		pla						; 1
		lsr @					; 1
		lsr @					; 1
		lsr @					; 1
		lsr @					; 1
		tay						; 1
		lda c64colors,y			; 3
		sta colpf1				; 3
		rts						; 1
								; 26 bytes
		:$4464-* nop
		ert *<>$4464
		
;-------------------------------------------------------------------------	
;$4957  A9 35     LDA #$35
;$4959  85 01     STA $01	; I/O 
;$495B  A9 00     LDA #$00
;$495D  8D 00 DC  STA $DC00 
;$4960  AD 01 DC  LDA $DC01 	; read any key
;$4963  49 FF     EOR #$FF
;$4965  08        PHP 
;$4966  A9 34     LDA #$34	; ?
;$4968  85 01     STA $01 
;$496A  28        PLP 
;$496B  60        RTS 
		org $4957
		lda skstat
		eor #$ff
		and #$04
		rts
		
		:$496c-* nop
		ert *<>$496c

;-------------------------------------------------------------------------	
;$49AC  20 77 83  JSR L_JSR_($8377)_($49AC) OK
;$49AF  C8        INY 
;$49B0  A5 06     LDA $06 
;$49B2  18        CLC 
;$49B3  69 08     ADC #$08
;$49B5  85 06     STA $06 
;$49B7  90 02     BCC L_BRS_($49BB)_($49B7) OK
;$49B9  E6 07     INC $07 
		org $49ac
		jsr printcharbitmap
		iny
		inc $06
		bcc l2
		inc $07
l2
		:$49bb-* nop
		ert *<>$49bb
;-------------------------------------------------------------------------	
; Strings
		org $49CA	; String WELL DONE (@E6C8: X = $11, Y = $05)
		dta a(bitmapscreen + $11 + $03*$100)
		
		org $49D6	; String YOU HAVE ESCAPED (@E928: X = $D, Y = $7)
		dta a(bitmapscreen + $0d + $05*$100)

		org $49E9	; String FROM THE CAMP (@EA78: X = $F, Y = $8)
		dta a(bitmapscreen + $0f + $06*$100)

		org $49F9	; String AND WILL CROSS THE (@ECE0: X = $C, Y = $A)
		dta a(bitmapscreen + $0c + $08*$100)
	
		org $4A0E	; String BORDER SUCCESSFULLY (@EE20: X = $C, Y = $B)
		dta a(bitmapscreen + $0c + $09*$100)

		org $4A24	; String BUT WERE RECAPTURED (@ECE0: X = $C, Y = $A)
		dta a(bitmapscreen + $0c + $08*$100)
		
		org $4A3A	; String AND SHOT AS A SPY (@EE28: X = $D, Y = $B)
		dta a(bitmapscreen + $0d + $09*$100)

		org $4A4E	; String TOTALLY UNPREPARED (@EE20: X = $C, Y = $B)
		dta a(bitmapscreen + $0c + $09*$100)
		
		org $4A63	; String TOTALLY LOST (@EE38: X = $F, Y = $B)
		dta a(bitmapscreen + $0f + $09*$100)
		
		org $4A72	; String DUE TO LACK OF PAPERS (@EE18: X = $B, Y = $B)
		dta a(bitmapscreen + $0b + $09*$100)
		
		org $4A8A	; String PRESS ANY KEY (@F5C0: X = $10, Y = $11)
		dta a(bitmapscreen + $10 + $0f*$100)

		org $4A9A	; String CONFIRM Y OR N (@ECF0: X = $E, Y = $A )
		dta a(bitmapscreen + $0e + $08*$100)

;-------------------------------------------------------------------------	
;$4AE7  A9 34     LDA #$34	; TODO: I/O
;$4AE9  85 01     STA $01 
;$4AEB  A9 F7     LDA #$F7
;$4AED  8D 00 DC  STA $DC00 	; select keyboard column #3
;$4AF0  AD 01 DC  LDA $DC01 
;$4AF3  C9 FD     CMP #$FD	; key 'Y'
;$4AF5  F0 0E     BEQ L_BRS_($4B05)_($4AF5) OK
;$4AF7  A9 EF     LDA #$EF	; select keyboard column #4
;$4AF9  8D 00 DC  STA $DC00 
;$4AFC  AD 01 DC  LDA $DC01 
;$4AFF  C9 7F     CMP #$7F	; key 'N'
;$4B01  D0 E4     BNE L_BRS_($4AE7)_($4B01) OK
;$4B03  A9 01     LDA #$01
;//------------------------------
;L_BRS_($4B05)_($4AF5) OK
;//------------------------------
;$4B05  08        PHP 
;$4B06  A9 35     LDA #$35	; RAM
;$4B08  85 01     STA $01 
;$4B0A  28        PLP 
;$4B0B  60        RTS 
		org $4ae7
		lda skstat
		and #$4
		bne $4ae7
		lda kbcode
		cmp #$2b	; Y
		beq key_pressed
		cmp #$23	; N
		bne $4ae7
		lda #$01
key_pressed rts
		:$4b0c-* nop
		ert *<>$4b0c
		
;-------------------------------------------------------------------------	
;$4E97  A9 40     LDA #$40	; TODO: print screen background (tile based)
;$4E99  85 02     STA $02 
;$4E9B  A9 CF     LDA #$CF
;$4E9D  85 03     STA $03 
		org $4e97
		lda #<framebuffer
		sta $02
		lda #>framebuffer
		sta $03

;-------------------------------------------------------------------------	
;$5CEB  A5 16     LDA $16 
;$5CED  18        CLC 
;$5CEE  69 40     ADC #$40
;$5CF0  85 16     STA $16 
;$5CF2  A5 17     LDA $17 
;$5CF4  69 CF     ADC #$CF	; TODO: 
;$5CF6  85 17     STA $17 
		org $5CEB
		lda $16
		clc
		adc #<framebuffer
		sta $16
		lda $17
		adc #>framebuffer
		sta $17

;-------------------------------------------------------------------------	
;$5FBE  78        SEI 				; MU main
;$5FBF  20 6D 95  JSR L_JSR_($956D)_($5FBF) OK	; InitSID
;$5FC2  20 D2 77  JSR L_JSR_($77D2)_($5FC2) OK	; InitVIC + ClearBitmap
;$5FC5  A9 9A     LDA #$9A		; Set IRQ vector
;$5FC7  8D FE FF  STA $FFFE 
;$5FCA  A9 92     LDA #$92
;$5FCC  8D FF FF  STA $FFFF 
;$5FCF  A9 2D     LDA #$2D
;$5FD1  8D FA FF  STA $FFFA 		; Set NMI Vector
;$5FD4  A9 40     LDA #$40
;$5FD6  8D FB FF  STA $FFFB 
		org $5FBE
start	cld
		ldx #$ff
		txs
		jsr atariinit
		jsr $77d2
		:$5fd9-* nop
		ert *<>$5fd9

;-------------------------------------------------------------------------	
;$6002  A9 88     LDA #$88
;$6004  85 02     STA $02 
;$6006  A9 F9     LDA #$F9
;$6008  85 03     STA $03 
		org $6002
		lda #<bell_top_screen_pos
		sta $02
		lda #>bell_top_screen_pos
		sta $03
		
;-------------------------------------------------------------------------	
;$6019  A9 C8     LDA #$C8
;$601B  85 02     STA $02 
;$601D  A9 FA     LDA #$FA
;$601F  85 03     STA $03 
		org $6019
		lda #<bell_middle_screen_pos
		sta $02
		lda #>bell_middle_screen_pos
		sta $03
		
;-------------------------------------------------------------------------	
;$602E  A9 08     LDA #$08
;$6030  85 02     STA $02 
;$6032  A9 FC     LDA #$FC
;$6034  85 03     STA $03 
		org $602e
		lda #<bell_bottom_screen_pos
		sta $02
		lda #>bell_bottom_screen_pos
		sta $03
		
;-------------------------------------------------------------------------	
;$6043  A9 70     LDA #$70
;$6045  A2 02     LDX #$02
;//------------------------------
;L_BRS_($6047)_($6051) OK
;//------------------------------
;$6047  9D 81 DF  STA $DF81,X 		; TODO: set bell color
;$604A  9D 59 DF  STA $DF59,X 
;$604D  9D 31 DF  STA $DF31,X 
;$6050  CA        DEX 
;$6051  10 F4     BPL L_BRS_($6047)_($6051) OK
		org $6043
		:$6053-* nop
		ert *<>$6053

;-------------------------------------------------------------------------	
;$6053  A9 D0     LDA #$D0			; print "SCORE" at F9D0
;$6055  85 06     STA $06 
;$6057  A9 F9     LDA #$F9
;$6059  85 07     STA $07 
		org $6053
		lda #<score_text_screen_pos
		sta $06
		lda #>score_text_screen_pos
		sta $07
		
;-------------------------------------------------------------------------	
;$6078  A9 50     LDA #$50
;$607A  8D 82 DF  STA $DF82 			; set color of part of bell
		org $6078
		:$607d-* nop
		ert *<>$607d

;-------------------------------------------------------------------------	
;$60AD  A5 06     LDA $06 
;$60AF  69 40     ADC #$40
;$60B1  85 06     STA $06 
;$60B3  A5 07     LDA $07 
;$60B5  69 01     ADC #$01
;$60B7  85 07     STA $07 
;$60B9  90 CE     BCC L_BRS_($6089)_($60B9) OK	
		org $60ad
		inc $07
		bne $6089
		:$60bb-* nop
		ert *<>$60bb
	
;-------------------------------------------------------------------------	
;$60D5  A9 10     LDA #$10
;$60D7  85 06     STA $06 
;$60D9  A9 F9     LDA #$F9
;$60DB  85 07     STA $07 
		org $60d5
		lda #<morale_text_screen_pos
		sta $06
		lda #>morale_text_screen_pos
		sta $07
		
;-------------------------------------------------------------------------	
;$6152  A9 00     LDA #$00
;//------------------------------
;L_BRS_($6154)_($6158) OK
;//------------------------------
;$6154  9D DE DF  STA $DFDE,X 	; color of ?, set to black
;$6157  CA        DEX 
;$6158  10 FA     BPL L_BRS_($6154)_($6158) OK
;$615A  58        CLI 
		org $6152
		:$615b-* nop
		ert *<>$615b
	
		org $6250
		dta $FE, a(bitmapchars + $05*$08 + $01*$100)
		dta $02, $03, $0C, $0D, $0C, $0D, $0C, $0D, $0C, $0D, $0C, $0D, $0E
		dta $0F, $10, $0C, $0D, $0C, $0D, $0C, $0D, $0C, $0D, $0C, $0D, $11, $12
		dta $FE, a(bitmapchars + $05*$08 + $00*$100)
		dta $00, $01
		dta $FE, a(bitmapchars + $1e*$08 + $00*$100)
		dta $04, $05
		dta $FE, a(bitmapchars + $05*$08 + $02*$100)
		dta $06, $07, $0C, $0D, $0C, $0D, $0C, $0D, $0C, $0D, $0C, $0D, $0E, $0F, $10
		dta $0C, $0D, $0C, $0D, $0C, $0D, $0C, $0D, $0C, $0D, $13, $14
		dta $FE, a(bitmapchars + $05*$08 + $03*$100)
		dta $08, $09
		dta $FE, a(bitmapchars + $1e*$08 + $03*$100)
		dta $15, $16
		dta $FF
		
		:$62c7-* dta $ff
		ert *<>$62c7
		
;-------------------------------------------------------------------------	
;$63A0  A9 06     LDA #$06			; set yellow color for game window + ornament
;$63A2  8D AA 63  STA $63AA 
;//------------------------------
;L_BRS_($63A5)_($63B8) OK
;L_BRS_($63A5)_($63C2) OK
;//------------------------------
;$63A5  A9 70     LDA #$70
;$63A7  A0 1A     LDY #$1A
;//------------------------------
;L_BRS_($63A9)_($63AD) OK
;//------------------------------
;$63A9  99 06 DC  STA $DC06,Y 
;$63AC  88        DEY 
;$63AD  10 FA     BPL L_BRS_($63A9)_($63AD) OK
;$63AF  AD AA 63  LDA $63AA 
;$63B2  18        CLC 
;$63B3  69 28     ADC #$28
;$63B5  8D AA 63  STA $63AA 
;$63B8  90 EB     BCC L_BRS_($63A5)_($63B8) OK
;$63BA  EE AB 63  INC $63AB 
;$63BD  AD AB 63  LDA $63AB 
;$63C0  C9 DF     CMP #$DF
;$63C2  D0 E1     BNE L_BRS_($63A5)_($63C2) OK
;$63C4  60        RTS 
		org $63a0
		rts
		:$63c5-* nop
		ert *<>$63c5
		
;-------------------------------------------------------------------------	
;$709C  69 40     ADC #$40
;$709E  85 02     STA $02 
;//------------------------------
;L_JSR_($70A0)_($38B2) OK
;//------------------------------
;$70A0  A5 03     LDA $03 
;$70A2  69 CF     ADC #$CF	; TODO: framebuffer
;$70A4  85 03     STA $03 
		org $709c
		adc #<framebuffer
		sta $02
		lda $03
		adc #>framebuffer
		sta $03
		
;-------------------------------------------------------------------------	
;$7768  A5 02     LDA $02 
;$776A  18        CLC 
;$776B  69 40     ADC #$40
;$776D  85 16     STA $16 
;$776F  A5 03     LDA $03 
;$7771  69 CF     ADC #$CF	; TODO: Frame buffer
;$7773  85 17     STA $17 
		org $7768
		lda $02
		clc
		adc #<framebuffer
		sta $16
		lda $03
		adc #>framebuffer
		sta $17
		
;-------------------------------------------------------------------------	
;$77D2  AD 11 D0  LDA $D011 	; TODO: VIC Control Register 1
;$77D5  29 7F     AND #$7F	; RC8   Raster Compare Bit 8
;$77D7  09 20     ORA #$20	; BMM   Bitmap Mode                (0=Text, 1=Bitmap)
;$77D9  8D 11 D0  STA $D011 
;$77DC  A9 7F     LDA #$7F	; no CIA interrupt enabled
;$77DE  8D 0D DC  STA $DC0D 	; CIA Interrupt Control Register (Read Flags/Write Mask)
;$77E1  A9 64     LDA #$64	; RC0-7 Raster Compare/Scanline
;$77E3  8D 12 D0  STA $D012 	; Raster Register
;$77E6  A9 81     LDA #$81	; 0    ERST  Raster Compare                  (0=Disable, 1=Enable)
;$77E8  8D 1A D0  STA $D01A 	;  Interrupt Enable Register
;$77EB  A9 03     LDA #$03
;$77ED  0D 02 DD  ORA $DD02	; Data Direction Register - CIA #2, Port A
;$77F0  8D 02 DD  STA $DD02 
;$77F3  AD 00 DD  LDA $DD00 	;
;$77F6  29 FC     AND #$FC	; set VIC bank (Cxxx)
;$77F8  8D 00 DD  STA $DD00 
;$77FB  A9 78     LDA #$78	; 4-7  VM#   Video Matrix Base Address Bit  13-10 (400h); 1-3  CB#   Character Dot-Data Base Address Bit 13-11
;$77FD  8D 18 D0  STA $D018	; VIC Memory Control Register 
;$7800  A9 00     LDA #$00	; black
;//------------------------------
;L_JSR_($7802)_($0AD0) OK
;//------------------------------
;$7802  8D 20 D0  STA $D020	; Border Color 
;$7805  A9 30     LDA #$30
;$7807  85 01     STA $01 	; RAM
;$7809  A9 10     LDA #$10	; White color
;$780B  A2 FA     LDX #$FA
;//------------------------------
;L_BRS_($780D)_($781A) OK
;//------------------------------
;$780D  9D FF DB  STA $DBFF,X 	; set foreground color for bitmap
;$7810  9D F9 DC  STA $DCF9,X 
;$7813  9D F3 DD  STA $DDF3,X 
;$7816  9D ED DE  STA $DEED,X 
;$7819  CA        DEX 
;$781A  D0 F1     BNE L_BRS_($780D)_($781A) OK
;$781C  A9 E0     LDA #$E0
;$781E  8D 28 78  STA $7828 
;$7821  A9 00     LDA #$00
;$7823  AA        TAX 
;//------------------------------
;L_BRS_($7824)_($7834) OK
;//------------------------------
;$7824  A9 00     LDA #$00
;//------------------------------
;L_BRS_($7826)_($782A) OK
;//------------------------------
;$7826  9D 00 E0  STA $E000,X 
;$7829  E8        INX 
;$782A  D0 FA     BNE L_BRS_($7826)_($782A) OK
;$782C  EE 28 78  INC $7828 
;$782F  AD 28 78  LDA $7828 
;$7832  C9 FF     CMP #$FF
;$7834  D0 EE     BNE L_BRS_($7824)_($7834) OK
;$7836  A2 F7     LDX #$F7
;//------------------------------
;L_BRS_($7838)_($783C) OK
;//------------------------------
;$7838  9D 00 FF  STA $FF00,X 
;$783B  CA        DEX 
;$783C  D0 FA     BNE L_BRS_($7838)_($783C) OK
;$783E  8D 00 FF  STA $FF00 
;$7841  60        RTS 
;-----
		org $77D2
		:$7841-* nop
		ert *<>$7841
		rts
		
;-------------------------------------------------------------------------	
;$83BB  69 C8     ADC #$C8
;$83BD  85 06     STA $06 
;$83BF  A9 FC     LDA #$FC
;$83C1  69 00     ADC #$00
;$83C3  85 07     STA $07 
		org $83bb
		adc #<message_screen_pos
		sta $06
		lda #>message_screen_pos
		adc #$00
		sta $07
	
;-------------------------------------------------------------------------	
;$83F0  69 C8     ADC #$C8
;$83F2  85 06     STA $06 
;$83F4  A9 FC     LDA #$FC
;$83F6  69 00     ADC #$00
;$83F8  85 07     STA $07 
		org $83f0
		adc #<message_screen_pos
		sta $06
		lda #>message_screen_pos
		adc #$00
		sta $07

;-------------------------------------------------------------------------	
;$863E  A9 40     LDA #$40
;$8640  85 0E     STA $0E 
;$8642  A9 DB     LDA #$DB
;$8644  85 0F     STA $0F 
		org $863e
		lda #<(framebuffer+$c00)
		sta $0e
		lda #>(framebuffer+$c00)
		sta $0f
		
;-------------------------------------------------------------------------	
;$8653  A9 40     LDA #$40
;$8655  85 0E     STA $0E 
;$8657  A9 CF     LDA #$CF
;$8659  85 0F     STA $0F 
		org $8653
		lda #<framebuffer
		sta $0e
		lda #>framebuffer
		sta $0f
		
;-------------------------------------------------------------------------	
;$8755  A9 40     LDA #$40
;$8757  85 0E     STA $0E 
;$8759  A9 CF     LDA #$CF
;$875B  85 0F     STA $0F 
		org $8755
		lda #<framebuffer
		sta $0e
		lda #>framebuffer
		sta $0f

;-------------------------------------------------------------------------	
;$87AF  A9 57     LDA #$57
;$87B1  85 0E     STA $0E 
;$87B3  A9 CF     LDA #$CF
;$87B5  85 0F     STA $0F 
		org $87AF
		lda #<(framebuffer+$17)
		sta $0e
		lda #>(framebuffer+$17)
		sta $0f
		
;-------------------------------------------------------------------------	
;$87CE  A9 40     LDA #$40
;$87D0  85 0E     STA $0E 
;$87D2  A9 CF     LDA #$CF
;$87D4  85 0F     STA $0F 
		org $87CE
		lda #<framebuffer
		sta $0e
		lda #>framebuffer
		sta $0f
		
;-------------------------------------------------------------------------	
;$8999  A9 CF     LDA #$CF
;$899B  8D A7 89  STA $89A7 
;$899E  8D AA 89  STA $89AA 
;$89A1  A2 0C     LDX #$0C
;$89A3  A0 00     LDY #$00
;//------------------------------
;L_BRS_($89A5)_($89AC) OK
;L_BRS_($89A5)_($89B5) OK
;//------------------------------
;$89A5  B9 41 CF  LDA $CF41,Y 
;$89A8  99 40 CF  STA $CF40,Y 
;$89AB  C8        INY 
;$89AC  D0 F7     BNE L_BRS_($89A5)_($89AC) OK
		org $8999
		lda #>framebuffer
		sta $89A7
		sta $89AA
		ldx #$0c
		ldy #$00
		lda framebuffer+1,y
		sta framebuffer,y
	
;-------------------------------------------------------------------------	
;$89B7  B9 41 DB  LDA $DB41,Y 
;$89BA  99 40 DB  STA $DB40,Y 
		org $89b7
		lda framebuffer+$c01,y
		sta framebuffer+$c00,y
		
;-------------------------------------------------------------------------	
;$89E5  A9 DA     LDA #$DA
		org $89e5
		lda #>(framebuffer+$b00)
		
;-------------------------------------------------------------------------	
;$89F5  B9 40 DB  LDA $DB40,Y 
;$89F8  99 41 DB  STA $DB41,Y 
		org $89f5
		lda framebuffer+$b00,y
		sta framebuffer+$b00+1,y
		
;-------------------------------------------------------------------------	
;$8A07  B9 40 CF  LDA $CF40,Y 
;$8A0A  99 41 CF  STA $CF41,Y 
		org $8a07
		lda framebuffer,y
		sta framebuffer+1,y
		
;-------------------------------------------------------------------------	
;$8A11  AD 40 CF  LDA $CF40 
;$8A14  8D 41 CF  STA $CF41 
		org $8a11
		lda framebuffer
		sta framebuffer+1
		
;-------------------------------------------------------------------------	
;$8A52  A9 CF     LDA #$CF
;$8A54  8D 63 8A  STA $8A63 
;$8A57  8D 66 8A  STA $8A66 
;$8A5A  EE 63 8A  INC $8A63 
		org $8a52
		lda #>framebuffer
		sta $8a63
		sta $8a66
		nop
		nop
		nop
	
;-------------------------------------------------------------------------	
;$8A61  B9 00 D0  LDA $D000,Y 
;$8A64  99 41 CF  STA $CF41,Y 
		org $8a61
		lda framebuffer+$c0,y
		sta framebuffer+$01,y
		
;-------------------------------------------------------------------------	
;$8A9F  A9 CF     LDA #$CF
;$8AA1  8D B0 8A  STA $8AB0 
;$8AA4  8D B3 8A  STA $8AB3 
;$8AA7  EE B0 8A  INC $8AB0 
;$8AAA  A2 0C     LDX #$0C
;$8AAC  A0 00     LDY #$00
;//------------------------------
;L_BRS_($8AAE)_($8AB5) OK
;L_BRS_($8AAE)_($8ABE) OK
;//------------------------------
;$8AAE  B9 00 D0  LDA $D000,Y 
;$8AB1  99 40 CF  STA $CF40,Y 
		org $8a9f
		lda #>framebuffer
		sta $8ab0
		sta $8ab3
		nop
		nop
		nop
		ldx #$0c
		ldy #$00
		lda framebuffer+$c0,y
		sta framebuffer,y
		
;-------------------------------------------------------------------------	
;$8AEF  A9 DA     LDA #$DA
		org $8aef
		lda #>(framebuffer+$b00)
		
;-------------------------------------------------------------------------	
;$8AFD  EE 0C 8B  INC $8B0C 
;$8B00  EE 16 8B  INC $8B16 
		org $8afd
		nop
		nop
		nop
		nop
		nop
		nop
		
;-------------------------------------------------------------------------	
;$8B07  B9 40 CF  LDA $CF40,Y 
;$8B0A  99 00 D0  STA $D000,Y 
		org $8b07
		lda framebuffer,y
		sta framebuffer+$c0,y
		
;-------------------------------------------------------------------------	
;$8B11  AD 40 CF  LDA $CF40 
;$8B14  8D 00 D0  STA $D000 
		org $8b11
		lda framebuffer
		sta framebuffer+$c0
		
;-------------------------------------------------------------------------	
;$8B4B  A9 DA     LDA #$DA
;$8B4D  8D 5F 8B  STA $8B5F 
		org $8b4b
		lda #>(framebuffer + $b00)
		
;-------------------------------------------------------------------------	
;$8B5D  B9 40 CF  LDA $CF40,Y 
;$8B60  99 FF CF  STA $CFFF,Y 
		org $8b5d
		lda framebuffer,y
		sta framebuffer+$c0-$1,y
		
;-------------------------------------------------------------------------	
;$8B66  AD 40 CF  LDA $CF40 
;$8B69  8D FF CF  STA $CFFF 
		org $8b66
		lda framebuffer
		sta framebuffer+$c0-1
		
;-------------------------------------------------------------------------	
;$8DC8  A9 48     LDA #$48 ; TODO: Print items
;$8DCA  85 02     STA $02 
;$8DCC  A9 F9     LDA #$F9
;$8DCE  85 03     STA $03 
		org $8dc8
		lda #<item1_screen_pos
		sta $02
		lda #>item1_screen_pos
		sta $03
	
;-------------------------------------------------------------------------	
;$8DD5  A9 60     LDA #$60
;$8DD7  85 02     STA $02 
;$8DD9  A9 F9     LDA #$F9
;$8DDB  85 03     STA $03 
		org $8dd5
		lda #<item2_screen_pos
		sta $02
		lda #>item2_screen_pos
		sta $03

;-------------------------------------------------------------------------	
;$8DFA  C9 48     CMP #$48	; TODO: this checks for address pushed on the stack!
;$8DFC  F0 0B     BEQ L_BRS_($8E09)_($8DFC) OK
;$8DFE  A9 2C     LDA #$2C	; Set color pointer (for second item)
;$8E00  85 02     STA $02 
;$8E02  A9 DF     LDA #$DF
;$8E04  85 03     STA $03 
;$8E06  4C 11 8E  JMP L_JMP_($8E11)_($8E06) OK
;//------------------------------
;L_BRS_($8E09)_($8DFC) OK
;//------------------------------
;$8E09  A9 29     LDA #$29	; Set color pointer for first item
;$8E0B  85 02     STA $02 
;$8E0D  A9 DF     LDA #$DF
;$8E0F  85 03     STA $03 
;//------------------------------
;L_JMP_($8E11)_($8E06) OK
;L_JMP_($8E11)_($C85F) OK
;//------------------------------
;$8E11  A6 08     LDX $08 
;$8E13  BD AA 38  LDA $38AA,X 	; colors of items
;$8E16  A0 00     LDY #$00
;$8E18  91 02     STA ($02),Y 	; set item color
;$8E1A  C8        INY 
;$8E1B  91 02     STA ($02),Y 
;$8E1D  A0 28     LDY #$28	; Stride of color ram
;$8E1F  91 02     STA ($02),Y 
;$8E21  C8        INY 
;$8E22  91 02     STA ($02),Y 

		org $8dfa
		ldy #$00
		cmp #<item1_screen_pos
		beq l3
		ldy #$01
l3		ldx $08
		lda $38aa,x
		sta item_color,y
		
		:$8e24-* nop
		ert *<>$8e24
		
;-------------------------------------------------------------------------	
;$92DC  A0 1A     LDY #$1A	; set ornament color to yellow
;$92DE  A9 70     LDA #$70
;//------------------------------
;L_BRS_($92E0)_($92ED) OK
;//------------------------------
;$92E0  99 06 DC  STA $DC06,Y 
;$92E3  99 2E DC  STA $DC2E,Y 
;$92E6  99 FE DE  STA $DEFE,Y 
;$92E9  99 D6 DE  STA $DED6,Y 
;$92EC  88        DEY 
;$92ED  10 F1     BPL L_BRS_($92E0)_($92ED) OK
;$92EF  A9 DC     LDA #$DC
;$92F1  8D 05 93  STA $9305 
;$92F4  8D 08 93  STA $9308 
;$92F7  A9 57     LDA #$57
;$92F9  8D 04 93  STA $9304 
;$92FC  8D 07 93  STA $9307 
;$92FF  A0 18     LDY #$18
;//------------------------------
;L_BRS_($9301)_($9315) OK
;L_BRS_($9301)_($9322) OK
;//------------------------------
;$9301  A9 70     LDA #$70
;$9303  8D 56 DC  STA $DC56 
;$9306  99 56 DC  STA $DC56,Y 
;$9309  18        CLC 
;$930A  AD 04 93  LDA $9304 
;$930D  69 28     ADC #$28
;$930F  8D 04 93  STA $9304 
;$9312  8D 07 93  STA $9307 
;$9315  90 EA     BCC L_BRS_($9301)_($9315) OK
;$9317  EE 05 93  INC $9305 
;$931A  EE 08 93  INC $9308 
;$931D  AD 05 93  LDA $9305 
;$9320  C9 DF     CMP #$DF
;$9322  D0 DD     BNE L_BRS_($9301)_($9322) OK
;$9324  60        RTS 
		org $92DC
		:$9324-* nop
		ert *<>$9324
		rts
	
;-------------------------------------------------------------------------	
;$94D9  85 CC     STA $CC 	; TODO: Start SFX
;$94DB  84 CD     STY $CD 
;$94DD  8E 8D 94  STX $948D 
		org $94d9
		sta $cc
		sty $cd
		stx $948d
		rts
	
;-------------------------------------------------------------------------	
;$956D  A2 16     LDX #$16		; TODO InitSID
;//------------------------------
;L_BRS_($956F)_($957A) OK
;//------------------------------
;$956F  A9 08     LDA #$08
;$9571  9D 00 D4  STA $D400,X 
;$9574  A9 00     LDA #$00
;$9576  9D 00 D4  STA $D400,X 
;$9579  CA        DEX 
;$957A  10 F3     BPL L_BRS_($956F)_($957A) OK
;$957C  8D 40 94  STA $9440 
;$957F  8D 63 94  STA $9463 
;$9582  8D 86 94  STA $9486 
;$9585  A2 0F     LDX #$0F
;$9587  8E 18 D4  STX $D418 
;//------------------------------
;L_BRS_($958A)_($9548) OK
;L_BRS_($958A)_($959A) OK
;L_BRS_($958A)_($95CA) OK
;//------------------------------
;$958A  60        RTS 
		org $956d
		:$958a-* nop
		ert *<>$958a
		rts
		
		org	$7842
blitter 
		lda $02
		pha
		lda $03
		pha
		lda $04
		pha
		
		lda $68
		beq blitter_start
		jmp blitter_scrolled
		
blitter_start		
		; $02 - source - framebuffer
		; $06 - screen (bitmap)
		lda $67
		clc 
		adc #<(framebuffer+1)
		sta $02
		lda #>(framebuffer+1)
		adc #0
		sta $03
		lda #<(bitmapscreen+7)
		sta $06
		lda #>(bitmapscreen+7)
		sta $07
		clc
		
		lda #$0b
		sta $08
		; one block ($0a scanlines)
block	ldx #$9
		ldy #$0
		; copy one line from framebuffer to screen
scanline		lda ($02),y		; byte 0
		sta ($06),y
		iny
		lda ($02),y		; byte 1
		sta ($06),y
		iny
		lda ($02),y		; byte 2
		sta ($06),y
		iny
		lda ($02),y		; byte 3
		sta ($06),y
		iny
		lda ($02),y		; byte 4
		sta ($06),y
		iny
		lda ($02),y		; byte 5
		sta ($06),y
		iny
		lda ($02),y		; byte 6
		sta ($06),y
		iny
		lda ($02),y		; byte 7
		sta ($06),y
		iny
		lda ($02),y		; byte 8
		sta ($06),y
		iny
		lda ($02),y		; byte 9
		sta ($06),y
		iny
		lda ($02),y		; byte a
		sta ($06),y
		iny
		lda ($02),y		; byte b
		sta ($06),y
		iny
		lda ($02),y		; byte c
		sta ($06),y
		iny
		lda ($02),y		; byte d
		sta ($06),y
		iny
		lda ($02),y		; byte e
		sta ($06),y
		iny
		lda ($02),y		; byte f
		sta ($06),y
		iny
		lda ($02),y		; byte 10
		sta ($06),y
		iny
		lda ($02),y		; byte 11
		sta ($06),y
		iny
		lda ($02),y		; byte 12
		sta ($06),y
		iny
		lda ($02),y		; byte 13
		sta ($06),y
		iny
		lda ($02),y		; byte 14
		sta ($06),y
		iny
		lda ($02),y		; byte 15
		sta ($06),y
		iny
		lda ($02),y		; byte 16
		sta ($06),y
		iny
		;lda ($02),y		; byte 17
		;sta ($06),y
		lda #$00
		sta ($06),y
		iny
		; prepare for next scan line
		lda $06
		adc #$08
		sta $06
		bcc l4
		inc $07
		clc
l4		dex
		;bpl scanline
		bmi l5
		jmp scanline
		; prepare for next scanline block
l5		tya
		adc $02	; adjust source pointer
		sta $02
		bcc l6
		inc $03
		clc
l6		tya
		adc $06	; adjust target pointer
		sta $06
		bcc l7
		inc $07
		clc
l7		dec $08
		;bpl block
		bmi l8
		jmp block
		; last eight scanlines
l8		lda $08
		cmp #$ff
		bne blitter_end
		clc
		ldx #$07
		ldy #$00
		jmp scanline
blitter_end
;		ldx #$00
;		lda $68
;		beq l9
;		ldx #$02
;l9		stx workscreen_hscroll

		pla
		sta $04
		pla
		sta $03
		pla
		sta $02
		rts
		
blitter_scrolled
		; $02 - source - framebuffer
		; $06 - screen (bitmap)
		lda $67
		tay
		clc 
		adc #<(framebuffer+1)
		sta $02
		lda #>(framebuffer+1)
		adc #0
		sta $03
		lda #<(bitmapscreen+7)
		sta $06
		lda #>(bitmapscreen+7)
		sta $07
		clc
		; prepare first byte
		ldx framebuffer,y
		
		lda #$0b
		sta $08
		; one block ($0a scanlines)
block_scroll	
		lda #$9
		sta $04
		ldy #$0
		; copy one line from framebuffer to screen
scanline_scroll		
		lda shiftup,x		; byte 0
		sta $09
		lda ($02),y
		tax
		lda shiftdown,x
		ora $09
		sta ($06),y
		iny
		lda shiftup,x		; byte 1
		sta $09
		lda ($02),y
		tax
		lda shiftdown,x
		ora $09
		sta ($06),y
		iny
		lda shiftup,x		; byte 2
		sta $09
		lda ($02),y
		tax
		lda shiftdown,x
		ora $09
		sta ($06),y
		iny
		lda shiftup,x		; byte 3
		sta $09
		lda ($02),y
		tax
		lda shiftdown,x
		ora $09
		sta ($06),y
		iny
		lda shiftup,x		; byte 4
		sta $09
		lda ($02),y
		tax
		lda shiftdown,x
		ora $09
		sta ($06),y
		iny
		lda shiftup,x		; byte 5
		sta $09
		lda ($02),y
		tax
		lda shiftdown,x
		ora $09
		sta ($06),y
		iny
		lda shiftup,x		; byte 6
		sta $09
		lda ($02),y
		tax
		lda shiftdown,x
		ora $09
		sta ($06),y
		iny
		lda shiftup,x		; byte 7
		sta $09
		lda ($02),y
		tax
		lda shiftdown,x
		ora $09
		sta ($06),y
		iny
		lda shiftup,x		; byte 8
		sta $09
		lda ($02),y
		tax
		lda shiftdown,x
		ora $09
		sta ($06),y
		iny
		lda shiftup,x		; byte 9
		sta $09
		lda ($02),y
		tax
		lda shiftdown,x
		ora $09
		sta ($06),y
		iny
		lda shiftup,x		; byte a
		sta $09
		lda ($02),y
		tax
		lda shiftdown,x
		ora $09
		sta ($06),y
		iny
		lda shiftup,x		; byte b
		sta $09
		lda ($02),y
		tax
		lda shiftdown,x
		ora $09
		sta ($06),y
		iny
		lda shiftup,x		; byte c
		sta $09
		lda ($02),y
		tax
		lda shiftdown,x
		ora $09
		sta ($06),y
		iny
		lda shiftup,x		; byte d
		sta $09
		lda ($02),y
		tax
		lda shiftdown,x
		ora $09
		sta ($06),y
		iny
		lda shiftup,x		; byte e
		sta $09
		lda ($02),y
		tax
		lda shiftdown,x
		ora $09
		sta ($06),y
		iny
		lda shiftup,x		; byte f
		sta $09
		lda ($02),y
		tax
		lda shiftdown,x
		ora $09
		sta ($06),y
		iny
		lda shiftup,x		; byte 10
		sta $09
		lda ($02),y
		tax
		lda shiftdown,x
		ora $09
		sta ($06),y
		iny
		lda shiftup,x		; byte 11
		sta $09
		lda ($02),y
		tax
		lda shiftdown,x
		ora $09
		sta ($06),y
		iny
		lda shiftup,x		; byte 12
		sta $09
		lda ($02),y
		tax
		lda shiftdown,x
		ora $09
		sta ($06),y
		iny
		lda shiftup,x		; byte 13
		sta $09
		lda ($02),y
		tax
		lda shiftdown,x
		ora $09
		sta ($06),y
		iny
		lda shiftup,x		; byte 14
		sta $09
		lda ($02),y
		tax
		lda shiftdown,x
		ora $09
		sta ($06),y
		iny
		lda shiftup,x		; byte 15
		sta $09
		lda ($02),y
		tax
		lda shiftdown,x
		ora $09
		sta ($06),y
		iny
		lda shiftup,x		; byte 16
		sta $09
		lda ($02),y
		tax
		lda shiftdown,x
		ora $09
		sta ($06),y
		iny
		lda ($02),y			; byte 17
		tax
		iny
		; prepare for next scan line
		lda $06
		adc #$08
		sta $06
		bcc b4
		inc $07
		clc
b4		dec $04
		;bpl scanline
		bmi b5
		jmp scanline_scroll
		; prepare for next scanline block
b5		tya
		adc $02	; adjust source pointer
		sta $02
		bcc b6
		inc $03
		clc
b6		tya
		adc $06	; adjust target pointer
		sta $06
		bcc b7
		inc $07
		clc
b7		dec $08
		;bpl block
		bmi b8
		jmp block_scroll
		; last eight scanlines
b8		lda $08
		cmp #$ff
		beq b9
		jmp blitter_end
b9		clc
		lda #$07
		sta $04
		ldy #$00
		jmp scanline_scroll
		
		
printcharbitmap equ *
		lda ($6a),y
		cmp #$20
		beq p3
		cmp #$2e
		beq p2
		sec
		sbc #$41
		jmp p1
p3		lda #$1a
		jmp p1
p2		lda #$1b
p1		asl @
		asl @
		asl @
		tax
		tya
		pha
		lda $07
		pha
		clc
		ldy #$0
		lda $371c,x
		sta ($06),y
		tya
		adc #$20
		tay
		lda $371d,x
		sta ($06),y
		tya
		adc #$20
		tay
		lda $371e,x
		sta ($06),y
		tya
		adc #$20
		tay
		lda $371f,x
		sta ($06),y
		tya
		adc #$20
		tay
		lda $3720,x
		sta ($06),y
		tya
		adc #$20
		tay
		lda $3721,x
		sta ($06),y
		tya
		adc #$20
		tay
		lda $3722,x
		sta ($06),y
		tya
		adc #$20
		tay
		lda $3723,x
		sta ($06),y
		pla
		sta $07
		pla
		tay
		rts

atariinit	equ *
		; init ANTIC + interrupts
		sei
		lda #0
		sta nmien	; disable interrupts
		sta irqen
		lda #%11111110
		sta portb
		lda #<nmi
		sta $fffa
		lda #>nmi
		sta $fffb
		lda #<irq
		sta $fffe
		lda #>irq
		sta $ffff
		
		; clear mem
		lda #0
		sta dmactl
		tax
memclear	sta bitmapchars,x
		sta bitmapchars+$100,x
		sta bitmapchars+$200,x
		sta bitmapchars+$300,x
		sta statuspanel,x
		sta statuspanel+$100,x
		sta statuspanel+$200,x
		sta statuspanel+$300,x
		sta bitmapscreen,x
		sta bitmapscreen+$100,x
		sta bitmapscreen+$200,x
		sta bitmapscreen+$300,x
		sta bitmapscreen+$400,x
		sta bitmapscreen+$500,x
		sta bitmapscreen+$600,x
		sta bitmapscreen+$700,x
		sta bitmapscreen+$800,x
		sta bitmapscreen+$900,x
		sta bitmapscreen+$a00,x
		sta bitmapscreen+$b00,x
		sta bitmapscreen+$c00,x
		sta bitmapscreen+$d00,x
		sta bitmapscreen+$e00,x
		sta bitmapscreen+$f00,x
		inx
		bne memclear
		
		; set screen
		lda #<dlist
		sta dlptr
		lda #>dlist
		sta dlptr+1
		lda #%00100001
		sta dmactl
		lda #$0
		sta workscreen_hscroll
		sta hscrol
		sta vscrol
		sta pmbase
		lda #$c0
		sta nmien
		; init POKEY
		ldx #$08
		lda #$00
		sta skctl
clear	sta $d200,x
		dex
		bpl clear
		lda #$03
		sta skctl
		; init GTIA
		ldx #$0f
		lda #$00
cleargtia	sta $d000,x
		dex
		bpl cleargtia
		; set colors
		lda #black
		sta colbak
		sta colpf2
		lda #white
		sta colpf1
		rts

nmi		bit nmist
		bpl vbl
		
dli		pha
		lda >statuspanel
		sta wsync
		sta chbase
		pla
		rti
		
vbl		pha
		; set chbase for screen
		lda >bitmapchars
		sta chbase
		; set hscroll
		lda workscreen_hscroll
		eor #$0f
		sta hscrol
		; check for ESC key
		lda skstat
		and #$4
		bne nokey
		lda kbcode
		cmp #$1c	; ESC
		bne nokey
		lda #$ff
		sta $6c
nokey
		pla
irq		rti
	

dlist
		dta $70, $70, $70
		dta $42, a(scr0), $02	; top ornament
		dta $4f, a(bitmapscreen), $0f, $0f, $0f, $0f, $0f, $0f, $0f	; line 0
		dta $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f					; line 1
		dta $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f					; line 2
		dta $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f					; line 3
		dta $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f					; line 4
		dta $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f					; line 5
		dta $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f					; line 6
		dta $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f					; line 7
		dta $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f					; line 8
		dta $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f					; line 9
		dta $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f					; line a
		dta $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f					; line b
		dta $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f					; line c
		dta $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f					; line d
		dta $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f					; line e
		dta $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f					; line f
		dta $42, a(scr0 + $40), $82	; bottom ornament
		dta $42, a(scr0), $02, $02, $02				; status panel
		dta $41, a(dlist)

		/*
		.align $400
dlist
		dta $70, $70, $70
		dta $42, a(scr0), $02	; top ornament
		dta $00	; one empty line
		dta $5f, a(bitmapscreen+$00*$20)
		dta $5f, a(bitmapscreen+$01*$20)
		dta $5f, a(bitmapscreen+$02*$20)
		dta $5f, a(bitmapscreen+$03*$20)
		dta $5f, a(bitmapscreen+$04*$20)
		dta $5f, a(bitmapscreen+$05*$20)
		dta $5f, a(bitmapscreen+$06*$20)
		dta $5f, a(bitmapscreen+$07*$20)
		dta $5f, a(bitmapscreen+$08*$20)
		dta $5f, a(bitmapscreen+$09*$20)
		dta $5f, a(bitmapscreen+$0a*$20)
		dta $5f, a(bitmapscreen+$0b*$20)
		dta $5f, a(bitmapscreen+$0c*$20)
		dta $5f, a(bitmapscreen+$0d*$20)
		dta $5f, a(bitmapscreen+$0e*$20)
		dta $5f, a(bitmapscreen+$0f*$20)

		dta $5f, a(bitmapscreen+$10*$20)
		dta $5f, a(bitmapscreen+$11*$20)
		dta $5f, a(bitmapscreen+$12*$20)
		dta $5f, a(bitmapscreen+$13*$20)
		dta $5f, a(bitmapscreen+$14*$20)
		dta $5f, a(bitmapscreen+$15*$20)
		dta $5f, a(bitmapscreen+$16*$20)
		dta $5f, a(bitmapscreen+$17*$20)
		dta $5f, a(bitmapscreen+$18*$20)
		dta $5f, a(bitmapscreen+$19*$20)
		dta $5f, a(bitmapscreen+$1a*$20)
		dta $5f, a(bitmapscreen+$1b*$20)
		dta $5f, a(bitmapscreen+$1c*$20)
		dta $5f, a(bitmapscreen+$1d*$20)
		dta $5f, a(bitmapscreen+$1e*$20)
		dta $5f, a(bitmapscreen+$1f*$20)

		dta $5f, a(bitmapscreen+$20*$20)
		dta $5f, a(bitmapscreen+$21*$20)
		dta $5f, a(bitmapscreen+$22*$20)
		dta $5f, a(bitmapscreen+$23*$20)
		dta $5f, a(bitmapscreen+$24*$20)
		dta $5f, a(bitmapscreen+$25*$20)
		dta $5f, a(bitmapscreen+$26*$20)
		dta $5f, a(bitmapscreen+$27*$20)
		dta $5f, a(bitmapscreen+$28*$20)
		dta $5f, a(bitmapscreen+$29*$20)
		dta $5f, a(bitmapscreen+$2a*$20)
		dta $5f, a(bitmapscreen+$2b*$20)
		dta $5f, a(bitmapscreen+$2c*$20)
		dta $5f, a(bitmapscreen+$2d*$20)
		dta $5f, a(bitmapscreen+$2e*$20)
		dta $5f, a(bitmapscreen+$2f*$20)
		
		dta $5f, a(bitmapscreen+$30*$20)
		dta $5f, a(bitmapscreen+$31*$20)
		dta $5f, a(bitmapscreen+$32*$20)
		dta $5f, a(bitmapscreen+$33*$20)
		dta $5f, a(bitmapscreen+$34*$20)
		dta $5f, a(bitmapscreen+$35*$20)
		dta $5f, a(bitmapscreen+$36*$20)
		dta $5f, a(bitmapscreen+$37*$20)
		dta $5f, a(bitmapscreen+$38*$20)
		dta $5f, a(bitmapscreen+$39*$20)
		dta $5f, a(bitmapscreen+$3a*$20)
		dta $5f, a(bitmapscreen+$3b*$20)
		dta $5f, a(bitmapscreen+$3c*$20)
		dta $5f, a(bitmapscreen+$3d*$20)
		dta $5f, a(bitmapscreen+$3e*$20)
		dta $5f, a(bitmapscreen+$3f*$20)

		dta $5f, a(bitmapscreen+$40*$20)
		dta $5f, a(bitmapscreen+$41*$20)
		dta $5f, a(bitmapscreen+$42*$20)
		dta $5f, a(bitmapscreen+$43*$20)
		dta $5f, a(bitmapscreen+$44*$20)
		dta $5f, a(bitmapscreen+$45*$20)
		dta $5f, a(bitmapscreen+$46*$20)
		dta $5f, a(bitmapscreen+$47*$20)
		dta $5f, a(bitmapscreen+$48*$20)
		dta $5f, a(bitmapscreen+$49*$20)
		dta $5f, a(bitmapscreen+$4a*$20)
		dta $5f, a(bitmapscreen+$4b*$20)
		dta $5f, a(bitmapscreen+$4c*$20)
		dta $5f, a(bitmapscreen+$4d*$20)
		dta $5f, a(bitmapscreen+$4e*$20)
		dta $5f, a(bitmapscreen+$4f*$20)

		dta $5f, a(bitmapscreen+$50*$20)
		dta $5f, a(bitmapscreen+$51*$20)
		dta $5f, a(bitmapscreen+$52*$20)
		dta $5f, a(bitmapscreen+$53*$20)
		dta $5f, a(bitmapscreen+$54*$20)
		dta $5f, a(bitmapscreen+$55*$20)
		dta $5f, a(bitmapscreen+$56*$20)
		dta $5f, a(bitmapscreen+$57*$20)
		dta $5f, a(bitmapscreen+$58*$20)
		dta $5f, a(bitmapscreen+$59*$20)
		dta $5f, a(bitmapscreen+$5a*$20)
		dta $5f, a(bitmapscreen+$5b*$20)
		dta $5f, a(bitmapscreen+$5c*$20)
		dta $5f, a(bitmapscreen+$5d*$20)
		dta $5f, a(bitmapscreen+$5e*$20)
		dta $5f, a(bitmapscreen+$5f*$20)

		dta $5f, a(bitmapscreen+$60*$20)
		dta $5f, a(bitmapscreen+$61*$20)
		dta $5f, a(bitmapscreen+$62*$20)
		dta $5f, a(bitmapscreen+$63*$20)
		dta $5f, a(bitmapscreen+$64*$20)
		dta $5f, a(bitmapscreen+$65*$20)
		dta $5f, a(bitmapscreen+$66*$20)
		dta $5f, a(bitmapscreen+$67*$20)
		dta $5f, a(bitmapscreen+$68*$20)
		dta $5f, a(bitmapscreen+$69*$20)
		dta $5f, a(bitmapscreen+$6a*$20)
		dta $5f, a(bitmapscreen+$6b*$20)
		dta $5f, a(bitmapscreen+$6c*$20)
		dta $5f, a(bitmapscreen+$6d*$20)
		dta $5f, a(bitmapscreen+$6e*$20)
		dta $5f, a(bitmapscreen+$6f*$20)

		dta $5f, a(bitmapscreen+$70*$20)
		dta $5f, a(bitmapscreen+$71*$20)
		dta $5f, a(bitmapscreen+$72*$20)
		dta $5f, a(bitmapscreen+$73*$20)
		dta $5f, a(bitmapscreen+$74*$20)
		dta $5f, a(bitmapscreen+$75*$20)
		dta $5f, a(bitmapscreen+$76*$20)
		dta $5f, a(bitmapscreen+$77*$20)
		dta $5f, a(bitmapscreen+$78*$20)
		dta $5f, a(bitmapscreen+$79*$20)
		dta $5f, a(bitmapscreen+$7a*$20)
		dta $5f, a(bitmapscreen+$7b*$20)
		dta $5f, a(bitmapscreen+$7c*$20)
		dta $5f, a(bitmapscreen+$7d*$20)
		dta $5f, a(bitmapscreen+$7e*$20)
		dta $5f, a(bitmapscreen+$7f*$20)

		dta $00 ; one empty line
		dta $42, a(scr0 + $40), $82	; bottom ornament
		dta $42, a(scr0), $02, $02, $02				; status panel
		dta $41, a(dlist)
		*/
		
scr0	:128 dta #

			.align $100, $ff
shiftup		:256 dta [#&$f]<<4
shiftdown	:256 dta #>>4

c64colors	dta $00, $0e, $26, $9c, $58, $ba, $74, $ee, $18, $e6, $2a, $06, $0a, $be, $7a, $0e

morale_color		dta $00
workscreen_color	dta $00
item_color			dta $00, $00
workscreen_hscroll	dta $00
		
		ert *>$832f
	
		run start
		