; Digital Signal Analyzer
; Written by Sobolev Vladimir from Russia, Ekaterinburg

; long word section

; system components
_DOSBase:              dc.l  0
_IntuitionBase:        dc.l  0
_GfxBase:              dc.l  0
_AslBase:              dc.l  0
_MathieeesingbasBase:  dc.l  0

;program components
dsa_scr:           dc.l  0
dsa_scdri:         dc.l  0      ; screen DrawInfo structure pointer
dsa_win:           dc.l  0
dsa_WinAbout:      dc.l  0
dsa_WinErr:        dc.l  0
dsa_requester:     dc.l  0
dsa_file:          dc.l  0
dsa_file_lock:     dc.l  0
dsa_file_mem:      dc.l  0
dsa_file_size:     dc.l  0
dsa_fib:           dc.l  0
import_file_mem:   dc.l  0
import_file_size:  dc.l  0
export_file_mem:   dc.l  0
export_file_size:  dc.l  0
export_real_size:  dc.l  0
export_text_size:  dc.l  0
export_gfx_size:   dc.l  0

regr_dataadr:    dc.l  0
regr_curc:       dc.l  0

max_gfx_size:    dc.l  0
frame_gfx_size:  dc.l  0
kgfx:            dc.l  0
cur_gfx_pos:     dc.l  0
conv_osc_lenght: dc.l  0
check_size:      dc.l  0

osc1_header:     dc.l  0
osc1_data:       dc.l  0
osc1_len:        dc.l  0

osc2_header:     dc.l  0
osc2_data:       dc.l  0
osc2_len:        dc.l  0

hard_buf_mem:    dc.l  0

int_msg_copy:    dc.l  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

;--------------------------

; word section

point_x:          dc.w  0
point_y:          dc.w  0
point_sx1:        dc.w  0
point_sx2:        dc.w  0
point_sx:         dc.w  0
point_sy:         dc.w  0
point_sxb:        dc.w  0
point_syb:        dc.w  0

key_code:         dc.w  0
skey_code:        dc.w  0

menu_punkt:       dc.w  0

regr_curosc:      dc.w  0
regr_vert_offset: dc.w  0
regr_x:           dc.w  0
regr_y:           dc.w  0
regr_sx:          dc.w  0
regr_sy:          dc.w  0
regr_stp:         dc.w  0
regr_oldlev:      dc.w  0

max_text_size:    dc.w  0
frame_text_size:  dc.w  0
ktext:            dc.w  0
cur_text_pos:     dc.w  0

max_osc_size:     dc.w  0
frame_osc_size:   dc.w  0
kosc:             dc.w  0
cur_osc_pos:      dc.w  0

gfx_small_step:   dc.w  0
conv_osc_count:   dc.w  0
export_osc:       dc.w  0

;--------------------------

; structure section

;--------------------------

req_tag_list:
                  dc.l  ASLFR_Window
rtl_Window:       dc.l  0
                  dc.l  ASLFR_TitleText
rtl_Title:        dc.l  0
                  dc.l  ASLFR_InitialLeftEdge
                  dc.l  20
                  dc.l  ASLFR_InitialTopEdge
                  dc.l  20
                  dc.l  ASLFR_InitialWidth
                  dc.l  300
                  dc.l  ASLFR_InitialHeight
                  dc.l  200
                  dc.l  ASLFR_InitialFile
                  dc.l  rtl_File
                  dc.l  ASLFR_InitialDrawer
                  dc.l  rtl_Drawer
                  dc.l  ASLFR_DoSaveMode
rtl_Save:         dc.l  0
                  dc.l  TAG_END
rtl_LoadTitle:    dc.b  'Load file',0
rtl_SaveTitle:    dc.b  'Save file',0
rtl_ImportTitle:  dc.b  'Import file',0
rtl_ExportTitle:  dc.b  'Export file',0
rtl_File:         ds.b  32
rtl_Drawer:       ds.b  256
                  even

;------------------------------

 rsreset
dsa_header       rs.b  0
dsah_ID          rs.l  1
dsah_OscLen:     rs.l  1
dsah_TextGfxZoom rs.w  1
dsah_OscQuant    rs.w  1
dsah_CurZoomPix  rs.w  1    ; quant. pixel in one cycle (1..32767)
dsah_CurZoomStp  rs.w  1    ; step for "x" in array (1..32767)
dsah_CurC        rs.l  1
dsah_CurOsc      rs.w  1
dsah_LinCurC     rs.l  1
dsah_LinCurOsc   rs.w  1
dsah_Version     rs.w  1
dsah_Reserved1   rs.w  1
dsah_SIZEOF      rs.w  0

;--------------------------

 rsreset
sm_LinQuant      rs.b  1    ; quant. lines
sm_JumpDetect    rs.b  1    ; jump detect byte (0-low; 1-high; 2-off)
sm_JumpPen       rs.b  1    ; jump signal pen
sm_reserved1     rs.b  1
sm_Lin1Pen       rs.b  1    ; line 1 pen
sm_Lin2Pen       rs.b  1    ; line 2 pen
sm_reserved2     rs.b  1
sm_reserved3     rs.b  1
sm_Lin1Val       rs.w  1    ; line 1 level value
sm_Lin2Val       rs.w  1    ; line 2 level value
sm_reserved4     rs.w  1
sm_reserved5     rs.w  1

;--------------------------

dsa_newscr:
 dc.w     0             ;X-position
 dc.w     0             ;Y-position
 dc.w     $ffff ;640           ;width
 dc.w     $ffff ;256           ;height
 dc.w     4             ;bitplans
 dc.b     1             ;detail pen
 dc.b     2             ;block pen (fill areas)
 dc.w     $c000         ;video mode
 dc.w     15            ;screen type
 dc.l     0             ;font
 dc.l     dsa_scr_name  ;screen name pointer
 dc.l     0             ;to first gadget pointer
 dc.l     0             ;to bitmap pointer
dsa_scr_name:    dc.b  'Digital Signal Analyzer v1.0',0
 even

dsa_newscr_tag_list:
 dc.l     SA_Overscan
 dc.l     1
 dc.l     SA_AutoScroll
 dc.l     1
; dc.l     SA_FullPalette
; dc.l     1
; dc.l     SA_LikeWorkbench
; dc.l     1
 dc.l     SA_Colors
 dc.l     scr_color_table
 dc.l     SA_SysFont
 dc.l     1
 dc.l     SA_Pens
 dc.l     dsa_nstl_Pens
 dc.l     TAG_END

dsa_nstl_Pens:
 dc.w     1     ; DETAILPEN (v34 used for text screens title bar)
 dc.w     2     ; BLOCKPEN (v34 used for bacground screens title bar)
 dc.w     1     ; TEXTPEN (pen for regular text on BACKGROUNDPEN)
 dc.w     2     ; SHINEPEN (up line window)
 dc.w     1     ; SHADOWPEN (down line window)
 dc.w     3     ; FILLPEN (background pen in active window title)
 dc.w     1     ; FILLTEXTPEN (text pen in window title)
 dc.w     0     ; BACKGROUNDPEN (background pen in not active window title)
 dc.w     2     ; HIGHLIGHTTEXTPEN
 dc.w     1     ; BARDETAILPEN (text pen in screen title)
 dc.w     2     ; BARBLOCKPEN (background pen in screen title)
 dc.w     1     ; BARTRIMPEN (down line in screen title)
 dc.w     0     ; NUMDRIPENS
 dc.w     $ffff ; end of this array

scr_color_table:
 dc.w     $4,$0,$0,$0      ; color 4

 dc.w     $5,$9,$9,$9      ; color 5

 dc.w     $6,$e,$7,$0      ; color 6
 dc.w     $7,$e,$e,$e      ; color 7

 dc.w     $8,$a,$0,$0      ; color 8
 dc.w     $9,$d,$0,$0      ; color 9

 dc.w     $a,$0,$d,$0      ; color $a
 dc.w     $b,$0,$e,$0      ; color $b

 dc.w     $c,$0,$0,$a      ; color $c
 dc.w     $d,$0,$0,$d      ; color $d

 dc.w     $e,$e,$9,$0      ; color $e
 dc.w     $f,$e,$9,$0      ; color $f

 dc.w     -1


;------------------------

dsa_newwin:
 dc.w     0                     ;X-position
 dc.w     50                    ;Y-position
 dc.w     640                   ;width
 dc.w     206                   ;height
 dc.b     -1                    ;text colour
 dc.b     -1                    ;fill area color
 dc.l     default_idcmp         ; window event filter
 dc.l     WFLG_REPORTMOUSE|WFLG_NEWLOOKMENUS|WFLG_ACTIVATE|WFLG_SMART_REFRESH|WFLG_SIZEBBOTTOM|WFLG_SIZEBRIGHT|WFLG_CLOSEGADGET|WFLG_DEPTHGADGET|WFLG_DRAGBAR|WFLG_SIZEGADGET  ; flags
 dc.l     dsnw_g01              ;first gadget
 dc.l     0                     ;checkmark:standard
 dc.l     dsa_win_name          ;pointer to window name
 dc.l     0                     ;screen pointer (fill program)
 dc.l     0                     ;no bitmap of our own
 dc.w     256                   ;smallest width
 dc.w     64                    ;smallest height
 dc.w     $ffff                 ;maximum width
 dc.w     $ffff                 ;maximum height
 dc.w     $2  ;f                  ;screen type
dsa_win_name:
 dc.b     'Oscilograms',0
 even

default_idcmp: equ   IDCMP_NEWSIZE|IDCMP_MOUSEBUTTONS|IDCMP_GADGETUP|IDCMP_CLOSEWINDOW|IDCMP_MENUPICK|IDCMP_RAWKEY|IDCMP_MOUSEMOVE|IDCMP_GADGETDOWN|IDCMP_MOUSEBUTTONS      ; window event filter

dsa_newwin_tag_list:
 dc.l     WA_AutoAdjust
 dc.l     WA_NewLookMenus
 dc.l     WA_SmartRefresh
 dc.l     TAG_END


dsnw_g01:               ;structure for Proportional gadget
 dc.l  dsnw_g02         ;next gadget
 dc.w  8,-7             ;position
 dc.w  128,6            ;width and height of frame
 dc.w  GFLG_RELBOTTOM|GFLG_GADGHNONE     ;$0b flags
 dc.w  GACT_RELVERIFY                    ;$01 activation flags
 dc.w  GTYP_PROPGADGET                   ;3   type of gadget
 dc.l  dsnw_m01         ;pointer to 4 words data
 dc.l  0                ;no select structure
 dc.l  0                ;no text
 dc.l  0                ;no exclude
 dc.l  dsnw_pi01        ;pointer to propinfo structure
 dc.w  1                ;gadget ID
 dc.l  0                ;no user data

dsnw_m01:               ;*structure for sizes of mover
 dc.w  0,0              ;x,y
 dc.w  0,0              ;dx,dy

dsnw_pi01:
 dc.w  AUTOKNOB|FREEHORIZ|PROPBORDERLESS|PROPNEWLOOK    ;flags
dsnw_pi01_pos:
 dc.w  0                ;X position of slider
 dc.w  0                ;Y position of slider
dsnw_pi01_step:
 dc.w  $ffff/4          ;horizontal step size:1/16
 dc.w  0                ;no vertical movement
 dc.w  0                ;box width
 dc.w  0                ;box height
 dc.w  0                ;absolute step size horizontal
 dc.w  0                ;and vertical
 dc.w  0                ;left border of box
 dc.w  0                ;upper border of box


dsnw_g02:                ;structure for bool gadget
 dc.l  dsnw_g03          ;next gadget
 dc.w  128+8+2+2,-7      ;position
 dc.w  4,6               ;width and height of frame
 dc.w  GFLG_RELBOTTOM|GFLG_GADGHIMAGE|GFLG_GADGIMAGE     ; flags
 dc.w  GACT_RELVERIFY|GACT_IMMEDIATE                     ; activation flags
 dc.w  GTYP_BOOLGADGET                   ;1   type of gadget
dsnw_im02:
 dc.l  0                 ;pointer to image data (fill from program)
dsnw_ims02:
 dc.l  0                 ;select structure (fill from program)
 dc.l  0                 ;no text
 dc.l  0                 ;no exclude
 dc.l  0                 ;pointer to special info structure
 dc.w  2                 ;gadget ID
 dc.l  0                 ;no user data

dsnw_tlim02:
 dc.l  IA_Left,0
 dc.l  IA_Top,0
 dc.l  IA_Width,4
 dc.l  IA_Height,6
 dc.l  IA_FGPen,3
 dc.l  IA_BGPen,0
 dc.l  IA_Data,dsnw_imd02
; dc.l  SYSIA_Size,SYSISIZE_MEDRES      ; MEDRES screen
; dc.l  SYSIA_Which,LEFTIMAGE
; dc.l  SYSIA_DrawInfo
;dsnw_tlim02_dri:
; dc.l  0                 ; pointer fill from program
 dc.l  TAG_END

dsnw_tlims02:
 dc.l  IA_Left,0
 dc.l  IA_Top,0
 dc.l  IA_Width,4
 dc.l  IA_Height,6
 dc.l  IA_FGPen,3
 dc.l  IA_BGPen,0
 dc.l  IA_Data,dsnw_imsd02
; dc.l  SYSIA_Size,SYSISIZE_MEDRES      ; MEDRES screen
; dc.l  SYSIA_Which,LEFTIMAGE
; dc.l  SYSIA_DrawInfo
;dsnw_tlims02_dri:
; dc.l  0                 ; pointer fill from program
 dc.l  TAG_END


dsnw_g03:                ;structure for Proportional gadget
 dc.l  dsnw_g04       ;next gadget
 dc.w  136+8+2+2,-7      ;position
 dc.w  435,6             ;width and height of frame
 dc.w  GFLG_RELBOTTOM|GFLG_GADGHNONE     ;$0b flags
 dc.w  GACT_RELVERIFY                    ;$01 activation flags
 dc.w  GTYP_PROPGADGET                   ;3   type of gadget
 dc.l  dsnw_m03         ;pointer to 4 words data
 dc.l  0                ;no select structure
 dc.l  0                ;no text
 dc.l  0                ;no exclude
 dc.l  dsnw_pi03        ;pointer to propinfo structure
 dc.w  3                ;gadget ID
 dc.l  0                ;no user data

dsnw_m03:               ;*structure for sizes of mover
 dc.w  0,0              ;x,y
 dc.w  0,0              ;dx,dy

dsnw_pi03:
 dc.w  AUTOKNOB|FREEHORIZ|PROPBORDERLESS|PROPNEWLOOK    ;flags
dsnw_pi03_pos:
 dc.w  0                ;X position of slider
 dc.w  0                ;Y position of slider
dsnw_pi03_step:
 dc.w  $ffff/16         ;horizontal step size:1/16
 dc.w  0                ;no vertical movement
 dc.w  0                ;box width
 dc.w  0                ;box height
 dc.w  0                ;absolute step size horizontal
 dc.w  0                ;and vertical
 dc.w  0                ;left border of box
 dc.w  0                ;upper border of box


dsnw_g04:                ;structure for bool gadget
 dc.l  dsnw_g05          ;next gadget
 dc.w  -49,-9            ;position
 dc.w  16,10             ;width and height of frame
 dc.w  GFLG_RELBOTTOM|GFLG_RELRIGHT|GFLG_GADGHIMAGE|GFLG_GADGIMAGE     ; flags
 dc.w  GACT_RELVERIFY                    ;$01 activation flags
 dc.w  GTYP_BOOLGADGET                   ;1   type of gadget
dsnw_im04:
 dc.l  0                 ;pointer to image data (fill from program)
dsnw_ims04:
 dc.l  0                 ;pointer to select image data (fill from program)
 dc.l  0                 ;no text
 dc.l  0                 ;no exclude
 dc.l  0                 ;pointer to special info structure
 dc.w  4                 ;gadget ID
 dc.l  0                 ;no user data

dsnw_tlim04:
 dc.l  SYSIA_Size,SYSISIZE_MEDRES      ; MEDRES screen
 dc.l  SYSIA_Which,LEFTIMAGE           ; left-arrow new Image
 dc.l  SYSIA_DrawInfo
dsnw_tlim04_dri:
 dc.l  0                 ; pointer fill from program
 dc.l  TAG_END


dsnw_g05:                ;structure for bool gadget
 dc.l  dsnw_g06          ;next gadget
 dc.w  -33,-9            ;position
 dc.w  16,10               ;width and height of frame
 dc.w  GFLG_RELBOTTOM|GFLG_RELRIGHT|GFLG_GADGHIMAGE|GFLG_GADGIMAGE     ; flags
 dc.w  GACT_RELVERIFY                    ;$01 activation flags
 dc.w  GTYP_BOOLGADGET                   ;1   type of gadget
dsnw_im05:
 dc.l  0                 ;pointer to image data (fill from program)
dsnw_ims05:
 dc.l  0                 ;select structure (fill from program)
 dc.l  0                 ;no text
 dc.l  0                 ;no exclude
 dc.l  0                 ;pointer to special info structure
 dc.w  5                 ;gadget ID
 dc.l  0                 ;no user data

dsnw_tlim05:
 dc.l  SYSIA_Size,SYSISIZE_MEDRES     ; MEDRES screen
 dc.l  SYSIA_Which,RIGHTIMAGE         ; right-arrow new Image
 dc.l  SYSIA_DrawInfo
dsnw_tlim05_dri:
 dc.l  0                 ; pointer fill from program
 dc.l  TAG_END


dsnw_g06:                ;structure for bool gadget
 dc.l  dsnw_g07          ;next gadget
 dc.w  -17,-20            ;position
 dc.w  18,11             ;width and height of frame
 dc.w  GFLG_RELBOTTOM|GFLG_RELRIGHT|GFLG_GADGHIMAGE|GFLG_GADGIMAGE     ; flags
 dc.w  GACT_RELVERIFY                          ;$01 activation flags
 dc.w  GTYP_BOOLGADGET                          ;1   type of gadget
dsnw_im06:
 dc.l  0                 ;pointer to image data (fill from program)
dsnw_ims06:
 dc.l  0                 ;pointer to select image data (fill from program)
 dc.l  0                 ;no text
 dc.l  0                 ;no exclude
 dc.l  0                 ;pointer to special info structure
 dc.w  6                 ;gadget ID
 dc.l  0                 ;no user data

dsnw_tlim06:
 dc.l  SYSIA_Size,SYSISIZE_MEDRES     ; MEDRES screen
 dc.l  SYSIA_Which,DOWNIMAGE          ; down-arrow new Image
 dc.l  SYSIA_DrawInfo
dsnw_tlim06_dri:
 dc.l  0                 ; pointer fill from program
 dc.l  TAG_END


dsnw_g07:                ;structure for bool gadget
 dc.l  dsnw_g08          ;next gadget
 dc.w  -17,-31            ;position
 dc.w  18,11               ;width and height of frame
 dc.w  GFLG_RELBOTTOM|GFLG_RELRIGHT|GFLG_GADGHIMAGE|GFLG_GADGIMAGE     ; flags
 dc.w  GACT_RELVERIFY                  ;$01 activation flags
 dc.w  GTYP_BOOLGADGET                 ;1   type of gadget
dsnw_im07:
 dc.l  0                 ;pointer to image data (fill from program)
dsnw_ims07:
 dc.l  0                 ;select structure (fill from program)
 dc.l  0                 ;no text
 dc.l  0                 ;no exclude
 dc.l  0                 ;pointer to special info structure
 dc.w  7                 ;gadget ID
 dc.l  0                 ;no user data

dsnw_tlim07:
 dc.l  SYSIA_Size,SYSISIZE_MEDRES      ; MEDRES screen
 dc.l  SYSIA_Which,UPIMAGE             ; up-arrow new Image
 dc.l  SYSIA_DrawInfo
dsnw_tlim07_dri:
 dc.l  0                 ; pointer fill from program
 dc.l  TAG_END


dsnw_g08:                ;structure for Proportional gadget
 dc.l  0                 ;next gadget
 dc.w  -13,12        ;position
 dc.w  10,-45 ;160             ;width and height of frame
 dc.w  GFLG_RELRIGHT|GFLG_RELHEIGHT|GFLG_GADGHNONE     ;$0b flags
 dc.w  GACT_RELVERIFY                   ;$01 activation flags
 dc.w  GTYP_PROPGADGET                   ;3   type of gadget
 dc.l  dsnw_m08         ;pointer to 4 words data
 dc.l  0                ;no select structure
 dc.l  0                ;no text
 dc.l  0                ;no exclude
 dc.l  dsnw_pi08        ;pointer to propinfo structure
 dc.w  8                ;gadget ID
 dc.l  0                ;no user data

dsnw_m08:               ;*structure for sizes of mover
 dc.w  0,0              ;x,y
 dc.w  0,0              ;dx,dy

dsnw_pi08:
 dc.w  AUTOKNOB|FREEVERT|PROPBORDERLESS|PROPNEWLOOK    ;flags
 dc.w  0                ;X position of slider
dsnw_pi08_pos:
 dc.w  0                ;Y position of slider
 dc.w  0                ;horizontal step size:1/16
dsnw_pi08_step:
 dc.w  $ffff/4          ;no vertical movement
 dc.w  0                ;box width
 dc.w  0                ;box height
 dc.w  0                ;absolute step size horizontal
 dc.w  0                ;and vertical
 dc.w  0                ;left border of box
 dc.w  0                ;upper border of box


;----------------------------

dsa_TempText:
 dc.b     1        ; text color
 dc.b     0        ; background color
 dc.b     RP_JAM1  ; it_DrawMode
 even
 dc.w     0        ; x coord
 dc.w     0        ; y coord
 dc.l     0        ; font pointer
 dc.l     dsatt_t  ; text pointer
 dc.l     0        ; other IntuiText to render

dsatt_t:
 ds.b     256      ; space for print name

;----------------------------

dsa_NewWinAbout:
 dc.w     50            ;X-position
 dc.w     40            ;Y-position
 dc.w     400           ;width
 dc.w     80            ;height
 dc.b     1             ;print colour
 dc.b     0             ;background
 dc.l     $008|100|$200|$400|$80000    ;IDCMP flags:MOUSEBUTTONS, CLOSEWINDOW, MENUPICK, RAWKEY, DEACTIVEWINDOW
 dc.l     WFLG_NEWLOOKMENUS|WFLG_ACTIVATE|WFLG_SMART_REFRESH|WFLG_CLOSEGADGET|WFLG_DRAGBAR  ; flags
 dc.l     0             ;first gadget:no gadgets of our own
 dc.l     0             ;checkmark:standard
 dc.l     dsa_WinAbout_name  ;pointer to window name
 dc.l     0             ;screen pointer (fill program)
 dc.l     0             ;no bitmap of our own
 dc.w     640-100       ;smallest width
 dc.w     120           ;smallest height
 dc.w     640           ;maximum width
 dc.w     200           ;maximum height
 dc.w     15            ;screen type:custom screen
dsa_WinAbout_name:    dc.b  'About',0
 even

dsa_AboutText:
 dc.b     1    ; text color
 dc.b     3    ; background color
 dc.b     0    ; it_DrawMode
 even
 dc.w     0    ; x coord
 dc.w     30   ; y coord
 dc.l     0    ; font pointer
 dc.l     dsa_AboutTextText
 dc.l     0    ; other IntuiText to render
dsa_AboutTextText:
 dc.b     '    This program written by Vladimir Sobolev',0
 even

dsa_AboutText2:
 dc.b     1    ; text color
 dc.b     3    ; background color
 dc.b     0    ; it_DrawMode
 even
 dc.w     0    ; x coord
 dc.w     40   ; y coord
 dc.l     0    ; font pointer
 dc.l     dsa_AboutTextText2
 dc.l     0    ; other IntuiText to render
dsa_AboutTextText2:
 dc.b     '     from Russia, Ekaterinburg, 08-Apr-1998',0
 even

dsa_AboutText3:
 dc.b     1    ; text color
 dc.b     3    ; background color
 dc.b     0    ; it_DrawMode
 even
 dc.w     0    ; x coord
 dc.w     50   ; y coord
 dc.l     0    ; font pointer
 dc.l     dsa_AboutTextText3
 dc.l     0    ; other IntuiText to render
dsa_AboutTextText3:
 dc.b     '          E-Mail: vsobolev@hotmail.com',0
 even

;----------------------------

dsa_NewWinErr:
 dc.w     50               ;X-position
 dc.w     40               ;Y-position
 dc.w     640-100          ;width
 dc.w     70               ;height
 dc.b     1                ;print colour
 dc.b     0                ;background
 dc.l     $040|$200        ;IDCMP flags: GADGETUP, CLOSEWINDOW
 dc.l     $100a|WFLG_NEWLOOKMENUS|WFLG_SMART_REFRESH  ; flags
 dc.l     nwer_g01         ; first gadget
 dc.l     0                ;checkmark:standard
 dc.l     dsa_WinErr_name  ;pointer to window name
 dc.l     0                ;screen pointer (fill program)
 dc.l     0                ;no bitmap of our own
 dc.w     640-100          ;smallest width
 dc.w     120              ;smallest height
 dc.w     640              ;maximum width
 dc.w     200              ;maximum height
 dc.w     15               ;screen type:custom screen
dsa_WinErr_name:  dc.b  'Error message',0
 even

erit_IText:
 dc.b     1    ; text color
 dc.b     3    ; background color
 dc.b     0    ; it_DrawMode
 even
 dc.w     40   ; x coord
 dc.w     30   ; y coord
 dc.l     0    ; font pointer
erit_TextString:
 dc.l     0    ; pointer to text string (an example, to erit_000)
 dc.l     0    ; other IntuiText to render

dsa_ErrTextPointers:
 dc.l     1
 dc.l     erit_001
 dc.l     2
 dc.l     erit_002
 dc.l     3
 dc.l     erit_003
 dc.l     4
 dc.l     erit_004
 dc.l     5
 dc.l     erit_005
 dc.l     6
 dc.l     erit_006
 dc.l     7
 dc.l     erit_007
 dc.l     8
 dc.l     erit_008
 dc.l     9
 dc.l     erit_009
 dc.l     10
 dc.l     erit_010
 dc.l     11
 dc.l     erit_011
 dc.l     0             ; last default error
 dc.l     erit_000

erit_000:
 dc.b     'Unknown error',0              ;-)
erit_001:
 dc.b     'Low memory for load file',0
erit_002:
 dc.b     'Loading error',0
erit_003:
 dc.b     'File not open',0
erit_004:
 dc.b     'This is not DSA file or file is corrupt',0
erit_005:
 dc.b     'File not open for write',0
erit_006:
 dc.b     'No file in memory',0
erit_007:
 dc.b     'Saving error',0
erit_008:
 dc.b     'Open empty file',0
erit_009:
 dc.b     'This is not PLDSHELL file or file is corrupt',0
erit_010:
 dc.b     'Low memory for internal buffers',0
erit_011:
 dc.b     'No oscilogram for export',0
 even

nwer_g01:
 dc.l     0                 ; next gadget
 dc.w     230               ; left
 dc.w     50                ; top
 dc.w     88                ; width
 dc.w     14                ; height
 dc.w     GFLG_GADGHIMAGE|GFLG_GADGIMAGE    ; flags
 dc.w     GACT_RELVERIFY                    ; activation flags
 dc.w     GTYP_BOOLGADGET                   ; type of gadget
 dc.l     nwer_im           ;pointer to image data
 dc.l     nwer_ims          ;pointer to select image data
 dc.l     0                 ;no text
 dc.l     0                 ;no exclude
 dc.l     0                 ;pointer to special info structure
 dc.w     1                 ; gadget user ID
 dc.l     0                 ; reserved

nwer_im:
 dc.w     0,0
 dc.w     88,14
 dc.w     4
 dc.l     nwer_imd
 dc.b     3,0
 dc.l     0

nwer_ims:
 dc.w     0,0
 dc.w     88,14
 dc.w     4
 dc.l     nwer_imsd
 dc.b     3,0
 dc.l     0

;-----------------------------
; raw key table
;-----------------------------

raw_key_table:
 dc.w     $000c,$8000     ; "=/+"
 dc.l     rk_zoom_outx2
 dc.w     $000c,$8001     ; lshift "+"
 dc.l     rk_zoom_out
 dc.w     $000c,$8002     ; rshift "+"
 dc.l     rk_zoom_out

 dc.w     $005e,$8100     ; ext +
 dc.l     rk_zoom_outx2
 dc.w     $005e,$8101     ; lshift ext +
 dc.l     rk_zoom_out
 dc.w     $005e,$8102     ; rshift ext +
 dc.l     rk_zoom_out

 dc.w     $000b,$8000     ; "-/_"
 dc.l     rk_zoom_inx2
 dc.w     $000b,$8001     ; lshift "-"
 dc.l     rk_zoom_in
 dc.w     $000b,$8002     ; rshift "-"
 dc.l     rk_zoom_in

 dc.w     $004a,$8100     ; ext -
 dc.l     rk_zoom_inx2
 dc.w     $004a,$8101     ; lshift ext -
 dc.l     rk_zoom_in
 dc.w     $004a,$8102     ; rshift ext -
 dc.l     rk_zoom_in

 dc.w     $0016,$8000     ; "u"
 dc.l     rk_osc_up
 dc.w     $0016,$8200     ; "u" auto
 dc.l     rk_osc_up

 dc.w     $0022,$8000     ; "d"
 dc.l     rk_osc_down
 dc.w     $0022,$8200     ; "d" auto
 dc.l     rk_osc_down

 dc.w     $004f,$8000     ; left arrow
 dc.l     rk_left_arrow
 dc.w     $004f,$8200     ; left arrow auto
 dc.l     rk_left_arrow

 dc.w     $004e,$8000     ; right arrow
 dc.l     rk_right_arrow
 dc.w     $004e,$8200     ; right arrow auto
 dc.l     rk_right_arrow

 dc.w     $004c,$8000     ; up arrow
 dc.l     rk_up_arrow
 dc.w     $004c,$8200     ; up arrow auto
 dc.l     rk_up_arrow

 dc.w     $004d,$8000     ; down arrow
 dc.l     rk_down_arrow
 dc.w     $004d,$8200     ; down arrow auto
 dc.l     rk_down_arrow

 dc.l     0



;-----------------------------
; menu
;-----------------------------

menu_jump_table:
; dc.w (subpunkt<<11)|(punkt<<5)|menu
; $ffff - push rbm and not select punkt or subpunkt
; bit 15-11 subpunkt number (%11111 - no subpunkt at select)
; bit 10-5 punkt number
; bit 4-0 menu number
; dc.l procedure_adr
 dc.w     (%11111<<11)|(0<<5)|0
 dc.l     mn_Load
 dc.w     (%11111<<11)|(1<<5)|0
 dc.l     mn_Save
 dc.w     (%11111<<11)|(2<<5)|0
 dc.l     mn_SaveAs
 dc.w     (%11111<<11)|(3<<5)|0
 dc.l     mn_Import
 dc.w     (%11111<<11)|(4<<5)|0
 dc.l     mn_Export
 dc.w     (%11111<<11)|(5<<5)|0
 dc.l     mn_About
 dc.w     (%11111<<11)|(6<<5)|0
 dc.l     mn_Quit

 dc.w     (%11111<<11)|(0<<5)|1
 dc.l     mn_GetOsc
 dc.w     (%11111<<11)|(1<<5)|1
 dc.l     mn_RefreshMode
 dc.w     (%11111<<11)|(2<<5)|1
 dc.l     mn_InitOsc
 dc.w     (%11111<<11)|(3<<5)|1
 dc.l     mn_StartOsc
 dc.w     (%11111<<11)|(4<<5)|1
 dc.l     mn_StopOsc
 dc.w     (%11111<<11)|(5<<5)|1
 dc.l     mn_MakeOsc

 dc.w     $ffff    ; end of table

dsa_menu:
menu_0:
 dc.l     menu_1        ; next menu
 dc.w     0             ; x
 dc.w     0             ; y
 dc.w     50            ; width
 dc.w     10            ; height
 dc.w     1             ; menu enabled
 dc.l     mtxt_0        ; pointer to menu_0 text
 dc.l     menu_0_0      ; pointer to first menu punkt in menu_0
 dc.w     0             ; reserved for intuition (mu_JazzX)
 dc.w     0             ; reserved for intuition (mu_JazzY)
 dc.w     0             ; reserved for intuition (mu_BeatX)
 dc.w     0             ; reserved for intuition (mu_BeatY)

mtxt_0:
 dc.b     'File',0
 even

menu_0_0:
 dc.l     menu_0_1      ; pointer to next punkt
 dc.w     0             ; x
 dc.w     0             ; y
 dc.w     90            ; width
 dc.w     10            ; height
 dc.w     $0002|$0010|$0040  ; mi_Flags: ITEMTEXT,ITEMENABLED,HIGHCOMP
 dc.l     0             ; net svjazi (mi_MutualExclude)
 dc.l     mtxt_0_0      ; pointer to punkt menu_0_0 text
 dc.l     0             ; second image
 dc.b     0             ; hot key code
 even
 dc.l     0             ; no subpunkt
 dc.l     0             ; reserved for intuition

mtxt_0_0:
 dc.b     1         ; text color
 dc.b     2         ; background color
 dc.b     RP_JAM2   ; it_DrawMode
 even
 dc.w     0         ; x coord
 dc.w     0         ; y coord
 dc.l     0         ; font pointer
 dc.l     mtxtt_0_0
 dc.l     0         ; other IntuiText to render
mtxtt_0_0:
 dc.b     'Load',0
 even

menu_0_1:
 dc.l     menu_0_2      ; pointer to next punkt
 dc.w     0             ; x
 dc.w     10            ; y
 dc.w     90            ; width
 dc.w     10            ; height
 dc.w     $0002|$0010|$0040  ; flags: ITEMTEXT,ITEMENABLED,HIGHCOMP
 dc.l     0             ; net svjazi
 dc.l     mtxt_0_1      ; pointer to punkt menu_0_0 text
 dc.l     0             ; second image
 dc.b     0             ; hot key code
 even
 dc.l     0             ; no subpunkt
 dc.l     0             ; reserved for intuition

mtxt_0_1:
 dc.b     1         ; text color
 dc.b     2         ; background color
 dc.b     RP_JAM2   ; mode
 even
 dc.w     0         ; x coord
 dc.w     0         ; y coord
 dc.l     0         ; font pointer
 dc.l     mtxtt_0_1
 dc.l     0         ; other IntuiText to render
mtxtt_0_1:
 dc.b     'Save',0
 even

menu_0_2:
 dc.l     menu_0_3      ; pointer to next punkt
 dc.w     0             ; x
 dc.w     20            ; y
 dc.w     90            ; width
 dc.w     10            ; height
 dc.w     $0002|$0010|$0040  ; flags: ITEMTEXT,ITEMENABLED,HIGHCOMP
 dc.l     0             ; net svjazi
 dc.l     mtxt_0_2      ; pointer to punkt menu_0_0 text
 dc.l     0             ; second image
 dc.b     0             ; hot key code
 even
 dc.l     0             ; no subpunkt
 dc.l     0             ; reserved for intuition

mtxt_0_2:
 dc.b     1         ; text color
 dc.b     2         ; background color
 dc.b     RP_JAM2   ; mode
 even
 dc.w     0         ; x coord
 dc.w     0         ; y coord
 dc.l     0         ; font pointer
 dc.l     mtxtt_0_2
 dc.l     0         ; other IntuiText to render
mtxtt_0_2:
 dc.b     'Save As',0
 even

menu_0_3:
 dc.l     menu_0_4      ; pointer to next punkt
 dc.w     0             ; x
 dc.w     30            ; y
 dc.w     90            ; width
 dc.w     10            ; height
 dc.w     $0002|$0010|$0040  ; flags: ITEMTEXT,ITEMENABLED,HIGHCOMP
 dc.l     0             ; net svjazi
 dc.l     mtxt_0_3      ; pointer to punkt menu_0_0 text
 dc.l     0             ; second image
 dc.b     0             ; hot key code
 even
 dc.l     0             ; no subpunkt
 dc.l     0             ; reserved for intuition

mtxt_0_3:
 dc.b     1         ; text color
 dc.b     2         ; background color
 dc.b     RP_JAM2   ; mode
 even
 dc.w     0         ; x coord
 dc.w     0         ; y coord
 dc.l     0         ; font pointer
 dc.l     mtxtt_0_3
 dc.l     0         ; other IntuiText to render
mtxtt_0_3:
 dc.b     'Import',0
 even

menu_0_4:
 dc.l     menu_0_5      ; pointer to next punkt
 dc.w     0             ; x
 dc.w     40            ; y
 dc.w     90            ; width
 dc.w     10            ; height
 dc.w     $0002|$0010|$0040  ; flags: ITEMTEXT,ITEMENABLED,HIGHCOMP
 dc.l     0             ; net svjazi
 dc.l     mtxt_0_4      ; pointer to punkt menu_0_0 text
 dc.l     0             ; second image
 dc.b     0             ; hot key code
 even
 dc.l     0             ; no subpunkt
 dc.l     0             ; reserved for intuition

mtxt_0_4:
 dc.b     1         ; text color
 dc.b     2         ; background color
 dc.b     RP_JAM2   ; mode
 even
 dc.w     0         ; x coord
 dc.w     0         ; y coord
 dc.l     0         ; font pointer
 dc.l     mtxtt_0_4
 dc.l     0         ; other IntuiText to render
mtxtt_0_4:
 dc.b     'Export',0
 even

menu_0_5:
 dc.l     menu_0_6      ; pointer to next punkt
 dc.w     0             ; x
 dc.w     50            ; y
 dc.w     90            ; width
 dc.w     10            ; height
 dc.w     $0002|$0010|$0040  ; flags: ITEMTEXT,ITEMENABLED,HIGHCOMP
 dc.l     0             ; net svjazi
 dc.l     mtxt_0_5      ; pointer to punkt menu_0_0 text
 dc.l     0             ; second image
 dc.b     0             ; hot key code
 even
 dc.l     0             ; no subpunkt
 dc.l     0             ; reserved for intuition

mtxt_0_5:
 dc.b     1         ; text color
 dc.b     2         ; background color
 dc.b     RP_JAM2   ; mode
 even
 dc.w     0         ; x coord
 dc.w     0         ; y coord
 dc.l     0         ; font pointer
 dc.l     mtxtt_0_5
 dc.l     0         ; other IntuiText to render
mtxtt_0_5:
 dc.b     'About',0
 even

menu_0_6:
 dc.l     0             ; pointer to next punkt
 dc.w     0             ; x
 dc.w     60            ; y
 dc.w     90            ; width
 dc.w     10            ; height
 dc.w     $0002|$0010|$0040  ; flags: ITEMTEXT,ITEMENABLED,HIGHCOMP
 dc.l     0             ; net svjazi
 dc.l     mtxt_0_6      ; pointer to punkt menu_0_0 text
 dc.l     0             ; second image
 dc.b     0             ; hot key code
 even
 dc.l     0             ; no subpunkt
 dc.l     0             ; reserved for intuition

mtxt_0_6:
 dc.b     1         ; text color
 dc.b     2         ; background color
 dc.b     RP_JAM2   ; mode
 even
 dc.w     0         ; x coord
 dc.w     0         ; y coord
 dc.l     0         ; font pointer
 dc.l     mtxtt_0_6
 dc.l     0         ; other IntuiText to render
mtxtt_0_6:
 dc.b     'Quit',0
 even


menu_1:
 dc.l     0             ; next menu
 dc.w     50            ; x
 dc.w     0             ; y
 dc.w     80            ; width
 dc.w     10            ; height
 dc.w     1             ; menu enabled
 dc.l     mtxt_1        ; pointer to menu_0 text
 dc.l     menu_1_0      ; pointer to first menu punkt in menu_0
 dc.w     0             ; reserved for intuition (mu_JazzX)
 dc.w     0             ; reserved for intuition (mu_JazzY)
 dc.w     0             ; reserved for intuition (mu_BeatX)
 dc.w     0             ; reserved for intuition (mu_BeatY)

mtxt_1:
 dc.b     'Hardware',0
 even

menu_1_0:
 dc.l     menu_1_1      ; pointer to next punkt
 dc.w     0             ; x
 dc.w     0             ; y
 dc.w     100           ; width
 dc.w     10            ; height
 dc.w     $0002|$0010|$0040  ; mi_Flags: ITEMTEXT,ITEMENABLED,HIGHCOMP
 dc.l     0             ; net svjazi (mi_MutualExclude)
 dc.l     mtxt_1_0      ; pointer to punkt menu_0_0 text
 dc.l     0             ; second image
 dc.b     0             ; hot key code
 even
 dc.l     0             ; no subpunkt
 dc.l     0             ; reserved for intuition

mtxt_1_0:
 dc.b     1         ; text color
 dc.b     2         ; background color
 dc.b     RP_JAM2   ; it_DrawMode
 even
 dc.w     0         ; x coord
 dc.w     0         ; y coord
 dc.l     0         ; font pointer
 dc.l     mtxtt_1_0
 dc.l     0         ; other IntuiText to render
mtxtt_1_0:
 dc.b     'Get Osc',0
 even

menu_1_1:
 dc.l     menu_1_2      ; pointer to next punkt
 dc.w     0             ; x
 dc.w     10             ; y
 dc.w     100            ; width
 dc.w     10            ; height
 dc.w     $0002|$0010|$0040  ; mi_Flags: ITEMTEXT,ITEMENABLED,HIGHCOMP
 dc.l     0             ; net svjazi (mi_MutualExclude)
 dc.l     mtxt_1_1      ; pointer to punkt menu_0_0 text
 dc.l     0             ; second image
 dc.b     0             ; hot key code
 even
 dc.l     0             ; no subpunkt
 dc.l     0             ; reserved for intuition

mtxt_1_1:
 dc.b     1         ; text color
 dc.b     2         ; background color
 dc.b     RP_JAM2   ; it_DrawMode
 even
 dc.w     0         ; x coord
 dc.w     0         ; y coord
 dc.l     0         ; font pointer
 dc.l     mtxtt_1_1
 dc.l     0         ; other IntuiText to render
mtxtt_1_1:
 dc.b     'Refresh Mode',0
 even

menu_1_2:
 dc.l     menu_1_3      ; pointer to next punkt
 dc.w     0             ; x
 dc.w     20             ; y
 dc.w     100            ; width
 dc.w     10            ; height
 dc.w     $0002|$0010|$0040  ; mi_Flags: ITEMTEXT,ITEMENABLED,HIGHCOMP
 dc.l     0             ; net svjazi (mi_MutualExclude)
 dc.l     mtxt_1_2      ; pointer to punkt menu_0_0 text
 dc.l     0             ; second image
 dc.b     0             ; hot key code
 even
 dc.l     0             ; no subpunkt
 dc.l     0             ; reserved for intuition

mtxt_1_2:
 dc.b     1         ; text color
 dc.b     2         ; background color
 dc.b     RP_JAM2   ; it_DrawMode
 even
 dc.w     0         ; x coord
 dc.w     0         ; y coord
 dc.l     0         ; font pointer
 dc.l     mtxtt_1_2
 dc.l     0         ; other IntuiText to render
mtxtt_1_2:
 dc.b     'Init Osc',0
 even

menu_1_3:
 dc.l     menu_1_4      ; pointer to next punkt
 dc.w     0             ; x
 dc.w     30             ; y
 dc.w     100            ; width
 dc.w     10            ; height
 dc.w     $0002|$0010|$0040  ; mi_Flags: ITEMTEXT,ITEMENABLED,HIGHCOMP
 dc.l     0             ; net svjazi (mi_MutualExclude)
 dc.l     mtxt_1_3      ; pointer to punkt menu_0_0 text
 dc.l     0             ; second image
 dc.b     0             ; hot key code
 even
 dc.l     0             ; no subpunkt
 dc.l     0             ; reserved for intuition

mtxt_1_3:
 dc.b     1         ; text color
 dc.b     2         ; background color
 dc.b     RP_JAM2   ; it_DrawMode
 even
 dc.w     0         ; x coord
 dc.w     0         ; y coord
 dc.l     0         ; font pointer
 dc.l     mtxtt_1_3
 dc.l     0         ; other IntuiText to render
mtxtt_1_3:
 dc.b     'Start Osc',0
 even

menu_1_4:
 dc.l     menu_1_5      ; pointer to next punkt
 dc.w     0             ; x
 dc.w     40            ; y
 dc.w     100            ; width
 dc.w     10            ; height
 dc.w     $0002|$0010|$0040  ; mi_Flags: ITEMTEXT,ITEMENABLED,HIGHCOMP
 dc.l     0             ; net svjazi (mi_MutualExclude)
 dc.l     mtxt_1_4      ; pointer to punkt menu_0_0 text
 dc.l     0             ; second image
 dc.b     0             ; hot key code
 even
 dc.l     0             ; no subpunkt
 dc.l     0             ; reserved for intuition

mtxt_1_4:
 dc.b     1         ; text color
 dc.b     2         ; background color
 dc.b     RP_JAM2   ; it_DrawMode
 even
 dc.w     0         ; x coord
 dc.w     0         ; y coord
 dc.l     0         ; font pointer
 dc.l     mtxtt_1_4
 dc.l     0         ; other IntuiText to render
mtxtt_1_4:
 dc.b     'Stop Osc',0
 even

menu_1_5:
 dc.l     0             ; pointer to next punkt
 dc.w     0             ; x
 dc.w     50            ; y
 dc.w     100            ; width
 dc.w     10            ; height
 dc.w     $0002|$0010|$0040  ; mi_Flags: ITEMTEXT,ITEMENABLED,HIGHCOMP
 dc.l     0             ; net svjazi (mi_MutualExclude)
 dc.l     mtxt_1_5      ; pointer to punkt menu_0_0 text
 dc.l     0             ; second image
 dc.b     0             ; hot key code
 even
 dc.l     0             ; no subpunkt
 dc.l     0             ; reserved for intuition

mtxt_1_5:
 dc.b     1         ; text color
 dc.b     2         ; background color
 dc.b     RP_JAM2   ; it_DrawMode
 even
 dc.w     0         ; x coord
 dc.w     0         ; y coord
 dc.l     0         ; font pointer
 dc.l     mtxtt_1_5
 dc.l     0         ; other IntuiText to render
mtxtt_1_5:
 dc.b     'Make Osc',0
 even


;--------------------------

sig_array:
; low level; output
 dc.b     1         ; one line
 dc.b     0         ; jump detect byte (0-low; 1-high; 2-off)
 dc.b     $0c       ; jump signal pen
 dc.b     0         ; reserved
 dc.b     $0d       ; signal 1 pen
 dc.b     0         ; signal 2 pen
 dc.b     0         ; reserved
 dc.b     0         ; reserved
 dc.w     $0000     ; signal 1 level value
 dc.w     0         ; signal 2 level value
 dc.w     0         ; reserved
 dc.w     0         ; reserved

; high level; output
 dc.b     1         ; one line
 dc.b     1         ; jump detect byte (0-low; 1-high; 2-off)
 dc.b     $0c       ; jump signal pen
 dc.b     0         ; reserved
 dc.b     $0d       ; signal 1 pen
 dc.b     0         ; signal 2 pen
 dc.b     0         ; reserved
 dc.b     0         ; reserved
 dc.w     $ffff     ; signal 1 level value
 dc.w     0         ; signal 2 level value
 dc.w     0         ; reserved
 dc.w     0         ; reserved

; low level; input
 dc.b     1         ; one line
 dc.b     0         ; jump detect byte (0-low; 1-high; 2-off)
 dc.b     $0a       ; jump signal pen
 dc.b     0         ; reserved
 dc.b     $0b       ; signal 1 pen
 dc.b     0         ; signal 2 pen
 dc.b     0         ; reserved
 dc.b     0         ; reserved
 dc.w     $0000     ; signal 1 level value
 dc.w     0         ; signal 2 level value
 dc.w     0         ; reserved
 dc.w     0         ; reserved

; high level input
 dc.b     1         ; one line
 dc.b     1         ; jump detect byte (0-low; 1-high; 2-off)
 dc.b     $0a       ; jump signal pen
 dc.b     0         ; reserved
 dc.b     $0b       ; signal 1 pen
 dc.b     0         ; signal 2 pen
 dc.b     0         ; reserved
 dc.b     0         ; reserved
 dc.w     $ffff     ; signal 1 level value
 dc.w     0         ; signal 2 level value
 dc.w     0         ; reserved
 dc.w     0         ; reserved

; 3th state; input-output
 dc.b     1         ; one line
 dc.b     2         ; jump detect byte (0-low; 1-high; 2-off)
 dc.b     $08       ; jump signal pen
 dc.b     0         ; reserved
 dc.b     $09       ; signal 1 pen
 dc.b     0         ; signal 2 pen
 dc.b     0         ; reserved
 dc.b     0         ; reserved
 dc.w     $8000     ; signal 1 level value
 dc.w     0         ; signal 2 level value
 dc.w     0         ; reserved
 dc.w     0         ; reserved

; unknown level; output
 dc.b     2         ; two lines
 dc.b     2         ; jump detect byte (0-low; 1-high; 2-off)
 dc.b     $0e       ; jump signal pen
 dc.b     0         ; reserved
 dc.b     $0f       ; signal 1 pen
 dc.b     $0f       ; signal 2 pen
 dc.b     0         ; reserved
 dc.b     0         ; reserved
 dc.w     $3000     ; signal 1 level value
 dc.w     $d000     ; signal 2 level value
 dc.w     0         ; reserved
 dc.w     0         ; reserved

; unknown level; input
 dc.b     2         ; two lines
 dc.b     2         ; jump detect byte (0-low; 1-high; 2-off)
 dc.b     $0e       ; jump signal pen
 dc.b     0         ; reserved
 dc.b     $0f       ; signal 1 pen
 dc.b     $0f       ; signal 2 pen
 dc.b     0         ; reserved
 dc.b     0         ; reserved
 dc.w     $3000     ; signal 1 level value
 dc.w     $d000     ; signal 2 level value
 dc.w     0         ; reserved
 dc.w     0         ; reserved

; not connected or no signal
 dc.b     0         ; no line
 dc.b     2         ; jump detect byte (0-low; 1-high; 2-off)
 dc.b     0         ; jump signal pen
 dc.b     0         ; reserved
 dc.b     0         ; signal 1 pen
 dc.b     0         ; signal 2 pen
 dc.b     0         ; reserved
 dc.b     0         ; reserved
 dc.w     0         ; signal 1 level value
 dc.w     0         ; signal 2 level value
 dc.w     0         ; reserved
 dc.w     0         ; reserved

; not connected or no signal (reserved)
 dc.b     0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 dc.b     0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 dc.b     0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 dc.b     0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0

 dc.b     0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 dc.b     0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 dc.b     0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 dc.b     0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0

;--------------------------

; byte section

; system components
dosname:              dc.b  'dos.library',0
intname:              dc.b  'intuition.library',0
grafname:             dc.b  'graphics.library',0
aslname:              dc.b  'asl.library',0
mathieeesingbasname:  dc.b  'mathieeesingbas.library',0

sysiclass_name:   dc.b  'sysiclass',0
gadgetclass_name: dc.b  'gadgetclass',0
imageclass_name:  dc.b  'imageclass',0

; program components
dig_pen:           dc.b  $d
jump_dig_pen:      dc.b  $c
analog_pen:        dc.b  $d
gfx_bg_pen:        dc.b  $5
mark_vert_pen:     dc.b  $6
mark_vert_sel_pen: dc.b  $7
custom_text_pen:   dc.b  $1
select_text_pen:   dc.b  $2

regr_type:        dc.b  0
regr_bitnum:      dc.b  0
regr_oldval:      dc.b  0

Refresh_text:     dc.b  0        ; flag for refresh text area
Refresh_gfx:      dc.b  0        ; flag for refresh gfx area
Refresh_gadget:   dc.b  0        ; flag for refresh and ajust gadget at border
calc_osc_pos_dis: dc.b  0
calc_gfx_pos_dis: dc.b  0
zoom_flag:        dc.b  0
gpush_direction:  dc.b  0

osc1_type:        dc.b  0
osc2_type:        dc.b  0

ide_mode:         dc.b  0

type_list:
 dc.b     'end',0                ; 0
 dc.b     'position',0           ; 1 - begin of vector definition
 dc.b     '----------',0         ; 2 - end of data for user
 dc.b     0

BackupFile:       ds.b  32
BackupDrawer:     ds.b  256
file_path:        ds.b  256
file_info_block:  ds.b  $104+4
regr_buf:         ds.b  64




 section xxx,DATA_C

dsnw_imd02:
 dc.w $ff00,$ff00,$ff00,$ff00,$ff00,$ff00
 dc.w $0000,$0000,$0000,$0000,$0000,$0000
 dc.w $0000,$0000,$0000,$0000,$0000,$0000
 dc.w $0000,$0000,$0000,$0000,$0000,$0000

dsnw_imsd02:
 dc.w $0000,$0000,$0000,$0000,$0000,$0000
 dc.w $ff00,$ff00,$ff00,$ff00,$ff00,$ff00
 dc.w $0000,$0000,$0000,$0000,$0000,$0000
 dc.w $0000,$0000,$0000,$0000,$0000,$0000

nwer_imd:
; Plane 0
 dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
 dc.w $0000,$0000,$0000,$0100,$0000,$0000,$0000,$0000
 dc.w $0000,$0100,$0001,$E000,$0301,$8000,$0000,$0100
 dc.w $0003,$0000,$0300,$0000,$0000,$0100,$0006,$03C7
 dc.w $C7C1,$87C6,$63C0,$0100,$0006,$0666,$6301,$8666
 dc.w $6660,$0100,$0006,$0666,$6301,$8666,$67E0,$0100
 dc.w $0003,$0666,$6301,$8666,$6600,$0100,$0001,$E3C6
 dc.w $61C0,$C663,$E3C0,$0100,$0000,$0000,$0000,$0000
 dc.w $0000,$0100,$0000,$0000,$0000,$0000,$0000,$0100
 dc.w $0000,$0000,$0000,$0000,$0000,$0100,$7FFF,$FFFF
 dc.w $FFFF,$FFFF,$FFFF,$FF00
; Plane 1
 dc.w $FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FE00,$8000,$0000
 dc.w $0000,$0000,$0000,$0000,$8000,$0000,$0000,$0000
 dc.w $0000,$0000,$8000,$0000,$0000,$0000,$0000,$0000
 dc.w $8000,$0000,$0000,$0000,$0000,$0000,$8000,$0000
 dc.w $0000,$0000,$0000,$0000,$8000,$0000,$0000,$0000
 dc.w $0000,$0000,$8000,$0000,$0000,$0000,$0000,$0000
 dc.w $8000,$0000,$0000,$0000,$0000,$0000,$8000,$0000
 dc.w $0000,$0000,$0000,$0000,$8000,$0000,$0000,$0000
 dc.w $0000,$0000,$8000,$0000,$0000,$0000,$0000,$0000
 dc.w $8000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
 dc.w $0000,$0000,$0000,$0000

nwer_imsd:
; Plane 0
 dc.w $FFFF,$FFFF,$FFFF,$FFFF,$FFFF,$FE00,$8000,$0000
 dc.w $0000,$0000,$0000,$0000,$8000,$0000,$0000,$0000
 dc.w $0000,$0000,$8001,$E000,$0301,$8000,$0000,$0000
 dc.w $8003,$0000,$0300,$0000,$0000,$0000,$8006,$03C7
 dc.w $C7C1,$87C6,$63C0,$0000,$8006,$0666,$6301,$8666
 dc.w $6660,$0000,$8006,$0666,$6301,$8666,$67E0,$0000
 dc.w $8003,$0666,$6301,$8666,$6600,$0000,$8001,$E3C6
 dc.w $61C0,$C663,$E3C0,$0000,$8000,$0000,$0000,$0000
 dc.w $0000,$0000,$8000,$0000,$0000,$0000,$0000,$0000
 dc.w $8000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
 dc.w $0000,$0000,$0000,$0000
; Plane 1
 dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
 dc.w $0000,$0000,$0000,$0100,$0000,$0000,$0000,$0000
 dc.w $0000,$0100,$0000,$0000,$0000,$0000,$0000,$0100
 dc.w $0000,$0000,$0000,$0000,$0000,$0100,$0000,$0000
 dc.w $0000,$0000,$0000,$0100,$0000,$0000,$0000,$0000
 dc.w $0000,$0100,$0000,$0000,$0000,$0000,$0000,$0100
 dc.w $0000,$0000,$0000,$0000,$0000,$0100,$0000,$0000
 dc.w $0000,$0000,$0000,$0100,$0000,$0000,$0000,$0000
 dc.w $0000,$0100,$0000,$0000,$0000,$0000,$0000,$0100
 dc.w $0000,$0000,$0000,$0000,$0000,$0100,$7FFF,$FFFF
 dc.w $FFFF,$FFFF,$FFFF,$FF00
