•  Back 
  •  Kontrollfunktionen 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help page 
  •  Show info about hypertext 
  •  View a new file 
Topic       : TOS - das Betriebssystem
Author      : 
Version     : tos.hyp (5. März 2013)
Subject     : Programmieren/Atari
Nodes       : 3001
Index Size  : 93602
HCP-Version : 5
Compiled on : Atari
@charset    : atarist
@lang       : 
@default    : Titel
@help       : 
@options    : +g -i -s +x +zz -t4
@width      : 70
View Ref-File7.10.27  Bindings für v_opnprn                                     TOS

 C:         int16_t v_opnprn( int16_t base_handle, PRN_SETTINGS 
            *settings, int16_t *work_out );

 Umsetzung:

            int16_t v_opnprn( int16_t base_handle, PRN_SETTINGS *settings,
                              int16_t *work_out )
            {
              int16   work_in[16];
              int16   i;
 
              vdi_pb.intin = (int *) work_in;
              vdi_pb.intout = (int *) work_out;
              vdi_pb.ptsout = (int *) work_out + 45;
 
              work_in[0] = settings->driver_id;            /* Treibernummer */
              for ( i = 1; i < 10; i++ )
                work_in[i] = 1;
              work_in[10] = 2;                             /* Rasterkoordinaten benutzen */
              work_in[11] = (int16) settings->size_id;     /* Seitenformat aus settings benutzen */
              *(int8 **) &work_in[12] = settings->device;  /* Ausgabekanal aus settings benutzen */
              *(PRN_SETTINGS **) &work_in[14] = settings;  /* Druckereinstellung */
 
              contrl[0] = 1;                               /* Funktionsnummer */
              contrl[1] = 0;
              contrl[3] = 16;                              /* erweiterte Parameteranzahl */
              contrl[6] = base_handle;
 
              vdi( &vdi_pb );                              /* Treiber öffnen */
 
              vdi_pb.intin = (int *) intin;                /* Zeiger zurücksetzen */
              vdi_pb.intout = (int *) intout;
              vdi_pb.ptsout = (int *) ptsout;
 
              return( contrl[6] );
            }

 GEM-Arrays:

             Adresse    Feldelement    Belegung 
             contrl     contrl[0]      1     # Opcode der Funktion 
             contrl+2   contrl[1]      0     # Einträge in ptsin 
             contrl+4   contrl[2]      6     # Einträge in ptsout 
             contrl+6   contrl[3]      16    # Einträge in intin 
             contrl+8   contrl[4]      45    # Einträge in intout 
             contrl+10  contrl[5]      1     # Unterfunktion 
             contrl+12  contrl[6]      base_handle 
             intin      intin[0..19]   work_in[0..15] 
             intout     intout[0..44]  work_out[0..44] 
             ptsout     ptsout[0..11]  work_out[45..56]