From: sparky4 Date: Thu, 19 Nov 2015 22:44:14 +0000 (-0600) Subject: IT WORKS!!!! cannot multipage yet! X-Git-Url: http://4ch.mooo.com/gitweb/?a=commitdiff_plain;ds=inline;h=7e2b208062c9f7ac8b98eb55c6956c74fa3b6588;p=16.git IT WORKS!!!! cannot multipage yet! --- diff --git a/src/lib/modex/demos/c/modex.asm b/src/lib/modex/demos/c/modex.asm index f7d85801..2cd7c840 100755 --- a/src/lib/modex/demos/c/modex.asm +++ b/src/lib/modex/demos/c/modex.asm @@ -444,7 +444,7 @@ MODE_360x400: ; Data for 360 by 400 Pixels ; MaxYpos = The Desired Virtual Screen Height ; Pages = The Desired # of Video Pages ; -; EXIT: AX = Success Flag: 0 = Failure / -1= Success +; EXIT: AX = Success Flag: >0 = Failure / 0 = Success ; SVM_STACK STRUC @@ -476,7 +476,7 @@ SET_VGA_MODEX PROC FAR MOV BX, [BP].SVM_Mode ; Get Requested Mode # CMP BX, NUM_MODES ; Is it 0..7? - JAE @SVM_BadModeSetup ; If Not, Error out + JAE @SVM_BadModeSetup1 ; If Not, Error out SHL BX, 1 ; Scale BX MOV SI, w MODE_TABLE[BX] ; CS:SI -> Mode Info @@ -488,8 +488,8 @@ SET_VGA_MODEX PROC FAR ;CLR CH ; Set Hi Word = 0! mov ch,0 ; Set Hi Word = 0! CMP CL, CS:[SI].M_Pages ; Check # Pages for mode - JA @SVM_BadModeSetup ; Report Error if too Many Pages - JCXZ @SVM_BadModeSetup ; Report Error if 0 Pages + JA @SVM_BadModeSetup2 ; Report Error if too Many Pages + JCXZ @SVM_BadModeSetup3 ; Report Error if 0 Pages ; Check Validity of X Size @@ -497,17 +497,17 @@ SET_VGA_MODEX PROC FAR MOV AX, [BP].SVM_XSize ; Get Logical Screen Width CMP AX, CS:[SI].M_XSize ; Check against Displayed X - JB @SVM_BadModeSetup ; Report Error if too small + JB @SVM_BadModeSetup4 ; Report Error if too small CMP AX, CS:[SI].M_XMax ; Check against Max X - JA @SVM_BadModeSetup ; Report Error if too big + JA @SVM_BadModeSetup5 ; Report Error if too big ; Check Validity of Y Size MOV BX, [BP].SVM_YSize ; Get Logical Screen Height CMP BX, CS:[SI].M_YSize ; Check against Displayed Y - JB @SVM_BadModeSetup ; Report Error if too small + JB @SVM_BadModeSetup6 ; Report Error if too small CMP BX, CS:[SI].M_YMax ; Check against Max Y - JA @SVM_BadModeSetup ; Report Error if too big + JA @SVM_BadModeSetup7 ; Report Error if too big ; Enough memory to Fit it all? @@ -521,9 +521,26 @@ SET_VGA_MODEX PROC FAR OR DX, AX ; (DX = 1, AX = 0000) JZ @SVM_Continue ; if so, it's valid... -@SVM_BadModeSetup: - - mov ax,0 ; Return Value = False +@SVM_BadModeSetup1: + mov ax,1 ; Return Value = False + JMP @SVM_Exit ; Normal Exit +@SVM_BadModeSetup2: + mov ax,2 ; Return Value = False + JMP @SVM_Exit ; Normal Exit +@SVM_BadModeSetup3: + mov ax,3 ; Return Value = False + JMP @SVM_Exit ; Normal Exit +@SVM_BadModeSetup4: + mov ax,4 ; Return Value = False + JMP @SVM_Exit ; Normal Exit +@SVM_BadModeSetup5: + mov ax,5 ; Return Value = False + JMP @SVM_Exit ; Normal Exit +@SVM_BadModeSetup6: + mov ax,6 ; Return Value = False + JMP @SVM_Exit ; Normal Exit +@SVM_BadModeSetup7: + mov ax,7 ; Return Value = False JMP @SVM_Exit ; Normal Exit @SVM_Continue: diff --git a/src/lib/modex/demos/c/x-demo.c b/src/lib/modex/demos/c/x-demo.c index 249cbbd7..95d3a1e8 100755 --- a/src/lib/modex/demos/c/x-demo.c +++ b/src/lib/modex/demos/c/x-demo.c @@ -503,12 +503,12 @@ int r, d; void page_demo () { -char *Error1 = "Failure during SET_VGA_MODEX (4, 320, 240, 2) call"; +char *Error1 = "Failure during SET_VGA_MODEX (0, 320, 200, 2) call"; int Last_Objects[2], Visible_Objects; -int Screen_X = 352; -int Screen_Y = 544; +int Screen_X = 384; +int Screen_Y = 272; int x, y, z; int c, dc; @@ -524,12 +524,16 @@ int Set_Color, Prev_Color, S_Dir, P_Dir; int Demo_Running = True; int redo, code; - if (set_vga_modex(Mode_320x240, Screen_X, Screen_Y, 2) == 0) +int pee; +pee = set_vga_modex(Mode_320x240, Screen_X, Screen_Y, 1); + if ( pee > 0) { - set_modex (Mode_320x240); + set_video_mode (3); + dos_print (Error1); + fprintf(stdout, "return value is %d\n", pee); //error_out (Error1); + exit (EXIT_SUCCESS); } - //set_vga_modex(Mode_320x240, Screen_X, Screen_Y, 2); set_active_page (0); clear_vga_screen (c_BLACK); diff --git a/src/lib/modex/demos/c/x-demo.exe b/src/lib/modex/demos/c/x-demo.exe index 093be3b3..18f7f39d 100755 Binary files a/src/lib/modex/demos/c/x-demo.exe and b/src/lib/modex/demos/c/x-demo.exe differ