msystem.zip 411 كيلوبايت

يسمح لك نظام وحدات الماكرو بكتابة البرامج بالصيغة المألوفة للغة عالية المستوى ويجعل نصوص البرامج أكثر شفافية للقراءة والإدراك. تم تصميم النظام لمجمعي لغة التجميع TASM-2.5 و MASM-5.0 ، وهي لغة منظمة عالية المستوى يمكن استخدامها لكتابة البرامج من أي حجم ولأي غرض. مصمم للمبرمج الذي لديه بالفعل خبرة في البرمجة بلغة التجميع.

وصف موجز للملفات الرئيسية في الأرشيف.

نظام وحدات الماكرو نفسه:
  • MSYSTEM.MAC يحتوي هذا الملف على نظام الماكرو الفعلي.
  • MMACROS.MAC يحتوي هذا الملف على وحدات ماكرو مفيدة إضافية.
  • MBIOS.MAC يحتوي هذا الملف على وحدات ماكرو لـ IBM-PC BIOS.
  • MDOS.MAC يحتوي هذا الملف على وحدات ماكرو لـ 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
  • نظام وحدات الماكرو نفسه:
  • CHOISE.M
  • CLOCK.M
  • CODER.M
  • COLOR.M
  • CURSOR.M
  • DBEDIT.M
  • INIT.M
  • KEY.M
  • MENU.M
  • MKEYS.M
  • READ.M
  • REC.M
  • قل م
  • SCROLL.M
  • SORT.M
  • SOUND.M
  • WINDOW.M
  • التوثيق:

  • MSYSTEM.DOC هذا هو ملف التوثيق لنظام الماكرو.
  • EXTA.DOC
  • MMACROS.DOC
  • MMEM.DOC
  • OGLAV.DOC
  • READ.DOC
  • TITLE.DOC

  • * ملفات .ASM تحتوي هذه الملفات على أمثلة لبرامج مكتوبة في نظام ماكرو.

    للتثبيت على النظام ، تأكد من نسخ ملف MSYSTEM.MAC ، وبقية الملفات - وفقًا لتقديرك. من أجل البرمجة الناجحة في نظام الماكرو ، يوصى بالتعرف بالتفصيل على الدليل ونظام الماكرو نفسه الموجود في ملف MSYSTEM.MAC.
    تذكر أن المجمع لا يفهم الأخطاء وكل شيء يعتمد عليك فقط.
    مهما كانت مقاربتك ، نجاح !!!
    يمكن تنزيل المجمع نفسه هنا tasm25.zip - 175 كيلو بايت.

    على سبيل المثال ، إليك رمز برنامج قاعدة بيانات بسيط ، يحسب الدخل والمصروفات المالية

    ؛ MB.ASM
    ؛ دي ال كونيوخوف

    .MODEL SMALL

    تشمل msystem.mac
    تشمل sys.mac
    تشمل conio.mac
    تشمل mouse.mac
    تشمل mem.mac
    تشمل kbd.mac
    تشمل math.mac
    تضمين cursor.m
    تشمل window.m
    تشمل color.m
    تضمين rec.m
    تشمل dbedit.m
    تشمل say.m
    تشمل read.m
    تضمين key.m
    تشمل mkeys.m

    تشمل mb.m

    size_com = 20000 + 256
    len_stack = 20000
    len_vars = 20000

    .CODE
    بداية البداية ، 100 ساعة ، _ رئيسي ، {

    func mb_empty ،، \u0026 lt؛ SI \u0026 gt؛
    وسائل التحقق 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، public
    old_color EQU [BP] -1
    getcolor، \u0026 lt؛ old_color \u0026 GT؛
    وسائل التحقق 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 ؛
    قل \u0026 lt؛ @ DEBET_NAME، @ f_name \u0026 gt؛
    setcolor العلامة \u0026 lt؛ DebAttr \u0026 gt؛
    قل \u0026 lt؛ @ space، @ f_s \u0026 gt؛
    setcolor العلامة \u0026 lt ؛ old_color \u0026 GT ؛
    قل \u0026 lt؛ @ DEBET_QUAN، @ f_quan \u0026 gt؛
    setcolor العلامة \u0026 lt؛ DebAttr \u0026 gt؛
    قل \u0026 lt؛ @ space، @ f_s \u0026 gt؛
    setcolor العلامة \u0026 lt؛ KreAttr \u0026 GT؛
    قل \u0026 lt؛ @ space، @ f_s \u0026 gt؛
    setcolor العلامة \u0026 lt ؛ old_color \u0026 GT ؛
    قل \u0026 lt؛ @ KREDIT_NAME، @ f_name \u0026 gt؛
    setcolor العلامة \u0026 lt؛ KreAttr \u0026 GT؛
    قل \u0026 lt؛ @ space، @ f_s \u0026 gt؛
    setcolor العلامة \u0026 lt ؛ old_color \u0026 GT ؛
    قل \u0026 lt؛ @ KREDIT_QUAN، @ f_quan \u0026 GT؛
    setcolor العلامة \u0026 lt؛ KreAttr \u0026 GT؛
    قل \u0026 lt؛ @ space، @ 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
    موف DI ، 1
    mov AL، cs: mode
    التبديل AL ، العلامة \u0026 lt ؛ 0.1 \u0026 GT ؛
    حالة 1 {؛ رسم
    getcolor، \u0026 lt؛ old_color \u0026 GT؛
    setcolor العلامة \u0026 lt؛ LblAttr \u0026 GT؛
    أعد الحساب \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 ؛
    الحالة 2 {
    وسائل التحقق retr_cho ، TRUE
    بينما \u0026 lt؛ retr_cho e TRUE \u0026 GT؛ {
    وسائل التحقق retr_cho ، FALSE
    mkeys_to
    mov AL، cs: key_AL
    التبديل AL ، العلامة \u0026 lt ؛ NULLKEY ، SPACEKEY ، CRKEY ، ESCKEY \u0026 GT ؛ {
    الحالة 1 {
    وسائل التحقق AH ، cs: key_AH
    التبديل AH، \u0026 lt؛ INSKEY، DELRKEY، F6KEY، F7KEY، F8KEY، F10KEY \u0026 gt؛
    حالة 1؛ إدراج
    إدخال ، العلامة \u0026 lt ؛ DI \u0026 GT ؛
    الحالة 2 حذف
    حذف \u0026 lt؛ DI \u0026 GT؛
    الحالة 3 ؛ فرز
    الفرز ، العلامة \u0026 lt ؛ DI \u0026 GT ؛
    الحالة 4 تجد
    القضية 5 التاريخ
    مواعدة ، \u0026 lt؛ DI \u0026 GT؛
    القضية 6 القائمة
    menupull
    موف دي ، 3
    النهاية
    الحالة 2 {؛ علامة
    الحالة 3 ؛ الإدخال
    إدخال \u0026 lt؛ RecCur \u0026 gt؛ \u0026 lt؛ DI \u0026 gt؛
    الحالة 4 خروج
    تم إجراء التحقق ، FALSE
    وسائل التحقق DI ، 0
    النهاية
    endwh}
    النهاية
    endf \u0026 lt ؛ كلمة DI \u0026 GT ؛

    label1 ديسيبل \PARISH\، 0
    التسمية 2 ديسيبل \FLOW\، 0
    title1 ديسيبل \كمية العنوان\، 0

    ukeys1 db 1Eh، 0
    ukeys2 db 1Fh، 0
    skeys1 db \إدخال\، 0
    nkeys1 db \إدخال\، 0
    skeys2 db 'INS'، 0
    nkeys2 db 'NEW'، 0
    skeys3 ديسيبل 'DEL'، 0
    nkeys3 ديسيبل \حذف\، 0
    skeys4 db 'F5'، 0
    nkeys4 db 'PRINT'، 0
    skeys5 db 'F6'، 0
    nkeys5 db 'ORDER'، 0
    skeys6 db 'F7'، 0
    nkeys6 db \بحث\، 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

    ؛ --- إجراء الرأس
    func الرئيسية
    ؛ كومة
    cli
    موف SP ، size_com + len_stack
    sti
    ؛ أفتح النظام
    farrelease \u0026 lt؛ * CS 00،00 size_com + len_stack + len_vars \u0026 gt؛
    initcon
    إطلاق العلامة \u0026 lt؛ * size_com + len_stack، 0 \u0026 gt؛
    initsys
    initmouse
    cursor_off
    ؛ ارسم الإطار الرئيسي
    setcolor \u0026 lt؛ \u0026 lt؛ \u0026 lt؛ بايت ptr MainAttr \u0026 gt؛ \u0026 gt؛ \u0026 gt؛
    drawbox \u0026 lt؛ cs: ScrnMinX، cs: ScrnMinY، cs: ScrnMaxX، cs: ScrnMaxY، @ box_main \u0026 gt؛
    صندوق السحب العلامة \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؛
    قل \u0026 lt؛ @ title1، @ f_s \u0026 gt؛
    setcolor \u0026 lt؛ \u0026 lt؛ \u0026 lt؛ بايت ptr MainAttr \u0026 gt؛ \u0026 gt؛ \u0026 gt؛
    ؛ سطر القائمة
    اللون العلامة \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؛
    ؛ فتح الملف
    recopen \u0026 lt؛ @ rec_A، @ file_A، len_A \u0026 gt؛
    getmem \u0026 lt؛ len_A \u0026 gt ؛، \u0026 lt؛ buf_A \u0026 gt؛ ؛ recbuffer
    استرداد \u0026 lt؛ @ rec_A، @ _mb_empty \u0026 gt؛
    ؛ العمل مع الملف
    لون العلامة \u0026 lt ؛ MainAttr \u0026 GT ؛
    تم إجراء التحقق ، TRUE
    بينما \u0026 lt ؛ فعلت e TRUE \u0026 GT ؛
    dbedit \u0026 lt؛ @ rec_A، 0، 3،79،23، @ cs: __ pic، @ cs: __ fuser \u0026 gt؛
    النهاية
    ؛ أغلق الملف
    العلامة \u0026 lt؛ * buf_A \u0026 gt؛
    recclose \u0026 lt؛ @ rec_A \u0026 gt؛
    ؛ أغلق
    الآخر mkeys_of
    ؛ أغلق النظام
    mouse_off
    cursor_on
    ؛ الخروج من البرنامج
    clrscr
    توقف العلامة \u0026 lt؛ 0 \u0026 GT؛
    endf
    نهاية البداية

    1