The following pages contain a listing of the completed house sample program.
* DECLARE VARIABLES INTEGERx4 STATUS,CHOICE INTEGERx4 WSID,STRID(5),VIEW1 REALx4 WINDOW(4),VIEWPT(4) REALx4 HOUSE(12) INTEGERx4 CHARID(2),VALUE(2) REALx4 MATRIX(9) INTEGERx4 POST REALx4 DOOR(10),TRANSD(9) INTEGERx4 ATLIST(3),ATFLAG(3) INTEGERx4 COLOR(2) REALx4 CTABLE(3) REALx4 TRANSW(9), HWNDW1(10),HWNDW2(4),HWNDW3(4) REALx4 WNDOW2(4),VIEWPA(4) INTEGERx4 VIEW2 REALx4 AREA(6),CSIZE(3) INTEGERx4 DATAL,DATA(7),ERRIND,UNITS,ASIZE(3) CHARACTERx8 ACONID,AWSTYP INTEGERx4 IWSID,CLASS,DEVICE,ILEN,OLEN INTEGERx4 VDATAL,VDATA(4) REALx4 VVALUE,LOW,HIGH,SCALE(2),VMATRX(9) INTEGERx4 ACTNUM,ACTLEN,CDATA(2),TERM * INITIALIZE VARIABLES DATA WSID /1/ DATA STRID /1,2,3,4,5/ DATA VIEW1 /1/ DATA WINDOW /-100.0,100.0,-100.0,100.0/ DATA VIEWPT /0.0,0.5,0.0,0.5/ DATA CHARID /6,8/ DATA VALUE /2,2/ DATA VIEW2 /2/ DATA WNDOW2 /-50.0,50.0,-50.0,50.0/ DATA VIEWPA /0.5,1.0,0.5,1.0/ DATA HOUSE/0.0,0.0,0.0,40.0,30.0,70.0, * 60.0,40.0,60.0,0.0,0.0,0.0/ DATA MATRIX /1.0,0.0,0.0, * 0.0,1.0,0.0, * -30.0,-35.0,1.0/ DATA DOOR /0.0,0.0,0.0,20.0,10.0,20.0, * 10.0,0.0,0.0,0.0/ DATA TRANSD /1.0,0.0,0.0, * 0.0,1.0,0.0, * 10.0,0.0,1.0/ DATA POST /2/ DATA ATLIST /1,2,3/ DATA ATFLAG /2,1,2/ DATA COLOR /1,2/ DATA CTABLE /0.40,0.25,0.25/ DATA HWNDW1 /0.0,0.0,0.0,10.0,16.0,10.0,16.0,0.0,0.0,0.0/ DATA HWNDW2 /0.0,5.0,16.0,5.0/ DATA HWNDW3 /8.0,0.0,8.0,10.0/ DATA TRANSW / 1.0, 0.0,0.0, * 0.0, 1.0,0.0, * 37.0,25.0,1.0/ DATA DATAL /28/ DATA DATA /4,0,0,2,1,1,2/ DATA ILEN /8/ DATA VDATAL /16/ DATA VDATA /1,0,0,10/ DATA LOW /0.5/ DATA HIGH /2.0/ * OPEN FUNCTIONS CALL GPOPPH('SYSPRINT',0) CALL GPCRWS(WSID,1,7,'IBM5080','5080 ',0) * VIEW DEFINITION CALL GPXVR(WSID,VIEW1,14,VIEWPT) CALL GPXVR(WSID,VIEW1,16,WINDOW) CALL GPXVCH(WSID,VIEW1,1,8,2) CALL GPXVR(WSID,VIEW2,14,VIEWPA) CALL GPXVR(WSID,VIEW2,16,WNDOW2) CALL GPXVCH(WSID,VIEW2,2,CHARID,VALUE) * DATA CREATION CALL GPCR(WSID,6,1,CTABLE) CALL GPXPLR(WSID,1,1,1) CALL GPXPLR(WSID,1,2,2.0) CALL GPXPLR(WSID,1,3,COLOR) * CALL GPOPST(STRID(1)) CALL GPMLX2(MATRIX,POST) CALL GPASF(3,ATLIST,ATFLAG) CALL GPPLI(1) CALL GPPLCI(5) CALL GPPL2(6,2,HOUSE) CALL GPEXST(STRID(2)) CALL GPEXST(STRID(3)) CALL GPCLST * CALL GPOPST(STRID(2)) CALL GPMLX2(TRANSD,POST) CALL GPINLB(1) CALL GPLT(6) CALL GPPLCI(6) CALL GPPL2(5,2,DOOR) CALL GPCLST * CALL GPOPST(STRID(3)) CALL GPMLX2(TRANSW,POST) CALL GPPLCI(4) CALL GPPL2(5,2,HWNDW1) CALL GPPL2(2,2,HWNDW2) CALL GPPL2(2,2,HWNDW3) CALL GPCLST * DATA DISPLAY CALL GPASSW(WSID,1) CALL GPARV(WSID,VIEW1,STRID(1),1.0) CALL GPARV(WSID,VIEW2,STRID(1),1.0) CALL GPUPWS(WSID,2) * INPUT FUNCTIONS CALL GPQRCT(WSID,ILEN,ERRIND,OLEN,ACONID,AWSTYP) CALL GPQDS(AWSTYP,ERRIND,UNITS,CSIZE,ASIZE) IF(ERRIND.NE.0) GOTO 200 AREA(1) = 0. AREA(2) = CSIZE(1) AREA(3) = 0. AREA(4) = CSIZE(2) AREA(5) = 0. AREA(6) = CSIZE(3) CALL GPINCH(WSID,1,1,2,AREA,DATAL,DATA) CALL GPCHMO(WSID,1,3,2) CALL GPINVL(WSID,1,1.,4,AREA,LOW,HIGH,VDATAL,VDATA) CALL GPVLMO(WSID,1,3,2) TIME = 10. 100 CALL GPAWEV(TIME,IWSID,CLASS,DEVICE) IF(CLASS.EQ.4) THEN IF(DEVICE.EQ.1) THEN CALL GPGTCH(CHOICE) IF(CHOICE.EQ.1) GOTO 200 IF(CHOICE.EQ.4) THEN CALL GPOPST(STRID(2)) CALL GPEDMO(2) CALL GPEPLB(1) CALL GPOEP(1) CALL GPQED(1,32,ERRIND,ACTNUM,ACTLEN,CDATA,TERM) IF(CDATA(2).EQ.6) CALL GPLT(1) IF(CDATA(2).EQ.1) CALL GPLT(6) CALL GPCLST CALL GPUPWS(WSID,2) ENDIF ENDIF ENDIF IF(CLASS.EQ.3) THEN IF(DEVICE.EQ.1) THEN CALL GPGTVL(VVALUE) SCALE(1) = VVALUE SCALE(2) = VVALUE CALL GPSC2(SCALE,VMATRX) CALL GPXVR(WSID,VIEW1,18,VMATRX) CALL GPUPWS(WSID,2) ENDIF ENDIF GOTO 100 * CLOSE FUNCTIONS 200 CALL GPCLWS(WSID) CALL GPCLPH STOP END