CX_String functies
10 PROGRAM STRING FUNCTIES MET TAB EN SPC
20 REM FRANS LE BLANC (C)
50 P.$12" STRINGFUNCTIES"''
60 IN."WAAR ASSEMBLEREN "A
70 F IN."WAAR STAAT DE TABEL"T
80 DIMGG50;F.N=0TO50;GGN=999;N.
90 F.N=0TO50;GGN=A;N.
100 ;P=A;GOS.a
110 P=A;GOS.a;P.$6
120 $T="LEFT";T=T+LENT
130 ?T=GG0/256:#80;T?1=GG0%256;T?2=#80;T=T+2
140 $T="right";T=T+LENT
150 T=GG2/256:#80;T?1=GG2%256;T?2=#80;T=T+2
160 $T="MID";T=T+LENT
170 ?T=GG4/256:#80;T?1=GG4%256;T?2=#80;T=T+2
180 $T="STRING";T=T+LENT
190 ?T=GG8/256:#80;T?1=GG8%256;T?2=#80;T=T+2
200 $T="""";T=T+LENT
210 ?T=GG14/256:#80;T?1=GG14%256;T?2=#80;T=T+2
220 $T="$";T=T+LENT
230 ?T=GG14/256:#80;T?1=GG14%256;T?2=#80;T=T+2
240 $T="TAB";T=T+LENT
250 ?T=GG39/256:#80;T?1=GG39%256;T?2=#80;T=T+2
260 $T="SPC";T=T+LENT
270 ?T=GG33/256:#80;T?1=GG33%256;T?2=#80;T=T+2
280 @=0
290 IF ?#E8=35;P.$6"""OUT OF BRANCH"" DETECTED"'
300 @=0;P.$6"VAN #"&A" - #"&P';@=8
310 P.$7;END
320 funkties
330 a[
340:GG0 \left$
350 JSR GG27;JSR#C947
360 LDA@#00;STA#52
370:GG1
380 JSR GG31;BNE GG12
390:GG2 \right$
400 JSR GG27;JSR#C947
410 LDA#90;SEC;SBC#16,X
420 BCC GG5
430 STA#52
440:GG3
450 JSR GG31;BNE GG13
460:GG4 \mid$
470 JSR GG27
480 LDA#16,X;CMP#90;BCC GG6
490:GG5
500 JMP#D8CA
510:GG6
520 PHA;JSR#C231;PHP;BCS GG7
530 JSR GG30
540:GG7
550 JSR#C947
560 PLP
570 PLA;STA#52
580 BCC GG1;BCS GG3590:GG8 \string$
600 JSR GG27;JSR#C947
610 JSR GG31;LDA#16,X;TAX
620 BEQ GG9;LDA#90;DEX
630:GG9
640 STA#52;LDY@#00
650 DEX;BMI GG11660:GG10
670 LDA#100,Y;STA(#52),Y
680 INY;CPY#90;BNE GG10
690 TYA;CLC;ADC#52
700 BPL GG9;BMI GG22
710:GG11
720 LDA@#0D;STA(#52),Y
730 LDA@#00;STA#52;BEQ GG13
740\
750:GG12
760 LDY#16,X;TYA;BMI GG22
770 LDA@#0D;STA(#52),Y
780:GG13
790 LDY@#52;JMP#C99F
800:GG14 \concatenation
810 DEY
820:GG15
830 DEY;LDA(#05),Y
840 CMP@#20;BEQ GG15
850 CMP@CH"+";BNE GG19
860 INY;STY#
870 LDX#04;JSR#C3CB
880 LDX@#FF;JSR GG24
890:GG16
900 JSR#F291;CMP@CH""""
910 BNE GG17;JSR GG26;BCC GG18
920:GG17
930 CMP@CH"$";BNE GG19
940 JSR GG23
950:GG18
960 JSR#F291
970 CMP@CH"+";BEQ GG16
980 JSR#A612;BEQ GG21
990:GG19
1000 JMP#FFC9
1010:GG21
1020 JSR GG31;LDA@#40;STA#52
1030 TSX;TXA;TAY;CLC;ADC@#0E
1040 TAX;TXS
1050 LDA@#8D;PHA
1060 TYA;TAX;TXS;BNE GG13
1070:GG22
1080 JMP#F6C8
1090:GG23
1100 JSR#C80B;JSR#CEB9
1110 LDX#91
1120:GG24
1130 LDY@#FF
1140:GG25
1150 INY;INX;TXA;BMI GG22]
1160 LDA(#52),Y;STA#140,X
1170 CMP@#0D;BNE GG25
1180 DEX;STX#91;RTS
1190¦:GG26
1200 JSR#C4F6;STY#53
1210 LDX#91;INX;JSR#CEC7;DEY;DEY
1220 CLC;TYA;ADC#91;STA#91
1230 BMI GG22;RTS
1240:GG27
1250 JSR#F291
1260 CMP@CH"(";BEQ GG28;JMP#AD76
1270:GG28
1280 JSR#CEB1
1290 LDY@#FF
1300:GG29
1310 INY;TYA;BMI GG22
1320 LDA(#52),Y;STA#100,Y
1330 CMP@#0D;BNE GG29;STY#90
1340 JSR#C231
1350:GG30
1360 JSR#C78B;LDA@#00
1370 JSR#C97F;JMP#CF43
1380:GG31
1390 LDA@#01;STA#53;RTS
1400:GG39 \tab(x) en tab(x,y)
1410 LDA@#20;STA#90
1420 JSR GG36;JSR#C231;BCS GG40
1430 LDA@30;JSR#FFF4
1440 JSR#C78B;JSR#CF41
1450 LDA@#0A;INY
1460:GG41 DEY;BEQ GG42
1470 JSR#FFF4;BNE GG41
1480:GG42
1490 STY#07;LDA@#09;STA#90
1500:GG40
1510 JSR#C947;JSR#CF41
1520 LDA#90;LDX@#00
1530:GG34 CPY#07;BEQ GG37;DEY
1540 STA#140,X;INX;BNE GG34
1550:GG37
1560 LDA@#0D;STA#140,X
1570:GG35 LDA@#01;STA#53;LDA@#40;STA#52
1580 TSX;TXA;TAY;LDX@#FE;TXS
1590 LDA@#92;PHA;TYA;TAX;TXS
1600 LDY@#52;JMP#C99F
1610:GG33 \spc(x)
1620 JSR GG36
1630 JSR#C947
1640 JSR#CF41;LDA@#0D;STA#140,Y
1650 LDA@#20
1660:GG43
1670 DEY;BMI GG35
1680 STA#140,Y;BPL GG43
1690:GG36
1700 JSR#F291;CMP@CH"("
1710 BEQ GG38;JMP#AD76
1720:GG38
1730 JMP#C78B
1740];R.