コード例 #1
0
ファイル: main.c プロジェクト: badcodes/c
int main(int argc,char** argv) {
    int old_apage;
    int old_vpage;
    int new_apage;
    int new_vpage;
    struct videoconfig vc;
    int ret;
    if(argc==1) {
        cputs("用法:\n\tcread 文件名\n");
        return 0;
    }

//    set_video_mode(&vc);

//    ROWS=_setvideomoderows(_TEXTC80,_MAXTEXTROWS);
    _getvideoconfig(&vc);
    ROWS = vc.numtextrows;
    COLS = vc.numtextcols;

    old_apage = _getactivepage();
    old_vpage = _getvisualpage();
    if(vc.numvideopages>1) {
        if(old_apage >=1) {
            new_apage = 0;
        }
        else {
            new_apage = 1;
        }
    }
    else {
        new_apage = old_apage;
    }

    if(old_apage != new_apage) {
        _setvisualpage(new_apage);
        _setactivepage(new_apage);
        _clearscreen(_GCLEARSCREEN);
    }

    print_videoconfig(&vc);
    OUT_PRINTF_BEGIN
        "old_visualpage=%d\nold_active_page=%d\n",
        old_vpage,
        old_apage
    OUT_PRINTF_END
    new_vpage = _getvisualpage();
    new_apage = _getactivepage();
    OUT_PRINTF_BEGIN
        "new_visualpage=%d\nnew_active_page=%d\n",
        new_vpage,
        new_apage
    OUT_PRINTF_END

    ret = process(argc,argv); 

    _setactivepage(old_apage);
    _setvisualpage(old_vpage);
//  _setvideomode( _DEFAULTMODE );
    return ret;
}
コード例 #2
0
ファイル: bwx_iqc.c プロジェクト: ErisBlastar/osfree
static int
iqc_setpos( void )
   {
   union REGS ibm_registers;

   /* call the BDOS function 0x10 to read the current cursor position */

   ibm_registers.h.ah = 3;
   ibm_registers.h.bh = (unsigned char) _getvisualpage();
   int86( 0x10, &ibm_registers, &ibm_registers );

   /* set text to this position */

   _settextposition( ibm_registers.h.dh, ibm_registers.h.dl );

   /* and move down one position */

   prn_xprintf( stdout, "\n" );

   return TRUE;
   }