mirror of
https://github.com/antoinevignau/source.git
synced 2024-06-15 00:29:33 +00:00
241 lines
6.0 KiB
ArmAsm
241 lines
6.0 KiB
ArmAsm
*
|
|
* Image Oric vers IIgs
|
|
*
|
|
|
|
mx %11
|
|
org $1000
|
|
lst off
|
|
|
|
*---
|
|
|
|
NEWVIDEO = $c029
|
|
|
|
dpPX = $fc
|
|
dpFROM = dpPX+2
|
|
|
|
*--- 16-bit
|
|
|
|
clc
|
|
xce
|
|
sep #$30
|
|
lda #$c1
|
|
sta NEWVIDEO
|
|
rep #$30
|
|
|
|
*--- Clear screen
|
|
|
|
ldx #0
|
|
txa
|
|
]lp stal $e12000,x
|
|
inx
|
|
inx
|
|
bpl ]lp
|
|
|
|
*--- Palette
|
|
|
|
ldx #0
|
|
]lp lda palette320,x
|
|
stal $e19e00,x
|
|
inx
|
|
inx
|
|
cpx #32
|
|
bcc ]lp
|
|
|
|
*--- PrŽparation de l'mage
|
|
|
|
lda #myPIC
|
|
sta dpFROM
|
|
|
|
*--- Traitement de l'image
|
|
|
|
sep #$20 ; A = 8-bit
|
|
|
|
ldx #0
|
|
theLOOP ldy #0
|
|
]lp lda (dpFROM),y
|
|
jsr outputPX
|
|
iny
|
|
cpy #17
|
|
bcc ]lp
|
|
|
|
rep #$20
|
|
|
|
lda dpFROM
|
|
clc
|
|
adc #17
|
|
sta dpFROM
|
|
|
|
txa
|
|
clc
|
|
adc #160-51 ; 17x3 (6 bits = 3 pixels)
|
|
tax
|
|
sep #$20
|
|
cpx #84*160 ; 84 lignes
|
|
bcc theLOOP
|
|
|
|
sec
|
|
xce
|
|
sep #$30
|
|
rts
|
|
|
|
*--- Output pixel
|
|
*
|
|
* bit
|
|
* 7 :
|
|
* 6 :
|
|
* 5 : pixel 1
|
|
* 4 : pixel 2
|
|
* 3 : pixel 3
|
|
* 2 : pixel 4
|
|
* 1 : pixel 5
|
|
* 0 : pixel 6
|
|
|
|
outputPX pha
|
|
|
|
stz dpPX
|
|
lda 1,s
|
|
and #%0010_0000
|
|
beq output1
|
|
lda #$f0
|
|
sta dpPX
|
|
output1 lda 1,s
|
|
and #%0001_0000
|
|
beq output2
|
|
lda #$0f
|
|
ora dpPX
|
|
sta dpPX
|
|
output2 lda dpPX
|
|
stal $e12000,x
|
|
inx
|
|
|
|
stz dpPX
|
|
lda 1,s
|
|
and #%0000_1000
|
|
beq output3
|
|
lda #$f0
|
|
sta dpPX
|
|
output3 lda 1,s
|
|
and #%0000_0100
|
|
beq output4
|
|
lda #$0f
|
|
ora dpPX
|
|
sta dpPX
|
|
output4 lda dpPX
|
|
stal $e12000,x
|
|
inx
|
|
|
|
stz dpPX
|
|
lda 1,s
|
|
and #%0000_0010
|
|
beq output5
|
|
lda #$f0
|
|
sta dpPX
|
|
output5 lda 1,s
|
|
and #%0000_0001
|
|
beq output6
|
|
lda #$0f
|
|
ora dpPX
|
|
sta dpPX
|
|
output6 lda dpPX
|
|
stal $e12000,x
|
|
inx
|
|
|
|
pla
|
|
rts
|
|
|
|
*----------- DATA : palette
|
|
|
|
palette320 dw $0000,$0777,$0841,$072C,$000F,$0080,$0F70,$0D00
|
|
dw $0FA9,$0FF0,$00E0,$04DF,$0DAF,$078F,$0CCC,$0FFF
|
|
|
|
o2gsCOLH hex 00,07,0A,09,04,0C,0B,0F
|
|
o2gsCOLL hex 00,70,A0,90,40,C0,B0,F0
|
|
|
|
*----------- DATA : DRACULA
|
|
|
|
myPIC
|
|
HEX 404040405F7F6040404040404040404040
|
|
HEX 404040437F7F7E40404040404040404040
|
|
HEX 4040405F7F7F7F78404040404040404040
|
|
HEX 4040437F7F7E7F7E404040404040404040
|
|
HEX 40405F7F7F604F7F604040404040404040
|
|
HEX 40437F7F7040437F704040404040404040
|
|
HEX 40405F7E4040407F784040404040404040
|
|
HEX 40417F704040404F7C4040404040404040
|
|
HEX 40404F40404040437E4040404040404040
|
|
HEX 40405E405C4040417F4040404040404040
|
|
HEX 40404E417C4040407F6040404040404040
|
|
HEX 40404C437E4040405F7040404040404040
|
|
HEX 40405C477F4C40404F7840404040404040
|
|
HEX 4040584F7F704040477C40404040404040
|
|
HEX 4040584F7E436040477C40404040404040
|
|
HEX 40405040407C4F40437E40404040404040
|
|
HEX 404050404F405070437E40404040404040
|
|
HEX 404050437C436048417F40404040404040
|
|
HEX 4040705C405C4040417F40404040404040
|
|
HEX 4040704043504040417F60404040404040
|
|
HEX 404070404F404040407F60404040404040
|
|
HEX 404173617E404760407F70404040404040
|
|
HEX 4041705E42405F70407F70404040404040
|
|
HEX 4041704042405F78407F78404040404040
|
|
HEX 4041704041407F78405F78404040404040
|
|
HEX 40417040415F7C7C405F7C404040404040
|
|
HEX 40417040415F704E405F7C404040404040
|
|
HEX 40417770465F716F405F7E404040404040
|
|
HEX 4040777F705F6163404F7E404140404040
|
|
HEX 4040777F784F4346404F74404770404040
|
|
HEX 4040777F79677F7C404F64417848404040
|
|
HEX 404057737A417F78424F464E4364404040
|
|
HEX 4040576078517F7042474F505E44404040
|
|
HEX 4040574650486040434651677F42404040
|
|
HEX 40405646504440404346614F7E42404040
|
|
HEX 4040667F7042404043454C7F7E41404040
|
|
HEX 40406D7F704140404346507F7C41404040
|
|
HEX 4041407F60587F474740607F7840604040
|
|
HEX 4041405F4F5C5F637F406C5F7040604040
|
|
HEX 404140404F5C5F7B7F407E5F6040604040
|
|
HEX 404140405F4E5F6B7E407E5F4040504040
|
|
HEX 404148417F4F4F6B7E405E5E4040504040
|
|
HEX 40414C437F6043637E40465C4040504040
|
|
HEX 40406C437F7843637E404C784040484040
|
|
HEX 40406E43637C41717C4070784040484040
|
|
HEX 40406777637F40787C4041704040484040
|
|
HEX 404057776170405C7C4441704040444040
|
|
HEX 404053774040405C5C4A43604040444040
|
|
HEX 70405377405F404E5C4A47404040444040
|
|
HEX 78404977417F7F4E4C494F404040424040
|
|
HEX 7C40497747794F474C4976404040424040
|
|
HEX 7C40487747494967445040404040424040
|
|
HEX 7C4044574D4F7973645048404040417040
|
|
HEX 7C404447597F7F736050487C4040404840
|
|
HEX 7C4044475F7F7F717050517E4040404640
|
|
HEX 7C4042475F7F7F717060577F4040404140
|
|
HEX 7F7F42435F7F7F717060577F6040404140
|
|
HEX 7F7F71437F7F7F717060577F7040404060
|
|
HEX 7F7F7E63797949716060577F7840404060
|
|
HEX 7F7F7C637D4949616140577F7840404060
|
|
HEX 7F7F78516F4F7F4361405B7F7C40404050
|
|
HEX 7F7F7051677F7C6341407B7F7C40404050
|
|
HEX 7F7F6049737F7C6342417D7F7E40404050
|
|
HEX 7F7F4048707F7D47424F7D7F7F40404050
|
|
HEX 7F7E4044787C4146425F7E7F7F60404050
|
|
HEX 7F7C404458704046445F7E7F7F60404050
|
|
HEX 7F7840424C40404E445F7E7F7F70404050
|
|
HEX 7F7760424440404C485F7F5F7F70404050
|
|
HEX 7F7058414243605C485F7F5F7F78404050
|
|
HEX 7C4F444062477058505F7F5F7F7C404050
|
|
HEX 7D7F7A40514F7F70705F7F4F7F7E404048
|
|
HEX 7D7F7D40487F7F73405F7F6F7F7F404048
|
|
HEX 7D7F7E60447F7F7C405F7F6F7F7F604048
|
|
HEX 7E7F7F50437F7F60405F7F6F7F7F704048
|
|
HEX 7E7F7F68417F7C40405F7F6F7F7F7C4048
|
|
HEX 7E7F7F74405F7040405F7F777F7E434048
|
|
HEX 7F5F7F7A40424040405B7F777F60407048
|
|
HEX 7F5F7F7D4042404040437F777E40404C48
|
|
HEX 7F5F7F7D4042404040437F777840404370
|
|
HEX 7F6F7F7E6042404040417F776040404040
|
|
HEX 7F6F7F7E6042404040417F776040404040
|
|
HEX 7F6F7F7F5044404040407F774040404040
|
|
HEX 7F777F7F5044404040407F764040404040
|
|
HEX 7F777F7F5048404040407F744040404040
|