|
²Ä¤³¹ ®M¸Ë³n¥ó»s§@
µ{¦¡¼g§¹«á¡AÁÙn¥[¤u¦¨¬°¥i°õ¦æªº®M¸Ë³n¥ó(Package),¤@¯ë»¡¨Ó¡A§Y¨Ï¬O¥i¥H°õ¦æªºµ{¦¡¡A¤@ÂI¿ù»~³£¨S¦³¡AÂ÷®M¸Ë³n¥óªºµ{«×¡A«oÁÙ¦³¤@¬q¶ZÂ÷¡C
·íµM¡Aµ{¦¡°»¿ù¤]¬O¥²¸g¹Lµ{¤§¤@¡A¦³®É°»¿ù»Pµ{¦¡¼g§@¥i¥H¦P®É¶i¦æ¡C¦ý¦³¸gÅ窺µ{¦¡®v¡A¹ï¥þ±¦³¤F¥R¥÷ªº»{ÃÑ¡A©¹©¹·|µ¥¨ìµ{¦¡Áp±µ«á¦A¦æ°»¿ù¡C
µ{¦¡§¹¦¨«áªº¥þ±°»¿ù¡A³Ì¦n¤£n¨Ì¾a¼gµ{¦¡ªº¤H¡C¦]¬°µ{¦¡®v¸g±`¤£¬O¨Ï¥ÎªÌ¡A¥L̶Ȧb¦Û¤v³]pªº±ø¥ó¤U¡A¨Ì¨ä²z©À¶i¦æ°»¿ù¡C·íµM³oºØ¿ù»~¥²¶·§ó¥¿¡A¦ý³Ì®e©öµo¥Íªº¿ù»~¡A«o¬O¨Ï¥ÎªÌ¤£¤p¤ß¦b¿é¤J®É¡A©Î¹B¥Î«ü¥O®É¡A¹HI¤Fµ{¦¡®vªº²z©À¡C³oºØ¿ù»~ªºµo¥Í¡A¬O¤£¯àì½Ìªº¡Aµ{¦¡¥»¨Ó´N¬O¬°¨Ï¥ÎªÌ³]pªº¡A¦pªG¥O¨Ï¥ÎªÌ¤£«K¡Aµ{¦¡´N¥¢¥h¤FÀ³¦³ªº»ùÈ¡C
µ{¦¡ªº«~ºÞ¡A´N¦b©óÀË´úµ{¦¡¬O§_²Å¦X¨Ï¥ÎªÌªº»Ý¨D¡C¤@¯ë»¡¨Ó¡AÀ³¦³±M¤Ht³d¡A¤]¦³Åý¼g§@¤â¥Uªº¤H¡Aݰµ«~ºÞªº¤u§@¡C³o¼Ë¥i¥H¦P®É¹ï·Ó¤â¥U©Ò´yzªº¥\¯à¤Î¾Þ§@¤èªk¡AÀˬd¨âªÌ¤§¶¡¬O§_¤@P¡C
ÁÙ¦³¤@ºØ±`¨£ªº«~ºÞ¤è¦¡¡A¬O¦b²£«~§¹¦¨®É¡A¥æµ¹§¹¥þ¨S¦³°Ñ»Pµ{¦¡³]pªº²Ä¤TªÌ¡A¦b«ÈÆ[ªº¥ß³õ¡A§@¥þ±ªº¸Õ¥Î¡A¨Ã´£¥X´ú¸Õ³ø§i©Î«ØÄ³®Ñ¡C
«~ºÞ¦X®æ¤F¡A¤~¬O¥]¸Ë¡B¤â¥Uµ¥³Ì«áªº¤u§@¡C³o¨Ã¤£¬O»¡¥]¸Ë©M¤â¥Un³Ì«á¤~°µ¡A¬Û¤Ïªº¡A¤×¨ä¬O¨Ï¥Î¤â¥U¡A¸g±`n¦bµ{¦¡³]pªº¦P®É¡A·Ç³Æ§´·í¡A¦p¦¹µ{¦¡®v¤~¤£·|¥ô·N©Ò¤§¡A²æÂ÷¥DÃD¡C
²Ä¤@¸` ´ú¸Õ°»¿ù
¤£½×¨Ï¥Î¤°»ò¤u¨ã¡A°»¿ù®É¤@©wn¦³²M´·ªºÀY¸£¡A®Ú¾Ú©Ò³]©wªº¤è¦¡¡A¤@¨B¤@¨B¦a¬d¬Ý¬yµ{¤Î«ü¥O¡C
¨CÓ¤H³£·|¦³¿W¯Sªº²ßºD©Ê¿ù»~¡A³Ì¦n¨C¦¸±N¦Û¤vµo¥Íªº¿ù»~°O¤U¨Ó¡A¤£¶È¿ù»~·|º¥º¥´î¤Ö¡A¥B¦b¿ù»~µo¥Í®É¡A«Ü®e©ö´N¯à§ä¨ì¡C
´ú¸Õ°»¿ù¬O«D±`«nªº¤â¬q¡A¦³¤H»{¬°²Ä¤@¬yªºµ{¦¡®v¤£À³¸Ó¥Ç¿ù¡A§Y¨Ï¥Ç¿ù¡A¤]¿ù±o«Ü¤Ö¡C§Úªº¬Ýªk¤£¤@¼Ë¡A¨Ã«D¦]¬°§Ú¸g±`¥Ç¿ù¡A¦Ó¥B¿ù±oÂ÷ÃСC¯u¥¿ªº²z¥Ñ¬O¬°¤F¾A®É´x´¤¥¿½Tªº«ä¦Ò¤è¦V¡A¦b½sµ{®É¡A¦³·NµL·N¦a©¿²¤¤@¨Ç²Ó¸`¡A³o¼Ë¤Ï¦Ó¯à¤@®ð¨þ¦¨¡A¤£P©ó¦A¦ÓºÜ¤T¦Ó°I¡C
³o´N¹³µe¹Ï¤@¼Ë¡A¦³¤H³ßÅw¥ý§@¯ó¹Ï¡A¦³¤H«h²ßºD¥Ñ²Ó³¡µe°_¡C¤£½×Ó¤Hªº·®æ¦p¦ó¡A«nªº¬O³Ì«áªº¦¨ªG¡C
§Ú¦b¼gµ{¦¡¤§«e¡Aº¥ý¦Ò¼{¥þÅ骺µ²ºc¡A¦A§â¦U³Bªº¤ä¬[³Æ§´¡AµM«á¦Ò¼{¦³¦@¦P¯S©Ê¤§³B¡A«K¤@¤f®ð¼g§¹¡C¦Ó¥B¼g®É¤O¨D§Ö³t¡A¥H§K¥¢¥h·í®Éªº·Pı¡Cµ¥¨ìµ²ºc¤jÅé§¹¦¨¤F¡A³Ì«á¤~¥h¶ñ¸É¤@¨Ç¤£¤Ó«nªº²Ó¸`¡C¦Ü©ó¥¿½T»P§_¡A«h¥þ¾a´ú¸Õ°»¿ù¨Ó×¥¿¡BÀ±¸É¡C
³oºØ¼gªkn¦³«Ü±jªº¾ãÅéÆ[©À¡A¥B¹ï¨C¬qµ{¦¡ªº©Ê½è¤Î¥\¯à¬ÒÁA¸Ñ±q¦ó¤U¤â¡C
§Ú¥Ñ¨t²Îµ{¦¡¨ìÀ³¥Î¤u¨ã¡A¤j¤j¤p¤pªºµ{¦¡¼g¤F¤£¤Ö¡A¹ï³oºØ¼g§@¤èªk¦³«Ü²`ªºÅé·|¡C°ß¤@ªº¯ÊÂI¬O¡Aµ{¦¡¦pªG¤Ó¤j¡A¶W¹L20KB¡A§Úªº°O¾Ð¤O´NÃø¥Ht¾á¡C¡]¦~»´¤H©Î³\¤£P¦p¦¹¡^¦ý¨äÀuÂI«h¬Oµ²ºcºë²¡A»s§@®É¶¡·¥µu¡C¥H§Ú̪º¤¤¤å¨t²Îµ{¦¡¦Ó¨¥¡A8KB ªºµ{¦¡¡A³s°»¿ù¦b¤º¡A¥uªá¤F¨âӤ몺¥\¤Ò¡C
µM¦Ó¡A¦b°V½mµ{¦¡®vªº¹Lµ{¤¤¡A§Úµo²{¨ìÁÙ¬O´`§Çº¥¶i¸û¦n¡C¨C¦¸¼g§¹¤F¤@¬qµ{¦¡¡A¥ß¨è°»¿ù¡A¦¹¬qµ{¦¡¥¿½T¤F¡A¦A¼g¤U¤@¬q¡C°£«D¦³µ´¹ïªº§â´¤¡A¦Û«H¨S¦³°ÝÃD¡A§_«h¤d¸U¤£nµ¥¥þ³¡µ{¦¡³£¼g§¹¤F¡A¦A¨Ó½Õ¸Õ¡C¨ì¨º®É¡A¦pªGµo²{°ÝÃD¡A¦b¦U¬q¿ùºî½ÆÂøªºµ{¦¡¤¤¡An§ä¨ì¿ù»~©Ò¦b¡A¨º¬O¤j®ü¼´°w¤F¡C
µ{¦¡µo¥Í¡u·í¾÷¡vªº±¡ªp¡A±`±`¬O PUSH ¤Î POP¤£¥¿Å©ÒP¡A¤]¦³¦b°µ°j¸ô®É¡Ap¼Æ¾¹¬°tÈ¡A¥HPÂê¦b¨ä¤¤¡C¦pªGµ{¦¡¤À¡u¬q¡v¤Ó¦h¡A«hn¯S§Oª`·N¦U¡u¬q¡v§ïÅܪº±¡ªp¡C
½Ñ¦p³o¨Ç²Ó¸`¡A³Ì¦nÀH®É§â½sµ{®Éªº°²·QȰO¿ý¤U¨Ó¡A¤£n¤Ó¹L¬Û«H¦Û¤vªº°O¾Ð¤O¡A®É¶¡¤@ªø¡Aµ{¦¡¤@¤j¡A´N¤°»ò³£§Ñ°O¤F¡C
ÁÙ¦³¤@ÂI¡A¦b°»¿ù®É¤d¸Un¾i¦¨²ßºD¡A°O¿ý°lÂܪº¹Lµ{¡C¦]¬°°»¿ù¬O¤@ºØ«Üº¾¸Hªº¤u§@¡A«ÜÃø¤@¦¸´Nµo²{°ÝÃD©Ò¦b¡A²Ä¤@¦¸À³¸Ó¬O²Ä¤G¦¸§ï¶iªº¸gÅç¡C¦pªG¤£¸Ô¥[°O¿ý¡A¨C¦¸³£n±qÀY°µ°_¡A±N¬O¤@ºØ·¥¬°µhWªº¨Æ¡C
¤£§«§â°»¿ùµø¬°²qÁ¼¡A¤@ºØ´¼¤Oªº¬D¾Ô¡A¦b¿í¦u¤@©wªº³W«h¤U¡AÀ³¸Ó¬O¤@ºØ¦³½ìªº¨É¨ü¡C
²Ä¤G¸` ¬ã¨s§ï¶i
·Qn§âµ{¦¡¼g¦n¡A¤@©wn¤£Â_¦a¬ã¨s¡B§ï¶i¡A¥Ñ¿ù»~¤¤¾Ç²ß¡A¥Ñ§ï¶i¤¤±o¨ì¸gÅç¡A°ö¾i¥X±Ó¾UªºÆ[¹î¯à¤O©M¨}¦nªº¼g§@²ßºD¡C
¦b¶}©l®É¡A³oºØ¹Lµ{»Ýn¥I¥X¤£¤Ö®É¶¡¡A¦ý¹ï¤@¦ìµ{¦¡®v¨Ó»¡¡A¼gµ{¦¡¬O²×¨Â¾·~¡A¯à¤£ºë¯q¨Dºë¶Ü¡H
¥H¤UÁ|¨âÓ¹ê¨Ò¡A¥H»¡©ú¦p¦ó¬ã¨s§ï¶i¤w§¹¦¨ªºµ{¦¡¡C
1,«ü¥Oªº¹B¥Î¡G
¥H¤U±³o¬q³q°T³B²zµ{¦¡¦Ó½×¡A¤£¶È»yªk¤Î«ü¥O§¹¥þ¥¿½T¡A°õ¦æ®É¤]²@µL¿ù»~¡A¬O¤£¬OÁÙ¥i¥H¥[¥H§ï¶i©O¡H
1-1 «ö·Ó«e±³W©w¡A»¡©ú¶µ¤¤¤w¥Î²¤Æªº¦r¦ê¡G
SND-¶Ç°e RCV-±µ¦¬ LET-¥ª
RGT-¥k VER-ª½ HOR-¾î
1-2 µ{¦¡®v¥N¸¹¬°'C'¡C
1-3 ¬q¦W¬Ù²¤¡C
1: CSND0:
2: MOV DX,03FDH ; ¿é¥X°ð
3: MOV AL,80H
4: OUT DX,AL ; ¿é¥X«ü¥O
5: MOV DX,03F8H ; LSB ³t«×±±¨î
6: MOV AL,06H ; ³t«×=19200/¬í
7: OUT DX,AL
8: MOV DX,03F9H ; MSB ³t«×±±¨î
9: MOV AL,0 ; ³t«×=19200/¬í
10: OUT DX,AL
11: MOV DX,03FBH ; ¦æ±±¨î¼È¦s¾¹
12: MOV AL,03H ; NO PARITY,1
; STOP,8
13: OUT DX,AL
14: MOV DX,03FCH ; ³q°T±±¨î
15: OUT DX,AL
16: MOV DX,03F9H ; ¤¤Â_¦³®Ä
17: MOV AL,0
18: OUT DX,AL
19: CSND1:
20: MOV DX,03FDH ; ª¬ºA¼È¦s¾¹
21: IN AL,DX
22: TEST AL,10H ; ¬O§_¥i±µ¦¬?
23: JNZ CRCV0 ; ¥i
24: TEST AL,20H ; ³q¹D¤w²M§_?
25: JZ CSND1 ; 8250¥¼²M
26: MOV AH,1 ; Áä½L¦³¿é¤J?
27: INT 16H
28: CMP AL,07H ; ='CTRL+G'
29: JE CEND ; ¬O¡A§¹²¦
30: MOV DX,03F8H
31: OUT DX,AL ; °e¿é¤J¦r²Å
32: JMP CSND1
33: CRCV0: ; ±µ¦¬
34: MOV DX,03FCH ; ³q°T±±¨î
35: MOV AL,08H ; ¼È°±¤¤Â_
36: OUT DX,AL
37: MOV DX,3F8H
38: IN AL,DX ; ¦¬¦r²Å
39: MOV AH,0EH
40: INT 10H ; ¿Ã«ÌÅã¥Ü
41: MOV DX,03FCH
42: MOV AL,0BH
43: OUT DX,AL ; Ä~Äò±µ¨ü
44: JMP CSND1 ; ´`Àô¤u§@
45: CEND:
46: RET ; §¹¦¨
¥»¬qµ{¦¡¦@ 84 Ó¦r¤¸¡A«D±`ºë²¡A¦ý¤´µM¦³¸`¬Ùªº¾l¦a¡AnÂI¦bDXªº¼ÆÈ¤W¡C
DX鴄 03F8H¨ì 03FDH¡A¥iª¾ DH ¤§È¤£ÅÜ¡A¥u»Ý§ïÅÜ DL §Y¥i¡C¨C§ïÅÜDX¤@¦¸¡A»Ýn¤TÓ¦r¤¸¡A¦p¶ÈÅÜDL¡A¥u»Ý¨âÓ¦r¤¸¡C³o¤@«ü¥O¦@¥Î¤F¤Q¤@¦¸¡A°£²Ä¤@¦¸¦³¥²n¥~¡A¨ä¥L¤Q¦¸´N¥i¥H¬Ù¤U10Ó¦r¤¸¡C
¦An¤ç¤çp¸û¡AÁÙ¥i¥H·c¥X¤GÓ¦r¤¸¨Ó¡A¦b¢´¦Ü¢·±ø¤¤¡AY¥ÎINC DX ¥u»Ýn¤@Ó¦r¤¸¡C
¦¹¥~¡A31¡A32¤Î43 ,44¬O®ö¶Oªº§@ªk¡A¥un¦b²Ä18±ø¥[¤@¼Ð¸¹¡A´N¥i¥H¬Ù«o¨âÓ¦r¤¸¿é¥Xªº«ü¥O¡C¥t¥~¡AÁÙ¦³35¤Î39¨â±ø«ü¥O¡AÀ³¸Ó¦X¨Ö¡A¤@¦¸§Y±NAX³]§´¡A©ó¬O¡A¤S¬Ù¤U¤F¤@Ó¦r¤¸¡C
¥ý¥O DH=3
1: CSEND0:
2: MOV DL,0FDH ; ¿é¥X°ð
3: MOV AL,80H
4: OUT DX,AL ; ¿é¥X«ü¥O
5: MOV DL,0F8H ; LSB ³t«×±±¨î
6: MOV AL,06H ; ³t«×=19200/¬í
7: OUT DX,AL
8: INC DX ; MSB ³t«×±±¨î
9: SUB AL,AL ; ³t«×=19200/¬í
10: OUT DX,AL
11: MOV DL,0FBH ; ¦æ±±¨î¼È¦s¾¹
12: MOV AL,DH ;NO PARITY,1
; STOP,8
13: OUT DX,AL
14: INC DX ; ³q°T±±¨î
15: OUT DX,AL
16: MOV DL,0F9H ; ¤¤Â_¦³®Ä
17: SUB AL,AL
18: CSNDA:
19: OUT DX,AL
20: CSND1:
21: MOV DL,0FDH ; ª¬ºA¼È¦s¾¹
22: IN AL,DX
23: TEST AL,10H ; ¬O§_¥i±µ¦¬?
24: JNZ CRCV0 ; ¥i
25: TEST AL,20H ; ³q¹D¤w²M§_?
26: JZ CSND1 ; 8250¥¼²M
27: MOV AH,1 ; Áä½L¦³¿é¤J?
28: INT 16H
29: CMP AL,07H ; ='CTRL+G'
30: JE CEND ; ¬O¡A§¹²¦
31: MOV DL,0F8H
32: JMP CSNDA ; °e¿é¤J¦r²Å
33: CRCV0: ; ±µ¦¬
34: MOV DL,0FCH ; ³q°T±±¨î
35: MOV AX,0E08H ; ¼È°±¤¤Â_
36: OUT DX,AL ; ¤ÎÅã¥Ü
37: MOV DL,0F8H
38: IN AL,DX ; ¦¬¦r²Å
39: INT 10H ; ¿Ã«ÌÅã¥Ü
40: MOV DL,0FCH
41: MOV AL,0BH
42: JMP CSNDA ; ´`Àô¤u§@
43: CEND:
44: RET ; §¹¦¨
¬Ý¨Ó¦ü¥G³o¼Ë¤Ó¤p®ð¡A¥i¬O©Ò¿×ÃÀ³N¡A´Nn¨ã³Æµ·²@¤£e¥BªººA«×¡A¦A»¡¥Ñ84Ó¦r¤¸Åܦ¨66Ó¦r¤¸¡A¬Ù¤Fªñ¦Ê¤À¤§¤Ü¡A¦Ó¥B¡A³t«×¤]§Ö¤F¡C³oºØµ{¦¡ì¥»´N«Üºë²¡A¥u¦³°V½m¦³¯À¡A°l¨D§¹¬üªºµ{¦¡®v¡A¤~°µ±o¨ì¡C
¥t¤@ºØ°µªk¡A«K¬O±N«½Æªº¹Lµ{¼g¦¨°j¸ô¡A¬ù¥i¸`¬Ù¤Ü´XÓ¦r¤¸¡C¦ý¬O¡A¥Ñ©ó®É¶¡©w«ß¨î¡A³q°Tµ{¦¡»á«®É®Ä¡A°j¸ô¬O§_ȱo¡A©|n¦h¤è±¤ÀªR¡A¤£¥i»´²v¨M©w¡C
2,°j¸ôªº¹ê¨Ò¡G
«e±´¿¸g°Q½×¹L¡Aµ{¦¡ªº®Ä²v¡A¸g±`¨M©w©ó°j¸ôªº³B²z¤è¦¡¤Î¨ä§Þ¥©¡C¨ä¹ïªÅ¶¡¤W¼vÅT¤ñ¸û¤p¡A¦ý¬O¨}¦nªº³]p²z©À¡A±`¨Ï³t«×¤W¦³°ª¹F¤Q¿¡A¬Æ¦Ü¦Ê¿ªº®t²§¡AŪªÌ·Q¥²¤w¸gª¾¹D¡A¦ý¬O¦p¦ó¯àÀ³¥Î¤wª¾ªº§Þ¥©¡A¨Ó§ï¶i³]pªºµ{¦¡©O¡H
°j¸ô¬O§Q¥Îp¼Æ¾¹¡A¤Ï½Æ¶i¦æ¬Û¦Pªºµ{§Ç§@·~¡A³oºØµ{¦¡¡A¥Øªº´N¬O¬°¤F¸`¬ÙªÅ¶¡¡A¬Û¹ï¦a¡A®É¶¡¤WÃø§K¦³©Ò·l¥¢¡C
¦]¦¹¡A¦b³]p°j¸ô®É¡A¥²¶·¥ý¦æ¦Ò¼{²M·¡: ªÅ¶¡ªº¸`¬Ù»P®É¶¡ªº¥æ´«¬O§_ȱo? ¨ä¦¸¡A«hn¥R¥÷´x´¤°j¸ôªº¯S¦â¡An¥Î±o«ê¨ì¦n³B¡A¤£¥i±¼¥H»´¤ß¡C
ì«h¤W¡A¦b°j¸ô¤¤¡A«ü¥On¥Î±oºë²¡A¬yµ{n«D±`©ú½T¡A¤×¨ä«nªº¬O¡AÀ³¤O¨DÁ×§K¦b°j¸ô¤¤¨Ï¥Î½w½Ä¾¹¡A³Ì¦n¥R¥÷§Q¥Î¼È¦s¾¹¡C¦pªG®É¶¡®Ä²v·¥¬°«n¡A«h¤£§«©ñ±ó°j¸ô¤è¦¡¡C
¦³¤@ÓÅã¥Üµ{¦¡¡A¥Øªº¬On±N 16*16ÂI°}¦r§Î°e¨ì¿Ã¹õ¤W¡C¹ï¶H¬OHercules 640*400ªº¹Ï§Î¥d¡Ap¤À¥|°Ï¥æ¤¬¶Ç°e¡A³o¬O¥t¤@Ó¡u°ª¬ì§Þ¡v¬Éªº·sÂA©_¨Æ¡A¦bIBM PC±À¥X®É¡A³Ì°ª±K«×ªº¹Ï§ÎºA¡A¥u¦³ 640X200ÂI°}¡A¨º¬O¾E´N¹qµø¿Ã¹õªº±½´y¤è¦¡¡A¥ý°e³æ½uªº¤ô¥°T¸¹¡A¦A°eÂù½u¡A¬G¤À¨â°Ï¡CHercules¥d¬°¤F¥[°ª±K«×¡AÀ³¥ÎInterlace §Þ³N¡A¤S¦b³æÂù¤ô¥±½´y½u¤¤¦U¥[¤F¤@¦æ¡A¹E¦¨¤F¥|°Ï¡C
Hercules«Ü¾A©y¤¤¤åªºÅã¥Ü¡A¦p¥Î 16X16¦r§Î¡A¥¿¦nÅã¥Ü25¦æ¡A¨C¦æ40¦r¡A»P^¤å§¹¥þÝ®e¡CY§Æ±æ¦³¤@ª¬ºAÅã¥ÜÄæ¡A«h¥i¥Î 15X15¦r§Î¡A¯d¥X24±ø½u¨Ñ°µª¬ºAÄæ¡C
¿ò¾Ñªº¬O¦b³Ì»Ýn¤¤¤åªº°ê¤º¡A«o°¾·RCGA,EGA µ¥±K«×¤£¨¬ªºÅã¥Ü³]³Æ¡C¤£¦ý°â»ù°¾°ª¡A¥\¯à¤]¤£¨¬¡A§Ë±o¤£Û¤£Ãþ¡C
³Ì²z·QªºÁÙ¬OVGA Åã¥Ü¡Ap¦³ 640X480¤§¿Ã¹õÂI°}¡A¤£¶ÈªÅ¶¡¤j¡A¦b°O¾ÐÅ餤¡A¥u¦³¤@°Ï¡AÀ³¥Î«D±`ÆF¬¡¡C
¤U±¡A§ÚÌ¥ý¤¶²Ð Hercules ªºÅã¥Ü¤èªk¡A¦P®É±´°Q°j¸ôªº³B²z¤è¦¡¡C
1: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2: ;HERCULES ¤¤¤åÅã¥Ü³B²zµ{¦¡¡C ;
3: ;¿é¤J°Ñ¼Æ¡GSI¡×ÂI°}¦r§Î¡ADI¡×¿Ã¹õ¦ì¸m¡C ;
4: ; DS ¡×CG¡AES= 0B800H(¿Ã¹õ¬q¡^¡C ;
5: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
6: CDSP0:
7: MOV CX,16 ;°ª16ÂI
8: CDSP1:
9: MOVSW ;²¾¦Ü¿Ã¹õ¤W
10: ADD DI,1FFEH ;¥[¤@°Ï,¨C°Ï=2000H
11: JNS CDSP2 ;¥¼¶W¶V°Ï¡AÄ~Äò
12: ADD DI,8050H ;¶W¶V°Ï,´«°Ï¥[¦æ
13: CDSP2:
14: LOOP CDSP1
15: RET
µ{¦¡¨ì¦¹µ²§ô¡A¬Û·íºë²¡A§Þ¥©¦b²Ä10¦Ü12±ø°ÏªºÀË´ú¤è¦¡¡C¤@¯ë°µªk¬O¦bÀˬd°Ï®É¡A¥Î¡G
ADD DI,1FFEH ; ¥[°ÏÈ
CMP DI,8000H ; ³Ì¤j°ÏÈ
JB CDSP2 ; ¥¼¶W¹L
SUB DI,8000H ; ´î¥h°Ï
¦p¦¹«h¦h¤F¤@±ø¢³¦r¤¸ªº«ü¥O¡A¥[¤W¢³Ó®ÉÄÁ¯ß½Ä¡A°µ16¦¸°j¸ô´N·l¥¢64Ó®ÉÄÁ¯ß½ÄÈ¡C¦b¥þ¿Ã¹õÅã¥Ü®É¡A¥H1,000 Ó¦r¨Óºâ¡A¬°¼Æ´N¤£¤Ö¤F¡C
·íµM¡A¨ú®ø¤F°j¸ô³t«×ÁÙ¥i¥H¥[§Ö¡A¨äµ²ªG¡A«hn¼W¥[130 Ó¦r¤¸¡A®É¶¡«h§Ö¤F 272Ó®ÉÄÁ¯ß½Ä¡A¬O§_ȱo¡A´Nn¬Ý¹ê»Ú»Ýn¦Ó©w¤F¡C
¥t¤@Ó¤èªk¡An¼W¥[¢±Ó¦r¤¸¡A¦ý¥i§Ö¤W36Ó®ÉÄÁ¯ß½Ä¡A¨äªk¦b²Ä11±ø¤W¡G
11: JS CDSP3
12:CDSP2:
13: LOOP CDSP1
14: RET
15:CDSP3:
16: ADD DI,8050H
17: JMP CDSP2
¦A´«¤@Ó¤èªk¡A¦pªG¥ý¨Ï BX ¬°1FFEH¡ADX¬°8050H¡A«h¦bìµ{¦¡¤¤¡A±N²Ä10±ø¤Î12±ø¤À§O§ï¬°:
10: ADD DI,BX
12: ADD DI,DX
³o¤@¨Ó¡A®ÉÄÁ¯ß½Ä§Ö¤F¢±Ó¡A16¦¸«h§Ö§ó¦h¡A¦pªG¦A¥[¤W¨ú®ø°j¸ô¡A¨ä·N¸q§ó¤j¡CªÅ¶¡ì¼W¥[ 130¦r¤¸¡A²{¶È94¦r¤¸¡A®É¶¡«h¬Ù¤U 304Ó®ÉÄÁ¯ß½Ä¡C¦pªG¥þ¿Ã¹õÅã¥Ü¤F1,000 Ó¦r¡A¦b8MHZÀW²v¤U¡A±N·|¥[§Ö 1/25 ¬íªº³t«×¡C
¦b°j¸ô¤¤¡A¦pªGÁ¿¨D®É¶¡®Ä¯q¡AÀ³·¥¤OÁ×§K¨Ï¥ÎPUSH¤ÎPOP ¡A¦]PUSH»Ý15Ó®ÉÄÁ¯ß½Ä¡A¦ÓPOP «hn12Ó¡A¨âªÌ¬Û¥[¬O27Ó®ÉÄÁ¯ß½Ä¡A«D±`¤£È±o¡C
¸Ñ¨M¤èªk¤§¤@¬O¡G³]ªk±N±ý«O¯d¤§È¶J¦s¦b¨S¦³¥Î¨ìªº¼È¦s¾¹¤¤¡F¦AY¬O©T©wªº±`¼Æ¡A¤]¤£§«¦b¨C¦¸n¥Î®É«·s¸m¤J¡A¬é¤£¹L¬O¢³Ó®ÉÄÁ¦Ó¤w¡C³Ì³Â·Ð¬OÅܼÆÈ¡A°£¤F¦b³]p¼Ò²Õ¤§«e¡A§´·í¦a¦w±Æ¥~¡A§OµL¨}µ¦¡C
²Ä¤T¸` µ{¦¡¦X¨Ö
§Ú©Ò¨£¹Lªº¦UºØ²Õ¦Xµ{¦¡Áö¤£ºâ¦h¡A¦ý¦Ü¤Ö¦³¦Ê¾lÓ¤F¡C¤ò¯f³Ì¦hªº·íµM¬O¯Ê¥F§¹¾ãªº³W¹º¡A¨ä¦¸«h¬O«H°¨¹CÅ·¡A¤@¥÷¤£§é¤£¦©ªº¬y¤ô±b¡I©ú©ú¤jªù¤f¦bªFÃä¡Aµ{¦¡µwn´Â¦è¡Aª½¨ì¹C§¹¤F¤jÆ[¶é¡A¤Ñ¶Â¤F¡A¤~¥XªFªù¡I
³oºØµ{¦¡§Ú¦¬¶°¤F¤@¤jÅ|¡A¥i¬OÁ|¨Ó°µ¨Ò¤l¡A«o¤ß¦³¾l¦Ó¤O¤£¨¬¡Cì¦]µL¥L¡A¹ê¦b¤£@·Ð·Ó§Û¤@¹M¡A¤@¨£¨ì´NÀYµh¡I
¹q¸£³Ì±jªº¥\¯à¡A«K¬O³B²zÁcÂø«½Æªº¤u§@¡A¬°¤°»ò¤@¯ëµ{¦¡®v©~µM¦s¤ß»P¹q¸£ª§·¦Y¾L©O¡H¤£»¡§Oªº¡A¥ú§âµ{¦¡¿é¤J¨ì¹q¸£¤¤¡A´Nnªá¤W´XÓ¤ëÄ_¶Qªº¥ú³±¡A¯uȱo³o¼Ë°µ¶Ü¡H
¦³¤@¥÷µ{¦¡¡A¨¬¨¬¦³¥|¤Q¦h¶¡A§Ú¥u²¤§@½Õ¾ã¡A«KÁY¤p¨ì¤Q¶¡A³B²z³t«×«h§Ö¤F¤¿¡C¬°¤°»ò·|®t³o¼Ë»·©O¡H«Ü²³æ¡A¦³¨Ç¤H¤£³ßÅw¥Î¤j¸£¡A¤[¦Ó¤[¤§¡A²ßºD¦¨¦ÛµM¡A¤j¸£´N¥Í¤FÅKùסI°£¤Fµ¥¦]©^¦¹¡A¤°»ò³£¤£·|·Q¤F¡C
n·Q°µ¤@ÓÀu¨qªºµ{¦¡®v¡A²Ä¤@Ó±ø¥ó¬O¤£¯à°½Ãi¡A²Ä¤GÓ±ø¥ó«hn¦³¤ÀªRÆ[¹îªº²ßºD¡A²Ä¤TÓ¤]¬O³Ì«nªº¡A«h¬On¦³°l¨D§¹¬üªººë¯«¡Cµ{¦¡®vn¹³ÃÀ³N®a¡A¤£½×¬O¦Û¤vªº©Î¬O§O¤Hªºµ{¦¡¡A³£n¤@¦Ó¦A¡B¦A¦Ó¤T¦aª±¨ý§ï¨}¡C
§Ú´¿¨£¹L¤@Ó±½¦aªº°ü¤H¡A¦o¤£ºÞ¦bþùØ¡A¨£¤£±o¦³¥ô¦óż¶Ã¡C³oºØ¤H¤~ȱo´L·q¡A³oºØºë¯«¬O°¶¤jªº¡A»P¦oªºÂ¾·~µ·²@µLÃö¡I
µ{¦¡¼g±o¤£°÷ºë²¡A¦³¤TÓì¦]¡A²Ä¤@Ó¬Oµ{¦¡®vµL¯à¡A³oºØµ{¦¡¯à°÷¼g§¹¡A¥i¥H¹B¦æ¡A¤wºâ¬Û·íÃø±o¤F¡F²Ä¤GÓì¦]¬O¤£À´§Þ¥©¡Aµw¾ôµw°¨ªº·F, ¤£ª¾¤°»ò¬O®Ä²v¡A¤]¤£ª¾¹D¦p¦ó¹F¦¨¡C¦Û¤v¼gªºµ{¦¡³£¤£¨£±o¬Ý±oÀ´¡A¹N½×¥L¤Hªº¡H²Ä¤T«h¬O®Ú¥»¯Ê¥F·q·~ºë¯«¡A¼Ål¶ë³d¡A³oºØ¤H§Ú³ÌÁ@¤£°_¡C
¼gµ{¦¡¤§ªì¡A¦pªG§â¥ô°ÈÁA¸Ñ²M·¡¡AµM«á¤ÀªR¦]¯À¡A¤À³Î¼Ò²Õ¡C©Ò¦³Ãþ¦üªº±¡ªp³£¦X¨Ö¨ì¤@³B¡A¦A¥HÅܼƥN´À¡A²Î¤@°õ¦æ¡C³o쥻¬O¥÷¤ºªº¤u§@¡A«ezªº±¡ªp®Ú¥»¤£¥i¯àµo¥Í¡I
°ÝÃD¬Oµo¥Í¤F¥H«á«ç»ò¿ì©O¡H§Ú«ØÄ³³Ì¦n«¼g¡A¦pªG¤@©wn§ï¡A¥u¦n±Ä¥Îµ{¦¡¦X¨Öªº§Þ¥©¡A¿@ÁY¤@¤U¡C
¦X¨Öªº¥Øªº¬O¬°¤F¼W¶i®Ä²v¡A¦Ó¦X¨Öªº¤èªk«h¦]±¡ªp¤£¦P¦Ó²§¡A´N¹³¤H¥Í¤F¯f¡A¥²¶·¥ý¬d¥X¯f¦]¡A§_«hµLªk¤UÃÄ¡C§Ú¸ÕµÛ¥H©Òª¾¹Dªº¤@¨Ç¨Òµý¡A²n¦a¸Ñ»¡¦p«á¡C
¤@¡B¹Lµ{ªº¦X¨Ö¡G
n°µ¹Lµ{ªº¦X¨Ö¡Aº¥ýn¬d©ú¤U¦C¦UÂI¡G
1,º¥ý§ä¥X¹Lµ{Ãþ¦üªº¡A¥þ³¡²¾¨ì¤@°ï¡A¦pªG§ä¤£¨ì¡A¨º´N¨S±Ï¤F¡C
µM¦Ó¡A³oºØµ{¦¡n´N¬O¤Ó¤p¡A®Ú¥»¤£¥i¯à¦³Ãþ¦üªº±¡ªp¡A¦A¤£´N¬O¼g§@®ÉÂø¶ÃµL³¹¡A«H°¨¹CÅ·¡C¤À©ú¦³Ãþ¦üªº¹Lµ{¡A¦ý¨S¦³¦@³qªºì«h¡AµL±q¿@ÁY¡C·íµM¡A¤]¥i¯à¦³¨Çµ{¦¡¡A¦]¤u§@¶q¤Î³B²zªº²Ó¸`¤Ó¦h¡A¥HPµLªk¿@ÁY¡C
2,¦bÃþ¦üªºµ{¦¡¤¤¡A§ä´M¬Û²§ªº«ü¥O©Î¬yµ{¡A¦AY¨S¦³¡A¨º´N¬O«½Æ¤F¡A¥¿©y¦X¨Ö¡C
3,§â¬Û²§ªº«ü¥O©Î¬yµ{¥ÎÅܼƨú¥N¡A©Î±N¤£¦Pµ{¦¡¤§¤J¤f©ñ¦b¼È¦s¾¹ùØ¡C
4,±N¦Uµ{¦¡¦bÀ³¥Î¸Ó¬yµ{«e¡A³]¦nÅܼƤΨϥΪº¼È¦s¾¹¡C
5,¦X¨Ö¬Û¦üªºµ{¦¡¬q¡A¤£¦P³BÀ³¥ÎÅܼƨú¥N¤§¡C
¤U±Á|¤@¹ê¨Ò¡A«Y¤@ø¹Ïµ{¦¡¤§¤ùÂ_¡A¯÷§ïÅÜì¥Î¼ÐÃD¡A¨Ã±N¤À´²¦b¦U³BY¤z¤£¦P¤§¬q¡A¦Cz¦p¤U¡G
189: MASK PROC NEAR
190: MOV DX,3C4H
191: MOV AL,2
192: OUT DX,AL
193: MOV DX,3C5H
194: MOV AL,PCOLOR
195: OUT DX,AL
196: RET
197: MASK ENDP
¡K
380: MOV DX,03CEH
381: MOV AL,3
382: OUT DX,AL
383: MOV AL,18H
384: INC DX
385: OUT DX,AL
386: RET
¡K
490: MOV DX,3CEH
491: MOV AL,3
492: OUT DX,AL
493: MOV DX,3CFH
494: MOV AL,0H
495: OUT DX,AL
496: RET
¡K
589: CROSS PROC NEAR
590: MOV DX,3C4H
591: MOV AL,2
592: OUT DX,AL
593: INC DX
594: MOV AL,0FH
595: OUT DX,AL
596: RET
597: CROSS ENDP
¡K
³o¼Ëªº¬q¸¨¦³¤Q¦h³B¡A¬Ý¨Ó¨CÓ³£²¤¦³¤£¦P¡A¦ü¥G¤£¯à¦X¨Ö¡CµM¦Ó¥J²Ó¤ÀªR¡AÅãµM¬Oµ{¦¡®v°V½m¤£°÷¡A§â¤@Ó«D±`¦³³W«hªºµ{¦¡¡A¦w±Æ±o«D±`¯¿¶Ã¡A¥HP¨ì³oÓ¦a¨B¡C
§ÚÌ¥ýÂk¯Ç°ÝÃD¡A¨M©w¦p¦ó¦X¨Ö¡C²Ä¤@¡A¤Wz¦U¬qµ{¦¡¡AÀ³¸Ó²Î¤@§@¬°¤lµ{¦¡¡F²Ä¤G¡A¥þ³¡Åܼƥu¦³¥|Ó¡A¨ä¤¤¨âÓ¬O¶Ç°eÈ¡A¨âÓ¬O¿é¥X¤J°ð¡C«áªÌ¦³³sÄòÃö«Y¡Aµ¥©ó¥u¦³¤@Ó¡C¦]¦¹¡A¦b½Õ¥Î¦¹¤lµ{¦¡«e¡AÀ³¥ý¥ODX¬°¿é¥X¤J°ð¡A¦A±NÅܼƸˤJAX¤¤¡A¤@¦¸½Õ¥Î§Y¥i¡C¦¹¤lµ{¦¡¦p¤U¡G
300: SUB:
301: OUT DX,AL
302: INC DX
303: MOV AL,AH
304: OUT DX,AL
305: RET
³o¼Ë²µuªº¤lµ{¦¡¡A¦³µL¥²n¡AºÝµø®ÉªÅªº®Ä¯q¦Ó©w¡C¤£½×«ç¼Ë¾ã²z¡A³£»·¤ñì¨Óªºn¦n¡C
¥t¥~¦³ºØ±¡ªp¡A§ó¬°¥i©È¡A´N¬O¦bÁä½L¿é¤J«á¡A¥Î¬yµ{¤è¦¡¡A¤@¤@¤ñ¸û¿é¤J½X¡A¦A¤@¤@¤À§O³B²z¡C
¤ñ¦p»¡¡A¬°¤FÀˬd´å¼ÐÁ䪺¥ª¡B¥k¡B¤W¡B¤Uµ¥¤KÓ¤è¦Vªº²¾°Ê¡A¥H«K§@¬ÛÀ³ªº³B²z¡Aµ{¦¡©~µM¼g¦¨¡G
100: PP1: MOV AH,0
101: INT 16H
102: CMP AX,4800H ;¡ôÁä
103: JNE NEXT1
104: CALL MOVDATA ;SET BUFFERS
105: CALL SETDLT ;SET INCREMENT
106: NXT01:
107: CALL DOTUP
108: LOOP NXT01
109: CALL XORDOT ;SET NEW DOT
110: CALL XYDISP ;DISP NEW XXX,YYY
111: JMP PP1
112: NEXT1:
113: CMP AX,5000H ;¡õÁä
114: JNE NEXT2
115: CALL MOVDATA ;SET BUFFERS
116: CALL SETDLT ;SET INCREMENT
117: NXT02:
118: CALL DOTDOWN
119: LOOP NXT02
120: CALL XORDOT ;SET NEW DOT
121: CALL XYDISP ;DISP NEW XXX,YYY
122: JMP PP1
123: NEXT2:
124: CMP AX,4B00H ;¡öÁä
125: JNE NEXT3
¡K
³o¬qµ{¦¡Á`¦@nÀˬd¤K¦¸¡A¤~¯à½T©w¬O§_¦³´å¼Ð²¾°Ê¥H¤ÎþÓ´å¼Ð¦b²¾°Ê¡CµM«á¡AÁÙn¤@¤@Àˬd¨ä¥LÅܤơA¦@¦³¤Q¤KºØ¦³®Ä½X¡C§Ú¹ê¦b¨ØªA³oºØµ{¦¡®v¡A¤£¦ý¦³µL¤ñªº@©Ê¡AÁÙ¦³«D¤Zªº·Q¹³¤O¡A©~µM¯à§â¤@¬q·¥¬°Â²³æ¥¤Zªºµ{¦¡¡A¼g±o³o¼Ëªººë±m°Ê¤H¡I
¦pªG¬O§Ú¡A§Ú·|¼g±o²@µL½ì¨ý¡G
100: PP1: SUB AH,AH
101: INT 16H
102: OR AL,AL
103: JNZ PP1 ;AL «D¢¯µL®Ä
104: MOV BH,AL
105: MOV BL,AH
106: SUB BL,47H ;³Ì¤p¤§¦r¼ÐÁä
107: JLE PP1 ;«D³B²z½d³ò
108: SHL BX,1
109: CALL FUNC[BX]
110: JMP PP1
³o¬O¥D¬yµ{¡Aµ{¦¡µu¡A³t«×§Ö¡AºûÅ@®e©ö¡A¤@²´¬Ý¹L¥h¡A¦³¤°»ò¿ù»~¥ß¨è¤À©ú¡C
¡K
1000: FUNC DW NEXT02 ;¡ø
1001: DW NEXT0 ;¡ô
1002: DW NEXT04 ;¡ù
1003: DW PPRET ;µL®Ä
1004: DW NEXT2 ;¡ö
1005: DW PPRET ;µL®Ä
1006: DW NEXT4 ;¡÷
1007: DW PPRET ;µL®Ä
1008: DW NEXT12 ;¡ú
1009: DW NEXT1 ;¡õ
1010: DW NEXT14 ;¡û
¡K
¦]¬°³o¬O¤lµ{¦¡¡A¥[¤@¬q¡B´î¤@¬q®e©ö«D±`¡C
§Y¨Ï¬O¤lµ{¦¡¡A¤]¦³«Ü¤jªº¦Ò¨s¡A´N¥H«e¬q¨Ó»¡¡A¦b 104¦Ü110 ¤§¶¡¡A´Nȱo¤T«ä¡C
104: CALL MOVDATA ;SET BUFFERS
105: CALL SETDLT ;SET INCREMENT
106: NXT01:
107: CALL DOTUP
108: LOOP NXT01
109: CALL XORDOT ;SET NEW DOT
110: CALL XYDISP ;DISP NEW XXX,YYY
º¥ý¡A104 ©M105 ·|«½Æ¦h¦¸¡A109 ¤Î110 ¥çµM¡A¬°¤°»ò¤£¦X¨Ö¬°¤@©O¡H³o¤]¬O«Ü±`¨£ªºµ{¦¡¦X¨Ö¤âªk¡A¨â¦¸½Õ¥Î¦X¬°¤@¦¸¡A³t«×¤ÎªÅ¶¡³£¸û¬°¸gÀÙ¡C
¦b¤lµ{¦¡ SETDLT ¤§«e¡A¥ý½Õ¥Î¤@¦¸ MOVDATA¡A¥tXYDISP¤]¬O¤@¼Ë¡Aº¥ý³Æ§´¡G
3000: SETDATA:
3001: CALL MOVDATA ;°²³]¥»µ{¦¡¦³¥L¥Î
3002: SETDLT:
3003: ¡K
¡K
3100: XYDIDOT:
3101: CALL XORDOT ; ¦P¤W
3102: XYDISP:
3103: ¡K
¡K
¦A¨Ó³]pNEXT0 ªº¤lµ{¦¡¡G
110: NEXT0:
111: CALL SETDATA
112: NXT01:
113: DOTUP À³·h¦Ü¦¹¡AµL»Ý³]¬°¤lµ{¦¡¡C
¡K
120: LOOP NXT01
121: JMP XYDIDOT ; ¦p¦³¥²n¡A¥i¥ý
; ³]¦n°Ñ¼Æ
³o¼Ë¦X¨Ö¤@¤U¡A®ÄªG¨M¤£¤î°ª¤W¤Q¿¡Aµ¥¨ì¯u¥¿¾Ç·|¤Fµ{¦¡ªº§Þ¥©¡A¼g§@®É³t«×¤]¥i¥H´£°ª¼Æ¿¡C
¤G¡B¤À¤äªº³B²z:
¤À¤ä¬Oµ{¦¡¤¤¤£¥iÁ×§Kªº¤â¬q¡A¨Ï¥Î±o¦n¡A¾ãÓµ{¦¡®ð¶Õ¤@³e¡A¦³¦æ¶³¬y¤ô¤§§®¡C
«e±ªº¨Ò¤l®Ú¥»¤£¨ã¤À¤äªº±ø¥ó¡A¬G¤£¯àºâ¬O¤À¤ä¤£¨}¡A¦Ó¬Oµ{¦¡®vÆ[©À¿ù»~¡C
¤U±¦AÁ|¤@¨Ò¡A¥Ñ©ó¤À¤ä¤£¨}¡A¥HPµ{¦¡¤äÂ÷¯}¸H¡C³o¬O¤@«hpºâ©ßª«½uªº§Ö³tµ{¦¡¡A§®¦b¨S¦³¥Î¼°£ªk¡A¤]¨S¦³¥ô¦ó¨ç¼Æ¡C¨ä¤¤¦³´X¬q¬O³o¼Ëªº¡G
100: BEG00:
101: CMP BP,BUFY
102:? JLE BE7
103: OR CX,CX
104: JG BE20
105: MOV AX,BP
106:? SHL AX,1
107: DEC AX
108: JL BE10
109: BE2:
110: CALL BE1
111: JC BEG00
112: CALL BE3
113: JMP BEG00
¡K
120: BE14:
121:? LODSW
122: CMP AH,1FH
123: JGE BE141
124: LOOP BE14
125: POP DI
126: POP CX
127: MOV SI,DI
128: JMP BE142
129: BE141:
130: POP DI
131: POP CX
132: MOV SI,DI
¡K
150: BE10:
151: CALL BE1
152: JMP BEG00
153: BE20:
154: MOV AX,CX
155:? SUB AX,DX
156: SHL AX,1
157: DEC AX
158: JLE BE2
159:? CALL BE3
160: JMP BEG00
161: BE1:
162:? INC DX
163: ADD CX,DX
164: ADD CX,DX
165: INC CX
166: ADD DI,BUFX
167: CMP DI,BX
168: JLE BE1RET
169: CALL BE01
170: SUB DI,BX
171: BE1RET:
172: RET
¡K
190: BE01:
191:? MOV AL,1
192: CMP [SI+1],AL
193: JNZ BE011
194: INC BYTE PTR [SI+1]
195: RET
¡K
200: BE141:
¡K
¥þ³¡µ{¦¡¨Ã¤£¤j¡A¤£¹L¤@¦Ê¦h±ø«ü¥O¡A¦ý¬Oµy¥[§ï¶i¡A«o¥i¥H¬Ù«o¤Ü¦h±ø«ü¥O¡A³t«×¤]·|¥[§Ö¡C«ÂI¦b©ó106 ¨ì113 ªº¤À¤ä¿ù»~¡A¥HP©ó¦h¥XBE10 BE20 BE3 BE01µ¥¬qµ{¦¡¥X¨Ó¡C
·Ó²z¡ABE1 BE3 BE01³£¤£¸Ó¥t³]¤lµ{¦¡¡ABE14¤]À³§ï¼g¡A¦p¦¹¡A¾ãÓµ{¦¡´N§¹¥þ¤£¦P¤F¡C
ì¨Ó¥Ñ 105¬°¡G
105: MOV AX,BP ;¡¹µL¥²n
106: SHL AX,1 ;¡¹µL¥²n
107: DEC AX ;¡¹µL¥²n
108: JL BE10
109: BE2:
110: CALL BE1 ;¡¹¦X¨Ö«á¡AµL»Ý½Õ¥Î
111: JC BEG00 ;¡¹¥t§@¤À¤ä
112: CALL BE3 ;¡¹¤]µL¥²n½Õ¥Î
113: JMP BEG00
²{§ï¬°¡G
107: BE1: ;쬰DEC AX¤À¤ä³B²z
108: INC DX ;ì161¤lµ{¦¡§@¥D¬yµ{
109: ADD CX,DX
110: ADD CX,DX
111: INC CX
112: ADD DI,BUFX
113: CMP DI,BX
114: JLE BE11
115: ; CALL BE01 ;¥»¤lµ{¦¡«¼g¦p¤U¡G
116: CMP BYTE PTR[SI+1],1
117: JNE BE1A
118: INC BYTE PTR[SI+1]
119: BE1A:
120: SUB DI,BX
121: JC BEG00 ;ì111
122: ¡K ;ìBE3 µ{¦¡
¡K
¤S 125±ø¤TÓ«ü¥O¤]¬O¤À¤ä¿ù»~¡A¥Õ¥Õ®ö¶O¡C
120: BE14:
121: LODSW
122: CMP AH,1FH
123: JGE BE141
124: LOOP BE14
125: POP DI ;¡¹¥i¥H¬Ù²¤
126: POP CX ;¡¹¥i¥H¬Ù²¤
127: MOV SI,DI ;¡¹¥i¥H¬Ù²¤
128: JMP BE142 ;¡¹¥i¥H¬Ù²¤
129: BE141:
130: POP DI
131: POP CX
132: MOV SI,DI ;127²¾¨ì¦¹
133: JNZ BE142 ;128²¾¨ì¦¹
134: ¡K
²Ä¥|¸` ©w®×¥]¸Ë
¤@¡B¤â¥U¡G
¤â¥U¼g§@¥»¨Ó»Pµ{¦¡¼g§@µLÃö¡A¦ý¥Ñ©ó¤@¯ëµ{¦¡®v³£¤£ª¾¹D¤â¥Uªº«n©Ê¡A©¹©¹µ{¦¡¼g±o·¥¨Î¡A¦Ó¥«³õ¤f¸O«o¤£¨}¡A¥HPºG¾D·ÆÅKÃy¤§±Ñ¡C
¹ê»Ú¤W¡A·í¤µ¥«³õªºÁͶաA³£¶É¦V©ó¿Ã¹õ´£¥Ü¡A¥HP©ó¤â¥U¶È¨ã»²§U§@¥Î¡AÀ°§U¨Ï¥ÎªÌ²z¸Ñ¦UºØ¥\¯àªºµo´§¦Ó¤w¡C
°ÝÃD´N¥X¦b³oùØ¡A¤@Ó¥\¯àªº¤¶²Ð¡B»¡©ú¡A»P¸Ó¥\¯àÀ³¥Îªºµo´§¡A§¹¥þ¬O¤£¦Pªº¼h¦¸¡C¡u¿Ã¹õ´£¥Ü¡v¸g±`¥Ñµ{¦¡®v¦Û¦æ»s§@¡A¦Óµ{¦¡®v¹ï¤å¦r·§©ÀªºÀ³¥Î¤Î²z¸Ñ¯à¤O¡A©¹©¹¨Ã¤£¤Ó°ª©ú¡A¨äµ²ªG¥i·Q¦Óª¾¡C
¤â¥UÀ³¸Ó¦³±M¤H¼g§@¡A³oºØ¤H¬Jn¹ï¤å¦r·§©ÀÀ³¥Î¸Î¦p¡A¤Sn¥R¥÷ÁA¸Ñ¹q¸£ªº¥\¯à¡CÃøªº¬O¡A°ö¾i¤@Óµ{¦¡®v¡A¤F¤£°_¤TÓ¤ë¨ì¥b¦~¡A¦Ó¤@Ó¯à¹F·Nªº§@®a¡A°_½X»Ýn¤T¦Ü¤¦~¡C¿ò¾Ñªº¬O¡A¤@¯ë¹q¸£¤½¥q¨S¦³³oºØ²´¥ú¡A¥H¬°¼gµ{¦¡»Ýn§Þ³N¡A¤â¥U«hÀH«K§ä¤HÀ³¥I¤F¨Æ¡C
¤â¥Uªº«n©Ê¡A¨Ã«D¶È¤î©ó¦¹¡A¤@Ó¦³»ùȪºµ{¦¡¡A¤@©w¦³¶g¸Ôªºp¹º¡A¦³»s§@ªºÂŹϡC³oºØp¹º¤ÎÂŹϡA¸g¹L¤å¦r·§©À¤Wªº¾ã²z¡AÀ³¸Ó´N¬O¤â¥U¥»¨¡C´«¥y¸Ü»¡¡A¦³¨}¦n³W¹ºªºµ{¦¡¡A¥²µM¬O¥ý¦³¤â¥U§@¬°ÂŹϡA¦A®Ú¾Ú¤â¥U»s§@µ{¦¡¡C
¤G¡Bª©¥»¡G
µ{¦¡§¹¦¨¥H«á¡A°£«D¤@¨Ç¯S®íªºì¦]¡A¥un¦³¹ê¥Î»ùÈ¡A¥²µM»Ýn¤£Â_§ï¶i¡B±j¤Æ¡C
³o¤@¨Ó´N±Á{ª©¥»§ó·sªº°ÝÃD¡Aµ{¦¡®v¦b»s§@¤§ªì¡A¥²¶·¨Æ¥ý¦Ò¼{¶g¥þ¡C¤£n§Æ±æ¤@¦¸§âµ{¦¡¼g±oºÉµ½¬ü¡A§¹¾ãµL¯Ê¡A¤£¶È¨º¬O¤£¥i¯àªº¹Ú·Q¡A¤]¬O¦Û§ä³Â·Ð¡C
¥ô¦ó¤@Ó¤H¡A§Y¨Ï¬O¤£¥@¤Ñ¤~¡A¤]¤£¥i¯à¸g¾ú¤H¶¡©Ò¦³ªº¨Æ¥ó¡C¦Óµ{¦¡©Ò»Ýn¾AÀ³ªº½d³ò¡A«h¬O°ÊºAªº¡BÀHµÛ¤Hªºª¾ÃѤθgÅ礣Â_¼Wªø¡C¦]¦¹¡A¤@Ó¹ñ·sªºµ{¦¡¤@¥¹°Ý¥@¡A´N¦¨¬°¤H¥@¶¡ªº·s¥Í¨Æª«¡A¤Hªº¸gÅçÂX®i«á¡A·sªº»Ý¨D§Y±µ¿æ¦Ó¦Ü¡Cèè§¹¦¨ªºµ{¦¡¡A¦b§¹¦¨ªº¨º¤@«b¡A´N¤w¦¨¬°¹L¥h¦¡¡C
©Ò¥H¦bµ{¦¡³W¹º®É¡A¥²¶·°ªÂ¤»·Æf¡A¦Ò¼{±o¶V¬O¶g¥þ¡Aµ{¦¡ªº¥Í©R¤O¶V¬O©ô²±¡C¦P®É¡A¦b¥t¤@¤è±¡Aµ{¦¡¥²¶·¥æ¨ì¨Ï¥ÎªÌ¤â¤¤¡A¤~¦³¹ê»Úªº»ùÈ¡C¬O¥H¦p¦ó¦b¶g¥þªº³W¹º¡A©M¾¨§Öªº§¹¦¨¤u§@¤§¶¡¡A§@¦³®Äªº·r°u¨ú±Ë¡A«h¬OÓÃøÃD¡C
¸Ñ¨Mªº¤èªk¤§¤@¡A´N¬O§Q¥Î¡uª©¥»¡vÆ[©À¡A±N²£«~¤À¬°¼ÆÓ®É´Á¡C³o¼Ë¡A¤£¶È²£«~¥i¥H«Ü§Ö¦a¥æ¨ì¨Ï¥ÎªÌ¤â¤¤¡A¦Ó¥B¨Ï¥ÎªÌ¥i¥H´£¨Ñ¨äÀ³¥Î¸gÅ窺¦^õX¡A§ó¦³§Qªº¡A¬Oµ{¦¡±o¥H¤£Â_¦a¼Wªø¡B¦¨¼ô¡B§¹µ½¡C
¦³¤Fª©¥»ªºÆ[©À¡AÁÙ»Ýn¹ïª©¥»ªº»s§@¦³©ú½Tªºp¹º¡A¨C¤@Óª©¥»ªºÀɮ׺ûÅ@¡A×q§ó¥¿¡A³£n¦³±M¤Ht³d¡C§_«h¡A·í¤w¸g¤W¥«ªºª©¥»ÁÙ»Ýn×§ï¡A¦Ó·sªºª©¥»·~¤w¶}©l³]p¡AY¬O¤@Ó¤£¤p¤ß¡A¤À¤£²MÀÉ®×ÄÝ©óþÓª©¥»®É¡A¨ä«áªG¤§¤£³ô¡A±N«D§½¥~¤H©Ò¯à»â·|ªº¤F¡C
¤T¡B¥]¸Ë¡G
¦¹³B©Ò´£ªº¡u¥]¸Ë¡v¡A¤£¬O°Ó·~¤W©Ò¿×ªº¦p¦ó±N²£«~¬ü¤Æ°°¸Ë°_¨Ó¡C¦Ó¬O«ü¤@Óµ{¦¡¥æ¨ì¨Ï¥ÎªÌ¤â¤¤®É¡AÀ³¸Ó¨ã³Æþ¨Ç¥²³Æªº¡Aþ¨Ç¿ï¥Îªº¡u°t³Æµ{¦¡¡v¡C
¤@¯ë¤j«¬ªºÀ³¥Îµ{¦¡¡A¸g±`´£¨Ñ«Ü¦h¤ùºÏºÐ¡An¥ý°õ¦æ¤@ӫܽÆÂøªº¡uªì©l¤Æ¡vµ{¦¡¡A¤~¯à¨Ï¥Î¡C¦pªG±Ä¥Î²Õ¦X»y¨¥»s§@¡A¨ä¥Øªº¥»´N¬O¬°¤F¸`¬ÙªÅ¶¡¡CªÅ¶¡¤p¤F¡AÀ³¸Ó¥i¥HÁ×§K³oºØ¦h¾lªº¤âÄò¡C
³o´N¬O¥]¸Ë©Òn¦Ò¼{ªº°ÝÃD¡A¤ñ¦p»¡¡A¦b§Ú̪º¡§»E¬Ã¾ã¦X¨t²Î¡¨¤¤¡Aªþ¦³¦p¤U¤@¨Ç°t³Æµ{¦¡¤Î¤â¥U¡G
1,¥\¯à¡B¾Þ§@´£¥Ü©Î¤â¥U¡G
1-1 sm.hlp¡G¦b¥\¯à´£¥ÜºA¤U¡A»¡©ú¦U¥\¯à¡B¾Þ§@¤è¦¡¤Îª`·N¨Æ¶µ¡C
1-2 smvqoq.exe¡G»E¬Ã¾ã¦X¨t²Î¾Þ§@¤â¥U¾\Äýµ{¦¡
smvqo1.dat--smvqod.dat ¡G¾Þ§@¤â¥U¸ê®ÆÀÉ¡C
2,smjooh.exe¡GÁc¡B²ÅéÀɤ¬Âàµ{¦¡
smjooh.tab¡GÁc¡B²ÅéÂà´«¹ï·Óªí¡C
3,smjopa.exe¡G¥»¨t²Î»Ppark¤å®ÑÀÉ¸ê®Æ¤¬Âà¥Î¡C
4,smjob5.exe¡G¬°Âà´«¨ä¥L¨t²Î¥Í¦¨ªº¤å®ÑÀÉ¸ê®Æ¥Î¡C
5,smjib5.exe¡GÂà´«dbase iii ¸ê®ÆÀÉ¡C
³o¨Çµ{¦¡¤ÎÀɮסA³£n©ñ¦b¦P¤@¤ùºÏºÐ¤¤¡A¤£¶È¬°¤F¤è«K¬Ù¨Æ¡A¤]¥i°§C¦¨¥»¡C
¦b§Ú̪º¸gÅ礤¡A³o¨Ç¤u§@»¡¨Ó®e©ö¡A°µ¨Ó«o¤j¶O¶g³¹¡C°ß¦³¦b¨Æ¥ý°µ¦n§´µ½ªº³W¹º¡A³Ì«á¤~¯à¬Ù®É¬Ù¨Æ¡A¹F¨ì²z·Qªº¹w´Á®ÄªG¡C
¶È¥H¿Ã¹õ´£¥Ü¬°¨Ò¡A¥Ñ©ó¸ê®Æ©Ò¦ûªÅ¶¡¤Ó¤j¡A´N¾ÉP¤F·¥¤jªº§xÃø¡C¦pªG¨Æ¥ý¦³·Ç³Æ¡A±N¸ê®Æ§@¾A·íªºÀ£ÁY¡AÅãµM·|¬Ù«o¤£¤Ö³Â·Ð¡C
¦¹¥~¡A¤â¥Uªº¦L¨ê¡AºÏºÐªº½Æ»s¡A©Ò¦³¤@¤ÁÀ³¦æ¦Ò¼{ªº¡A³£n¨Æ¥ý·Q²M·¡¡Cnª¾¹D¡A¤@ÓÀ³¥Î³n¥ó¡A¨ä¦¨¥»§¹¥þ¦b¶}µo¤Î³Ì«áªº¥]¸Ë¹Lµ{¡A¬°¤F¦¨¥\¡A¥N»ù¬O¥²¶·¥ý¥I¥Xªº¡C
|