|
Cheese / Neos Mouse projekti Päivitys 2010: [VICE] emuloi NEOS-hiirtä versiosta 2.0 lähtien. Päivitys 2005: Kuvat ovatkin 304 pikseliä korkeita ja muutakin lisätietoa on löytynyt formaatista. Päivitys 2004: Kolmen vuoden kuluttua projekti on saatu päätökseen, kun sähköpostilla tuli ratkaisu ongelmaan. Jani teki tarvittavan muutoksen, jolla Cheesepaint saatiin tottelemaan joystickohjausta. Kaupan päälle tuli vielä toinenkin versio Cheesesta. Sivun lopussa on vielä joystickrutiinin assemblylistaus, ei kaunista mutta toimivaa koodia ja se on pääasia. Lähtötilanne 2001: Tämä projekti sai alkunsa Antti Mäkysen pyynnöstä tutkia saako Cheese piirto-ohjelmalla aikoinaan tehtyjä kuvia enää millään auki. Ongelmana on se, että Cheese on tullut Neos-merkkisen hiiren kylkiäisenä, eikä mikään nykyinen kuusnelosemulaattori tunne kyseistä rottaa. Se ei ole 1350- eikä 1351-hiirien kanssa yhteensopiva. Ohjelma käynnistyy kyllä, mutta kursoria ei saa liikuteltua, jotta kuvat saisi ladattua ruudulle. Tiedostot
Cheese kuvaformaatti on 320x304 multicolor ja se rakentuu seuraavanlaisista osista:
Janin tekemä ohjelma, jolla Cheese kuvia voi katsella ja tallentaa Koalapainter muotoon:
Cheese osaa ilmeisesti tehdä myös hires kuvia, joiden katselemiseen löytyy kuusneloselle:
Cheesestä purettu Neos-hiiren lukurutiini Cheese ohjelma siirtää itsensä käynnistyksen jälkeen $3000 muistipaikkaa ylemmäksi, tästä johtuen rutiinissa osa osoitteista näyttää virheellisiltä. Assemblylistaus on tehty 64copy-ohjelmalla, joka antaa osoitteille omat nimensä. 6c00 ad 00 dc lda cia1porta 6c03 48 pha 6c04 ad 01 dc lda cia1portb 6c07 48 pha 6c08 ad 02 dc lda cia1ddr_a 6c0b 48 pha 6c0c ad 03 dc lda cia1ddr_b 6c0f 48 pha 6c10 a9 10 lda #$10 6c12 8d 02 dc sta cia1ddr_a 6c15 ad 00 dc lda cia1porta 6c18 29 ef and #$ef 6c1a 8d 00 dc sta cia1porta 6c1d a2 08 ldx #$08 6c1f 20 37 3d jsr sub_3d37 6c22 ad 00 dc lda cia1porta 6c25 0a asl a 6c26 0a asl a 6c27 0a asl a 6c28 0a asl a 6c29 85 0f sta zp_0f 6c2b ad 00 dc lda cia1porta 6c2e 09 10 ora #$10 6c30 8d 00 dc sta cia1porta 6c33 a2 05 ldx #$05 6c35 20 37 3d jsr sub_3d37 6c38 ad 00 dc lda cia1porta 6c3b 29 0f and #$0f 6c3d 05 0f ora zp_0f 6c3f 85 0f sta zp_0f 6c41 ad 00 dc lda cia1porta 6c44 29 ef and #$ef 6c46 8d 00 dc sta cia1porta 6c49 a2 05 ldx #$05 6c4b 20 37 3d jsr sub_3d37 6c4e ad 00 dc lda cia1porta 6c51 0a asl a 6c52 0a asl a 6c53 0a asl a 6c54 0a asl a 6c55 85 0e sta zp_0d+1 6c57 ad 00 dc lda cia1porta 6c5a 09 10 ora #$10 6c5c 8d 00 dc sta cia1porta 6c5f a2 05 ldx #$05 6c61 20 37 3d jsr sub_3d37 6c64 ad 00 dc lda cia1porta 6c67 29 0f and #$0f 6c69 05 0e ora zp_0d+1 6c6b 85 0e sta zp_0d+1 6c6d ad 19 d4 lda paddle_x 6c70 c9 ff cmp #$ff 6c72 f0 05 beq skip6c79 6c74 a9 00 lda #$00 6c76 4c 7b 3c jmp goto3c7b 6c79 a9 01 skip6c79 lda #$01 6c7b 85 63 sta zp_63 6c7d 68 pla 6c7e 8d 03 dc sta cia1ddr_b 6c81 68 pla 6c82 8d 02 dc sta cia1ddr_a 6c85 68 pla 6c86 8d 01 dc sta cia1portb 6c89 68 pla 6c8a 8d 00 dc sta cia1porta 6c8d 60 rts Lisäksi osoitteessa 6d37 oleva looppi, jota kutsutaan ylemmästä rutiinista osoitteella 3d37: 6d37 ea loop6d37 nop 6d38 ea nop 6d39 ea nop 6d3a ca dex 6d3b d0 fa bne loop6d37 6d3d 60 rts Uusi joystick lukurutiini Cheesepaintille / Jani
; cheesepaint - routine to replace NEOS-mouse with joy2
; * = $39c2 ;cheese v1
* = $3c00 ;cheese v2 (Load to $6c00)
;---------------------------------------
JOYADDR = $DC00 ;Joy port 2
;---------------------------------------
LDA JOYADDR
AND #%00000001 ;UP
BNE OVER01
LDA JOYY
CMP #$00 ;upper limit
BEQ OVER01
DEC JOYY
JSR UPDT
OVER01 LDA JOYADDR
AND #%00000010 ;DOWN
BNE OVER02
LDA JOYY
CMP #$C7 ;lower limit
BEQ OVER02
INC JOYY
JSR UPDT
OVER02 LDA JOYADDR
AND #%00000100 ;LEFT
BNE OVER03
LDA JOYX
CMP #$00 ;left limit
BEQ OVER03
DEC JOYX
JSR UPDT
OVER03 LDA JOYADDR
AND #%00001000 ;RIGHT
BNE OVER04
LDA JOYX
CMP #$9f ;right limit
BEQ OVER04
INC JOYX
JSR UPDT
OVER04
LDA JOYADDR ;FIRE
AND #%00010000
BNE NOFIRE
dec fdel+1 ;delay firebutton
fdel lda #$04
bne nofire
lda #$04
sta fdel+1
lda JOYF
eor #$01
sta JOYF
jsr UPDT
NOFIRE
RTS
UPDT LDA JOYY ;update zp:s for pointer
; STA $67 ;cheese v1
STA $6c ;cheese v2
LDA JOYX
; STA $68 ;cheese v1
STA $6d ;cheese v2
LDA JOYF
; sta $5e ;cheese v1
sta $63 ;cheese v2
RTS
;---------------------------------------
JOYX .BYTE $00
JOYY .BYTE $00
JOYF .BYTE $00
;---------------------------------------
© Niila T Rautanen 2010 [Takaisin] |