¤W¤@­¶ ¥Ø¿ý ¤U¤@­¶

²Ä¤­³¹ ®M¸Ë³n¥ó»s§@


    ²Ä¤­³¹    ®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¹H­I¤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¤H­t³d¡A¤]¦³Åý¼g§@¤â¥Uªº¤H¡A­Ý°µ«~ºÞªº¤u§@¡C³o¼Ë¥i¥H¦P®É¹ï·Ó¤â¥U©Ò´y­zªº¥\¯à¤Î¾Þ§@¤èª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¤â¥U­n³Ì«á¤~°µ¡A¬Û¤Ïªº¡A¤×¨ä¬O¨Ï¥Î¤â¥U¡A¸g±`­n¦bµ{¦¡³]­pªº¦P®É¡A·Ç³Æ§´·í¡A¦p¦¹µ{¦¡®v¤~¤£·|¥ô·N©Ò¤§¡A²æÂ÷¥DÃD¡C
    ²Ä¤@¸`  ´ú¸Õ°»¿ù

    ¤£½×¨Ï¥Î¤°»ò¤u¨ã¡A°»¿ù®É¤@©w­n¦³²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ªk­n¦³«Ü±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Ãø¥H­t¾á¡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¿ùºî½ÆÂøªºµ{¦¡¤¤¡A­n§ä¨ì¿ù»~©Ò¦b¡A¨º¬O¤j®ü¼´°w¤F¡C
    µ{¦¡µo¥Í¡u·í¾÷¡vªº±¡ªp¡A±`±`¬O PUSH ¤Î POP¤£¥­¿Å©Ò­P¡A¤]¦³¦b°µ°j¸ô®É¡A­p¼Æ¾¹¬°­t­È¡A¥H­PÂê¦b¨ä¤¤¡C¦pªGµ{¦¡¤À¡u¬q¡v¤Ó¦h¡A«h­n¯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¸U­n¾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¤@ºØ·¥¬°µh­Wªº¨Æ¡C
    ¤£§«§â°»¿ùµø¬°²qÁ¼¡A¤@ºØ´¼¤Oªº¬D¾Ô¡A¦b¿í¦u¤@©wªº³W«h¤U¡AÀ³¸Ó¬O¤@ºØ¦³½ìªº¨É¨ü¡C
    ²Ä¤G¸`  ¬ã¨s§ï¶i

    ·Q­n§âµ{¦¡¼g¦n¡A¤@©w­n¤£Â_¦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¡A­nÂ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
    ¦A­n¤ç¤ç­p¸û¡AÁÙ¥i¥H·c¥X¤G­Ó¦r¤¸¨Ó¡A¦b¢´¦Ü¢·±ø¤¤¡A­Y¥ÎINC  DX ¥u»Ý­n¤@­Ó¦r¤¸¡C
    ¦¹¥~¡A31¡A32¤Î43 ,44¬O®ö¶Oªº§@ªk¡A¥u­n¦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´N­n¨ã³Æµ·²@¤£­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«h­n¥R¥÷´x´¤°j¸ôªº¯S¦â¡A­n¥Î±o«ê¨ì¦n³B¡A¤£¥i±¼¥H»´¤ß¡C
        ­ì«h¤W¡A¦b°j¸ô¤¤¡A«ü¥O­n¥Î±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¥Øªº¬O­n±N 16*16ÂI°}¦r§Î°e¨ì¿Ã¹õ¤W¡C¹ï¶H¬OHercules 640*400ªº¹Ï§Î¥d¡A­p¤À¥|°Ï¥æ¤¬¶Ç°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¡C­Y§Æ±æ¦³¤@ª¬º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 Åã¥Ü¡A­p¦³ 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«h­n¼W¥[130 ­Ó¦r¤¸¡A®É¶¡«h§Ö¤F 272­Ó®ÉÄÁ¯ß½Ä¡A¬O§_­È±o¡A´N­n¬Ý¹ê»Ú»Ý­n¦Ó©w¤F¡C
    ¥t¤@­Ó¤èªk¡A­n¼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 «h­n12­Ó¡A¨âªÌ¬Û¥[¬O27­Ó®ÉÄÁ¯ß½Ä¡A«D±`¤£­È±o¡C
    ¸Ñ¨M¤èªk¤§¤@¬O¡G³]ªk±N±ý«O¯d¤§­È¶J¦s¦b¨S¦³¥Î¨ìªº¼È¦s¾¹¤¤¡F¦A­Y¬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µ{¦¡µw­n´Â¦è¡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´N­nªá¤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­Ó±ø¥ó«h­n¦³¤ÀªRÆ[¹îªº²ßºD¡A²Ä¤T­Ó¤]¬O³Ì­«­nªº¡A«h¬O­n¦³°l¨D§¹¬üªººë¯«¡Cµ{¦¡®v­n¹³ÃÀ³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«e­zªº±¡ªp®Ú¥»¤£¥i¯àµo¥Í¡I
    °ÝÃD¬Oµo¥Í¤F¥H«á«ç»ò¿ì©O¡H§Ú«ØÄ³³Ì¦n­«¼g¡A¦pªG¤@©w­n§ï¡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¥H­PµLªk¿@ÁY¡C

  2,¦bÃþ¦üªºµ{¦¡¤¤¡A§ä´M¬Û²§ªº«ü¥O©Î¬yµ{¡A¦A­Y¨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³B­Y¤z¤£¦P¤§¬q¡A¦C­z¦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¥H­P¨ì³o­Ó¦a¨B¡C
    §Ú­Ì¥ýÂk¯Ç°ÝÃD¡A¨M©w¦p¦ó¦X¨Ö¡C²Ä¤@¡A¤W­z¦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¥H­Pµ{¦¡¤äÂ÷¯}¸H¡C³o¬O¤@«h­pºâ©ßª«½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¥H­P©ó¦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¥H­PºG¾D·ÆÅKÃy¤§±Ñ¡C
    ¹ê»Ú¤W¡A·í¤µ¥«³õªºÁͶաA³£¶É¦V©ó¿Ã¹õ´£¥Ü¡A¥H­P©ó¤â¥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¬J­n¹ï¤å¦r·§©ÀÀ³¥Î¸Î¦p¡A¤S­n¥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¥u­n¦³¹ê¥Î»ù­È¡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¤H­t³d¡C§_«h¡A·í¤w¸g¤W¥«ªºª©¥»Áٻݭn­×§ï¡A¦Ó·sªºª©¥»·~¤w¶}©l³]­p¡A­Y¬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¤ùºÏºÐ¡A­n¥ý°õ¦æ¤@­Ó«Ü½ÆÂøªº¡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·¡¡C­nª¾¹D¡A¤@­ÓÀ³¥Î³n¥ó¡A¨ä¦¨¥»§¹¥þ¦b¶}µo¤Î³Ì«áªº¥]¸Ë¹Lµ{¡A¬°¤F¦¨¥\¡A¥N»ù¬O¥²¶·¥ý¥I¥Xªº¡C

¤W¤@­¶ ¥Ø¿ý ¤U¤@­¶