GS1_0.txC Y Z    㪮⢮  ணࠬ஢
            General Sound.

               1.03.

              003.


1.⪨ 孨᪨ ࠪ⨪ GS:

: Z80,12MHz, 横 wait
ROM      : 32k,27256
RAM      : Static Ram 128k ᥣ,
           112k 㯭  㫥 
              ᨨ
INT      : 37.5 KHz
   : 4 ᨬ 8-  -
           ,   6-  -
           ஫ ஬.


2.⪮ ᠭ GS,   类
                 .

 GS- 몠쭠 窠,।祭
 ந뢠 몠 㫥 
⤥  (䥪⮢).
 㫨  GS -  ⠭ 
 PC 4-  MOD 䠩, 
 -   signed sample, ⠪  PC-
 unsigned sample.
 ந뢠⥫ MOD 䠩  GS 
ࠪ᪨   ProTracker'
   ᮧ  ⥭ᨢ
ᯮ짮 室 ProTracker'a.
(  室 뫨  Protracker v2.1A by
   Lars "ZAP" Hamre - Amiga Freelancers)

 MOD Player ন   Pro
Tracker', ᪫祭   :

 01 Filter On - -ᯥ筠 -
                 ,砥 䨫 -
                  .

 EFX Invert Loop     ,
                   ন
                  . ,
                  ন 
                 -  -
                 .

 GS ।⠢  ᥡ ,-, -
   ᢮ -
஬,,  ⠬, ᮫⭮ 
    㬠,
  ,ਬ, 㧨 ᢮
 , ,-
 ᥬ  ⢮   -
. Soft  GS   
ᥡ  ந뢠 㪠,-
樨   .., ணࠬ஢
GS' ᢮  ।   ⮬
 / , ⥬ ॡ
⮫쪮   ⨯: 
,⠭  ஬
ந뢠 ,  #09
  #02  ..

 ᫨ । 㧨 
  ,  ॡ-
 㦠 砫 , ⥬
.

  㧪  祭 ४
⠢ ᢮묨 2 ,.. -
㦠 㫨  ᨬ 110.
 ᫮   室,
 ᯮ 祭 ⥫쭮  楫
ᮢ⨬  ᫥騬 ﬨ.

 筮 祭 ४ ⠢
 80    ,ਬ
᫨ ॡ 㧨 63- -
   18 , :

Total_Sample_Length=112*1024-63*1024-
-2*1024-18*80=46688  㬬ୠ 
,  ⠪  饩
  㦥.

 ᫨ ,ਬ,ॡ ᫨,
᪮쪮    GS' 2- -
 ,  
᫥騬 ࠧ:


 112*1024/(2048+80)=53 .

  GS'  4 䨧᪨ ,
  ந뢠 .
 0  1 - ,  2  3 - ࠢ.


3.䥩  㬮

  GS ᬮ   4 ॣ஢:

1.Command register - ॣ ,
  㯭      187
    ॣ 뢠 .

2.Status  register - ॣ ﭨ,
  㯭  ⥭    187
   ॣ:
   7 - Data bit, 䫠 
   6 - ।
   5 - ।
   4 - ।
   3 - ।
   2 - ।
   1 - ।
   0 - Command bit, 䫠 
  ॣ  । -
 ﭨ GS,  ⭮   
   ।  , 
  । ,  ..


3.Data register - ॣ  ,
  㯭      179
    ॣ  뢠
  ,ਬ    㬥-
   .

4.Output register - ॣ 뢮,
  㯭  ⥭    179
   ⮣ ॣ  ⠥
  , 騥  GS.


Command bit  ॣ ﭨ ⠭-
 ⭮ ᫥  
 ॣ . 뢠  0 
 ⮫쪮  GS, ᨣ 
। ⠯ ᯮ .

Data bit  ॣ ﭨ  
⠭  襭   
㬠,⠪    GS:
  㬮  ॣ 
 ⭮ ⠭  1, ᫥
⥭ GS'  ⮣ ॣ 뢠-
  0.
  GS  ॣ 뢮  (
  Data bit) ⭮ ⠭-
  1, ᫥ ⥭  ⮣ 
㬮 뢠 ⭮  0.

ᬮ  , ॣ  
ॣ 뢮 ᯮ  ࠭-
⢥ ᮢ ⮢    ⮬ 
,      
 ,    -
묨 ॣࠬ. 祭,  ࠧ -
ᠭ     ॣ஢, ⠥
     .

ﭨ   祭  -
, ᫨  ᯥ䨪樨  
। 祭 ⮣   ।-
 ⠯ ᯮ , -
⨬  - ।
⭮⥫쭮 祭 ⮣ .



4.⥬  GS

 砫  ᥡ 讥 㯫-
  ᮡ⢥ ⥬ . GS, 
⭮,।祭  ᭮  -
뢠 㫥  .  
ᨨ (1.03) GS ROM 㪠 㧪
  /  32 .
    㧪   
砥 ᢮ 㭨 䨪,
 筮 । 饭
    , -
  .   -
  砥  (handle) = 1,
᫥騩 -  2,  ..
   ᠬ ਬ   , 
 ⢥ 㦥  -
  handle=1 ᫥ 㧪.
 ᮡ  ᨨ  ⠪-
 , 砫 ॡ 㦠
, ⥬ 㦥 .

 ᮡ ᠭ :
 뢠 ᫥騬 ࠧ:

1.Hex  
2. 
3.  
4.믮塞 ⢨  ᯮ
  
5.ଠ 
6.ਨ  

  ଠ  뢠 ᫥騬
 ࠧ:

GSCOM EQU 187
GSDAT EQU 179


SC #NN  : ᫠    ॣ
          

          LD A,#NN
          OUT (GSCOM),A

WC      :   Command bit

     WCLP IN A,(GSCOM)
          RRCA
          JR C,WCLP

SD Data : ᫠   ॣ 

          LD A,Data
          OUT (GSDAT),A

WD      :   Data bit,
           ,, GS 
          ਬ ᫠  

     WDLP IN A,(GSCOM)
          RLCA
          JR C,WDLP

GD Data : ਭ   ॣ
          

          IN A,(GSDAT)

WN      :  ⠭ Data bit,
           , ।
            GS

     WNLP IN A,(GSCOM)
          RLCA
          JR NC,WNLP




 GS:

#00 Reset flags -                  (  0)
    뢠 䫠 Data bit 
    Command bit.

    SC #00
    WC

    (Data bit=0,Command bit=0)

#0E Go in Covox mode               ( 14)
    室  ० ,
     ॣ    
    (ࠢ  ) .
    室  ⮣ ०-  #00
     ॣ .

    SC #0E
    WC

    SD  \
    SD   \
    ...  /  뢮  
    SD  /

    SC #00
    WC

#F3 Warm restart                   (243)
    뢠  GS, ய᪠
    ⠯ । ⢠ ࠭
       ஢, 祭 ᨫ쭮
    ᪮  樠樨.

    SC #F3
    WC

#F4 Cold restart                   (244)
     १ GS  ᥬ ஢-
    .  , JP #0000.

    SC #F4
    WC


#20 Get total RAM                  ( 32)
     騩 ꥬ 㯭 
     GS.(   ᨨ  112)

    SC #20
    WC
    GD RAM.L( )
    WN
    GD RAM.M(। )
    WN
    GD RAM.H( )

Total RAM=65536*RAM.H+256*RAM.M+RAM.L



#21 Get free RAM                   ( 33)

     騩 ꥬ ᢮ 
     GS.

    SC #20
    WC
    GD RAM.L( )
    WN
    GD RAM.M(। )
    WN
    GD RAM.H( )

 Free_RAM=65536*RAM.H+256*RAM.M+RAM.L

#23 Get number of RAM Pages        ( 35)
     ᫮ ࠭  GS.

    SC #23
    WC
    GD Number_RAM_Pages

      ᨨ 3 ࠭.

#2A Set Module Master Volume       ( 42)
    ⠭ ஬ ந뢠
    㫥.

    SD Module_Master_Volume [#00..#40]
    SC #2A
    WC
   [GD Old_Master_Volume] -  ஬.

    쪨 ਬ ᯮ짮 
    :

    (।,  ࠥ )

           LD B,#40

     LOOP: LD A,B
           OUT (GSDAT),A
           LD A,#2A
           OUT (GSCOM),A
           EI
           HALT
           DJNZ LOOP

           LD A,#32
           OUT (GSCOM),A

 襮ᠭ  ᭨ ஬
 饣 ,  ⥬ ⠭
 .



#2B Set FX Master Volume           ( 43)
    ⠭ ஬ ந뢠
    䥪⮢.

    SD FX_Master_Volume [#00..#40]
    SC #2B
    WC
   [GD Old_FX_Volume] -  ஬

    筮 ।饩 ,
      .
          -
    㫨஢  ஬⥩ 
     ,  ..

#2E Set Current FX                 ( 46)
    ⠭ ⥪騩 䥪. 
    ᢠ ६ CURFX  -
    祭. ᫨ -  ॡ-
       (sample handle),
      ⮣   
    #00   ⠢ 
    ⮣  祭 ६ CURFX.
    ( .  #38,#39,#40-#4F 
       襨.)

    SD Cur_FX
    SC #2E
    WC

#30 Load Module                    ( 48)
    㧪   .

    SC #30
    WC
   [GD Module_Handle]- 
   (Command bit=0,Data bit=0)
    SC #D1 (Open Stream- ⮪)
    WC

    SD \
    WD  \
    ...    
    SD  /
    WD /

    SC #D2 (Close Stream- ⮪)
    WC

    ਬ:
             LD HL,Mod_adress
             LD DE,0-Mod_length
             LD C,GSCOM

             LD A,#30
             CALL SENDCOM
             LD A,#D1
             CALL SENDCOM

             LD A,(HL)
     LOOP:   IN B,(C)
             JP P,READY
             IN B,(C)
             JP M,LOOP
     READY:  OUT (GSDAT),A
             INC HL
             LD A,(HL)
             INC E
             JP NZ,LOOP
             INC D
             JP NZ,LOOP
     WAIT:   IN B,(C)  ;  ਭ
             JP M,WAIT ;᫥ 
             LD A,#D2
             CALL SENDCOM
             IN A,(GSDAT) ;  
             OUT (GSDAT),A
             LD A,#31

    SENDCOM: OUT (GSCOM),A
    WAITCOM: IN A,(GSCOM)
             RRCA
             JR C,WAITCOM
             RET



#31 Play module                    ( 49)
    ந뢠 .

    SD Module_Handle -  
    SC #31
    WC

#32 Stop module                    ( 50)
    ⠭ ந뢠 .

    SC #32
    WC

#33 Continue module                ( 51)
    த ந뢠  ᫥
    ⠭.

    SC #33
    WC

#38 Load FX                        ( 56)
    㧪  䥪  .
    㦠  
    (PC type)

    SC #38
    WC
   [GD FX_Handle]- 
   (Command bit=0,Data bit=0)
    SC #D1 (Open Stream- ⮪)
    WC

    SD \
    WD  \
    ...    
    SD  /
    WD /

    SC #D2 (Close Stream- ⮪)
    WC

     㧪  , 
    GS ᮧ  ⮣  -
    , ஬ 뢠 ࠧ
    ࠬ . ᫥ 㧪
     ࠬ ⠭  -
    । 祭, :
    Note=60,Volume=#40,FineTune=0,
    SeekFirst=#0F,SeekLast=#0F,
    Priority=#80, No Loop
     ७ ६ CurFX -
     ࠢ FX_Handle.
    ⥬  #40,#41,#42,#45,#46 
    #47   祭  㬮砭
    ᬥ  ᢮.  ॡ -
       #39  樠樨
    ந뢠  ᯮ -
    祭 ࠬ஢   .

     ᢮ ⢥  
    筮   ࠬ,
     ᦨ 筮  ,
    ᫨ ॢ   Delta-,
    .. ࠭  ᮫ 祭
    , ⭮⥫쭮 ᬥ饭 -
    ⥫쭮 ।饣 .
    ਬ୮  ⠪   ॢ
      Delta-:

            LD HL,Start_of_sample
            LD DE,0-Length_of_sample
            LD C,#00


      LOOP: LD A,(HL)
            SUB C
            LD C,(HL)
            LD (HL),A
            INC E
            JP NZ,LOOP
            INC D
            JP NZ,LOOP



         :
             LD IX,Parameters
             LD HL,Sample_adress
             LD DE,0-Sample_length
             LD C,GSCOM

             LD A,#38
             CALL SENDCOM
             LD A,#D1
             CALL SENDCOM

             LD A,(HL)
     LOOP:   IN B,(C)
             JP P,READY
             IN B,(C)
             JP M,LOOP
     READY:  OUT (GSDAT),A
             INC HL
             ADD A,(HL)
             INC E
             JP NZ,LOOP
             INC D
             JP NZ,LOOP
     WAIT:   IN B,(C)  ;  ਭ
             JP M,WAIT ;᫥ 
             LD A,#D2
             CALL SENDCOM

      ;  ८।塞 ࠬ
      ;   㬮砭 ᢮
      ; 祭ﬨ

             LD A,(IX+#00)
             OUT (GSDAT),A  ; 
             LD A,#40
             CALL SENDCOM
             LD A,(IX+#01)
             OUT (GSDAT),A  ; ஬
             LD A,#41

    SENDCOM: OUT (GSCOM),A
    WAITCOM: IN A,(GSCOM)
             RRCA
             JR C,WAITCOM
             RET



#39 Play FX
    ந뢠 䥪.

    SD FX_Handle -  
    SC #39
    WC

     ᯮ ⮩  ந-
     ᫥饥: ᬮ ,
    㪠  SeekFirst ࠬ -
     , ᫨ -
       ᢮,   ந-
     , ⨢ 砥
    ᬮ ,㪠 
    SeekLast  ᫨    ᢮,
       ࠥ ,᫨ ᢮-
     , ᬠਢ  -
     ,㪠 SeekLast,  롨-
    ࠥ   訬 ਮ⮬
     ࠢ  ਮ⮬ 襣
    ,(   ,
     ⨬ ந)
    ᫨  ⮣  㤥 訩 ਮ-
    ,祬  ,㦥 饣  -
    , 騩    㤥
    ⠭,   㤥 饭
     ⮬   ண .
     ⠪  ਮ⭠ 奬 ...

      ᪠  ,
      ,஬  .. -
     뢠   
       .

     饬 砥,- ந
      㦭묨 ࠬࠬ,
     ⠭  ࠬ
    ᫥ 㧪   ᬥ ᯮ-
      #39.
    ᫨  ࠬ  ,
      㯠 ᫥騬 ࠧ:
     #2E ᤥ ⥪騬 ॡ-
     , #4x  
    ࠬ, ⥬ 㦥 ᪠ 
     #39.

    ୠ⨢ ⮤ ᪠ 
    ।⠢  #80..#9F,
     ᯮ    אַ
       㪠뢠,  -
     ॡ  , 
    ஬ ⮣,  ⠪ 㪠
      ⮩ / ஬ -
      .



#3A Stop FX in channels
    ⠭ ந뢠 䥪⮢ 
     , 㪠뢠
     ᪥  (Channel Mask).
        n- 
    㪠뢠  , 䥪  n-
     ॡ ⠭

    SD Channel_Mask
    SC #3A
    WC

    ᠭ    ਠ
    ࠡ  ,   ᮦ
      ⠪   ⮬ , 
       ⠪, :
       7 ⠭
      㫥 , ..
     ᫥   㤥 ࠢ-
    ,     ४
    ⠭   
    ᪮ #FF.

#3E Load FX (Extended version)
    㧪  䥪  .
     㦠   .
    (Amiga type)

    SD #01 (Signed sample)
    SC #3E
    WC
   [GD FX_Handle]- 
   (Command bit=0,Data bit=0)
    SC #D1 (Open Stream- ⮪)
    WC

    SD \
    WD  \
    ...    
    SD  /
    WD /

    SC #D2 (Close Stream- ⮪)
    WC

#40 Set FX Sample Playing Note
    ⠭   㬮砭 
    ⥪饣 䥪.


    SD Note [0..95]
    SC #40
    WC

Note=
 0 C-0
 1 C#0
12 C-1
24 C-2
36 C-3 (C-1  )
48 C-4 (C-2  )
60 C-5 (C-3  )
72 C-6
84 C-7

  ᨨ Sound Generators Wave 2,3
 ந ⠢ 3,4  5,
⮬ ⨬ 祭 ࠬ
Note    36  71.

#41 Set FX Sample Volume
    ⠭ ஬  㬮砭 
    ⥪饣 䥪.


    SD FX_Volume [#00..#40]
    SC #41
    WC

#45 Set FX Sample Priority
    ⠭ ਮ 
    ⥪饣 䥪.
    ( .  #39)

    SD FX_Priority [#01..#fe]
    SC #45
    WC

#46 Set FX Sample Seek First parameter
    ⠭ ࠬ Seek First 
    ⥪饣 䥪.
    ( .  #39)

    SD FX_SeekFirst
    SC #46
    WC

#47 Set FX Sample Seek Last parameter
    ⠭ ࠬ Seek Last 
    ⥪饣 䥪.
    ( .  #39)

    SD FX_SeekLast
    SC #47
    WC

#60 Get Song Position
    祭 祭 ६
    Song_Position  ⥪饬 㫥.

    SC #60
    WC
    GD Song_Position  [#00..#FF]

     ஢  -
     ந࠭ ୮ .
    ᫥   ਭ -
     0  㢥稢  
    ᫥ ந뢠 । -
    .
     ६  ᯮ짮
     ᨭ஭஢ ᮢ 
    㬥  ந뢠 .
     ⮣ ,ਬ, 砫
    楤 ࠡ⪨ 뢠
    ᤥ SC #60, ⥬ 믮
    楤 ࠧ 権  -
    ,㫫 祪  .. (..
    ⮡ 뫠 筠  믮-
      প),  ⥬
     祭  179
    ( GD Song_Position), ࠢ 
     ॡ㥬 , 砥 ࠢ⢠,
    ३  ᫥  ,..
    if (Song_Position==My_Position)
      then goto Next_Part_Of_Demo



#61 Get Pattern Position
    祭 祭 ६
    Pattern_Position  ⥪饬 㫥.

    SC #61
    WC
    GD Pattern_Position  [#00..#3F]

     祭 ᬥ饭  -
     ( ⥪騩 ROW ), ᯮ짮-
    筮 ।饩 ,
    ॡ ,  稭
     쭮 , ⮬

    if (Pattern_Position>=My_Position)
      then goto Next_Part_Of_Demo

#62 Get Mixed Position
     祭 Pattern_Position,
     ᬥ蠭  Song_Position.

    SC #62
    WC
    GD Mixed_Position


    Mixed_Position: ( ⠬)

    7-Song_Position.1
    6-Song_Position.0
    5-Pattern_Position.5
    4-Pattern_Position.4
    3-Pattern_Position.3
    2-Pattern_Position.2
    1-Pattern_Position.1
    0-Pattern_Position.0

    . ᫨  Mixed_Position 
    ᤥ   AND #3F  
    뫨 Pattern_Position, ᫨
    ᫥ 祭  
    RLCA,RLCA,AND #02 -   
    訥   Song_Position.
    . ਬ砭   #60  #61.


#63 Get Channel Notes
        .

    SC #63
    WC
    GD Note_of_channel_0
    WN
    GD Note_of_channel_1
    WN
    GD Note_of_channel_2
    WN
    GD Note_of_channel_3

    ᫨  -  祭
       ᫥ ᯮ-
      #63   7 祭
    祭 Note_of_channel_N 㤥
     㫥,᫨   祭  
    ᠬ ,  뫮 ࠭, 
     㤥  . 訥 ᥬ
    ⮢   ᮡ⢥  
    0  95; ᫨  祭 ࠢ 127,
      砥,   
      .
      ।祭  ᭮-
      ஥   ᭮ ࠧ-
     ஢.

#64 Get Channel Volumes
     ஬  
    .

    SC #64
    WC
    GD Volume_of_channel_0
    WN
    GD Volume_of_channel_1
    WN
    GD Volume_of_channel_2
    WN
    GD Volume_of_channel_3

    . ᠭ  #63

#80 Direct Play FX Sample (#80..#83)
    ந뢠    -
    .

    SD Sample_Number
    SC #80..#83 (訥  ।
                 ।⢥ 
                 , ஬ ॡ
                   )
    WC

#88 Direct Play FX Sample (#88..#8B)
    ந뢠    -
       ⮩.

    SD Sample_Number
    SC #88..#8B (訥  ।
                 ।⢥ 
                 , ஬ ॡ
                   )
    WC
    SD Note [0..95]
    WD

#90 Direct Play FX Sample (#90..#93)
    ந뢠    -
       ஬.

    SD Sample_Number
    SC #90..#93 (訥  ।
                 ।⢥ 
                 , ஬ ॡ
                   )
    WC
    SD Volume [#00..#40]
    WD

#98 Direct Play FX Sample (#98..#9B)
    ந뢠    -
       ⮩  ஬.

    SD Sample_Number
    SC #88..#8B (訥  ।
                 ।⢥ 
                 , ஬ ॡ
                   )
    WC
    SD Note [0..95]
    WD
    SD Volume [#00..#40]
    WD




                            30.03.97
                            Stinger.


   xed_Position: ( ⠬)

    7-Song_Position.1
    6-Song_Position.0
    5-Pattern