Subversion Repositories HelenOS-historic

Rev

Rev 1564 | Rev 1577 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1564 Rev 1565
Line 153... Line 153...
153
 
153
 
154
static void scroll(int rows)
154
static void scroll(int rows)
155
{
155
{
156
    int i;
156
    int i;
157
    if (rows > 0) {
157
    if (rows > 0) {
158
        memcpy(scr_addr,((char *)scr_addr) + rows * scr_width * 2, scr_width * scr_height * 2 - rows * scr_width * 2);
158
        memcpy (scr_addr,((char *)scr_addr) + rows * scr_width * 2, scr_width * scr_height * 2 - rows * scr_width * 2);
159
        for(i = 0; i < rows * scr_width ; i ++)
159
        for (i = 0; i < rows * scr_width ; i ++)
160
            (((short *)scr_addr) + scr_width * scr_height - rows * scr_width) [i] = ((style << 8) + ' ');
160
            (((short *)scr_addr) + scr_width * scr_height - rows * scr_width) [i] = ((style << 8) + ' ');
161
    } else if (rows < 0) {
161
    } else if (rows < 0) {
162
 
162
 
163
        memcpy(((char *)scr_addr) - rows * scr_width * 2 ,scr_addr ,scr_width * scr_height * 2 + rows * scr_width * 2);
163
        memcpy (((char *)scr_addr) - rows * scr_width * 2 ,scr_addr ,scr_width * scr_height * 2 + rows * scr_width * 2);
164
        for( i = 0; i < - rows * scr_width ; i++)
164
        for (i = 0; i < - rows * scr_width ; i++)
165
            ((short *)scr_addr) [i] = ((style << 8 ) + ' ');
165
            ((short *)scr_addr) [i] = ((style << 8 ) + ' ');
166
    }
166
    }
167
}
167
}
168
 
168
 
169
static void printchar(char c, unsigned int row, unsigned int col)
169
static void printchar(char c, unsigned int row, unsigned int col)
Line 189... Line 189...
189
 
189
 
190
static int save_screen(void)
190
static int save_screen(void)
191
{
191
{
192
    int i;
192
    int i;
193
    short *mem;
193
    short *mem;
194
    for( i=0 ;( i < MAX_SAVED_SCREENS ) && (saved_screens[i].data); i++);
194
    for (i=0 ;( i < MAX_SAVED_SCREENS ) && (saved_screens[i].data); i++);
195
    if( i == MAX_SAVED_SCREENS)
195
    if (i == MAX_SAVED_SCREENS)
196
        return EINVAL;
196
        return EINVAL;
197
    if(!(saved_screens[i].data=malloc( 2 * scr_width*scr_height )))
197
    if (!(saved_screens[i].data=malloc( 2 * scr_width*scr_height )))
198
        return ENOMEM;
198
        return ENOMEM;
199
    memcpy(saved_screens[i].data,scr_addr, 2 * scr_width * scr_height )
199
    memcpy (saved_screens[i].data ,scr_addr ,2 * scr_width * scr_height)
200
        ;
200
        ;
201
    return i;
201
    return i;
202
}
202
}
203
 
203
 
204
static int print_screen(int i)
204
static int print_screen(int i)
205
{
205
{
206
    if(saved_screens[i].data)
206
    if (saved_screens[i].data)
207
            memcpy(scr_addr,saved_screens[i].data,2*scr_width*scr_height);
207
            memcpy (scr_addr,saved_screens[i].data, 2 * scr_width * scr_height);
208
    else return EINVAL;
208
    else return EINVAL;
209
    return i;
209
    return i;
210
}
210
}
211
 
211
 
212
 
212