Mercurial > hg > Members > kono > nitros9-code
changeset 1982:f3632b273d19
Changes to permit selection of windows within a script file.
author | robert |
---|---|
date | Wed, 18 Jan 2006 03:55:12 +0000 |
parents | 21bf55c38692 |
children | 8025ed7520a5 |
files | level2/modules/cowin.asm |
diffstat | 1 files changed, 38 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/level2/modules/cowin.asm Wed Jan 18 03:54:13 2006 +0000 +++ b/level2/modules/cowin.asm Wed Jan 18 03:55:12 2006 +0000 @@ -15,6 +15,13 @@ * * 1 2005/11/26 Boisy G. Pitre * Renamed from WindInt/GrfInt, reset edition. +* +* 2006/01/09 Robert Gault +* Changed Select window routine so that it will work within a script and +* DWSet routine so that it will not require a [CLEAR] if the active window +* is killed with a display 1b 24 and restarted with a display 1b 20; ie +* DWSet. Changes are compatible with MultiVue and all test procedures +* tried. Short Sleep added to stabilize the screen change. nam CoGrf/CoWin ttl NitrOS-9 Window Module @@ -717,6 +724,17 @@ sta >V.ULCase,u Save in new window Nowin ldy ,s get path descriptor pointer bsr L0436 setup lines per page +* The following new lines permit a sequence like +* display 1b 24 kill window +* display 1b 20 2 0 0 50 18 0 1 2 change window format +* without requiring the additional line +* display 1b 21 display window +* which seems redundant. The change is compatible with MultiVue. RG + ldb >GrfMem+Gr.STYMk get screen type from Grfdrv Mem + cmpb #1 Is it an overlay? + bls L0408 don't flag screen if overlay + inc V.ScrChg,u Flag that screen has changed for AltIRQ routine +* End of change to Nowin. RG L0408 puls pc,u,y all done, return * DWSet didn't work, flag window table entry as free again @@ -960,19 +978,26 @@ * Select entry point * Entry: U=Static memory pointer * Y=Path descriptor pointer +* Routine is patched to permit +* display 1b 21 +* to work within a script file. Multivue was not affected nor +* any other program during testing. RG + Select ldx PD.RGS,y get register stack pointer lda R$A,x get path # to new window ldx <D.Proc get current process pointer - cmpa P$SelP,x same as current selected path? - beq L0591 yes, nothing to do so return +* This does not seem to be of any use except to prevent script use. RG +* cmpa P$SelP,x same as current selected path +* beq L0591 yes, nothing to do so return ldb P$SelP,x get the current selected path sta P$SelP,x save new path pshs y save path descriptor pointer - bsr L0592 Get the device table ptr for new window + bsr L0592 Get the device table ptr for old window ldx V$STAT,y Get static mem ptr - cmpx >WGlobal+G.CurDev Same as current device? +* Again can't find a use for this or next branch. RG +* cmpx >WGlobal+G.CurDev Same as current device? puls y restore path descriptor pointer - bne L0590 no match on current device, return +* bne L0590 no match on old device, return pshs b save old window path block # leax ,u point to static mem lbsr L06A0 verify window table of new window @@ -987,19 +1012,24 @@ stu >WGlobal+G.PrWMPt Save as previoius device mem ptr stx >WGlobal+G.CurDev Save new current device mem ptr inc V.ScrChg,x Flag screen has changed for AltIRQ routine +* Give system a chance to stabilize. RG + ldx #2 + os9 F$Sleep L0590 clrb clear errors L0591 rts return * Get ptr to device table * Entry: X=Pointer to process descriptor -* B=Path block # to get +* B=Path block # to get * Exit : Y=Pointer to device table entry L0592 leax P$Path,x get pointer to path #'s - lda b,x get path block # +* Added next line to protect regB from os9 F$Find64 error report. RG + pshs b + lda b,x get path block ldx <D.PthDBT get pointer to descriptor block table os9 F$Find64 get pointer to path descriptor ldy PD.DEV,y get pointer to device table entry - rts return + puls b,pc return **************************** * CWArea entry point