msystem.zip 411KB.

Systemet med makroer lar deg skrive programmer i den kjente syntaksen til et høyt nivå språk og gjør tekstene til programmene mer gjennomsiktige for lesing og oppfatning. Designet for TASM-2.5 og MASM-5.0 monteringsspråk kompilatorer, er det et høyt nivå strukturert språk som kan brukes til å skrive programmer i alle størrelser og formål. Designet for en programmerer som allerede har erfaring med programmering på monteringsspråk.

En kort beskrivelse av hovedfilene i arkivet.

Selve makrosystemet:

  • MSYSTEM.MAC Denne filen inneholder selve makrosystemet.
  • MMACROS.MAC Denne filen inneholder flere nyttige makroer.
  • MBIOS.MAC Denne filen inneholder makroer for IBM-PC BIOS.
  • MDOS.MAC Denne filen inneholder makroer for 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:

  • VALG.M
  • CLOCK.M
  • CODER.M
  • FARGE.M
  • CURSOR.M
  • DBEDIT.M
  • INIT.M
  • KEY.M
  • MENY.M
  • MKEYS.M
  • LES.M
  • REC.M
  • SAY.M
  • SCROLL.M
  • SORT.M
  • LYD.M
  • WINDOW.M
  • DOKUMENTASJON:

  • MSYSTEM.DOC Dette er dokumentasjonsfilen for makrosystemet.
  • EXTA.DOC
  • MMACROS.DOC
  • MMEM.DOC
  • OGLAV.DOC
  • LES.DOC
  • TITLE.DOC

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

    For å installere på systemet, må du kopiere MSYSTEM.MAC-filen og resten av filene - etter eget skjønn. For vellykket programmering i makrosystemet, anbefales det at du gjør deg detaljert kjent med manualen og selve makrosystemet i MSYSTEM.MAC-filen.
    Husk at montøren ikke forstår feil, og alt avhenger bare av deg.
    Uansett hvilken tilnærming du har, suksess !!!
    Selve monteringen kan lastes ned her tasm25.zip - 175 kBytes.

    Her er for eksempel koden for et enkelt databaseprogram, som står for inntekt og bekostning av penger

    ; MB.ASM
    ; D. L. Konyukhov

    .MODELL 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 window.m
    inkluderer color.m
    inkluderer rec.m
    inkluderer dbedit.m
    inkluderer say.m
    inkluderer read.m
    inkluderer key.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
    settfarge \u0026 lt; DebAttr \u0026 gt;
    sayxy \u0026 lt; X, Y, @ space, @ f_s \u0026 gt;
    settfarge \u0026 lt; gammel_farge \u0026 gt;
    si \u0026 lt; @ DEBET_NAME, @ f_name \u0026 gt;
    settfarge \u0026 lt; DebAttr \u0026 gt;
    si \u0026 lt; @ mellomrom, @ f_s \u0026 gt;
    settfarge \u0026 lt; gammel_farge \u0026 gt;
    si \u0026 lt; @ DEBET_QUAN, @ f_quan \u0026 gt;
    settfarge \u0026 lt; DebAttr \u0026 gt;
    si \u0026 lt; @ mellomrom, @ f_s \u0026 gt;
    settfarge \u0026 lt; KreAttr \u0026 gt;
    si \u0026 lt; @ mellomrom, @ f_s \u0026 gt;
    settfarge \u0026 lt; gammel_farge \u0026 gt;
    si \u0026 lt; @ KREDIT_NAME, @ f_name \u0026 gt;
    settfarge \u0026 lt; KreAttr \u0026 gt;
    si \u0026 lt; @ mellomrom, @ f_s \u0026 gt;
    settfarge \u0026 lt; gammel_farge \u0026 gt;
    si \u0026 lt; @ KREDIT_QUAN, @ f_quan \u0026 gt;
    settfarge \u0026 lt; KreAttr \u0026 gt;
    si \u0026 lt; @ mellomrom, @ f_s \u0026 gt;
    settfarge \u0026 lt; gammel_farge \u0026 gt;
    endf

    func _fuser, \u0026 lt; byte-modus, ord RecCur \u0026 gt ;, \u0026 lt; DI \u0026 gt ;, 1, offentlig
    old_color EQU [BP] -1
    mov DI, 1
    mov AL, cs: modus
    bytt AL, \u0026 lt; 0.1 \u0026 gt;
    sak 1 {; tegne
    getcolor, \u0026 lt; old_color \u0026 gt;
    settfarge \u0026 lt; LblAttr \u0026 gt;
    telle \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;
    settfarge \u0026 lt; gammel_farge \u0026 gt;
    sak 2 {
    mov retr_cho, SANT
    mens \u0026 lt; retr_cho e SANT \u0026 gt; {
    mov retr_cho, FALSE
    mkeys_to
    mov AL, cs: key_AL
    bytt AL, \u0026 lt; NULLKEY, SPACEKEY, CRKEY, ESCKEY \u0026 gt; {
    sak 1 {
    mov AH, cs: key_AH
    bryter AH, \u0026 lt; INSKEY, DELRKEY, F6KEY, F7KEY, F8KEY, F10KEY \u0026 gt;
    sak 1; sett inn
    Setter inn, \u0026 lt; DI \u0026 gt;
    sak 2; slett
    Sletter, \u0026 lt; DI \u0026 gt;
    sak 3; sortere
    Sortering, \u0026 lt; DI \u0026 gt;
    sak 4; finn
    sak 5; dato
    Dating, \u0026 lt; DI \u0026 gt;
    sak 6; meny
    menupull
    mov DI, 3
    endcase
    sak 2 {; merke
    sak 3; innspill
    Inndata \u0026 lt; RecCur \u0026 gt ;, \u0026 lt; DI \u0026 gt;
    sak 4; avkjørsel
    mov gjort, FALSE
    mov DI, 0
    endcase
    endwh}
    endcase
    endf \u0026 lt; ord DI \u0026 gt;

    label1 db 'PARISH', 0
    label2 db 'FLOW', 0
    title1 db 'Tittelmengde', 0

    ukeys1 db 1Eh, 0
    ukeys2 db 1Fh, 0
    skeys1 db 'ENTER', 0
    nkeys1 db 'ENTER', 0
    skeys2 db 'INS', 0
    nkeys2 db 'NYTT', 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 'SØK', 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

    ; --- Hodeprosedyre
    func main
    ; Stack
    cli
    mov SP, size_com + len_stack
    sti
    ; Jeg åpner systemet
    farrelease \u0026 lt; * CS 00,00 size_com + len_stack + len_vars \u0026 gt;
    initcon
    slipp \u0026 lt; * size_com + len_stack, 0 \u0026 gt;
    initsys
    initmouse
    cursor_off
    ; Tegn hovedrammen
    settfarge \u0026 lt; \u0026 lt; \u0026 lt; byte ptr MainAttr \u0026 gt; \u0026 gt; \u0026 gt;
    trekkboks \u0026 lt; cs: ScrnMinX, cs: ScrnMinY, cs: ScrnMaxX, cs: ScrnMaxY, @ box_main \u0026 gt;
    trekkboks \u0026 lt; 0, 2.79, 2, @ box_main \u0026 gt;
    mouse_on
    settfarge \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;
    settfarge \u0026 lt; DebAttr \u0026 gt;
    sayxy \u0026 lt; 0, 1, @ title1, @ f_s \u0026 gt;
    settfarge \u0026 lt; KreAttr \u0026 gt;
    si \u0026 lt; @ title1, @ f_s \u0026 gt;
    settfarge \u0026 lt; \u0026 lt; \u0026 lt; byte ptr MainAttr \u0026 gt; \u0026 gt; \u0026 gt;
    ; Menylinje
    farge \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 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;
    ; Åpne filen
    gjenåpne \u0026 lt; @ rec_A, @ file_A, len_A \u0026 gt;
    getmem \u0026 lt; len_A \u0026 gt ;, \u0026 lt; buf_A \u0026 gt; ; recbuffer
    frikjent \u0026 lt; @ rec_A, @ _mb_empty \u0026 gt;
    ; Arbeider med filen
    farge \u0026 lt; MainAttr \u0026 gt;
    mov ferdig, SANT
    mens \u0026 lt; gjort e SANT \u0026 gt;
    dbedit \u0026 lt; @ rec_A, 0, 3.79,23, @ cs: __ pic, @ cs: __ fuser \u0026 gt;
    endwh
    ; Lukk filen
    freemem \u0026 lt; * buf_A \u0026 gt;
    lukk \u0026 lt; @ rec_A \u0026 gt;
    ; Jeg lukker den andre
    mkeys_of
    ; Jeg lukker systemet
    mouse_off
    cursor_on
    ; Avslutter programmet
    clrscr
    stopp \u0026 lt; 0 \u0026 gt;
    endf
    SLUTTSTART

    1