;;-*-Lisp-*-
(in-package goal)

;; definition of type video-parms
(deftype video-parms (structure)
  ((set-video-mode              basic  :offset-assert   0)
   (reset-video-mode            basic  :offset-assert   4)
   (screen-sy                   int32  :offset-assert   8)
   (screen-hy                   int32  :offset-assert  12)
   (screen-miny                 int32  :offset-assert  16)
   (screen-maxy                 int32  :offset-assert  20)
   (screen-masky                int32  :offset-assert  24)
   (display-dx                  int32  :offset-assert  28)
   (display-dy                  int32  :offset-assert  32)
   (screen-pages-high           int32  :offset-assert  36)
   (_pad                        int64  :offset-assert  40)
   (relative-x-scale            float  :offset-assert  48)
   (relative-y-scale            float  :offset-assert  52)
   (_pad2                       int64  :offset-assert  56)
   (relative-x-scale-reciprical float  :offset-assert  64)
   (relative-y-scale-reciprical float  :offset-assert  68)
   )
  :method-count-assert 9
  :size-assert         #x48
  :flag-assert         #x900000048
  )

;; definition for method 3 of type video-parms
(defmethod inspect video-parms ((obj video-parms))
  (format #t "[~8x] ~A~%" obj 'video-parms)
  (format #t "~Tset-video-mode: ~A~%" (-> obj set-video-mode))
  (format #t "~Treset-video-mode: ~A~%" (-> obj reset-video-mode))
  (format #t "~Tscreen-sy: ~D~%" (-> obj screen-sy))
  (format #t "~Tscreen-hy: ~D~%" (-> obj screen-hy))
  (format #t "~Tscreen-miny: ~D~%" (-> obj screen-miny))
  (format #t "~Tscreen-maxy: ~D~%" (-> obj screen-maxy))
  (format #t "~Tscreen-masky: ~D~%" (-> obj screen-masky))
  (format #t "~Tdisplay-dx: ~D~%" (-> obj display-dx))
  (format #t "~Tdisplay-dy: ~D~%" (-> obj display-dy))
  (format #t "~Tscreen-pages-high: ~D~%" (-> obj screen-pages-high))
  (format #t "~Trelative-x-scale: ~f~%" (-> obj relative-x-scale))
  (format #t "~Trelative-y-scale: ~f~%" (-> obj relative-y-scale))
  (format #t "~Trelative-x-scale-reciprical: ~f~%" (-> obj relative-x-scale-reciprical))
  (format #t "~Trelative-y-scale-reciprical: ~f~%" (-> obj relative-y-scale-reciprical))
  obj
  )

;; definition for symbol *video-parms*, type video-parms
(define *video-parms* (new 'static 'video-parms
                        :set-video-mode #f
                        :reset-video-mode #f
                        :screen-sy #xe0
                        :screen-hy #x70
                        :screen-miny #x720
                        :screen-maxy #x8e0
                        :screen-masky #xdf
                        :display-dy 8
                        :screen-pages-high 7
                        :relative-x-scale 1.0
                        :relative-y-scale 1.0
                        :relative-x-scale-reciprical 1.0
                        )
        )

;; failed to figure out what this is:
0
