mirror of
https://github.com/cc65/cc65.git
synced 2025-02-26 07:29:25 +00:00
Working
git-svn-id: svn://svn.cc65.org/cc65/trunk@1317 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
parent
0ee967fe17
commit
74b9e4831a
@ -66,6 +66,8 @@ TGI_HDR_JUMPCOUNT = 12 ; Number of jump vectors
|
||||
.global _tgi_drv ; Pointer to driver
|
||||
.global _tgi_error ; Last error code
|
||||
.global _tgi_mode ; Graphics mode or zero
|
||||
.global _tgi_xres ; X resolution of the current mode
|
||||
.global _tgi_yres ; Y resolution of the current mode
|
||||
|
||||
;------------------------------------------------------------------------------
|
||||
; Driver entry points
|
||||
|
@ -80,6 +80,8 @@ typedef struct {
|
||||
extern tgi_drv_header* tgi_drv; /* Pointer to driver */
|
||||
extern unsigned char tgi_error; /* Last error code */
|
||||
extern unsigned char tgi_mode; /* Graphics mode or zero */
|
||||
extern unsigned tgi_xres; /* X resolution of the current mode */
|
||||
extern unsigned tgi_yres; /* Y resolution of the current mode */
|
||||
|
||||
|
||||
|
||||
@ -91,7 +93,7 @@ extern unsigned char tgi_mode; /* Graphics mode or zero */
|
||||
|
||||
const char* __fastcall__ tgi_map_mode (unsigned char mode);
|
||||
/* Map a tgi mode to a driver name. Returns NULL if no driver available. */
|
||||
|
||||
|
||||
void __fastcall__ tgi_setup (void);
|
||||
/* Setup the driver and graphics kernel once the driver is loaded */
|
||||
|
||||
|
@ -18,7 +18,9 @@
|
||||
_tgi_drv: .res 2 ; Pointer to driver
|
||||
_tgi_error: .res 1 ; Last error code
|
||||
_tgi_mode: .res 1 ; Graphics mode or zero
|
||||
|
||||
_tgi_xres: .res 2 ; X resolution of the current mode
|
||||
_tgi_yres: .res 2 ; Y resolution of the current mode
|
||||
|
||||
|
||||
.data
|
||||
|
||||
@ -51,17 +53,33 @@ copy: lda (ptr1),y
|
||||
|
||||
|
||||
_tgi_setup:
|
||||
jsr tgi_set_ptr
|
||||
jsr tgi_set_ptr ; load _tgi_drv into ptr1
|
||||
|
||||
; Copy the jump vectors
|
||||
|
||||
ldy #TGI_HDR_JUMPTAB
|
||||
ldx #0
|
||||
|
||||
@L1: inx ; Skip JMP opcode
|
||||
jsr copy ; Copy one byte
|
||||
jsr copy ; Copy one byte
|
||||
cpx #(TGI_HDR_JUMPCOUNT*3)
|
||||
bne @L1
|
||||
|
||||
; Copy the screen dimensions
|
||||
|
||||
ldy #TGI_HDR_XRES
|
||||
lda (ptr1),y
|
||||
sta _tgi_xres
|
||||
iny
|
||||
lda (ptr1),y
|
||||
sta _tgi_xres+1
|
||||
ldy #TGI_HDR_YRES
|
||||
lda (ptr1),y
|
||||
sta _tgi_yres
|
||||
iny
|
||||
lda (ptr1),y
|
||||
sta _tgi_yres+1
|
||||
|
||||
; Initialize variables
|
||||
|
||||
lda #$00
|
||||
|
@ -7,13 +7,11 @@
|
||||
|
||||
.include "tgi-kernel.inc"
|
||||
.export _tgi_getxres
|
||||
.import ldaxidx
|
||||
|
||||
|
||||
_tgi_getxres:
|
||||
lda _tgi_drv
|
||||
ldx _tgi_drv+1
|
||||
ldy #TGI_HDR_XRES+1
|
||||
jmp ldaxidx
|
||||
lda _tgi_xres
|
||||
ldx _tgi_xres+1
|
||||
rts
|
||||
|
||||
|
||||
|
@ -11,9 +11,8 @@
|
||||
|
||||
|
||||
_tgi_getyres:
|
||||
lda _tgi_drv
|
||||
ldx _tgi_drv+1
|
||||
ldy #TGI_HDR_YRES+1
|
||||
jmp ldaxidx
|
||||
lda _tgi_yres
|
||||
ldx _tgi_yres+1
|
||||
rts
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user