

amul 
=====

  ६  㬬஢. HL = A * DE + HL ~350 ⠪⮢

  㭪 ६  ᫠   ॣ A 
DE  ਡ १  ᮤন ॣ HL. 㭪
믮 ३ 祬 㭪 mul, ਬ୮  350 ⠪⮢ 
  ᯮ짮  㯠  ⠬ ᨢ.  ⮬
砥 ᫨ ࠧ ⮢  ࠧ୮ ᨢ 
2^n   ⠭⠬   룮 ᯮ짮
 㣨 ᯮᮡ ᪮७ 㬭.  砥, ᫨
ॡ     ⠬ ᨢ 
ந ࠧ஬   ࠧ୮  
楫ᮮࠧ ᯮ짮 ᨢ .

   ⠪ mul, div, lmul, ldiv.





crc16
======

 室:
  IX = 㪠⥫ ᨢ 
  BC = ࠧ ᨢ   
  DE = 樥 童 (0x1021 筮)
  HL = 砫쭮 祭 
 ----
 室:
  HL = 祭 

  㭪 뢠 祭     
砫 ᮬ   ॣ IX    
  ॣ BC.  ॣ DE 㪠뢠 ஦騩
童 .  ॣ HL 㪠뢠 砫쭮 
஬筮 ( 砥 ᫥⥫쭮  
᪮쪨 ᨢ) 祭 .   
頥  ॣ HL.  ⢥ ஦饣 
童  ⥫㭨 樮 ⮪ ᯮ
४㥬  祭 1021h.

   ࠡ  㭪樨  祭
믮 㭪樨 crc16_fast,   㭪  ᯮ
࠭ ⠭ ⠡  ६  ࠡ ⥫쭮
.   ᯮ짮 㭪樨 crc16_init 
crc16_fast, ᫨ ॡ     ꥬ
.






crc16_init
==========

 室:
   DE = 㪠⥫  ᨢ , 512 
   BC = 樥 童 (筮 0x1021)

  㭪 樠 ⠡  ண 
16-ࠧ來 横᪮ 筮  () 㭪樥
crc16_fast.   ॣ de ।  ᨢ 
ࠧ஬  512   ࠭ ⠭ ⠡.
 ॣ BC 㪠뢠 ஦騩 童 . 
⥫㭨樮 ⮪ ᯮ ४
 祭: 1021h.


crc16_fast
============

 室:
   DE = 㪠⥫  ⠭ ⠡ .
   IX = 㪠⥫  ᨢ 
   BC = ࠧ ᨢ   
   HL = 砫쭮 祭 
 ------
 室:
   HL = 祭 

  㭪 뢠 祭     
砫 ᮬ   ॣ IX    
  ॣ BC.  ॣ DE ।  ⠡
।⥫쭮 ⠭   㭪樨 crc16_init. 
ॣ HL 㪠뢠 砫쭮  ஬筮 ( 砥
᫥⥫쭮   ᪮쪨 ᨢ) 祭 .
  頥  ॣ HL.

   ࠡ  㭪樨  祭
믮 㭪樨 crc16,   ᯮ ࠭
⠭ ⠡,  ६  ࠡ ⥫쭮 .

  ਬ ᯮ짮 㭪権 crc16_init  crc16_fast 
  䠩  㬥饣 楫  ⨢ :

	ld hl, -512-4096 ; 뤥 :
	add hl, sp	; 512   ⠡ 
	ld sp, hl	;  4096  ⥭ 䠩
			
	ex de, hl	;  ⠡  = SP+0
	ld bc, 0x1021	
	call crc16_init	; 樠 ⠡ 

	ld hl, 0	; 砫쭮 祭 
	push hl
loop:
	ld hl, 512
	add hl, sp	;   䠩 = SP+512
	push hl
	call read_file	; 뢠  䠩	

	pop ix		; :  䠩
	ld bc, 4096	; ࠧ  䠩
	ld hl, 0
	add hl, sp
	ex de, hl	;  ⠡  = SP+0
	pop hl		; ஬筮 祭 
	call crc16_fast
	push hl

	call eof	; ஢ઠ ⨦  䠩
	jr nz, loop	;   

	pop de		; 筮 祭 
	ld hl, 512+4096
	add hl, sp
	ld sp, hl	; ᢮ 

	ex de, hl	;  HL = ⠭ 祭 
	ret






div
====

  ᫥ : HL=DE/BC, DE=DE%BC.

  㭪  ᫮   ॣ HL  ᫮  
ॣ BC, १ 頥  ॣ HL,  ⮪ 
ॣ DE.  砥   0  ॣ HL 뢠
,   ॣ DE 祭 . 㭪 믮
ਬ୮  900 ⠪⮢.





flatcher
=========

  室:
    IX = 㪠⥫  ᨢ 
    BC = ࠧ ᨢ  
  ------
  室:
    HL = 訥 ࠧ 16-ࠧ來 
    DE = 訥 ࠧ 16-ࠧ來 
    E,L = 8-ࠧ來 

  㭪 뢠 祭  .  ॣ IX
। 㪠⥫   ,  ᮤন ன
㤥 ந .  ॣ BC । ࠧ
   .   ॣ HL  DE 
祭 16-ࠧ來  . 祭 8-ࠧ來
   祭  ॣ஢ E (訩 ) 
L (訩 ).

    ᫨誮 㤠筠 㭪  ஫ 楫⭮
,  ࠡ⠥ ३ 㭪権  .





i2bcd
======

  室:
    HL = 筮 ᫮
  ------
  室:
    E,H,L = 筮-  

  㭪 ॢ 祭 16-ࠧ來 (筮) ᫠
  ॣ HL  筮- ଠ. 
頥  ॣ E,H,L (  -- 訥 ࠧ,  L --
訥).





l2bcd
======

  室:
    (DE,HL) = 筮 ᫮
  ------
  室:
    (C,D,E,H,L) = 筮-  

  㭪 ॢ 祭 32-ࠧ來 (筮) ᫠
  ॣ DE  HL ( HL 訥 ࠧ) 
筮- ଠ.  頥  ॣ
C,D,E,H,L ( C -- 訥 ࠧ,  L -- 訥).





labs
=====

    (HL',HL) = abs (HL', HL)

  㭪 頥  ॣ HL'  HL ( HL' 訥
ࠧ) ᮫⭮ 祭 32-ࠧ來 ᫠  
  ॣ HL'  HL ( HL' 訥 ࠧ).





ldiv
======

    (HL',HL) = (HL',HL) / (DE',DE)

    (DE',DE) = (HL',HL) % (DE',DE)


  㭪   32-ࠧ來 ᫠. 
  ॣ HL'  HL ( HL' 訥 ࠧ).
⥫   ॣ DE'  DE ( DE' 訥 ࠧ).
  頥  ॣ HL'  HL

( HL' 訥 ࠧ). ⮪   頥 

ॣ DE'  DE ( DE' 訥 ࠧ).






lmax
=====

    (HL',HL) = max ( (HL',HL), (DE',DE) )


  㭪 頥  ॣ HL'  HL ( HL' 訥
ࠧ) ᨬ쭮 祭   32-ࠧ來
 ᥫ. ࢮ ᫮   ॣ HL'  HL

( HL' 訥 ࠧ). ஥ ᫮  ॣ DE'  DE
( DE' 訥 ࠧ).






lmin
=====

    (HL',HL) = min ( (HL',HL), (DE',DE) )


  㭪 頥  ॣ HL'  HL ( HL' 訥
ࠧ) 쭮 祭   32-ࠧ來
 ᥫ. ࢮ ᫮   ॣ HL'  HL

( HL' 訥 ࠧ). ஥ ᫮  ॣ DE'  DE
( DE' 訥 ࠧ).






lmul
=====

    (DE',DE,HL',HL) = (HL'HL) * (DE',DE)

  㭪 ६  32-ࠧ來 ᫠  砥
64-ࠧ來 १.  ᮬ⥫   ॣ
HL'  HL ( HL' 訥 ࠧ). ன ᮬ⥫  
ॣ DE'  DE ( DE' 訥 ࠧ). 
頥  ॣ DE',DE,HL',HL ( DE' -- 訥 ࠧ,

 HL 訥).





lshl
=====

    CF,(HL',HL) = (HL',HL) << A

  㭪 ⢫ ࠧ來 ᤢ "" 32-ࠧ來
 ᫠   ॣ HL'  HL ( HL' --
訥 ࠧ). ᫮ ᤢ  ⢮ ࠧ冷
㪠  ॣ A. 訥 ࠧ ᫠ ⠭
 . 訥 ࠧ ᤢ  䫠 ७. 
頥  䫠 ७  ॣ HL'  HL ( HL' --
訥 ࠧ).





lshr
=====

    CF,(HL',HL) = (HL',HL) >> A

  㭪 ⢫ ࠧ來 ᤢ "ࠢ" 32-ࠧ來
 ᫠   ॣ HL'  HL ( HL' --
訥 ࠧ). ᫮ ᤢ  ⢮ ࠧ冷
㪠  ॣ A. 訥 ࠧ ᫠ ⠭
 . 訥 ࠧ ᤢ  䫠 ७. 
頥  䫠 ७  ॣ HL'  HL ( HL' --
訥 ࠧ).





max
=====

    HL = max ( HL, DE )

  㭪 頥  ॣ HL ᨬ쭮 祭 
 16-ࠧ來  ᥫ   ॣ
HL  DE.





min
=====

    HL = min ( HL, DE )

  㭪 頥  ॣ HL 쭮 祭 
 16-ࠧ來  ᥫ   ॣ
HL  DE.





mul
====

    (DE,HL) = DE * BC

  㭪 ६  16-ࠧ來 ᫠  
ॣ DE  BC,  頥 १  ॣ DE  HL. 
ॣ DE ࠭ 訥  १. 㭪
믮 ਬ୮  800 ⠪⮢ .  ⠪
ᠭ 㭪樨 amul.





abs
====

    HL = abs (HL)

  㭪 頥 ᮫⭮ 祭  16-ࠧ來 ᫠
 . 㬥   ॣ HL  १
頥  ॣ HL.


negate
=======

    HL = 0 - HL

  㭪 ⠥ 16-ࠧ來  ᫮,  
ॣ HL,  .  頥  ॣ HL. ᫨
㬥 㭪樨  ࠢ ,  䫠 C 㤥 ⠭.





randn
======

  室: 
    DE = ᨬ쭮 祭 砩 ᫠
  ----
  室:
    HL = ᥢ砩 ᫮

  㭪 頥 ᥢ砩 ᫮   .
쭮 祭 頥 砩 ᫠ -- 0.
ᨬ쭮 ᥣ  ᫠   ॣ DE.
 頥  ॣ HL.   ⠪ ᠭ
㭪樨 rand.


rand
=====

  室:
    HL = 0..65535

  㭪 頥  ᥢ砩 ᫮ 
ॣ HL. 頥 ᫮ 室   0..65535.
㭪 믮 ᪮쪮 ३ 㭪樨 randn. 믮
㭪樨 rand  ६ ਬ୮ ࠢ 3- 맮 檨
mul,   ६  ६ 믮 㭪樨 randn ᮯ⠢ 
4- 맮 㭪樨 mul.


srand
=====

  室:
    DE = 0..65535

  㭪 ⠭  砩 ᥫ.  ⠭
  祭 㥬 ᫥⥫쭮
ᥢ砩 ᥫ 㤥 ᥣ . 㬥 㭪樨
।  ॣ DE.






wshl
=====

    CF,HL = HL << A

  㭪 ⢫ ࠧ來 ᤢ "" 16-ࠧ來
 ᫠   ॣ HL. ᫮ ᤢ 
⢮ ࠧ冷 㪠  ॣ A. 訥 ࠧ
᫠ ⠭  . 訥 ࠧ ᤢ  䫠
७.  頥  䫠 ७  ॣ HL.





wshr
=====

    CF,HL = HL >> A

  㭪 ⢫ ࠧ來 ᤢ "ࠢ" 16-ࠧ來
 ᫠   ॣ HL. ᫮ ᤢ 
⢮ ࠧ冷 㪠  ॣ A. 訥 ࠧ
᫠ ⠭  . 訥 ࠧ ᤢ  䫠
७.  頥  䫠 ७  ॣ HL.





sqrt
=====

  A = sqrt (HL)

  㭪  楫᫥ 祭 ⭮ 
  ᫠   ॣ HL, १
頥  ॣ A. 㭪 믮 ਬ୮  470
⠪⮢.



