
     3.  㦥 㯮 ,  । 
뢠 ணࠬ 㦭   ⥪   
ந । ⢨.  ⮬, 祢, 
ᯮ짮  ॣ. ⮬ ࢮ砫 祭
 ॣ஢ 㦭 ࠭,  । 맮 ணࠬ -
⠭.
     ᫨  ॥ࠡ쭮 ⪥  ॡ -
࠭,  ⥬ ⠭,  ᯮ짮  ⮣ 
⮫쪮 ⥪!  ᠬ , ᬮ,  㤥, ᫨ ࠭
祭  䨪஢ 祩 : ᫨  ࠭
 ⠭ ந 뢠,  楤 ࠡ⪨
뢠   ⮬   ,  ࠭
 㤥 믮    祩 ,   ࢮ砫쭮
祭 㤥 ﭮ!
     ᫨  ᭠砫 ࠭  ⥪ 祭 ᯮ㥬
ॣ஢,  㦥  ᬮ     ,
  ⥯  㤥  設 ⥪!    ⢥
 ⠪ த. : । ᪮ ணࠬ 
   ⥪  ⥪饣  , ⮡ ⮬,
᫥ ᪠, ⠭ .  ᫨ ᭠砫   
⥪ 祭 ॣ஢,  ⮬ -  ,   㤥
⠭ 祭 ॣ஢ । 맮 ணࠬ?
  㦥    設 ⥪!  :  㤥
  ⥪    ᫥ 砭 ࠡ
饭 ணࠬ? । ⨬ ਤ ࠭  ⥪
祭 ᯮ㥬 ॣ஢,  ,   㦥 
㤥  設 ⥪.    ???

     4.  , ᮡ⢥, ᪠ ணࠬ? 
 ⥭  ,   ?     
࠭  CALL  믮 ? , ࠧ! :-) 
ࠧ : ᫨  ॥ࠡ쭮 ⪥  ॡ
- ࠭ (  砥  ᪠), ⮡ ⮬
ᯮ짮 (  砥  믮  CALL), 
䨪஢ 祩  (  砥  ࠭
 CALL) ᯮ짮  ⮣ !

    ⢥       ࠤ樮
ᯮ짮 ⥪   ࠡ  . 㬠, 訩 ᯮᮡ
᭨  - ஡ ᬮ  樨  ⥪ 
.
     㭪 ࠢ    ⥪ 㪠뢠 
  . 設 ⥪ ࠦ ᢥ,  뢠,
   ⥪ ࠭ ॢ: 設 ᮮ⢥
ᠬ  , ,  , ⥪  . 
設 ⥪ ᮤন  ॣ SP.

    室 ﭨ  맮 :

      Ŀ
           2
      Ĵ
      .................

    ࢨ㥬  ⥪ 5 ⮢.  ⮣ 筮 㬥
SP  5 ( 뢠: ⥪  !). 襭 믮
⠪: DEC SP: PUSH HL: PUSH HL.  㤥 ᥭ  ⥪
 PUSH,   砥 ᮢ襭  : 
ᯮ㥬    㬥襭 SP (⮬  PUSH  
, 祬   DEC SP).

      Ŀ
                  5
      Ĵ
           2
      Ĵ
      .................

    ࠭塞  ⥪ HL, DE, AF.

      Ŀ   
             AF         2 
      Ĵ   
             DE         2 
      Ĵ    11
             HL         2 
      Ĵ   
                  5 
      Ĵ   
           2
      Ĵ
      .................

      設 ⥪  ᬥ饭   ⥪, 
   ,  ᫨   孨 ! 
ᬥ饭    :    㭪, 
ࠢ 11.    ।塞  뢠
ணࠬ    ,  ஬  室.

     ᠭ ᫥ ⢨ 㤮 ࠧ ᮤন
⥪ ⠪:

      Ŀ   
             AF         2 
      Ĵ   
             DE         2 
      Ĵ    10
             HL         2 
      Ĵ   
                  4 
      Ĵ   
                  1
      Ĵ
           2
      Ĵ
      .................

    ।塞  뢠 ணࠬ   .
࠭塞  ⥪饣 (.. ⠭  맮
)      ࠭ १ࢨ஢
⮢ ⥪.    襯ਢ񭭮 㭪,  
ࠢ SP+10.

      Ŀ
             AF         2
      Ĵ
             DE         2
      Ĵ
             HL         2
      Ĵ
                  4
      Ĵ
          ,  
      񭭮 ਲ਼ 1
      맮  
      Ĵ
           2
      Ĵ
      .................

    뢠  ⠢訥   १ࢠ , 
஬ 㤥 । ࠢ  믮  RET 
 뢠 ணࠬ (  SEL_EXIT, ⭮騩
 ),   뢠 ணࠬ.

      Ŀ
             AF         2
      Ĵ
             DE         2
      Ĵ
             HL         2
      Ĵ
                  
         뢠     2
        ணࠬ   
      Ĵ
        SEL_EXIT   2
      Ĵ
          ,  
      񭭮 ਲ਼ 1
      맮  
      Ĵ
           2
      Ĵ
      .................

    砥  ணࠬ.  ࠭  
⥪ 祭 HL, DE, AF.  祭  ॣ஢ ⠪
,   뫨  맮 .

      Ŀ
                  
         뢠     2
        ணࠬ   
      Ĵ
        SEL_EXIT   2
      Ĵ
          ,  
      񭭮 ਲ਼ 1
      맮  
      Ĵ
           2
      Ĵ
      .................

    믮塞  RET,  ⮬  ᭨  ⥪
 ணࠬ  ।   ࠢ.  ,
RET  ᯮ  맮 ணࠬ,  筮
祭 ⮩  - ⨢, 室  ணࠬ. 
⠪ ⠭ . :-)

      Ŀ
        SEL_EXIT   2
      Ĵ
          ,  
      񭭮 ਲ਼ 1
      맮  
      Ĵ
           2
      Ĵ
      .................

    ᫥ ⮣,  ணࠬ 믮,  室  
  RET ࠢ 㤥 ।  ᫥ 
 ( ᮬ SEL_EXIT).

      Ŀ
          ,  
      񭭮 ਲ਼ 1
      맮  
      Ĵ
           2
      Ĵ
      .................

      ⥪ HL  AF.

      Ŀ   
             AF         2 
      Ĵ    4
             HL         2 
      Ĵ   
          ,  
      񭭮 ਲ਼ 1
      맮  
      Ĵ
           2
      Ĵ
      .................

     SP+4 室   ,  
  맮 . ⠭  . 
࠭   ⥪ 祭 HL  AF.  ᮤন
 ॣ஢ ⠪ ,  뫮  室  ணࠬ.

      Ŀ
          ,  
      񭭮 ਲ਼ 1
      맮  
      Ĵ
           2
      Ĵ
      .................

     INC SP 㡨ࠥ  ⥪  㦭 ⥯ 
.

      Ŀ
           2
      Ĵ
      .................

      襭!   RET 頥
ࠢ.

     ,  :  ਬ 
 , 祬 뢠   ᮧ, .. 
 ᯮ짮  ⮫쪮  맮 ணࠬ,
ᯮ  孥 . , ਬ,  
맢 ணࠬ, 室   , 
ࠡ뢠 , ᯮ  ।񭭮 
孥 . 祣  ! 頥 ᢥ   (
    묨)  ,   㤥  뢠,
    .  ᫨ ணࠬ  맢
᭠砫  ࠡ⪨     , ⮬ - 
㣮 ,    ᪮쪮 ࠧ   
, 㪠뢠  ࠧ      ணࠬ,
 ࠧ   .

      , ⠫  ਢ ⨭ . ᫥
⮫ ஡ ᭥, 㬠,     
㤥!


⨭  맮


; NOP- , ᮮ⢥ 
; 8  :

bank_0     EQU  #40 ;LD B,B
bank_1     EQU  #49 ;LD C,C
bank_2     EQU  #52 ;LD D,D
bank_3     EQU  #5B ;LD E,E
bank_4     EQU  #64 ;LD H,H
bank_5     EQU  #6D ;LD L,L
bank_6     EQU  #00 ;NOP
bank_7     EQU  #7F ;LD A,A

; ᮢ ணࠬ:

SEL_TAB    DW   SUBR_1
           DW   SUBR_2
           ...........
           DW   SUBR_N

; ਭ樯, ⠡ ᮢ  ࠧ   孥
;, ⮣     ⠢  1 
;  ணࠬ (   ᯮ塞 
;).

;窨 室:

SEL_BEG
subr_1     DB   bank_3
subr_2     DB   bank_6
......................
subr_n     DB   bank_1

;砫 ࠡ⪠:

           DEC  SP ;ࢨ㥬  ⥪
           PUSH HL ;5 ⮢.
           PUSH HL

           PUSH HL ;࠭塞
           PUSH DE ;ᯮ㥬
           PUSH AF ;ॣ.

           LD   HL,11
           ADD  HL,SP
           LD   E,(HL)
           INC  HL
           LD   D,(HL)

;DE -   ᫥ 맮;
;। ⨬ ᮬ ⮨ 
;CALL XXXX;    XXXX  :

           EX   DE,HL
           DEC  HL
           LD   D,(HL)
           DEC  HL
           LD   E,(HL)
           EX   DE,HL

; HL  XXXX; ᬮਬ,     ᯮ, 
;   ।塞   ,  ஬ ᯮ
;뢠 ணࠬ:

           LD   A,(HL)
           AND  A
           JR   Z,BANK_M_1  ;᫨ NOP.

           AND  7           ; -     
           OR   #10         ;  ; OR #10 - 
           JR   BANK_M_2    ;⠭ ⠫ ࠧ冷 .

BANK_M_1   LD   A,#16       ;NOP ᮮ⢥ 6 .

;! ᫨  ணࠬ ᯮ  ᭮ ࠭ /
;  BASIC-48,  祭   OR #10  LD A,#16
;  ᪮४஢!

;   ᫮, ஥ 㦭 뢥   #7FFD
; 祭  ,  ᯮ ணࠬ.

;  窨 室 (  HL) ।塞  
;⠡,  ஬ ᯮ  뢠 ணࠬ.
;᪮   ⠡ ࠢ (HL-SEL_BEG)*2+SEL_TAB, , 
;  ᠬ (   ᫥), 2*HL-2*SEL_BEG+SEL_TAB.

BANK_M_2   ADD  HL,HL    ;*2

;  㦠  DE ࠦ 㦭, .. 㬭
;⥫ ᥫ  ᫥ ࠦ  ᥬe
;ZX ASM,   , 믮 ୮.

           LD   DE,-(2*SEL_BEG)+SEL_TAB
           ADD  HL,DE

;⠥  DE  뢠 ணࠬ:

           LD   E,(HL)
           INC  HL
           LD   D,(HL)

;ᨬ  ⥪  :

           LD   HL,10
           ADD  HL,SP
           LD   (HL),N  ;N - 砫쭮 祭 ६ BANK.
BANK       EQU  $-1

; :

           DEC  HL
           LD   (HL),SEL_EXIT/256  ;訩 .
           DEC  HL
           LD   (HL),SEL_EXIT\256  ;訩 .

; 뢠 ணࠬ:

           DEC  HL
           LD   (HL),D
           DEC  HL
           LD   (HL),E

;⠭  뢠 ணࠬ:

           CALL SETPORT  ;N .

           POP  AF
           POP  DE
           POP  HL

; ⥪ ᥩ  뢠 ணࠬ,    - 
; SEL_EXIT.

           RET ; ணࠬ.

;⠭ ,  ண  ࠭  ⥪:

SEL_EXIT   EX   (SP),HL
           PUSH AF
           LD   A,L
           CALL SETPORT
           POP  AF
           EX   (SP),HL
           INC  SP

           RET


 ⨬樨


    ࠣ,  ஬   NOP- ,
ᯮ  窥 室, । ᫮, ஥ 㦭
뢥   #7FFD  ⠭    뢠
ணࠬ:

           LD   A,(HL)
           AND  A
           JR   Z,BANK_M_1  ;᫨ NOP.

           AND  7           ; -     
           OR   #10         ;  ; OR #10 - 
           JR   BANK_M_2    ;⠭ ⠫ ࠧ冷 .

BANK_M_1   LD   A,#16       ;NOP ᮮ⢥ 6 .

BANK_M_2   ..........

  ⨬஢ ⠪:

           LD   A,(HL)
           AND  A
           JR   NZ,BANK_M
           LD   A,6
BANK_M     AND  7
           OR   #10

    砥    .  ⮬, ᫨ 뢠
ணࠬ ᯮ   ⮬  ,  먣 
६ ⠢ 7 ⠪⮢,  ᫨  ⮬  - ,
६ ࠡ 㤥  9 ⠪⮢ . 룮 ⠪ ⨬
 ,   ⭮   ࠭ ਥ
룮. ਬ, ᫨  - ᮪ ࠧ,  ᫨
뢠 ணࠬ ᯮ  ᭮   ⮬ 
(..  । 㤥 먣  ६),  ᯮᮡ ਣ.
 ᫨ ⠢ 楫    ᪮ ६ ᪠
ணࠬ   ⮬  ,  ᯮᮡ  
(, 祬,  ࠧ ⠪ ணࠬ 
- 㣮 ).

    ᫨  ⮬    ணࠬ,  
 ⠪:

           LD   A,(HL)
           AND  7
           OR   #10

 㤥 㦥  7 ⮢    23 ⠪ ॥ 室
ਠ.

     , ᫨    뢠 ணࠬ
 ⮬  ,   뢠  
ࠡ⠥ .   ⮬,  । NOP- 
 ⠪, 訥    ன 뫨  ࠢ .
      ᯮᮡ ⨬樨, 騩  
㤮⢮! ࠢ,   ᯮ짮 ॡ, ⮡ 
    쬨    뫮 뢠  
 ணࠬ ( ॠ ணࠬ  ᫮,
-, 믮 ࠪ᪨ ᥣ).
    : ᫨ । 뢮   #7FFD ᫮ 
 NOP-     AND 7: OR #10, 
 뢠 ணࠬ    , ஬
⮣, ..   0,1,2,3,4,5,7.   , ᪠,
뢠 ணࠬ   , ஬ 쥣. 
襬 ⠪: AND 7: XOR 5: OR #10.  砥?  XOR 5
ॢ頥 ᫠ 0,1,2,3,4,5,7 ᮮ⢥⢥  5,4,7,6,1,0,2.
     ᫠  0  7, ஬ 3.
      XOR 5: OR #10     XOR #15,
⠪  ᫥ AND 7 訥 ࠧ  㫥. 
⮣ । 뢮   ᫠    㤥
룫拉 ⠪: AND 7: XOR #15. 믮 ⮣ ࠣ
 ஢ ⮫쪮  ६,   AND 7: OR #10,  
  ⠪ .
      ᯮ㥬   ⥯  롨 ᠬ.
᫨  ⮣  - n,  ࠭   XOR 
 㫥 6 XOR n.   砥  ࠢ 6 XOR 3 (%110 XOR
%011), .. 5 (%101). ꥤ  ࠭  OR #10, 
⮣ 砥 #15.
    , ࠧ㬥, 㦭  ८। 祭 ⠭
bank_0-bank_7. ਬ,  ᫠   ॢ 
믮  XOR,  २뢠 ⠭.  
砥 bank_0 २뢠  bank_5, bank_1 -  bank_4  ⠪
,  ⮣ 砥:

bank_5     EQU  #40 ;LD B,B
bank_4     EQU  #49 ;LD C,C
bank_7     EQU  #52 ;LD D,D
bank_6     EQU  #5B ;LD E,E
bank_1     EQU  #64 ;LD H,H
bank_0     EQU  #6D ;LD L,L
bank_2     EQU  #7F ;LD A,A




    㣨    ࠧ  ⨬樨 
ணࠬ஢  ᥬ Z80:

1. "  ५㥬 ணࠬ". "ZX-" 5-6/1997.

2. "Z80: ⨬ 㧪 ⠭  ॣ".
   "⥫.  " 9/2000, 2/2001 (
   ᥢ BV_Creator).

3. "  ணࠬ஢ 䬥᪨ 権".
   "⥫.  " 12/2000, 1-4/2001.

4. "ﭨ  OUTD  䫠 ७". "⥫. 
   " 5/2001, ".  " 8/2003 (
   ᥢ BV_Creator).

5. "⨬  ਬ intro 'Start'". ". 
   " 7-10/2001.

6. "襭 ᦠ ணࠬ  ᥬ Z80". ". 
   " 4/2003.

7. "楤 ࠢ ப  ᥬ Z80". ". 
   " 6/2003.
