Displaying a Neochrome Picture: Difference between revisions
Jump to navigation
Jump to search
>Silver Surfer m (Added category) |
>Spiny No edit summary |
||
| (One intermediate revision by one other user not shown) | |||
| Line 140: | Line 140: | ||
Back to [[ASM_Tutorial]] | Back to [[ASM_Tutorial]] | ||
[[Category: | [[Category:Tutorials by John Cove aka Tronic of Effect]] | ||
Latest revision as of 08:04, 29 November 2016
Assembly Language, in Devpac, Tutorial
by
John Cove of Prophecy Public Domain
for
ICTARI
Series 1, Part 3, Displaying a Neochrome Picture
______________________________________________
Section 1.01 - Displaying a Neochrome picture.
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
Here is a complete, and working, routine to display a Neochrome
picture.
clr.l -(sp) ... line 1
move #$20,-(sp) ... line 2
trap #1 ... line 3
addq.l #6,sp ... line 4
jsr v_sync ... line 5
move.b #0,$ff8260 ... line 6
lea pic+128,a0 ... line 7
move.l $44e,a1 ... line 8
move #(32000/4)-1,d0 ... line 9
copypic move.l (a0)+,(a1)+ ... line 10
dbra d0,copypic ... line 11
movem.l pic+4,d0-d7 ... line 12
movem.l d0-7,$ff8240 ... line 13
move #7,-(sp) ... line 14
trap #1 ... line 15
addq.l #2,sp ... line 16
jsr v_sync ... line 17
move.b #1,$ff8260 ... line 18
clr.w -(sp) ... line 19
trap #1 ... line 20
pic incbin test.neo ... line 21
____________________________
The rather LARGE explanation
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
Lines 1 to 4 - This opens the supervisor mode.
Line 5 - This waits until a vbl cycle is complete.
Line 6 - This alters the screen mode to low resolution, as a .NEO
picture file will only display correctly in low resolution.
Line 7 - This points to the picture data in the picture file & moves
the contents into the data register, a0. The processor knows when
it has reached the end of the picture data because after the file
is loaded, a pointer is placed, in memory, at the end of the
picture data and the data will stop being loaded into the register
a0. The actual picture data starts at the offset +128, or the
seventeenth byte in the file.
Line 8 - The logic screen address is $44e. So all that is
happening is that the screen address, the final destination of the
picture data, is being put into the register a1.
Line 9 - The actual number of bytes that the picture data takes
up is 32000, which is also the same as the standard sized ST Low
resolution screen. So, you are loading that amount of bytes, 32000,
into the register d0.
Line 10 - This serves a few functions. First a label, because
you will be performing a conditional loop on Line 11, and this is
where you will jump to. The second is the moving of the data in
a0 and literally moving it onto the screen. The plus symbol
after the (a0) register, and (a1), is simply telling the computer
to take the next part of picture data, so on and so on!!
Line 11 - This is a condition, and when all the picture has been
displayed, this is when the condition is met, and basically, when you
jump back to the loop, the pointer to the picture data will be
implemented by one and in EFFECT will jump to the next byte of the
picture data, to be displayed. God that was DIFFICULT to explain...
Line 12 - This is implementing the palette, from the picture
data, on the screen. The palette is also contained within the picture
file, at the offset of +4 so the data starts at the second byte in the
file. The palette data uses 16 words and is picked up in the registers
d0-d7.
Line 13 - This puts the palette values, from the picture file,
in d0-d7 and implements it onto the screen.
Line 14 to 16 - This waits for the user to press any key, before it
continues.
Line 17 - This waits until a vbl cycle is complete.
Line 18 - This sets the screen mode to medium resolution, really
used for the returning to GENst.
Line 19 to 20 - This is the standard exit routine, out of supervisor
mode.
Line 21 - This is the incLUDE binARY command, that loads a file
from the disk and is then present in that label.
As you can see, it is VERY similar to the Degas Elite displaying
routines!!!!!!!!
I am very sorry, but I really must leave it there, as I have to
finish off the intro for ST WORLD Issue 3, and sent it to Sion
before the Christmas deadline which is tomorrow!!
Hopefully, the HOT NEWS article will make up for my missing article.
Sorry to the regular followers of this article, being, that I know,
Simon Osbourne and the main man, Sion Dovey.
----------------------------------------------------------------------
Tronic of Effect, aka John Cove, [C]opyright 1995 .. Started: 19-12-
1995
Finished: 19-12-1995
"I reserve the right to publish these tutorial series
wherever I choose... Only, with express written
confirmation, is this to be published by anyone
other than myself. These series were written for
ST World, but if I feel that the series is not being
taken advantage of in the way that most ST users are
able to read the series, then I will publish the
series in my own, and other peoples, disk magazines
and products."
Back to ASM_Tutorial