msystem.zip 411 kB.

Systém maker vám umožňuje psát programy ve známé syntaxi jazyka na vysoké úrovni a činí texty programů transparentnějšími pro čtení a vnímání. Systém je určen pro překladače sestavovacích jazyků TASM-2.5 a MASM-5.0. Jedná se o strukturovaný jazyk na vysoké úrovni, který lze použít k psaní programů jakékoli velikosti a pro jakýkoli účel. Určeno pro programátora, který již má zkušenosti s programováním v assembleru.

Stručný popis hlavních souborů v archivu.

Samotný systém maker:

  • MSYSTEM.MAC Tento soubor obsahuje skutečný systém maker.
  • MMACROS.MAC Tento soubor obsahuje další užitečná makra.
  • MBIOS.MAC Tento soubor obsahuje makra pro systém IBM-PC BIOS.
  • MDOS.MAC Tento soubor obsahuje makra pro 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
  • Samotný systém maker:

  • 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
  • DOKUMENTACE:

  • MSYSTEM.DOC Toto je soubor dokumentace pro systém maker.
  • EXTA.DOC
  • MMACROS.DOC
  • MMEM.DOC
  • OGLAV.DOC
  • READ.DOC
  • TITLE.DOC

  • * Soubory .ASM Tyto soubory obsahují příklady programů napsaných v systému maker.

    Chcete-li nainstalovat do systému, zkopírujte soubor MSYSTEM.MAC a zbytek souborů - podle vašeho uvážení. Pro úspěšné programování v systému maker se doporučuje podrobně se seznámit s příručkou a samotným systémem maker obsaženým v souboru MSYSTEM.MAC.
    Pamatujte, že assembler nerozumí chybám a vše závisí pouze na vás.
    Ať je váš přístup jakýkoli, úspěch !!!
    Samotný Assembler si můžete stáhnout zde tasm25.zip - 175 kB.

    Zde je například kód jednoduchého databázového programu, který zohledňuje příjmy a výdaje peněz

    ; MB.ASM
    ; D. L. Konyukhov

    .MODEL MALÝ

    zahrnout msystem.mac
    zahrnout sys.mac
    zahrnout conio.mac
    zahrnout mouse.mac
    zahrnout mem.mac
    zahrnout kbd.mac
    zahrnout math.mac
    zahrnout kurzor.m
    zahrnout window.m
    zahrnout color.m
    zahrnout rec.m
    zahrnout dbedit.m
    zahrnout say.m
    zahrnout read.m
    zahrnout key.m
    zahrnout mkeys.m

    zahrnout mb.m

    size_com = 20000 + 256
    len_stack = 20000
    len_vars = 20000

    .KÓD
    ZAČNĚTE ZAČÍT, 100h, _hlavní, {

    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, veřejné
    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, @ mezera, @ f_s \u0026 gt;
    setcolor \u0026 lt; old_color \u0026 gt;
    řekněte \u0026 lt; @ DEBET_NAME, @ f_name \u0026 gt;
    setcolor \u0026 lt; DebAttr \u0026 gt;
    řekněte \u0026 lt; @ mezera, @ f_s \u0026 gt;
    setcolor \u0026 lt; old_color \u0026 gt;
    řekněte \u0026 lt; @ DEBET_QUAN, @ f_quan \u0026 gt;
    setcolor \u0026 lt; DebAttr \u0026 gt;
    řekněte \u0026 lt; @ mezera, @ f_s \u0026 gt;
    setcolor \u0026 lt; KreAttr \u0026 gt;
    řekněte \u0026 lt; @ mezera, @ f_s \u0026 gt;
    setcolor \u0026 lt; old_color \u0026 gt;
    řekněte \u0026 lt; @ KREDIT_NAME, @ f_name \u0026 gt;
    setcolor \u0026 lt; KreAttr \u0026 gt;
    řekněte \u0026 lt; @ mezera, @ f_s \u0026 gt;
    setcolor \u0026 lt; old_color \u0026 gt;
    řekněte \u0026 lt; @ KREDIT_QUAN, @ f_quan \u0026 gt;
    setcolor \u0026 lt; KreAttr \u0026 gt;
    řekněte \u0026 lt; @ mezera, @ 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: režim
    přepněte AL, <0,1>
    případ 1 {; kreslit
    getcolor, \u0026 lt; old_color \u0026 gt;
    setcolor \u0026 lt; LblAttr \u0026 gt;
    reccount \u0026 lt; @ rec_A \u0026 gt ;, \u0026 lt; ii \u0026 gt;
    sayxy <35, 2, @ ii, @ f_w4 \u0026 gt;
    recrecno \u0026 lt; @ rec_A \u0026 gt ;, \u0026 lt; ii \u0026 gt;
    sayxy <41, 2, @ ii, @ f_w4 \u0026 gt;
    setcolor \u0026 lt; old_color \u0026 gt;
    případ 2 {
    mov retr_cho, PRAVDA
    while \u0026 lt; retr_cho e PRAVDA \u0026 gt; {
    mov retr_cho, FALSE
    mkeys_to
    mov AL, cs: key_AL
    přepnout AL, \u0026 lt; NULLKEY, SPACEKEY, CRKEY, ESCKEY \u0026 gt; {
    případ 1 {
    mov AH, cs: key_AH
    přepnout AH, \u0026 lt; INSKEY, DELRKEY, F6KEY, F7KEY, F8KEY, F10KEY \u0026 gt;
    případ 1; vložit
    Vkládání, \u0026 lt; DI \u0026 gt;
    případ 2; smazat
    Mazání, \u0026 lt; DI \u0026 gt;
    případ 3; třídit
    Třídění, \u0026 lt; DI \u0026 gt;
    případ 4; najít
    případ 5; datum
    Chodit s někým, \u0026 lt; DI \u0026 gt;
    případ 6; nabídka
    menupull
    mov DI, 3
    koncovka
    případ 2 {; označit
    případ 3; vstup
    Zadávání \u0026 lt; RecCur \u0026 gt; \u0026 lt; DI \u0026 gt;
    případ 4; ukončit
    mov hotovo, NEPRAVDA
    mov DI, 0
    koncovka
    endwh}
    koncovka
    endf
    label1 db 'PARISH', 0
    label2 db 'FLOW', 0
    title1 db 'Množství titulu', 0

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

    ; --- Postup hlavy
    func hlavní
    ; Stack
    cli
    mov SP, size_com + len_stack
    sti
    ; Otevřu systém
    farrelease \u0026 lt; * CS 00,00 size_com + len_stack + len_vars \u0026 gt;
    initcon
    uvolnit \u0026 lt; * size_com + len_stack, 0 \u0026 gt;
    initsys
    initmouse
    cursor_off
    ; Nakreslete hlavní rám
    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;
    táhlo \u0026 lt; 0, 2,79, 2, @ box_main \u0026 gt;
    mouse_on
    setcolor \u0026 lt; LblAttr \u0026 gt;
    sayxy <16, 0, @ label1, @ f_s \u0026 gt;
    sayxy <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;
    řekněte \u0026 lt; @ title1, @ f_s \u0026 gt;
    setcolor \u0026 lt; \u0026 lt; \u0026 lt; byte ptr MainAttr \u0026 gt; \u0026 gt; \u0026 gt;
    ; Menu-line
    barva \u0026 lt; MenuAttr \u0026 gt;
    mkeys_on \u0026 lt; TRUE \u0026 gt;
    mkeys_fr <79, 0, PGUPKEY * 100 h, @ ukeys1, @ snull \u0026 gt;
    mkeys_fr <79,24, PGDNKEY * 100 h, @ ukeys2, @ snull \u0026 gt;
    mkeys_fr \u0026 lt; 4.24, CRKEY, @ skeys1, @ nkeys1 \u0026 gt;
    mkeys_fr <14,24, INSKEY * 100 h, @ skeys2, @ nkeys2 \u0026 gt;
    mkeys_fr <22,24, DELRKEY * 100h, @ skeys3, @ nkeys3 \u0026 gt;
    mkeys_fr <30,24, F5KEY * 100 h, @ skeys4, @ nkeys4 \u0026 gt;
    mkeys_fr <37,24, F6KEY * 100 h, @ skeys5, @ nkeys5 \u0026 gt;
    mkeys_fr <44,24, F7KEY * 100 h, @ skeys6, @ nkeys6 \u0026 gt;
    mkeys_fr <51,24, F8KEY * 100 h, @ skeys7, @ nkeys7 \u0026 gt;
    mkeys_fr <58,24, F10KEY * 100 h, @ skeys8, @ nkeys8 \u0026 gt;
    mkeys_fr <65,24, ESCKEY, @ skeys9, @ nkeys9 \u0026 gt;
    mkeys_on \u0026 lt; FALSE \u0026 gt;
    ; Otevření souboru
    znovuotevřít \u0026 lt; @ rec_A, @ file_A, len_A \u0026 gt;
    getmem \u0026 lt; len_A \u0026 gt ;, \u0026 lt; buf_A \u0026 gt; ; recbuffer
    odměna \u0026 lt; @ rec_A, @ _mb_empty \u0026 gt;
    ; Práce se souborem
    barva \u0026 lt; MainAttr \u0026 gt;
    mov hotovo, PRAVDA
    zatímco \u0026 lt; hotovo e PRAVDA \u0026 gt;
    dbedit \u0026 lt; @ rec_A, 0, 3,79,23, @ cs: __ pic, @ cs: __ fixační jednotka \u0026 gt;
    endwh
    ; Zavřete soubor
    freemem \u0026 lt; * buf_A \u0026 gt;
    recclose \u0026 lt; @ rec_A \u0026 gt;
    ; Zavírám další
    mkeys_of
    ; Zavírám systém
    mouse_off
    cursor_on
    ; Ukončení programu
    clrscr
    zastavit \u0026 lt; 0 \u0026 gt; endf
    KONEC START