My thinking about this:
1. Merging QB to Pascal or TurboPascal?
2. FOR the same logic issue is possible the double syntax QB AND Pascal or only one?
2.1 The choice is made
A) at random,
B) following personal preferences of producer
C) a real advantage of performance using QB or Pascal statement for the issue
D) a real advantage of easyness to read/write/remember using QB or Pascal statement vs the other
(DO...LOOP UNTIL vs REPEAT UNTIL)
3. Are data Type merged or ( as for keywords ) the producer has followed an own rule to choice what to do?
I.e. a string in QB is what lives between two CHR$(34) and in TPascal between two CHR$(39), in original Pascal string is a special array of type char[] that you can manage only as array while in TPascal you can use it as a simple variable or an array of char [].
4. Uh ...Are the number of line necessary?
10 // General sample program
20 //
50 PRINT a;
" ";verbaal$
(a
) 60 ENDWHILE
70 //
80 DATA 1, 12, 34, 112, 1009, 1234567890 90 //
100 FUNC verbaal$(getal#) CLOSED
110 //
120 // ************************************
130 // ** FUNC Verbaal$
( Integer ) ** 140 // ************************************
150 //
160 // Geschreven door Jos Visser, 25-06-1987
170 // Aangepast voor PDCOMAL, 10-9-92
180 //
190 //
200 // Functie :
210 // Deze functie neemt als parameter een
integer getal
, 220 // positief danwel negatief
, en geeft een
string terug
230 // die weergeeft hoe dat getal op zijn Nederlands
240 // geschreven kan worden.
250 //
260 // Parameters in :
280 //
290 // Parameters uit :
300 // String, maximaal
132 karakters lang
310 //
320 // Packages ed. :
330 // Geen
340 //
350 PROC skipspaces(REF a$) CLOSED
390 ENDPROC
400 //
410 FUNC cijfer$(nr#) CLOSED
430 a$:="nul een twee drie vier vijf zes zevenacht negentien "(1+nr#*5:5+nr#*5)
440 skipspaces(a$)
460 ENDFUNC
470 //
480 FUNC t'11'19$(nr#) CLOSED
500 a$:="tien elf twaalf dertien veertien vijftien zestien zeventienachtien negentien"(1+(nr#-10)*9:9+(nr#-10)*9)
510 skipspaces(a$)
530 ENDFUNC
540 //
550 FUNC tiental$(nr#) CLOSED
570 nr#:=nr# DIV 10
580 a$:="twintig dertig veertig vijftig zestig zeventigtachtig negentig"(1+(nr#-2)*8:8+(nr#-2)*8)
590 skipspaces(a$)
610 ENDFUNC
620 //
630 FUNC duizend$(nr#) CLOSED
640 honderd#:=nr# DIV 100
670 result$:=cijfer$(honderd#)+"honderd"
680 ELIF honderd#=1
690 result$:="honderd"
710 result$:=""
740 IF rest#
<>0 OR honderd#
=0 THEN result$:
+cijfer$
(rest#
) 750 ELIF rest#<20
760 result$:+t'11'19$(rest#)
780 IF rest#
MOD 10<>0 THEN result$:
=result$
+cijfer$
(rest#
MOD 10)+"en" 790 IF rest# DIV
10>0 THEN result$:
+tiental$
(rest#
) 820 ENDFUNC
830 //
840 DIM result$ OF
132, subresult$ OF
40 850 result$:=""
870 negatief#:=TRUE
880 getal#:=-getal#
900 result$:=""
910 negatief#:=FALSE
940 subgetal#:=getal# DIV 10^macht#
950 getal#:
=getal#
MOD 10^macht#
970 subresult$:=duizend$(subgetal#)
990 result$:=result$+", "+subresult$
1010 IF result$
="" THEN result$:
=" " 1040 WHEN 9
1050 result$:+" miljard "
1060 WHEN 6
1070 result$:+" miljoen "
1080 WHEN 3
1090 result$:+"duizend "
1100 OTHERWISE
1110 NULL
1120 ENDCASE
1140 skipspaces(result$)
1150 ENDFOR
1160 result$:=result$(3:)
1170 IF negatief#
THEN result$:
="min "+result$
1190 ENDFUNC
1200 //
looking at this demo code
declaration of SUB and FUNCTION are those of TPascal, it is possible to nest Function AND/OR SUB , the case issue uses TPascal syntax, declaration of variable seems to be mixed mode QB+Pascal, operator for assignment is Pascal etc etc etc