msystem.zip 411KB.

Systemet med makroer giver dig mulighed for at skrive programmer i den velkendte syntaks på et sprog på højt niveau og gør programmernes tekster mere gennemsigtige til læsning og opfattelse. Designet til TASM-2.5 og MASM-5.0 samlingssprog-kompilatorer, det er et struktureret sprog på højt niveau, der kan bruges til at skrive programmer af enhver størrelse og formål. Designet til en programmør, der allerede har erfaring med programmering på samlingssprog.

En kort beskrivelse af de vigtigste filer i arkivet.

Selve makrosystemet:

  • MSYSTEM.MAC Denne fil indeholder det aktuelle makrosystem.
  • MMACROS.MAC Denne fil indeholder yderligere nyttige makroer.
  • MBIOS.MAC Denne fil indeholder makroer til IBM-PC BIOS.
  • MDOS.MAC Denne fil indeholder makroer til IBM-PC DOS.
  • CONIO.MAC
  • DIR.MAC
  • ERROR.MAC
  • FLOAT.MAC
  • IO.MAC
  • KBD.MAC
  • MATH.MAC
  • MBIOS.MAC
  • MEM.MAC
  • MOUSE.MAC
  • STOV.MAC
  • STRING.MAC
  • SYS.MAC
  • Selve makrosystemet:

  • VÆLG.M
  • CLOCK.M
  • CODER.M
  • FARVE.M
  • CURSOR.M
  • DBEDIT.M
  • INIT.M
  • KEY.M
  • MENU.M
  • MKEYS.M
  • LÆS.M
  • REC.M
  • SAY.M
  • SCROLL.M
  • SORT.M
  • LYD.M
  • WINDOW.M
  • DOKUMENTATION:

  • MSYSTEM.DOC Dette er dokumentationsfilen for makrosystemet.
  • EXTA.DOC
  • MMACROS.DOC
  • MMEM.DOC
  • OGLAV.DOC
  • LÆS.DOC
  • TITLE.DOC

  • * .ASM-filer Disse filer indeholder eksempler på programmer skrevet i makrosystemet.

    For at installere på systemet skal du sørge for at kopiere MSYSTEM.MAC-filen og resten af ​​filerne - efter eget skøn. For en vellykket programmering i makrosystemet anbefales det, at du gør dig detaljeret fortrolig med manualen og selve makrosystemet indeholdt i filen MSYSTEM.MAC.
    Husk at samleren ikke forstår fejl, og alt afhænger kun af dig.
    Uanset din tilgang, succes !!!
    Selve montøren kan downloades her tasm25.zip - 175 KBytes.

    For eksempel er her koden til et simpelt databaseprogram, der tegner sig for indtægter og udgifter af penge

    ; MB.ASM
    ; D. L. Konyukhov

    .MODEL SMÅ

    inkluderer msystem.mac
    inkluderer sys.mac
    inkluderer conio.mac
    inkluderer mouse.mac
    inkluderer mem.mac
    inkluderer kbd.mac
    inkluderer math.mac
    inkluderer cursor.m
    inkluderer windows.m
    inkluderer farve.m
    inkluderer rec.m
    inkluderer dbedit.m
    inkluderer say.m
    inkluderer read.m
    inkluderer nøgle.m
    inkluderer mkeys.m

    inkluderer mb.m

    size_com = 20000 + 256
    len_stack = 20000
    len_vars = 20000

    .KODE
    BEGIN START, 100h, _main, {

    func mb_empty ,, \u0026 lt; SI \u0026 gt;
    mov SI, buf_A
    memfill \u0026 lt; 32, @ DEBET_NAME, LEN_NAME \u0026 gt;
    memfill \u0026 lt; 0, @ DEBET_QUAN, LEN_QUAN \u0026 gt;
    memfill \u0026 lt; 32, @ KREDIT_NAME, LEN_NAME \u0026 gt;
    memfill \u0026 lt; 0, @ KREDIT_QUAN, LEN_QUAN \u0026 gt;
    endf

    func _pic, \u0026 lt; byte X, byte Y \u0026 gt ;, \u0026 lt; SI \u0026 gt ;, 1, offentlig
    old_color EQU [BP] -1
    getcolor, \u0026 lt; old_color \u0026 gt;
    mov SI, buf_A
    sætfarve \u0026 lt; DebAttr \u0026 gt;
    sayxy \u0026 lt; X, Y, @ space, @ f_s \u0026 gt;
    sætfarve \u0026 lt; gammel_farve \u0026 gt;
    sig \u0026 lt; @ DEBET_NAME, @ f_name \u0026 gt;
    sætfarve \u0026 lt; DebAttr \u0026 gt;
    sig \u0026 lt; @ mellemrum, @ f_s \u0026 gt;
    sætfarve \u0026 lt; gammel_farve \u0026 gt;
    sig \u0026 lt; @ DEBET_QUAN, @ f_quan \u0026 gt;
    sætfarve \u0026 lt; DebAttr \u0026 gt;
    sig \u0026 lt; @ mellemrum, @ f_s \u0026 gt;
    sætfarve \u0026 lt; KreAttr \u0026 gt;
    sig \u0026 lt; @ mellemrum, @ f_s \u0026 gt;
    sætfarve \u0026 lt; gammel_farve \u0026 gt;
    sig \u0026 lt; @ KREDIT_NAME, @ f_name \u0026 gt;
    sætfarve \u0026 lt; KreAttr \u0026 gt;
    sig \u0026 lt; @ mellemrum, @ f_s \u0026 gt;
    sætfarve \u0026 lt; gammel_farve \u0026 gt;
    sig \u0026 lt; @ KREDIT_QUAN, @ f_quan \u0026 gt;
    sætfarve \u0026 lt; KreAttr \u0026 gt;
    sig \u0026 lt; @ mellemrum, @ f_s \u0026 gt;
    sætfarve \u0026 lt; gammel_farve \u0026 gt;
    endf

    func _fuser, \u0026 lt; byte mode, word RecCur \u0026 gt ;, \u0026 lt; DI \u0026 gt ;, 1, offentlig
    old_color EQU [BP] -1
    mov DI, 1
    mov AL, cs: tilstand
    skift AL, \u0026 lt; 0,1 \u0026 gt;
    sag 1 {; tegne
    getcolor, \u0026 lt; old_color \u0026 gt;
    sætfarve \u0026 lt; LblAttr \u0026 gt;
    optælling \u0026 lt; @ rec_A \u0026 gt ;, \u0026 lt; ii \u0026 gt;
    sayxy \u0026 lt; 35, 2, @ ii, @ f_w4 \u0026 gt;
    recrecno \u0026 lt; @ rec_A \u0026 gt ;, \u0026 lt; ii \u0026 gt;
    sayxy \u0026 lt; 41, 2, @ ii, @ f_w4 \u0026 gt;
    sætfarve \u0026 lt; gammel_farve \u0026 gt;
    sag 2 {
    mov retr_cho, SAND
    mens \u0026 lt; retr_cho e SAND \u0026 gt; {
    mov retr_cho, FALSE
    mkeys_to
    mov AL, cs: key_AL
    skift AL, \u0026 lt; NULLKEY, SPACEKEY, CRKEY, ESCKEY \u0026 gt; {
    sag 1 {
    mov AH, cs: key_AH
    afbryder AH, \u0026 lt; INSKEY, DELRKEY, F6KEY, F7KEY, F8KEY, F10KEY \u0026 gt;
    sag 1; indsæt
    Indsætter, \u0026 lt; DI \u0026 gt;
    sag 2; slet
    Sletning, \u0026 lt; DI \u0026 gt;
    sag 3; sortere
    Sortering, \u0026 lt; DI \u0026 gt;
    sag 4; find
    sag 5; dato
    Dating, \u0026 lt; DI \u0026 gt;
    sag 6; menu
    menupull
    mov DI, 3
    endcase
    sag 2 {; mærke
    sag 3; input
    Indtastning af \u0026 lt; RecCur \u0026 gt ;, \u0026 lt; DI \u0026 gt;
    sag 4; afslutning
    mov færdig, FALSK
    mov DI, 0
    endcase
    endwh}
    endcase
    endf \u0026 lt; ord DI \u0026 gt;

    label1 db 'PARISH', 0
    label2 db 'FLOW', 0
    title1 db 'Titelmængde', 0

    ukeys1 db 1Eh, 0
    ukeys2 db 1Fh, 0
    skeys1 db 'ENTER', 0
    nkeys1 db 'ENTER', 0
    skeys2 db 'INS', 0
    nkeys2 db 'NY', 0
    skeys3 db 'DEL', 0
    nkeys3 db 'SLET', 0
    skeys4 db 'F5', 0
    nkeys4 db 'PRINT', 0
    skeys5 db 'F6', 0
    nkeys5 db 'ORDER', 0
    skeys6 db 'F7', 0
    nkeys6 db 'SØG', 0
    skeys7 db 'F8', 0
    nkeys7 db 'SUM', 0
    skeys8 db 'F10', 0
    nkeys8 db 'MENU', 0
    skeys9 db 'ESC', 0
    nkeys9 db 'EXIT', 0

    ; --- Hovedprocedure
    func main
    ; Stak
    cli
    mov SP, size_com + len_stack
    sti
    ; Jeg åbner systemet
    farrelease \u0026 lt; * CS 00,00 size_com + len_stack + len_vars \u0026 gt;
    initcon
    slip \u0026 lt; * size_com + len_stack, 0 \u0026 gt;
    initsys
    initmouse
    cursor_off
    ; Tegn hovedrammen
    sætfarve \u0026 lt; \u0026 lt; \u0026 lt; byte ptr MainAttr \u0026 gt; \u0026 gt; \u0026 gt;
    trækboks \u0026 lt; cs: ScrnMinX, cs: ScrnMinY, cs: ScrnMaxX, cs: ScrnMaxY, @ box_main \u0026 gt;
    trækboks \u0026 lt; 0, 2.79, 2, @ box_main \u0026 gt;
    mouse_on
    sætfarve \u0026 lt; LblAttr \u0026 gt;
    sayxy \u0026 lt; 16, 0, @ label1, @ f_s \u0026 gt;
    sayxy \u0026 lt; 56, 0, @ label2, @ f_s \u0026 gt;
    sætfarve \u0026 lt; DebAttr \u0026 gt;
    sayxy \u0026 lt; 0, 1, @ title1, @ f_s \u0026 gt;
    sætfarve \u0026 lt; KreAttr \u0026 gt;
    sig \u0026 lt; @ title1, @ f_s \u0026 gt;
    sætfarve \u0026 lt; \u0026 lt; \u0026 lt; byte ptr MainAttr \u0026 gt; \u0026 gt; \u0026 gt;
    ; Menulinje
    farve \u0026 lt; MenuAttr \u0026 gt;
    mkeys_on \u0026 lt; SAND \u0026 gt;
    mkeys_fr \u0026 lt; 79, 0, PGUPKEY * 100h, @ ukeys1, @ snull \u0026 gt;
    mkeys_fr \u0026 lt; 79.24, PGDNKEY * 100h, @ ukeys2, @ snull \u0026 gt;
    mkeys_fr \u0026 lt; 4.24, CRKEY, @ skeys1, @ nkeys1 \u0026 gt;
    mkeys_fr \u0026 lt; 14.24, INSKEY * 100h, @ skeys2, @ nkeys2 \u0026 gt;
    mkeys_fr \u0026 lt; 22,24, DELRKEY * 100h, @ skeys3, @ nkeys3 \u0026 gt;
    mkeys_fr \u0026 lt; 30,24, F5KEY * 100h, @ skeys4, @ nkeys4 \u0026 gt;
    mkeys_fr \u0026 lt; 37.24, F6KEY * 100h, @ skeys5, @ nkeys5 \u0026 gt;
    mkeys_fr \u0026 lt; 44,24, F7KEY * 100h, @ skeys6, @ nkeys6 \u0026 gt;
    mkeys_fr \u0026 lt; 51,24, F8KEY * 100h, @ skeys7, @ nkeys7 \u0026 gt;
    mkeys_fr \u0026 lt; 58.24, F10KEY * 100h, @ skeys8, @ nkeys8 \u0026 gt;
    mkeys_fr \u0026 lt; 65,24, ESCKEY, @ skeys9, @ nkeys9 \u0026 gt;
    mkeys_on \u0026 lt; FALSE \u0026 gt;
    ; Åbning af filen
    genåbn \u0026 lt; @ rec_A, @ file_A, len_A \u0026 gt;
    getmem \u0026 lt; len_A \u0026 gt ;, \u0026 lt; buf_A \u0026 gt; ; recbuffer
    recempty \u0026 lt; @ rec_A, @ _mb_empty \u0026 gt;
    ; Arbejde med filen
    farve \u0026 lt; MainAttr \u0026 gt;
    mov færdig, SAND
    mens \u0026 lt; færdig e SAND \u0026 gt;
    dbedit \u0026 lt; @ rec_A, 0, 3.79,23, @ cs: __ pic, @ cs: __ fuser \u0026 gt;
    endwh
    ; Luk filen
    freemem \u0026 lt; * buf_A \u0026 gt;
    luk igen \u0026 lt; @ rec_A \u0026 gt;
    ; Jeg lukker den anden
    mkeys_of
    ; Jeg lukker systemet
    mouse_off
    cursor_on
    ; Afslutter programmet
    clrscr
    stop \u0026 lt; 0 \u0026 gt;
    endf
    END START

    1