Rev 167 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
;SAMPLE.H Пример программы, использующей оболочку.;(C) Vitamin/CAIG/2001;Опции проекта. Нужное раскомментировать, программа изменитсяMODULE gui_samplePUBLIC main11,LSTMHZ,putchar,puts,myint,getkey,winlogEXTERN FONT6X8,broadcast,strip,recv_p,memtest,usb_testEXTERN RX_BUF,mhz,update_main_menu,editbuf,sscanfEXTERN minitermRSEG FREESEGRSEG CODE#define NOLOADFIL#define NOSAVEFIL#define NOMEMDRV#define NOFILER#define WIZ_BASE_ADDR 0X0000;Цвета#define ACTCOLOR 40#define ACTPCOLR 6#define WINCOLOR 5#define HDRCOLOR 48;Память#define CPAGE1 66#define DISKBUF 0xC000#define LIST DISKBUF+0x900#define LISTLEN 0x600#define NUMLIST LIST+LISTLEN;Файл макросов. ПОСЛЕ всех настроек#include "MACROS.s01"winlog:push bcpush depush ixpush iycall logwininipop iypop ixpop depop bcretmain11:;Главное окноpush bcpush depush ixpush iy;call logwininiPROGR_UPDcall update_main_menuLD A,WIN_HEADER|WIN_REFRESH|WIN_MOVABLEPROGRLD IX,MAINWINLD (IX+4),ACALL WAITKEYCALL WINDOWCP -1jr Z,main11_quitLD HL,MAINJPJP TAB_JPmain11_quit:pop iypop ixpop depop bcretMAINWIN DEFB 7,5,21,13DEFB 15DEFB 0DEFW RX_BUFDEFW MAINLGTDEFW MAINHOTDEFW -1MAINLGTDEFB 0,2,21,1, 7 ;WINDEFB 0,3,21,1, 7 ;SPR-BUTTONDEFB 0,4,21,1, 7 ;FLAGDEFB 0,5,21,1, 7 ;SWITCHDEFB 0,6,21,1, 7 ;SCROLLBARDEFB 0,7,21,1, 7 ;SLIDERDEFB 0,8,21,1, 7 ;LISTDEFB 0,9,21,1, 7 ;FILERDEFB 0,10,21,1, 7 ;COMBODEFB 0,11,21,1, 7 ;ASKERDEFB -1MAINHOT DEFB '0'DEFW 0DEFB '1'DEFW 1DEFB '2'DEFW 2DEFB '3'DEFW 3DEFB '4'DEFW 4 ;"номер зоны"DEFB '5' ;иDEFW 5 ;прямой адрес переходаDEFB '6' ;два способаDEFW 6DEFB '7'DEFW 7DEFB '8'DEFW 8DEFB '9'DEFW 9DEFB -1MAINJP DEFW CHMHZDEFW EDITGARDEFW EDITSUBRDEFW EDITSIPRDEFW BROADDEFW RECVPACKDEFW WIZMEMTSTDEFW SL811TESTDEFW MINTERMDEFW WIZMEMTST;Кнопка-спрайт------------------------EDITGARld hl,WIZ_BASE_ADDR+0x0010jp get_ipEDITSUBRld hl,WIZ_BASE_ADDR+0x0014jp get_ipEDITSIPRld hl,WIZ_BASE_ADDR+0x0018jp get_ipget_ippush hlLD IX,JUSTWINCALL MAKEWINDCALL WAITKEYLD DE,0x0101 ;оконные координатыld hl,editbufld b,15call EDITCALL CLOSEld hl,tmp_ip+3push hldec hlpush hldec hlpush hldec hlpush hlld hl,strippush hlld hl,editbufpush hlcall sscanfpop afpop afpop afpop afpop afpop afld bc,0x82abin a,(c)xor 0x08out (c),ald hl,tmp_ippop deld bc,4ldirld bc,0x82abin a,(c)or 0x08out (c),acall CLOSEJP PROGR_UPDJUSTWIN DEFB 15,14,13,3,14DEFB -1tmp_ip DEFB 0,0,0,0,0;----------------------------------------------------BROADCALL CLOSEcall logwininicall broadcastcall NOKEY;CALL CLOSEJP PROGR_UPD;----------------------------------------------------RECVPACKCALL CLOSEcall logwininicall recv_pcall NOKEY;CALL CLOSEJP PROGR_UPD;----------------------------------------------------MINTERMCALL CLOSEcall logwininicall minitermcall NOKEY;CALL CLOSEJP PROGR_UPD;выбор клока--------------------CHMHZLD HL,LSTMHZLD DE,0x0b02 ;оконные координатыCALL CAL_ABS ;в экранныеEX DE,HLLD BC,0x0405 ;размерEXXLD DE,0x0304 ;параметрыEXXLD A,HLD H,LLD L,AXOR ACALL COMBOBOXCP -1JR Z,CHMHZ_EXITld (mhz),acall update_main_menuCHMHZ_EXIT:LD A,WIN_HEADER|WIN_NOBACK|WIN_MOVABLEJP PROGRLSTMHZ DEFB '3.5',0DEFB ' 7',0DEFB ' 14',0;-------------------------------------------SL811TEST:CALL CLOSEcall logwininicall WAITKEYcall usb_testJP PROGR_UPD;-------------------------------------------WIZMEMTST:LD IX,PERMWINCALL WINDOWpush afCALL CLOSECALL CLOSEcall logwininicall WAITKEYpop afld e,acall memtestJP PROGR_UPDPERMWINDEFB 12,10,12,4,7DEFB 0DEFW PERMTEXTDEFW PERMACTDEFW -1PERMTEXTDEFB ' Доступ по',13,13DEFB ' меммап порты',0PERMACTDEFB 1,2,5,1,7DEFB 6,2,5,1,7DEFB -1SPEED DEFB 5SHOWDEL DEFB 255;--------------------------------------logwinini:ld hl,0x0100ld (YTXT),hlld (YWIN),hlld bc,0x2018ld (YSIZ),bccall CLS_WINretputs:push ixpush iypush depush bcld h,dld l,eld c,0call PRINTOLDld e,'\r'call putcharpop bcpop depop iypop ixretputchar:push ixpush iypush depush bcld hl,putcharcharld (hl),eld c,0call PRINTOLDpop bcpop depop iypop ixretputcharchar:DEFB 0,0#include "COVER.s01"END