mirror of
https://github.com/Michaelangel007/apple2_hgr_font_tutorial.git
synced 2025-02-16 05:31:33 +00:00
Claried "C:/Program Files (x86)/Git/bin/sh.exe"400, and added note about non-standard assembly
This commit is contained in:
parent
656bfd2b34
commit
e445a9fb0e
@ -559,7 +559,7 @@ Assuming we want to draw the `A` glyph at the top-left of the screen we would ne
|
|||||||
|
|
||||||
For simplicity, we're going to "quantize" our destination Y so that we render font glyphs only on the start of every 8 rows and every 7 pixel columns. If we then had the starting address we simply could move to the next scan line by successively adding $0400 to our destination screen pointer.
|
For simplicity, we're going to "quantize" our destination Y so that we render font glyphs only on the start of every 8 rows and every 7 pixel columns. If we then had the starting address we simply could move to the next scan line by successively adding $0400 to our destination screen pointer.
|
||||||
|
|
||||||
How did I know $0400? One quirk of the HGR screen is that every 8 successive scan lines start this many bytes away.
|
How did I know to use $0400 when going to the next line? One quirk of the HGR screen is that every 8 successive scan lines start this many bytes away. Refer back to the `HGR Memory-mapped IO` table listed above.
|
||||||
|
|
||||||
|
|
||||||
## DrawChar() version 1
|
## DrawChar() version 1
|
||||||
@ -1449,6 +1449,8 @@ Michael "AppleWin Debug Dev"
|
|||||||
Figure it out ! You have all the tools and knowledge.
|
Figure it out ! You have all the tools and knowledge.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Solution 2: ScrollHgrUpPixel()
|
## Solution 2: ScrollHgrUpPixel()
|
||||||
|
|
||||||
There are many different ways to solve this depending if we want to prioritize space or speed.
|
There are many different ways to solve this depending if we want to prioritize space or speed.
|
||||||
@ -1675,11 +1677,11 @@ And let's try it out:
|
|||||||
|
|
||||||
Sweet !
|
Sweet !
|
||||||
|
|
||||||
Here's the assembly to scroll the HGR screen up one pixel:
|
Here's the (non-standard) assembly to scroll the HGR screen up one pixel: (I'm using the non-conventional `:` as an assembler end-of-statement sepearator to logically group the byte copies together.)
|
||||||
|
|
||||||
```assembly
|
```assembly
|
||||||
; FUNC: ScrollHgrUpPixel() = $1400
|
; FUNC: ScrollHgrUpPixel() = $1400
|
||||||
1400: LDX #27 ; 39 columns
|
1400: LDX #27 ; 39 columns ; Src Y Dst Y
|
||||||
1402: .1 LDA $2400,X : STA $2000,X ; [ 1] -> [ 0]
|
1402: .1 LDA $2400,X : STA $2000,X ; [ 1] -> [ 0]
|
||||||
1408: LDA $2800,X : STA $2400,X ; [ 2] -> [ 1]
|
1408: LDA $2800,X : STA $2400,X ; [ 2] -> [ 1]
|
||||||
140E: LDA $2C00,X : STA $2800,X ; [ 3] -> [ 2]
|
140E: LDA $2C00,X : STA $2800,X ; [ 3] -> [ 2]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user