Here is the text of factor2.for.
1 WINAPP 'CWP_ICO.RC'
3 PROGRAM factor2
4 IMPLICIT NONE
5 INCLUDE <windows.ins>
6 INTEGER ans,number
8 ans=winio@('%ca[Number Factoriser]&')
10 ans=winio@('Number to be factorised: %rd',number)
Note that number has been added to line 6 and & has been inserted
towards the end of line 8. Lines 7, 9 and 10 have also been included.
If you compile, link and run this program the output looks like this.
A flashing text cursor appears in the inner box and the user is able to enter
any integer in the range from 1 to 2147483647. As before Alt-F4 terminates the
The "&" character in line 8 is simply a device to allow the description of
the format window to continue in the next call to winio@ (on line 9 in
this case). Using this device avoids long format strings with long lists of
Line 9 contains the format code %il. This specifies the integer limit for
the input on line 10. %il takes two (INTEGER) values that are provided as extra
arguments to winio@. The lower limit is 1 and the upper limit (2147483647) is
the largest possible 32 bit integer. The "&" character allows continuation
in the next winio@ call.
In line 9 the format string begins with some text that comes before the next
format code which is %rd. This text is simply copied to the window. The text
includes the space before %rd. Without the %il, the user would be able to enter
negative or zero values which would not make sense in this application.
The %rd format code is used for user integer input. It creates an edit box and
displays the value of the INTEGER variable (in this case number) that is
provided as the next argument of winio@. The initial value of number in
line 7 has been chosen to be in the permitted range. Users will find that they
are only able to type in integers in this range. Each time a single digit is
typed, number is updated so that it always holds the value that is
visible on the screen.
Now we are ready for step 3.