author: bocianu bocianu@gmail.com
Set of useful constants, registers and methods to fiddle with hardware Atari 8-bit sprites (and missiles).
This library is a part of 'blibs' - set of custom Mad-Pascal libraries.
https://gitlab.com/bocianu/blibs
name: | value: | description: |
---|---|---|
PMG_vdelay_m0 | %00000001 | Vertical delay patterns |
PMG_vdelay_m1 | %00000010 | |
PMG_vdelay_m2 | %00000100 | |
PMG_vdelay_m3 | %00001000 | |
PMG_vdelay_p0 | %00010000 | |
PMG_vdelay_p1 | %00100000 | |
PMG_vdelay_p2 | %01000000 | |
PMG_vdelay_p3 | %10000000 | |
PMG_SIZE_NORMAL | %00000000 | player widths |
PMG_SIZE_x2 | %00000001 | |
PMG_SIZE_x4 | %00000011 | |
PMG_MSIZE0_x2 | %00000001 | missile widths |
PMG_MSIZE0_x4 | %00000011 | |
PMG_MSIZE1_x2 | %00000100 | |
PMG_MSIZE1_x4 | %00001100 | |
PMG_MSIZE2_x2 | %00010000 | |
PMG_MSIZE2_x4 | %00110000 | |
PMG_MSIZE3_x2 | %01000000 | |
PMG_MSIZE4_x4 | %11000000 | |
PMG_gractl_missiles | %00000001 | Turns on missiles |
PMG_gractl_players | %00000010 | Turns on players |
PMG_gractl_latch | %00000100 | |
PMG_gractl_default | PMG_gractl_missiles or PMG_gractl_players | |
PMG_sdmctl_DMA_missile | %00000100 | Enable missiles DMA |
PMG_sdmctl_DMA_player | %00001000 | Enable players DMA |
PMG_sdmctl_DMA_both | %00001100 | |
PMG_sdmctl_oneline | %00010000 | Set one line resolution |
PMG_sdmctl_screen_disabled | 0 | |
PMG_sdmctl_screen_narrow | 1 | |
PMG_sdmctl_screen_normal | %10 | |
PMG_sdmctl_screen_wide | %11 | |
PMG_sdmctl_default | PMG_sdmctl_DMA_both or PMG_sdmctl_screen_normal | |
PMG_collision_player_to_p0 | 1 | Player overlaps Player0 |
PMG_collision_player_to_p1 | 2 | Player overlaps Player1 |
PMG_collision_player_to_p2 | 4 | Player overlaps Player2 |
PMG_collision_player_to_p3 | 8 | Player overlaps Player3 |
PMG_5player | %00010000 | Turn on 5th player |
PMG_overlap | %00100000 | Additional color on players overlap |
name: | address: | type: | description: |
---|---|---|---|
PMG_sdmctl | $D400 | byte | Direct Memory Access (DMA) enable flag. |
PMG_sdmctl_S | $22F | byte | Direct Memory Access (DMA) enable flag - shadow register. |
PMG_gprior | $D01B | byte | Priority selection register. |
PMG_gprior_S | $26F | byte | Priority selection register - shadow register. |
PMG_pcolr0 | $D012 | byte | Player colors. |
PMG_pcolr1 | $D013 | byte | |
PMG_pcolr2 | $D014 | byte | |
PMG_pcolr3 | $D015 | byte | |
PMG_pcolr | $D012 | array [0..3] of byte | |
PMG_pcolr0_S | $2C0 | byte | Player colors - shadow registers. |
PMG_pcolr1_S | $2C1 | byte | |
PMG_pcolr2_S | $2C2 | byte | |
PMG_pcolr3_S | $2C3 | byte | |
PMG_pcolr_S | $2C0 | array [0..3] of byte | |
PMG_hpos0 | $D000 | byte | Horizontal positions of players. |
PMG_hpos1 | $D001 | byte | |
PMG_hpos2 | $D002 | byte | |
PMG_hpos3 | $D003 | byte | |
PMG_hpos | $D000 | array [0..3] of byte | |
PMG_hposm0 | $D004 | byte | Horizontal positions of missiles. |
PMG_hposm1 | $D005 | byte | |
PMG_hposm2 | $D006 | byte | |
PMG_hposm3 | $D007 | byte | |
PMG_hposm | $D004 | array [0..3] of byte | |
PMG_sizep0 | $D008 | byte | Size of players. |
PMG_sizep1 | $D009 | byte | |
PMG_sizep2 | $D00A | byte | |
PMG_sizep3 | $D00B | byte | |
PMG_sizep | $D008 | array [0..3] of byte | |
PMG_sizem | $D00C | byte | Size of missiles |
PMG_grafp0 | $D00D | byte | Players graphics shapes (non DMA). |
PMG_grafp1 | $D00E | byte | |
PMG_grafp2 | $D00F | byte | |
PMG_grafp3 | $D010 | byte | |
PMG_grafp | $D00D | array [0..3] of byte | |
PMG_grafm | $D011 | byte | Missile graphics shapes (non DMA). |
PMG_p0pl | $D00C | byte | Player to player collison statuses. |
PMG_p1pl | $D00D | byte | |
PMG_p2pl | $D00E | byte | |
PMG_p3pl | $D00F | byte | |
PMG_ppl | $D00C | array [0..3] of byte | |
PMG_vdelay | $D01C | byte | Vertical delay register. |
PMG_gractl | $D01D | byte | Graphics Control register. Controls receipt of Player/Missile DMA data |
PMG_hitclr | $D01E | byte | Clear Collisions |
PMG_pmbase | $D407 | byte | Upper byte of the player/missile base address |
name: | type: | description: |
---|---|---|
PMG_oneline | boolean | contains true if current mode uses single line resolution. contains false for double line resolution |
PMG_base | pointer | contains base address |
PMG_size | word | contains memory size used by PMG |
name: | description: |
---|---|
PMG_Init | procedure PMG_Init(base: byte); overload;Initializes PMG engine with default settings.
parameters: |
PMG_Init | procedure PMG_Init(base, sdmctl: byte); overload;Initializes PMG engine with custom sdmctl value.
parameters: |
PMG_Init | procedure PMG_Init(base, sdmctl, gractl: byte); overload;Initializes PMG engine with custom sdmctl and gractl values.
parameters: |
PMG_Clear | procedure PMG_Clear;Clears memory of sprites and missiles filling it with zeroes. |
PMG_Disable | procedure PMG_Disable;Turns off PMG |