Top secrets sources NedoPC zxusbnet

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

;***************************************************************
;*
;* MACROS.H
;*
;* Œ ªà®áë,®¯à¥¤¥«¥­¨ï.
;*
;* (C) Vitamin/CAIG/2001  2001-2006
;*
;* Revision 9.01.2006
;*
;***************************************************************

#if 0
ˆá¯®«ì§ã¥¬ë¥ ®¡®§­ ç¥­¨ï:
RP(A,B) == RPh=A,RPl=B
XZ,YZ- ª®®à¤¨­ âë(à §¬¥àë) ¢ §­ ª®¬¥áâ å
XP,YP- ª®®à¤¨­ âë(à §¬¥àë) ¢ ¯¨ªá¥« å
XS- ¯®§¨æ¨ï ¢ ᨬ¢®« å (6 ¯¨ªá)

Š«îç¨ ª®¬¯¨«ï樨 (¯à®áâ® ®¡êâì ¢ á ¬®¬ ­ ç «¥ ¯à®£à ¬¬ë „Ž
¢ª«î祭¨ï MACROS.H):
PRODUCE                 -release-¢¥àá¨ï
NOSLB                   -­¥â ¯®¤¤¥à¦ª¨ áªà®««¡ à®¢
NOCOMBO                 -­¥â ¯®¤¤¥à¦ª¨ COMBOBOX
NOASKER                 -­¥â ¯®¤¤¥à¦ª¨ ASKER
IM2MOD                  -¨á¯®«ì§ãîâáï IM2
NOFILER                 -­¥â ä ©«¥à 
RDCAT                   -¯®¤¤¥à¦ª  ç⥭¨ï ª â «®£  (¥á«¨ NOFILER
NOLOADFIL               -­¥â ¯à®æ¥¤ãàë ç⥭¨ï ä ©«®¢
NOSAVEFIL               -­¥â ¯à®æ¥¤ãàë § ¯¨á¨ ä ©«®¢
HIMEMDRV                -¯®¤¤¥à¦ª  ¤à ©¢¥à®¢ ¯ ¬ï⨠>128ª
NOMEMDRV                -­¥â ¯®¤¤¥à¦ª¨ ¢¥àå­¥© ¯ ¬ïâ¨

Ž¡ê¥­¨¥ ª®­áâ ­â:
WINCOLOR                -梥⠮ª®­
HDRCOLOR                -梥⠧ £®«®¢ª®¢ ®ª®­
ACTCOLOR                -梥⠢뤥«¥­­®© ®¡« áâ¨
ACTPCOLR                -梥⠢뤥«¥­­®© PUSHLIKE-®¡« áâ¨

CPAGE1                  -áâà ­¨æ  ¤«ï INCLUDE "EXTERN"

===================
Ž¯¨á ­¨¥ ¤¥áªà¨¯â®à  ®ª­ :
WIN_DESCRIPTOR:
        DB WINX,WINY,WINWID,WINHEI      -ª®®à¤¨­ âë ¨ à §¬¥àë
        DB STYLE                        -á⨫ì
        DB RESERVED                     -१¥à¢
        DW WINTEXT                      -⥪áâ
        DW WINACT                       - ªâ¨¢­ë¥ §®­ë
        DW WINHOT                       -£®àï稥 ª« ¢¨è¨
        DW WINSPR                       -á¯à ©âë
        DW WINFLG                       -ä« ¦ª¨
        DW WINSWT                       -¯¥à¥ª«îç â¥«¨
        [DW WINSLB]                     -áªà®««¡ àë (!NOSLB)
        DW WINPLZ                       -á« ©¤¥àë
        DW WINLST                       -ᯨ᮪
        DW WINCALL                      -¢ë§®¢ ¯à¨ ᮧ¤ ­¨¨
        DW -1                           -ª®­¥æ ¤¥áªà¨¯â®à 

®«ï ®¯¨á â¥«¥© ¤®«¦­ë ¨¬¥âì 䨪á¨à®¢ ­­®¥ ᬥ饭¨¥. …᫨
­¥â ®¡ê¥ªâ®¢ ®¯à¥¤¥«¥­­®£® ⨯ , ¯®«¥ ®¯¨á â¥«ï ¤®«¦­® ¡ëâì
à ¢­® 0.
#endif 

WIN_XPOS=0
WIN_YPOS=WIN_XPOS+1
WIN_WDT=WIN_YPOS+1
WIN_HGT=WIN_WDT+1
WIN_OPT=WIN_HGT+1
WIN_TXT=WIN_OPT+2
WIN_ACT=WIN_TXT+2
WIN_HOT=WIN_ACT+2
WIN_SPR=WIN_HOT+2
WIN_FLG=WIN_SPR+2
WIN_SWT=WIN_FLG+2
        #ifndef NOPOLZ
WIN_SLB=WIN_SWT+2
WIN_PLZ=WIN_SLB+2
        #else 
WIN_PLZ=WIN_SWT+2
        #endif
WIN_LST=WIN_PLZ+2
WIN_CLL=WIN_LST+2

;‘⨫¨ ®ª­ 
WIN_HEADER=1            ;¥áâì § £®«®¢®ª
WIN_REFRESH=2           ;ॣ¨áâà¨à®¢ âì ®ª­® ¨ à¨á®¢ âì
WIN_MOVABLE=4           ;¯¥à¥¬¥é ¥¬®¥
WIN_NOMODAL=8           ;­¥¬®¤ «ì­®¥ (¢ë室-¯à®¬ § âì)
WIN_NOBACK=16           ;­¥ § ¯®¬¨­ âì § ¤­¨© ä®­

#if 0
*Ž¡ê¥ªâ-⥪áâ: ASCIIZ-ä®à¬ â á ã¯à ¢«ïî騬¨ ª®¤ ¬¨. ‹¥¢ ï
        £à ­¨æ  ¯¥ç â¨- ­  1 ᨬ¢®« ¯à ¢¥¥ «¥¢®© £à ­¨æë ®ª­ .
*Ž¡ê¥ªâ- ªâ¨¢­ ï §®­ : ­ ¡®à ¤¥áªà¨¯â®à®¢
DESCACT DB X,Y,WID,HEI
        DB FLAG
        ...
        DB -1
#endif 
;‘⨫¨  ªâ¨¢­®© §®­ë
ACT_ENA=1               ;à §à¥è¥­ 
ACT_LGT=2               ;¯®¤á¢¥ç¨¢ ¥¬ ï
ACT_PSH=4               ;"­ ¦¨¬ ¥¬ ï"

#if 0
*Ž¡ê¥ªâ-£®àïç ï ª« ¢¨è : ­ ¡®à ¤¥áªà¨¯â®à®¢
DESCHOT DB KEY
        DW OPERAND
        ...
        DB -1
…᫨ áâ à訩 ¡ ©â OPERAND==0,â®  ªâ¨¢¨§ æ¨ï £®àï祩 ª« ¢¨è¨
 ­ «®£¨ç­®  ªâ¨¢ æ¨¨ §®­ë á ­®¬¥à®¬ .OPERAND, ¨­ ç¥- ¯¥à¥å®¤ ­ 
 ¤à¥á OPERAND

*Ž¡ê¥ªâ-á¯à ©â: ­ ¡®à ¤¥áªà¨¯â®à®¢
DESCSPR DB X,Y,WID,HEI,FLAG
        DW DATA
        ...
        DB -1
”®à¬ â FLAG  ­ «®£¨ç¥­ ¯ à ¬¥âàã ¢ C' ¤«ï PUT_SPRT

*Ž¡ê¥ªâ-ä« ¦ª¨: ­ ¡®à ¤¥áªà¨¯â®à®¢
DESCHOT DB NUMBER       -­®¬¥à  ªâ¨¢­®© §®­ë
        DB VAL          -0/255
        DW OPERAND
        ...
        DB -1
…᫨ OPERAND!=0, â® ¯à¨  ªâ¨¢ æ¨¨ ä« ¦ª  _¢ë§®¢_ OPERAND

*Ž¡ê¥ªâ-¯¥à¥ª«îç â¥«¨: ­ ¡®à ¤¥áªà¨¯â®à®¢
DESCSWT DB NUMBER       -­®¬¥à  ªâ¨¢®© §®­ë ¯¥à¢®£® ᢨâç 
        DB COUNT        -ç¨á«® ᢨâ祩
        DB EQUAL        -­®¬¥à ¢ë¤¥«¥­­®£® (­ ç¨­ ï á 0)
        DW OPERAND
        ...
        DB -1

*Ž¡ê¥ªâ-áªà®««¡ à: ­ ¡®à ¤¥áªà¨¯â®à®¢
DESCSLB DB NUMBER       - ªâ¨¢­ ï §®­  (à §¬¥à ¯® áªà®««¡ àã)
        DB HIGH         -YZ
        DB COUNT        -í«¥¬¥­â®¢ ¢ "ᯨ᪥"
        DW 0            -१¥à¢
        DB DELTA        -⥪ãé ï ¯®§¨æ¨ï
        DW OPERAND
        ...
        DB -1

*Ž¡ê¥ªâ-á« ©¤¥à: ­ ¡®à ¤¥áªà¨¯â®à®¢
DESCPLZ DB NUMBER       - ªâ¨¢­ ï §®­  (à §¬¥à ¯® á« ©¤¥àã)
        DB FLAG         -0- ¢¥à⨪ «ì­ë©, 1-£®à¨§®­â «ì­ë©
        DB EQUAL        -§­ ç¥­¨¥ (0..31)
        DW OPERAND
        ...
        DB -1

*Ž¡ê¥ªâ-ᯨ᮪: ¤¥áªà¨¯â®à
DESCLST DB NUMBER       - ªâ¨¢­ ï §®­  (¡¥§ ¯®¤á¢¥âª¨)
        DB HIGH         -YZ
        DB COUNT        -í«¥¬¥­â®¢ ¢ ᯨ᪥
        DW 0            -१¥à¢
        DB DELTA        -­®¬¥à ¯¥à¢®£® ¢¨¤¨¬®£®
        DW LISTDATA     -¬ áᨢ áâப
        DB LEN          -â ª®© ¤«¨­ë

        DB -1

à¨ ¢ë¡®à¥ í«¥¬¥­â  ᯨ᪠ WINDOW ¢®§¢à é ¥â A=254 ¨ C=­®¬¥à
¢ë¡à ­­®£® í«¥¬¥­â .
„¥áªà¨¯â®à®¢ ᯨ᪮¢ ¬®¦¥â ¡ëâì ­¥áª®«ìª®, ­® ­¥«ì§ï ®¯à¥¤¥«¨âì
¨§ ª ª®£® ᯨ᪠ ¡ë« ¢ë¡à ­ í«¥¬¥­â
#endif 


;Œ ªà®áë ¤®áâ㯠 ª í«¥¬¥­â ¬ áâàãªâãàë
TEST    MACRO tbit,of
        BIT tbit,(IX+of)
        ENDM 


;Œ®¦­® ¢ ª ç¥á⢥ ¯¥à¢®£® ¯ à ¬¥âà  ãª §ë¢ âì ᯨ᮪ ॣ¨áâ஢
;MOV EDCB,WIN_XPOS
;       ==
;LD E,(IX+WIN_XPOS):LD D,(IX+WIN_XPOS+1)
;LD C,(IX+WIN_XPOS+2),LD B,(IX+WIN_XPOS+3)

MOV     MACRO re1,re2,of
        LD re1,(IX+of)
                LD re2,(IX+of+1)
        ENDM 

;Ž¡à â­® MOV
        MACRO STOR
        IF ?\0+1
        DISPLAY "FIELD \0 IS UNDEFINED"
        ELSE 
        LOCAL 
        COFF=\P
        REPEAT 
        LD (IX+COFF),\C\N
        COFF=COFF+1
        UNTIL "\C"-","
        ENDL 
        ENDIF 
        ENDM 

;Œ®¦­® ¢ ª ç¥á⢥ ¯¥à¢®£® ¯ à ¬¥âà  ãª §ë¢ âì ᯨ᮪ ॣ¨áâ஢
;MOVHL ABC
;   ==
;LD A,(HL):INC HL:LD B,(HL):INC HL:LD C,(HL):INC HL
MOVHL   MACRO re
        LD re,(HL)
        INC HL
        ENDM 

;Ž¡à â­® MOVHL
STORHL  MACRO re
        LD (HL),re
        INC HL
        ENDM 

LDCP    MACRO   
        LD A,(HL)
        CP 255
        ENDM 

;HL+=A
ADDHLA  MACRO 
        ADD A,L
        LD L,A
        ADC A,H
        SUB L
        LD H,A
        ENDM 

;DE+=A
ADDDEA  MACRO 
        ADD A,E
        LD E,A
        ADC A,D
        SUB E
        LD D,A
        ENDM 

;A*=8
AMUL8   MACRO   
        ADD A,A
        ADD A,A
        ADD A,A
        ENDM 

;HL+=3
HLPL3   MACRO 
        INC HL
        INC HL
        INC HL
        ENDM 

;HL+=2
HLPL2   MACRO 
        INC HL
        INC HL
        ENDM 

;‚ëà ¢­¨¢ ­¨¥ ªã᪠ ª®¤  ¯® £à ­¨æ¥ 256 ¡ ©â