Re: Splash screen with timeout and invite, in MI?
"James H. H. Lampert" <jamesl-6/ELSmrcqeUu8xhjR5IN5AC/[email protected]> Fri, 14 Jan 2011 13:01:57 -0800
| Newsgroups | gmane.comp.lang.as400.mi |
|---|---|
| Message-ID | <[email protected]> |
The snippets:
The display file record:
> A R DUMMY
> A FRCDTA
> A DSPMOD(*DS4)
<Most of the screen contents omitted>
> A 17 36'9999'
> A COLOR(PNK)
> A *DS4 17 61
> A 18 34'99'
> A COLOR(PNK)
> A *DS4 18 59
> A 18 40'99'
> A COLOR(PNK)
> A *DS4 18 65
> A 19 34'99'
> A COLOR(PNK)
> A *DS4 19 59
> A 19 40'99'
> A COLOR(PNK)
> A *DS4 19 65
> A 20 35'9999999'
> A COLOR(PNK)
> A *DS4 20 60
> A 18 49'111'
> A COLOR(PNK)
> A *DS4 18 74
> A 21 39'99'
> A COLOR(PNK)
> A *DS4 21 64
> A 19 49'111'
> A COLOR(PNK)
> A *DS4 19 74
> A 22 38'99'
> A COLOR(PNK)
> A *DS4 22 63
> A 20 43'...'
> A COLOR(PNK)
> A *DS4 20 68
> A 20 49'111'
> A COLOR(PNK)
> A *DS4 20 74
> A 23 36'99'
> A COLOR(PNK)
> A *DS4 23 61
> A 21 43'...'
> A COLOR(PNK)
> A *DS4 21 68
> A 21 48'11111'
> A COLOR(PNK)
> A *DS4 21 73
> A 24 7'(C) Touchtone Corporation, 1997-20-
> A 10. All rights reserved worldwide.'
> A COLOR(BLU)
> A *DS4 24 31
And the MI code that uses it:
> CMPNV(B) CIINV#,0/NEQ(MAINNDUM); /* If not 1st invocation, bypass... */
> CMPNV(B) SVSCRWID, 0/HI(MAINNDUM); /* if we already know, bypass... */
> CPYBLA .CURROP, 'WRITE';
> SETSPP .FIBPTR, .F01FIB;
> CPYBLA .F01EIND, *OFF;
> CPYBLA .F01XSET, '00000WRITER';
> CMPBLA(B) .F01OPEN, *ON/EQ(MAINDUM1);
> B .DMEXL2;
> MAINDUM1:
> CPYBLA .EXTRECN, 'DUMMY ';
> CMPNV(B) SVSCRWID, 0/NEQ(MAINNDUM);
> CALLI .XRVRW01, *, .DRIVRTN;
> CPYNV SVSCRWID, .DMCCOL(1);
> MAINNDUM:
> . . .
> /*---------------------------------------------------------------------------*/
> DCL DD .OC01003 CHAR(1) AUTO INIT(X'01') /*FORMAT NAME CTL LIST*/;
> DCL DD .NL01003 BIN(2) AUTO INIT(10);
> DCL DD .RN01003 CHAR(10) AUTO INIT(' ');
> DCL DD .EN01003 CHAR(1) AUTO INIT(X'FF') /* END OF CONTROL LIST*/;
> DCL DD .OP01003 CHAR(4) AUTO INIT(X'00000005') /*OPTIONS LIST*/;
> DCL SPCPTR .PO01003 AUTO INIT(.OP01003);
> DCL SPCPTR .CO01003 AUTO;
> DCL OL .OL01003(.F01UFCB,.PO01003,.CO01003);
> ENTRY .XRVRW01 INT;
> CPYBLA .RN01003,.EXTRECN /*RECORD NAME*/;
> SETSPP .CO01003,.OC01003 /*USE CONTROL LIST*/;
> CPYBLA MDFDEVNM,MDF01A /*USE CURRENT DEVICE*/;
> CPYBWP .UFCBPTR,.FIBUFCB /*LOCATE UFCF*/;
> CPYBWP .ODPBPTR,.UCBODPB /*LOCATE ODP*/;
> CALLI MDFDES,*,MDFDRETN /*SEARCH ODP*/;
> CPYNV DMCLINK,.DMCPUT (.U01INDX) /*ENTRY POINT TAB INDEX*/;
> CPYBWP .IOEPTR,.DMCENTR(DMCLINK) /*DM ENTRY*/;
> CPYBLA .DMIOSW,*ON /*INDICATE I/O OPERATION*/;
> CALLX .IOEPTR,.OL01003,* /*I/O REQUEST*/;
> CPYBLA .DMIOSW,*OFF /*RESET INDICATION*/;
> CPYBLA .FIBIOFB,.FIBFBIO /*SET FEEDBACK AREA*/;
> ADDSPP .IOFDBEX,.UCBIFBK,.IOFZOFF;
> CPYBLA .FIBZDVD,.FIBFBEX /*DEVICE DEP FDBK*/;
> B .DRIVRTN /* RETURN */;
> /* NO READ-BEFORE-UPDATE EXCEPTION HANDLER */;
> DCL EXCM * EXCID(H'5011') BP(.NOREAD) CV('CPF')
> /* CPF5011 */;
> .NOREAD:
> CPYBLA .FIBXSTS,'01221' /* SET *STATUS */;
> CPYBLA .FIBHDTR, *OFF /*RESET RELEASE SWITCH*/;
> B .DMEXGO /* GO TO ERROR HANDLER **/;
> /*---------------------------------------------------------------------------*/
One obvious course of action is to write a simple program in OPM RPG,
that does what I want, and then inspect the MI source it produces.
--
JHHL
_______________________________________________
This is the MI Programming on the AS400 / iSeries (MI400) mailing list
To post a message email: MI400-Zwy7GipZuJhWk0Htik3J/[email protected]
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/mi400
or email: MI400-request-Zwy7GipZuJhWk0Htik3J/[email protected]
Before posting, please take a moment to review the archives
at http://archive.midrange.com/mi400.