msystem.zip 411 kB.

Het systeem van macro's stelt u in staat om programma's te schrijven in de vertrouwde syntaxis van een taal op hoog niveau en maakt de teksten van programma's transparanter voor lezen en perceptie. Ontworpen voor TASM-2.5 en MASM-5.0 assembleertaalcompilers, het is een gestructureerde taal op hoog niveau die kan worden gebruikt om programma's van elke grootte en elk doel te schrijven. Ontworpen voor een programmeur die al ervaring heeft met programmeren in assembleertaal.

Een korte beschrijving van de belangrijkste bestanden in het archief.

Het systeem van macro's zelf:

  • MSYSTEM.MAC Dit bestand bevat het daadwerkelijke macrosysteem.
  • MMACROS.MAC Dit bestand bevat aanvullende handige macro's.
  • MBIOS.MAC Dit bestand bevat macro's voor het IBM-PC BIOS.
  • MDOS.MAC Dit bestand bevat macro's voor IBM-PC DOS.
  • CONIO.MAC
  • DIR.MAC
  • ERROR.MAC
  • FLOAT.MAC
  • IO.MAC
  • KBD.MAC
  • MATH.MAC
  • MBIOS.MAC
  • MEM.MAC
  • MUISMAC
  • STOV.MAC
  • STRING.MAC
  • SYS.MAC
  • Het systeem van macro's zelf:

  • 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
  • GELUID.M
  • WINDOW.M
  • DOCUMENTATIE:

  • MSYSTEM.DOC Dit is het documentatiebestand voor het macrosysteem.
  • EXTA.DOC
  • MMACROS.DOC
  • MMEM.DOC
  • OGLAV.DOC
  • READ.DOC
  • TITLE.DOC

  • * .ASM-bestanden Deze bestanden bevatten voorbeelden van programma's die in het macrosysteem zijn geschreven.

    Om op het systeem te installeren, moet u naar eigen goeddunken het MSYSTEM.MAC-bestand en de rest van de bestanden kopiëren. Voor een succesvolle programmering in het macrosysteem, wordt aanbevolen dat u uzelf vertrouwd maakt met de handleiding en het macrosysteem zelf in het MSYSTEM.MAC-bestand.
    Onthoud dat de assembler fouten niet begrijpt en dat alles alleen van jou afhangt.
    Wat uw aanpak ook is, succes !!!
    Assembler zelf kan hier worden gedownload tasm25.zip - 175 KBytes.

    Hier is bijvoorbeeld de code voor een eenvoudig databaseprogramma dat rekening houdt met de inkomsten en uitgaven van geld

    ​MB.ASM
    ​D. L. Konyukhov

    .MODEL KLEIN

    omvatten msystem.mac
    omvatten sys.mac
    omvatten conio.mac
    omvatten mouse.mac
    omvatten mem.mac
    omvatten kbd.mac
    omvatten math.mac
    omvatten cursor.m
    omvatten window.m
    omvatten color.m
    omvatten rec.m
    omvatten dbedit.m
    omvatten say.m
    omvatten read.m
    include key.m
    omvatten mkeys.m

    inclusief mb.m

    size_com = 20000 + 256
    len_stack = 20000
    len_vars = 20000

    .CODE
    BEGIN START, 100 uur, _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, openbaar
    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, @ spatie, @ f_s \u0026 gt;
    setcolor \u0026 lt; old_color \u0026 gt;
    zeg \u0026 lt; @ DEBET_NAME, @ f_name \u0026 gt;
    setcolor \u0026 lt; DebAttr \u0026 gt;
    zeg \u0026 lt; @ spatie, @ f_s \u0026 gt;
    setcolor \u0026 lt; old_color \u0026 gt;
    zeg \u0026 lt; @ DEBET_QUAN, @ f_quan \u0026 gt;
    setcolor \u0026 lt; DebAttr \u0026 gt;
    zeg \u0026 lt; @ spatie, @ f_s \u0026 gt;
    setcolor \u0026 lt; KreAttr \u0026 gt;
    zeg \u0026 lt; @ spatie, @ f_s \u0026 gt;
    setcolor \u0026 lt; old_color \u0026 gt;
    zeg \u0026 lt; @ KREDIT_NAME, @ f_name \u0026 gt;
    setcolor \u0026 lt; KreAttr \u0026 gt;
    zeg \u0026 lt; @ spatie, @ f_s \u0026 gt;
    setcolor \u0026 lt; old_color \u0026 gt;
    zeg \u0026 lt; @ KREDIT_QUAN, @ f_quan \u0026 gt;
    setcolor \u0026 lt; KreAttr \u0026 gt;
    zeg \u0026 lt; @ spatie, @ f_s \u0026 gt;
    setcolor \u0026 lt; old_color \u0026 gt;
    endf

    func _fuser, \u0026 lt; bytemodus, woord RecCur \u0026 gt ;, \u0026 lt; DI \u0026 gt ;, 1, openbaar
    old_color EQU [BP] -1
    mov DI, 1
    mov AL, cs: modus
    schakelaar AL, \u0026 lt; 0.1 \u0026 gt;
    zaak 1 {; tekenen
    getcolor, \u0026 lt; old_color \u0026 gt;
    setcolor \u0026 lt; LblAttr \u0026 gt;
    hertelling \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;
    geval 2 {
    mov retr_cho, WAAR
    terwijl \u0026 lt; retr_cho e TRUE \u0026 gt; {
    mov retr_cho, FALSE
    mkeys_to
    mov AL, cs: key_AL
    schakelaar AL, \u0026 lt; NULLKEY, SPACEKEY, CRKEY, ESCKEY \u0026 gt; {
    geval 1 {
    mov AH, cs: key_AH
    schakelaar AH, \u0026 lt; INSKEY, DELRKEY, F6KEY, F7KEY, F8KEY, F10KEY \u0026 gt;
    zaak 1; invoegen
    Invoegen, \u0026 lt; DI \u0026 gt;
    geval 2; verwijderen
    Verwijderen, \u0026 lt; DI \u0026 gt;
    geval 3; sorteren
    Sorteren, \u0026 lt; DI \u0026 gt;
    geval 4; vind
    geval 5; datum
    Dating, \u0026 lt; DI \u0026 gt;
    geval 6; menu
    menupull
    mov DI, 3
    einddoos
    geval 2 {; markeren
    geval 3; invoer
    Invoeren van \u0026 lt; RecCur \u0026 gt ;, \u0026 lt; DI \u0026 gt;
    geval 4; afsluiten
    mov gedaan, FALSE
    mov DI, 0
    einddoos
    endwh}
    einddoos
    endf \u0026 lt; word DI \u0026 gt;

    label1 db 'PARISH', 0
    label2 db 'FLOW', 0
    title1 db 'Titel Aantal', 0

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

    ; --- Hoofdprocedure
    func belangrijkste
    ​Stapel
    cli
    mov SP, size_com + len_stack
    sti
    ​Ik open het systeem
    farrelease \u0026 lt; * CS 00,00 size_com + len_stack + len_vars \u0026 gt;
    initcon
    release \u0026 lt; * size_com + len_stack, 0 \u0026 gt;
    initsys
    initmouse
    cursor_off
    ​Teken het hoofdframe
    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;
    zeg \u0026 lt; @ title1, @ f_s \u0026 gt;
    setcolor \u0026 lt; \u0026 lt; \u0026 lt; byte ptr MainAttr \u0026 gt; \u0026 gt; \u0026 gt;
    ​Menuregel
    kleur \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;
    ​Het bestand openen
    heropenen \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;
    ​Werken met het bestand
    kleur \u0026 lt; MainAttr \u0026 gt;
    mov gedaan, WAAR
    while \u0026 lt; done e TRUE \u0026 gt;
    dbedit \u0026 lt; @ rec_A, 0, 3.79,23, @ cs: __ pic, @ cs: __ fuser \u0026 gt;
    endwh
    ​Sluit het bestand
    freemem \u0026 lt; * buf_A \u0026 gt;
    hersluit \u0026 lt; @ rec_A \u0026 gt;
    ​Ik sluit de andere
    mkeys_of
    ​Ik sluit het systeem
    mouse_off
    cursor_on
    ​Het programma verlaten
    clrscr
    halt \u0026 lt; 0 \u0026 gt;
    endf
    EINDE BEGIN

    1