ARM application development SDK for MNT ZZ9000 graphics and coprocessor card for classic Amiga computers.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

84 lines
2.0 KiB

  1. /*
  2. * MNT ZZ9000 Amiga Graphics Card Driver (ZZ9000.card)
  3. * Copyright (C) 2016-2019, Lukas F. Hartmann <lukas@mntre.com>
  4. * MNT Research GmbH, Berlin
  5. * https://mntre.com
  6. *
  7. * More Info: https://mntre.com/zz9000
  8. *
  9. * SPDX-License-Identifier: GPL-3.0-or-later
  10. * GNU General Public License v3.0 or later
  11. *
  12. * https://spdx.org/licenses/GPL-3.0-or-later.html
  13. */
  14. #define uint8_t unsigned char
  15. #define uint16_t unsigned short
  16. #define uint32_t unsigned long
  17. #define u16 uint16_t
  18. #define u32 uint32_t
  19. #define MNTVA_COLOR_8BIT 0
  20. #define MNTVA_COLOR_16BIT565 1
  21. #define MNTVA_COLOR_32BIT 2
  22. #define MNTVA_COLOR_15BIT 3
  23. typedef volatile struct MNTZZ9KRegs {
  24. u16 fw_version; // 00
  25. u16 mode; // 02
  26. u16 vdiv; // 04
  27. u16 screen_w; // 06
  28. u16 screen_h; // 08
  29. u16 pan_ptr_hi; // 0a
  30. u16 pan_ptr_lo; // 0c
  31. u16 hdiv; // 0e
  32. u16 blitter_x1; // 10
  33. u16 blitter_y1; // 12
  34. u16 blitter_x2; // 14
  35. u16 blitter_y2; // 16
  36. u16 blitter_row_pitch; // 18 destination pitch
  37. u16 blitter_x3; // 1a
  38. u16 blitter_y3; // 1c
  39. u16 blitter_rgb_hi; // 1e
  40. u16 blitter_rgb_lo; // 20
  41. u16 blitter_op_fillrect; // 22
  42. u16 blitter_op_copyrect; // 24
  43. u16 blitter_op_filltemplate; // 26
  44. u16 blitter_src_hi; // 28
  45. u16 blitter_src_lo; // 2a
  46. u16 blitter_dst_hi; // 2c
  47. u16 blitter_dst_lo; // 2e
  48. u16 blitter_colormode; // 30 destination colormode
  49. u16 blitter_src_pitch; // 32
  50. u16 blitter_rgb2_hi; // 34 background/secondary color
  51. u16 blitter_rgb2_lo; // 36
  52. u16 un_3[0x24]; // 38..7e
  53. u16 eth_tx; // 80
  54. u16 eth_rx; // 82
  55. u16 un_4[6]; // 84,86,88,8a,8c,8e
  56. u16 arm_run_hi; // 90
  57. u16 arm_run_lo; // 92
  58. u16 arm_argc; // 94
  59. u16 arm_arg[8]; // 96,98,9a,9c..a4
  60. u16 un_5[5]; // a6..ae
  61. u16 arm_event_serial; // b0
  62. u16 arm_event_code; // b2
  63. } MNTZZ9KRegs;
  64. typedef volatile struct MNTZZ9KCXRegs {
  65. u16 video_control_data_hi; // 00
  66. u16 video_control_data_lo; // 02
  67. u16 video_control_op; // 04
  68. u16 videocap_mode; // 06
  69. } MNTZZ9KCXRegs;