; Отладочный модуль
; предназначен для проверки вызова лупы, а также проверки
; портят ли какие-либо действия в редакторе BGE память в странице AddPage и в свободном пространстве модуля ?

        device  zxspectrum128    ; for SjASMPlus



    INCLUDE "KerBGE.asm"
    INCLUDE "NumGUI.asm"
    ORG #6128       ; адрес расположения перемнных
    INCLUDE "GuiVar.asm"    ; GUI (не менять!!!) don't change!!!

    ORG PgnAdr      ; адрес старта модуля

START    LD (RETAD+1),HL
         CALL TestMem
         XOR A
RETAD   JP 0


TestMem CALL LOADSCR
        CALL ERASE_ALLW     ; удалить все окна, если они
                ; были внесены в реестр

        LD A,%1111      ; прорисовка окна заново
.test   LD IX,Wtest
        LD (IX+6),A
        LD A,Win        ; вызвали окно с
        CALL GUI        ; интерфейсом
        CP #FF
        RET Z
        or a
       jr z,.fill
        dec a
       jr nz,3F
          ld a,AddPage
          call RAM
          ld hl,StartADR
          ld de,Ter
          ld c,#FF
1         ld a,(hl)
          cp c
         jr nz,2F
          inc c
          inc hl
          ld a,h
          or l
         jr nz, 1B
          ld de,Tok
2         ld (Rtext),de
          ld ix,Wres
          ld a,%1110
          ld (ix+6),a
          LD A,Win      ; вызвали окно с
          CALL GUI      ; интерфейсом
         jr .return_
3         dec a
         jr nz,.return
          call LOUPE
         jr TestMem

.return_   CALL CLOSE       ; закрыли последнее окно
.return    LD A,%1101       ; окно не перерисвывать
         JR .test
.fill     ld a,AddPage
          call RAM
          ld hl,StartADR
          ld c,#FF
1         ld (hl),c
          inc c
          inc hl
          ld a,h
          or l
         jr nz, 1B
         jr .return



Wtest  DB 4,4,9,7,5*8,5,%1111
; Bit 0 - окно с заголовком/без (window with title)
; Bit 1 - "перерисовать" окно да/нет (redraw window)
; Bit 2 - тискать окно по экрану да/нет (movable window)
; Bit 3 - выход из окна-ткнуть только лишь за пределами (CANCEL by clicking outside the window)
    DB 0           ; запасной байт-флаг (reserved for flags)
    DW Ttest       ; объект-текст (text object)
    DW Stest       ; объект-подсветка (выборка) (highlighting object)
    DW #FFFF
Ttest   DB "Test Mem",13
        DB "Записать",13
        DB "Проверить",13
        DB "Лупа",0

; Объект подсветка (highlighting object):
; x, y, длина (width), высота (height), флаг (flag):
; bit 0 - подсвечивать (да/нет) (highlight yes/no)
; bit 1 - клавиша "заморожена" ("frozen" key)

Stest   DB 1,3,8,1,%11
        DB 1,4,8,1,%11
        DB 1,5,8,1,%11
        DB #FF

Wres    DB 8,8,8,3,5*8,5,%1110,0
Rtext   DW Tok
        DW #FFFF

Tok     DB "Ok !",0
Ter     DB "Error",0


StartADR  EQU $

         ASSERT $ < #C000
         savebin "TestMem.add",PgnAdr,$-PgnAdr
         DISPLAY "Lenght : ",/a,$-PgnAdr
