msystem.zip 411KB.

Sistem macro vă permite să scrieți programe în sintaxa limbajului familiar nivel ridicat și nu textele programului mai mult transparent de citit și percepţie. Sistem conceput pentru compilatoare cu limbaj de asamblare TASM-2.5 și MASM-5.0. Reprezintă limbaj structurat nivel înalt care poate folosesc pentru a scrie programe de orice dimensiune și orice scop. Calculat pentru un programator care deja are experiență în programarea limbajului asamblator.

Scurtă descriere a fișierelor principale din arhivă.

Sistemul de macrocomenzi în sine:

  • MSYSTEM.MAC Acest fișier conține sistemul macro actual.
  • MMACROS.MAC Acest fișier conține macro-uri utile suplimentare.
  • MBIOS.MAC Acest fișier conține macrocomenzi pentru BIOS-ul IBM-PC.
  • MDOS.MAC Acest fișier conține macrocomenzi pentru 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
  • Sistemul de macrocomenzi în sine:

  • CHOISE.M
  • CLOCK.M
  • CODER.M
  • COLOR.M
  • CURSOR.M
  • DBEDIT.M
  • INIT.M
  • KEY.M
  • MENU.M
  • MKEYS.M
  • READ.M
  • REC.M
  • SAY.M
  • SCROLL.M
  • SORT.M
  • SOUND.M
  • WINDOW.M
  • DOCUMENTARE:

  • MSYSTEM.DOC Acesta este fișierul de documentare pentru sistemul macro.
  • EXTA.DOC
  • MMACROS.DOC
  • MMEM.DOC
  • OGLAV.DOC
  • READ.DOC
  • TITLE.DOC

  • * Fișiere .ASM Aceste fișiere conțin exemple de programe scrise în sistem macro.

    Pentru instalare pe sistem copiați fișierul necesar MSYSTEM.MAC și restul fișierelor - de Discreția dumneavoastră. Pentru programare de succes în sistem de macrocomenzi recomandat în detaliu citiți manualul și sistemul în sine macrocomenzi conținute în fișierul MSYSTEM.MAC.
    Amintiți-vă că erorile de asamblare nu înțelege și totul depinde numai de la tine.
    Oricare ar fi abordarea ta - succese !!!
    Asamblorul în sine poate fi descărcat de aici tasm25.zip - 175 KB.

    De exemplu, iată un cod simplu programe de baze de date, contabilitate venituri și cheltuieli de bani

    ; MB.ASM
    ; D. L. Konyukhov

    .MODEL MIC

    include msystem.mac
    include sys.mac
    include conio.mac
    include mouse.mac
    include mem.mac
    include kbd.mac
    include math.mac
    include cursor.m
    include fereastra.m
    include culoare.m
    include rec.m
    include dbedit.m
    include say.m
    include read.m
    include cheia.m
    include mkeys.m

    include mb.m

    size_com=20000 + 256
    len_stack=20000
    len_vars=20000

    .CODE
    ÎNCEPE, START, 100h, _principal, {

    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; octet X, octet Y \u0026 gt ;, \u0026 lt; SI \u0026 gt ;, 1, public
    old_color EQU [BP] -1
    getcolor, \u0026 lt; old_color \u0026 gt;
    mov SI, buf_A
    setcolor \u0026 lt; DebAttr \u0026 gt;
    sayxy \u0026 lt; X, Y, @ space, @ f_s \u0026 gt;
    setcolor \u0026 lt; old_color \u0026 gt;
    spuneți \u0026 lt; @ DEBET_NAME, @ f_name \u0026 gt;
    setcolor \u0026 lt; DebAttr \u0026 gt;
    spuneți \u0026 lt; @ spațiu, @ f_s \u0026 gt;
    setcolor \u0026 lt; old_color \u0026 gt;
    spuneți \u0026 lt; @ DEBET_QUAN, @ f_quan \u0026 gt;
    setcolor \u0026 lt; DebAttr \u0026 gt;
    spuneți \u0026 lt; @ spațiu, @ f_s \u0026 gt;
    setcolor \u0026 lt; KreAttr \u0026 gt;
    spuneți \u0026 lt; @ spațiu, @ f_s \u0026 gt;
    setcolor \u0026 lt; old_color \u0026 gt;
    spuneți \u0026 lt; @ KREDIT_NAME, @ f_name \u0026 gt;
    setcolor \u0026 lt; KreAttr \u0026 gt;
    spuneți \u0026 lt; @ spațiu, @ f_s \u0026 gt;
    setcolor \u0026 lt; old_color \u0026 gt;
    spuneți \u0026 lt; @ KREDIT_QUAN, @ f_quan \u0026 gt;
    setcolor \u0026 lt; KreAttr \u0026 gt;
    spuneți \u0026 lt; @ spațiu, @ f_s \u0026 gt;
    setcolor \u0026 lt; old_color \u0026 gt;

    endf
    func _fuser, \u0026 lt; byte mode, word RecCur \u0026 gt ;, \u0026 lt; DI \u0026 gt ;, 1, public
    old_color EQU [BP] -1
    mov DI, 1
    mov AL, cs: mode
    comutați AL, \u0026 lt; 0,1 \u0026 gt;
    cazul 1 {; desenează
    getcolor, \u0026 lt; old_color \u0026 gt;
    setcolor \u0026 lt; LblAttr \u0026 gt;
    recontează \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;
    setcolor \u0026 lt; old_color \u0026 gt;
    cazul 2 {
    mov retr_cho, TRUE
    în timp ce \u0026 lt; retr_cho e TRUE \u0026 gt; {
    mov retr_cho, FALSE
    mkeys_to
    mov AL, cs: key_AL
    comutați AL, \u0026 lt; NULLKEY, SPACEKEY, CRKEY, ESCKEY \u0026 gt; {
    cazul 1 {
    mov AH, cs: key_AH
    comutați AH, \u0026 lt; INSKEY, DELRKEY, F6KEY, F7KEY, F8KEY, F10KEY \u0026 gt;
    cazul 1; introduceți
    Se introduce, \u0026 lt; DI \u0026 gt;
    cazul 2; șterge
    Ștergerea, \u0026 lt; DI \u0026 gt;
    cazul 3; sortează
    Sortare, \u0026 lt; DI \u0026 gt;
    cazul 4; gaseste
    cazul 5; data
    Întâlniri, \u0026 lt; DI \u0026 gt;
    cazul 6; meniu

    menupull mov DI, 3
    endcase
    caz 2 {; marca
    cazul 3; de intrare
    Introducerea \u0026 lt; RecCur \u0026 gt ;, \u0026 lt; DI \u0026 gt;
    cazul 4; ieșire
    mov făcut, FALS
    mov DI, 0
    endcase
    endwh}
    endcase
    endf \u0026 lt; cuvânt DI \u0026 gt;

    label1 db 'PAROHIE', 0
    label2 db 'FLOW', 0
    title1 db 'Nume Cantitate ', 0

    ukeys1 db 1Eh, 0
    ukeys2 db 1Fh, 0
    skeys1 db 'ENTER', 0
    nkeys1 db 'ENTER', 0
    skeys2 db 'INS', 0
    nkeys2 db 'NOU', 0
    skeys3 db 'DEL', 0
    nkeys3 db 'DELETE', 0
    skeys4 db 'F5', 0
    nkeys4 db 'PRINT', 0
    skeys5 db 'F6', 0
    nkeys5 db 'ORDER', 0
    skeys6 db 'F7', 0
    nkeys6 db 'CAUTARE', 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

    ; --- Procedura șefului
    func main
    ; Stiva
    cli
    mov SP, size_com + len_stack
    sti
    ; Deschid sistemul
    farrelease \u0026 lt; * CS 00,00 size_com + len_stack + len_vars \u0026 gt;

    initcon lansează \u0026 lt; * size_com + len_stack, 0 \u0026 gt;

    initsys initmouse
    cursor_off
    ; Desenați cadrul principal
    setcolor \u0026 lt; \u0026 lt; \u0026 lt; byte ptr MainAttr \u0026 gt; \u0026 gt; \u0026 gt;
    drawbox \u0026 lt; cs: ScrnMinX, cs: ScrnMinY, cs: ScrnMaxX, cs: ScrnMaxY, @ box_main \u0026 gt;
    drawbox \u0026 lt; 0, 2,79, 2, @ box_main \u0026 gt;
    mouse_on
    setcolor \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;
    setcolor \u0026 lt; DebAttr \u0026 gt;
    sayxy \u0026 lt; 0, 1, @ title1, @ f_s \u0026 gt;
    setcolor \u0026 lt; KreAttr \u0026 gt;
    spuneți \u0026 lt; @ title1, @ f_s \u0026 gt;
    setcolor \u0026 lt; \u0026 lt; \u0026 lt; byte ptr MainAttr \u0026 gt; \u0026 gt; \u0026 gt;
    ; Linia de meniu
    color \u0026 lt; MenuAttr \u0026 gt;
    mkeys_on \u0026 lt; TRUE \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 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; FALS \u0026 gt;
    ; Deschiderea fișierului
    redeschideți \u0026 lt; @ rec_A, @ file_A, len_A \u0026 gt;
    getmem \u0026 lt; len_A \u0026 gt ;, \u0026 lt; buf_A \u0026 gt; ; recbuffer
    recumpty \u0026 lt; @ rec_A, @ _mb_empty \u0026 gt;
    ; Lucrul cu fișierul
    culoare \u0026 lt; MainAttr \u0026 gt;
    mov făcut, ADEVĂRAT în timp ce \u0026 lt; done e TRUE \u0026 gt;
    dbedit \u0026 lt; @ rec_A, 0, 3,79,23, @ cs: __ pic, @ cs: __ fuser \u0026 gt;
    endwh
    ; Închideți fișierul
    freemem \u0026 lt; * buf_A \u0026 gt;
    închideți \u0026 lt; @ rec_A \u0026 gt;
    ; Îl închid pe celălalt
    mkeys_of
    ; Închid sistemul
    mouse_off
    cursor_on
    ; Ieșirea din program
    clrscr
    opriți \u0026 lt; 0 \u0026 gt;

    endf END START

    1