
     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
      Ĵ
      .................

    뢠  ⠢訥 4  १ࢠ ,  ஬
㤥 । ࠢ  믮  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 室   ,  
祭  맮 . ⠭  . 
 ⥪ AF  HL.  ᮤন  ॣ஢ ⠪ ,
 뫮  室  ணࠬ.

      Ŀ
          ,  
      祭 ਲ਼ 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
