ugBASIC 1.18
An isomorphic BASIC language compiler for retrocomputers
Loading...
Searching...
No Matches
antic.h File Reference
#include "../ugbc.h"

Go to the source code of this file.

Macros

#define DLI_COUNT   1024
#define DLI_MODE(_list, _n)
#define DLI_MODE_VSCROLL(_list, _n)
#define DLI_MODE_VSCROLL_IRQ(_list, _n)
#define DLI_MODE_VHSCROLL(_list, _n)
#define DLI_MODE_VHSCROLL_IRQ(_list, _n)
#define DLI_LMS(_list, _n, _addr)
#define DLI_LMS_IRQ(_list, _n, _addr)
#define DLI_LMS_VSCROLL(_list, _n, _addr)
#define DLI_LMS_VSCROLL_IRQ(_list, _n, _addr)
#define DLI_LMS_VHSCROLL(_list, _n, _addr)
#define DLI_LMS_VHSCROLL_IRQ(_list, _n, _addr)
#define DLI_IRQ(_list, _n)
#define DLI_HSCROLL(_list)
#define DLI_VSCROLL(_list)
#define DLI_BLANK(_list, _n)
#define DLI_JMP(list, addr)
#define DLI_JVB(list, addr)

Functions

void antic_initialization (Environment *_environment)
void antic_finalization (Environment *_environment)
void antic_next_raster (Environment *_environment)
 ANTIC: emit code to wait for next raster irq
void antic_next_raster_at (Environment *_environment, char *_label, char *_positionlo, char *_positionhi)
 ANTIC: emit code to wait for next raster irq at different position
void antic_raster_at (Environment *_environment, char *_label, char *_positionlo, char *_positionhi)
 ANTIC: emit code to set raster irq

Macro Definition Documentation

◆ DLI_BLANK

#define DLI_BLANK ( _list,
_n )
Value:
*_list++ = ((unsigned char)( ( (_n-1)<<4 ) ));

Definition at line 208 of file antic.h.

◆ DLI_COUNT

#define DLI_COUNT   1024

Definition at line 44 of file antic.h.

◆ DLI_HSCROLL

#define DLI_HSCROLL ( _list)
Value:
*_list++ = ((unsigned char)( 0x10 ));

Definition at line 174 of file antic.h.

◆ DLI_IRQ

#define DLI_IRQ ( _list,
_n )
Value:
*_list++ = ((unsigned char)( /*0x10 |*/ 0x80 | _n ));

Definition at line 171 of file antic.h.

◆ DLI_JMP

#define DLI_JMP ( list,
addr )
Value:
*list++ = ((unsigned char)(0x1)); \
*list++ = ((unsigned char)(addr&0xff)); \
*list++ = ((unsigned char)(addr>>8));

Definition at line 230 of file antic.h.

◆ DLI_JVB

#define DLI_JVB ( list,
addr )
Value:
*list++ = ((unsigned char)(0x41)); \
*list++ = ((unsigned char)(addr&0xff)); \
*list++ = ((unsigned char)(addr>>8));

Definition at line 253 of file antic.h.

◆ DLI_LMS

#define DLI_LMS ( _list,
_n,
_addr )
Value:
*_list++ = ((unsigned char)( /*0x30 |*/ 0x40 | ( _n ) )); \
*_list++ = ((unsigned char)( ( _addr ) & 0xff )); \
*_list++ = ((unsigned char)( ( _addr ) >> 8 ));

Definition at line 141 of file antic.h.

◆ DLI_LMS_IRQ

#define DLI_LMS_IRQ ( _list,
_n,
_addr )
Value:
*_list++ = ((unsigned char)( /*0x30 |*/ 0x40 | 0x80 | ( _n ) )); \
*_list++ = ((unsigned char)( ( _addr ) & 0xff )); \
*_list++ = ((unsigned char)( ( _addr ) >> 8 ));

Definition at line 146 of file antic.h.

◆ DLI_LMS_VHSCROLL

#define DLI_LMS_VHSCROLL ( _list,
_n,
_addr )
Value:
*_list++ = ((unsigned char)( 0x10 | 0x20 | 0x40 | ( _n ) )); \
*_list++ = ((unsigned char)( ( _addr ) & 0xff )); \
*_list++ = ((unsigned char)( ( _addr ) >> 8 ));

Definition at line 161 of file antic.h.

◆ DLI_LMS_VHSCROLL_IRQ

#define DLI_LMS_VHSCROLL_IRQ ( _list,
_n,
_addr )
Value:
*_list++ = ((unsigned char)( 0x10 | 0x20 | 0x40 | 0x80 | ( _n ) )); \
*_list++ = ((unsigned char)( ( _addr ) & 0xff )); \
*_list++ = ((unsigned char)( ( _addr ) >> 8 ));

Definition at line 166 of file antic.h.

◆ DLI_LMS_VSCROLL

#define DLI_LMS_VSCROLL ( _list,
_n,
_addr )
Value:
*_list++ = ((unsigned char)( 0x20 | 0x40 | ( _n ) )); \
*_list++ = ((unsigned char)( ( _addr ) & 0xff )); \
*_list++ = ((unsigned char)( ( _addr ) >> 8 ));

Definition at line 151 of file antic.h.

◆ DLI_LMS_VSCROLL_IRQ

#define DLI_LMS_VSCROLL_IRQ ( _list,
_n,
_addr )
Value:
*_list++ = ((unsigned char)( 0x20 | 0x40 | 0x80 | ( _n ) )); \
*_list++ = ((unsigned char)( ( _addr ) & 0xff )); \
*_list++ = ((unsigned char)( ( _addr ) >> 8 ));

Definition at line 156 of file antic.h.

◆ DLI_MODE

#define DLI_MODE ( _list,
_n )
Value:
*_list++ = ((unsigned char)( /*0x30 |*/ _n ));

Definition at line 126 of file antic.h.

◆ DLI_MODE_VHSCROLL

#define DLI_MODE_VHSCROLL ( _list,
_n )
Value:
*_list++ = ((unsigned char)( 0x10 | 0x20 | _n ));

Definition at line 135 of file antic.h.

◆ DLI_MODE_VHSCROLL_IRQ

#define DLI_MODE_VHSCROLL_IRQ ( _list,
_n )
Value:
*_list++ = ((unsigned char)( 0x10 | 0x20 | 0x80 | _n ));

Definition at line 138 of file antic.h.

◆ DLI_MODE_VSCROLL

#define DLI_MODE_VSCROLL ( _list,
_n )
Value:
*_list++ = ((unsigned char)( 0x20 | _n ));

Definition at line 129 of file antic.h.

◆ DLI_MODE_VSCROLL_IRQ

#define DLI_MODE_VSCROLL_IRQ ( _list,
_n )
Value:
*_list++ = ((unsigned char)( 0x20 | 0x80 | _n ));

Definition at line 132 of file antic.h.

◆ DLI_VSCROLL

#define DLI_VSCROLL ( _list)
Value:
*_list++ = ((unsigned char)( 0x20 ));

Definition at line 177 of file antic.h.

Function Documentation

◆ antic_finalization()

void antic_finalization ( Environment * _environment)

Definition at line 132 of file antic.c.

◆ antic_initialization()

void antic_initialization ( Environment * _environment)

Definition at line 120 of file antic.c.

◆ antic_next_raster()

void antic_next_raster ( Environment * _environment)

ANTIC: emit code to wait for next raster irq

This function outputs assembly code needed to wait for the next raster. Meanwhile, the execution of the main code will resume where it left off.

Parameters
_environmentCurrent calling environment

Definition at line 84 of file antic.c.

◆ antic_next_raster_at()

void antic_next_raster_at ( Environment * _environment,
char * _label,
char * _positionlo,
char * _positionhi )

ANTIC: emit code to wait for next raster irq at different position

This function outputs assembly code needed to wait for the next raster on a different position with a different code to execute. Meanwhile, the execution of the main code will resume where it left off.

Parameters
_environmentCurrent calling environment
_labelLabel to jump to when vertical raster reach the value given
_positionloThe vertical position to wait for (bits 7..0)
_positionhiThe vertical position to wait for (bit 8)

Definition at line 103 of file antic.c.

◆ antic_raster_at()

void antic_raster_at ( Environment * _environment,
char * _label,
char * _positionlo,
char * _positionhi )

ANTIC: emit code to set raster irq

This function outputs assembly code needed to initialize a raster routine. In other words, asynchronously and in parallel with the execution of the main program, the routine starting from the label provided will be executed when the vertical brush on the screen reaches the value of _position. This function is particularly useful when the position is communicated is given as an integer.

Parameters
_environmentCurrent calling environment
_labelLabel to jump to when vertical raster reach the value given
_positionloThe vertical position to wait for (bits 7..0)
_positionhiThe vertical position to wait for (bit 8)

Definition at line 58 of file antic.c.