PRT_LINE /x1k10                                  Ŀ
                                   XBIOS 

!PROG_executeSUPERsubroutine!(38,subroutineaddress.L)

!PROG_SetINTerruptVECTOR!(13,vectornumber,vector.L)

                           vectornumber
                              0-15

!PROG_INTerruptENABLE!(27,intnumber)

                        intnumber
                          0-15

!PROG_INTerruptDISABLE!(26,intnumber)

                         intnumber
                          0-15

!PROG_TIMER!(31,timer,control,data,vector.L)

              timer
                0:A
                1:B
                2:C
                3:D

!CONS_GetBUFFERS!(14,device) = bufferinputaddress.L

                   device    bufferinput
                     0:AUXI     byte#
                     1:KBRD      0- 3  buffer
                     2:MIDI      4- 5  size
                                 6- 7  head
                                 8- 9  tail
                                10-11  low
                                12-13  high
                  if=0/2 bufferoutput is after the bufferinput

!CONS_GetVECTORS!(34) = vectortable.L

                      vectortable
                         byte#
                          0- 3  midi input (D0=data)
                          4- 7  ikbd error
                          8-11  midi error
                         12-15  ikbd status (A0=data address)
                         16-19  mous input  (A0=data address)
                         20-23  clck input  (A0=data address)
                         24-27  joys input  (A0=data address D0=RLDU)

!IKBD_OUTString!(25,#char-1,stringaddress.L)

!MOUS_INIT!(0,mode,parametersaddress.L,vector.L)

            mode
             0:disable mouse
             1:enable mouse,relative mode
             2:enable mouse,absolute mode
             4:enable mouse,keyboard mode

                 parameters
                 byte#
                     0  Yorigine(0:up 1:down)
                     1  buttons(see HD6301 command:MOUSE_Buttons)
                     2  #pixel_X
                     3  #pixel_Y
                  4- 5  Xmaxi
                  6- 7  Ymaxi
                  8- 9  Xinitial
                 10-11  Yinitial

!MIDI_OUTString!(12,#char-1,stringaddress.L)

!KBRD_SetkeyTABLES!(16,normal.L,shift.L,capslock.L) = tablestructureaddress.L

                     normal   shift   capslock      tablestructure
                        addresses of tables            byte#
                         of 128 bytes each              0- 3 normal
                           if =-1 no set                4- 7 shift
                  each SCAN corresponding to ASCII      8-11 capslock

!KBRD_ResetkeyTABLES!(24)

!KBRD_getsetDELayREPeat!(35,delay,repeat) = olddelayrepeat

                          delay repeat    olddelayrepeat
                          0-255 0-255     b0-b7  repeat (in 1/50 sec.)
                         if =-1 no set    b8-b15 delay  (in 1/50 sec.)
                                  Ŀ
                                   XBIOS 

!SCRN_GetRESolution!(4) = resolution

                        resolution
                            0:low
                            1:medium
                            2:high

!SCRN_GetPhysicalBASE!(2) = physicalbase.L

!SCRN_getsetCOLOR!(7,colorregister,color) = oldcolor

                                 color
                             if =-1 no set

!SCRN_SetPALETTE!(6,paletteaddress.L)

!SCRN_GetLogicalBASE!(3) = logicalbase.L

!SCRN_SET!(5,logicalbase.L,physicalbase.L,resolution)

           logicalbase   physicalbase   resolution
         if =-1 not set if =-1 not set if =-1 not set

!SCRN_WaitVerticalBLanking!(37)

!SCRN_CurSoRCONFiguration!(21,function,rate) = rate

                            function
                               0:disable cursor
                               1:enable cursor
                               2:flashing cursor
                               3:still cursor
                               4:set rate flashing cursor
                               5:get rate flashing cursor

                                     rate
                                     vblcount if function=4

!SCRN_getsetBLITterMODE!(64,blittermode) = blittermode

                          blittermode
                              b0      soft/hard
                              b1      absent/present
                              b2-b14  reserved
                              b15     set/get

!SOUN_RW!(28,data,register) = data

           data register
           if W  b0-b3  register
                 b7     R/W

                            data
                            if R

!SOUN_PLAY!(32,songaddress.L)

             song(bytestructure)
             if =$00-$0F  load this sound register with the next byte
             if =$80      load temporary register with the next byte
             if =$81      do variation in a sound register (1rst byte)
                          begin with the temporary register
                          with a step (2nd byte signed)
                          until the end value is reached (3rd byte)
             if =$82      wait #(next byte) of 1/50 second
                                  if = 0 then stop song

!SOUN_PortABitsON!(30,mask)

                    mask
            if bit=0 then no change
            if bit=1 then bit on

!SOUN_PortABitsOFF!(29,mask)

                     mask
             if bit=0 then bit off
             if bit=1 then no change
                                  Ŀ
                                   XBIOS 

!DISK_FORMAT!(10,buffer.L,0.L,drive,sectorpertrack,track,face,1,$87654321,virgin)

               buffer       drive sectorpertrack track face             virgin
               address       0-31     1-10        0-79  0-1             $E5E5
               ~ 8 Kb                                                   for ex.
          if bad sector error
          contain the bad sector list
          by word (0=end)
          after the call

!DISK_READ!(8,buffer.L,0.L,drive,sector,track,face,#sector)

            buffer       drive sector track face #sector
            address       0-31  1-10   0-79  0-1   1-10

!DISK_WRITE!(9,buffer.L,0.L,drive,sector,track,face,#sector)

             buffer       drive sector track face #sector
             address       0-31  1-10   0-79  0-1   1-10

!DISK_VERIFY!(19,buffer.L,0.L,drive,sector,track,face,#sector)

               buffer       drive sector track face #sector
               address       0-31  1-10   0-79  0-1   1-10
            if bad sector error
            contain the bad sector list
            by word (0=end)
            after the call

!DISK_SetBOOTsector!(18,buffer.L,identifier.L,disktype,execflag)

                      buffer
                address of 512 bytes

                               identifier
                               b0-b23  number to write
                               b24     if = 0 then randomize a number
                               b31     if = 1 then no change

                                            disktype
                                               2:single side
                                               3:double side
                                              -1:no change

                                                     execflag
                                                        0:normal
                                                        1:executable
                                                       -1:no change

!PRNT_getsetCONFiguration!(33,config) = config

                            config
                              b0      dot/daisy
                              b1      monochrom/color
                              b2      Atari/Epson
                              b3      draft/letter
                              b4      printer/auxiliary
                              b5      listing/page
                              b6-b14  -
                              b15     set/get

!PRNT_BLocKCOPY!(36,parameters.L)

                  parameters
                  address
                  byte#
                   0- 3  block address (even or odd)
                   4- 5  offset in pixels (0-7)
                   6- 7  width  in pixels
                   8- 9  height in pixels
                  10-11  left   in pixels
                  12-13  right  in pixels
                  14-15  screen resolution (0-2)
                  16-17  printer resolution (0:draft 1:letter)
                  18-21  screen color palette address (16 words)
                  22-23  printer type
             (0:Atari-dot-mono 1:Atari-dot-color 2:Atari-daisy 3:Epson-dot-mono)
                  24-25  output (0:printer 1:auxiliary)
                  26-29  printer color palette address (16 words)

N.B.:runs only if the scrncopy system variable is disable

!PRNT_SCReeNCOPY!(20)
                                  Ŀ
                                   XBIOS 

!AUXI_SetCONFiguration!(15,baud,ctrl,ucr,rsr,tsr,scr)

                         baud
                           0:19200 bauds
                           1: 9600
                           2: 4800
                           3: 3600
                           4: 2400
                           5: 2000
                           6: 1800
                           7: 1200
                           8:  600
                           9:  300
                          10:  200
                          11:  150
                          12:  134
                          13:  110
                          14:   75
                          15:   50

                              ctrl
                               0:no handshake
                               1:xon/xoff
                               2:rts/cts
                               3:xon/xoff and rts/cts

!TIME_GET!(23) = time.L

               time
               b0-b4    second/2
               b5-b10   minute
               b11-b15  hour
               b16-b20  day
               b21-b24  month
               b25-b31  year-1980

!TIME_SET!(22,time.L)

!TIME_GetRANDOMnumber!(17) = randomnumber.L

                           randomnumber
                             b0-b23   randomnumber
                             b24-b31  0
