A couple of interesting things there:
1) I didn't realise you could separate items in a print list with spaces (rather than commas or semicolons), but the manual also shows this, so I've learnt something useful!

2) I find it surprising that the global i% gets initialised, so PROCtwo prints 0 instead of throwing a "no such variable" error! I guess it happens implicitly when a local variable is defined, so the two can be distinguished (when you leave a procedure the global value is (re)assigned to the variables, so I guess it happens as part of that). Consistent with that, if you call PROCtwo before PROCone, it DOES fail with an error.
An enumeration is a data type which can only hold certain values: for example, you might have an enumeration DAYS = {Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday}. Then if you declared a variable of type DAYS it could only validly hold one of those values. Typically you'd also be able to use ordinal functions - so today + 1 = tomorrow...
Best wishes,
D