어셈블러 언어 매크로 시스템
msystem.zip
411KB.
매크로 시스템
아카이브의 주요 파일에 대한 간략한 설명입니다.
매크로 시스템 자체:
MSYSTEM.MAC
이 파일에는 실제 매크로 시스템이 포함되어 있습니다.
MMACROS.MAC
이 파일에는 추가로 유용한 매크로 정의가 포함되어 있습니다.
MBIOS.MAC
이 파일에는 IBM-PC BIOS에 대한 매크로 정의가 포함되어 있습니다.
MDOS.MAC
이 파일에는 IBM-PC DOS용 매크로 정의가 포함되어 있습니다.
코니오.맥
DIR.MAC
오류입니다.MAC
플로트.맥
IO.MAC
KBD.MAC
MATH.MAC
MBIOS.MAC
멤.맥
마우스.맥
STOV.MAC
STRING.MAC
SYS.MAC
매크로 시스템 자체:
초이스엠
클락엠
코더엠
컬러엠
커서.M
DBEDIT.M
INIT.M
키엠
MENU.M
MKEYS.M
READ.M
REC.M
세이엠
스크롤.M
정렬.M
사운드엠
WINDOWS.M
선적 서류 비치:
MSYSTEM.DOC
매크로 시스템에 대한 문서 파일입니다.
EXTA.DOC
MMACROS.DOC
MMEM.DOC
OGLAV.DOC
READ.DOC
제목.DOC
*.ASM 파일 이 파일에는 다음이 포함됩니다.
시스템에 설치하는 경우
어셈블러 오류를 기억하세요
귀하의 접근 방식이 무엇이든 -
어셈블러 자체는 여기에서 다운로드할 수 있습니다.
tasm25.zip
- 175KB.
예를 들어, 다음은 간단한 코드입니다.
;
;
.모델 소형
msystem.mac 포함
sys.mac 포함
conio.mac 포함
mouse.mac 포함
mem.mac 포함
kbd.mac 포함
math.mac 포함
커서.m 포함
window.m 포함
color.m 포함
추천 포함
dbedit.m 포함
say.m 포함
read.m 포함
key.m 포함
mkeys.m 포함
mb.m 포함
size_com = 20000+256
len_stack= 20000
len_vars = 20000
.암호
시작 시작,100h,_main,{
func mb_empty,,
mov SI, buf_A
memfill <32,@ DEBET_NAME,LEN_NAME>
memfill < 0,@ DEBET_QUAN,LEN_QUAN>
memfill <32,@ KREDIT_NAME,LEN_NAME>
memfill < 0,@ KREDIT_QUAN,LEN_QUAN>
끝
func _pic,<바이트 X,바이트 Y>,,1,공개
old_color EQU [BP]-1
getcolor ,
mov SI, buf_A
setcolor
sayxy
setcolor
<@DEBET_NAME,@f_name>이라고 말하세요.
setcolor
<@ space,@ f_s>라고 말하세요.
setcolor
<@ DEBET_QUAN,@ f_quan>이라고 말하세요.
setcolor
<@ space,@ f_s>라고 말하세요.
setcolor
<@ space,@ f_s>라고 말하세요.
setcolor
<@ KREDIT_NAME,@ f_name>이라고 말하세요.
setcolor
<@ space,@ f_s>라고 말하세요.
setcolor
<@ KREDIT_QUAN,@ f_quan>이라고 말하세요.
setcolor
<@ space,@ f_s>라고 말하세요.
setcolor
끝
func _fuser,<바이트 모드,word RecCur>,,1,public
old_color EQU [BP]-1
이동 DI, 1
mov AL, cs:모드
스위치 AL,<0,1>
사례 1 { ;
getcolor ,
setcolor
계정 <@ rec_A>,
sayxy <35, 2,@ ii,@ f_w4>
레크노 <@ Rec_A>,
sayxy <41, 2,@ ii,@ f_w4>
setcolor
사례 2 {
mov retr_cho, TRUE
while {
mov retr_cho, 거짓
mkeys_to
이동 AL, cs:key_AL
스위치 AL, {
사례 1 {
이동 AH, cs:key_AH
스위치 AH,
사례 1;
, 삽입 중
사례 2 ;
삭제 중,
사례 3 ;
정렬 ,
사례 4 ;
사례 5 ;
데이트,
사례 6 ;
메뉴 풀
이동 DI, 3
엔드케이스
사례 2 { ;
사례 3 ;
, 입력
사례 4 ;
이동 완료, 거짓
movDI,0
엔드케이스
종료}
엔드케이스
endf <단어 DI>
label1 db '출시 중',0
label2 db '소비',0
title1 db ' 이름 수량
ukeys1db 1Eh,0
ukeys2 DB 1Fh,0
skys1 db '입력',0
nkeys1 db '입력',0
skys2 db 'INS',0
nkeys2 db '신규',0
skys3 db 'DEL',0
nkeys3 db '삭제',0
skys4 db 'F5',0
nkeys4 db '인쇄',0
skys5 db 'F6',0
nkeys5 db '주문',0
skys6 db 'F7',0
nkeys6 db '검색',0
skys7 db 'F8',0
nkeys7 db '합계',0
skys8 db 'F10',0
nkeys8 db '메뉴',0
skys9 db 'ESC',0
nkeys9 db '종료',0
;--- 머리 절차
메인 기능
;
CLI
mov SP, size_com+len_stack
스티
;
Farrelease <*CS 00.00 size_com+len_stack+len_vars>
초기화
릴리스 <* size_com+len_stack,0>
이니시스
초기 마우스
커서오프
;
setcolor <<>>
drawbox
drawbox < 0, 2.79, 2,@ box_main>
mouse_on
setcolor
sayxy <16, 0,@ label1,@ f_s>
sayxy <56, 0,@ label2,@ f_s>
setcolor
sayxy <0, 1,@ title1,@ f_s>
setcolor
<@ title1,@ f_s>라고 말하세요.
setcolor <<>>
;
color <메뉴 속성>
mkeys_on
mkeys_fr <79, 0,PGUPKEY*100h,@ ukeys1,@ snull>
mkeys_fr <79,24,PGDNKEY*100h,@ ukeys2,@ snull>
mkeys_fr < 4,24,CRKEY,@ skeys1,@ nkeys1>
mkeys_fr <14,24,INSKEY*100h,@skeys2,@nkeys2>
mkeys_fr <22,24,DELRKEY*100h,@ skeys3,@ nkeys3>
mkeys_fr <30,24,F5KEY*100h,@skeys4,@nkeys4>
mkeys_fr <37,24,F6KEY*100h,@skeys5,@nkeys5>
mkeys_fr <44,24,F7KEY*100h,@skeys6,@nkeys6>
mkeys_fr <51,24,F8KEY*100h,@skeys7,@nkeys7>
mkeys_fr <58,24,F10KEY*100h,@skeys8,@nkeys8>
mkeys_fr <65,24,ESCKEY,@ skeys9,@ nkeys9>
mkeys_on <거짓>
;
다시 열다 <@ rec_A,@ file_A,len_A>
getmem , ;recbuffer
수신 <@ rec_A,@ _mb_empty>
;
color <메인 속성>
이동 완료, TRUE
<완료 및 TRUE> 동안
dbedit <@ rec_A, 0, 3,79,23,@ cs:__pic,@ cs:__fuser>
끝
;
freemem<*buf_A>
다시 닫다 <@ rec_A>
;
mkeys_of
;
mouse_off
커서_온
;
clrscr
정지 <0>
끝
종료 시작