home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GEMini Atari
/
GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso
/
zip
/
telecomm
/
zmdm.zoo
/
ghi5025.s
< prev
next >
Wrap
Text File
|
1991-04-27
|
2KB
|
79 lines
|
| Make hi rez screen bios handle 50 lines of 8x8 characters
|
| Adapted to Gnu C use from origional asm posting
|
|
.text
.globl _hi50
_hi50: | switch to 50 line mode
moveml a2/d2,sp@-
.word 0xA000 | get the important pointers (line A init)
movl a1@(4),a1 | a1 -> 8x8 font header
movl a1@(72),a0@(-10) | v_off_ad <- 8x8 offset table addr
movl a1@(76),a0@(-22) | v_fnt_ad <- 8x8 font data addr
moveq #8,d0
movw d0,a0@(-0x2E) | v_cel_ht <- 8 8x8 cell height
movw a0@(-0x04),d1 | vertical pixel resolution
extl d1
divu d0,d1 | d1 : # rows : 50
subl #1,d1
movw d1,a0@(-0x2A) | v_cel_my <- 49 maximum cell "Y"
movw a0@(0x02),d1 | ld_vwrap
mulu d0,d1 | * v_cel_ht
movw d1,a0@(-0x28) | -> v_cel_my
| offset to cell Y+1
moveml sp@+,a2/d2
rts | and return
|
| Make hi rez screen bios handle 25 lines of 8x16 characters
|
.even
.globl _hi25
_hi25: | Switch to 25 lines display
moveml a2/d2,sp@-
.word 0xA000 | get the important pointers
movl a1@(8),a1 | a1 -> 8x16 font header
movl a1@(72),a0@(-10) | v_off_ad <- 8x16 offset table addr
movl a1@(76),a0@(-22) | v_fnt_ad <- 8x16 font data addr
moveq #16,d0
movw d0,a0@(-0x2E) | v_cel_ht <- 16 8x16 cell height
movw a0@(-4),d1 | v_rez_vt
extl d1
divu d0,d1 | d1 = # rows: 25
subl #1,d1
movw d1,a0@(-0x2A) | v_cel_my <- 24 maximum cell "Y"
movw a0@(2),d1 | ld_vwrap
mulu d0,d1 | * v_cel_ht
movw d1,a0@(-0x28) | v_cel_wr <- 1280 vertical byte offset
moveml sp@+,a2/d2
rts | bye
|
| return lineA base
|
.even
.globl _aaddress
_aaddress:
moveml a2/d2,sp@-
.word 0xa000 | a0 and d0 contain base
moveml sp@+,a2/d2
rts