home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er 1986 December
/
64er_Magazin_86-12_1986_Markt__Technik_de.d64
/
mc68705-assembl.
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
16KB
|
816 lines
10 data *port-a equ 0000
20 data *port-b equ 0001
30 data *port-c equ 0002
40 data *ddr-a equ 0004
50 data *ddr-b equ 0005
60 data *ddr-c equ 0006
70 data *eoi-flag equ 0011
80 data *dev-# equ 0012
90 data *sec.flag equ 0013
100 data *label14 equ 0014
110 data *cbm-flag equ 0015
120 data *lf-flag equ 0016
130 data *$22-flag equ 0017
140 data *crsr-flag equ 0018
150 data *restore equ 0019
160 data *dot-flag equ 001a
170 data *asc.flag equ 001b
175 data *frz-flag equ 001c
180 data *opcode equ 0020
190 data *hi-byte equ 0021
200 data *lo-byte equ 0022
210 data *label23 equ 0023
220 data org 07fe
230 data dat 04
240 data dat 00
250 data org 0784
260 data dat 80
270 data org 0080
280 data *get-byte lda@ 18
290 data *clockl bil clockl
300 data *lclock bil lclock
310 data bcl0 port-c
320 data *bil bil clock1h
330 data *deca deca
340 data bne bil
350 data lda@ 10
360 data bst0 port-c
370 data *dec deca
380 data bne dec
390 data bst7 eoi-flag
400 data bcl0 port-c
410 data *clock1h bih clock1h
420 data *clock1l bil clock1l
430 data bbc1 port-c bit-1
440 data *bit-1 rorx
450 data *clock2h bih clock2h
460 data *clock2l bil clock2l
470 data bbc1 port-c bit-2
480 data *bit-2 rorx
490 data *clock3h bih clock3h
500 data *clock3l bil clock3l
510 data bbc1 port-c bit-3
520 data *bit-3 rorx
530 data *clock4h bih clock4h
540 data *clock4l bil clock4l
550 data bbc1 port-c bit-4
560 data *bit-4 rorx
570 data *clock5h bih clock5h
580 data *clock5l bil clock5l
590 data bbc1 port-c bit-5
600 data *bit-5 rorx
610 data *clock6h bih clock6h
620 data *clock6l bil clock6l
630 data bbc1 port-c bit-6
640 data *bit-6 rorx
650 data *clock7h bih clock7h
660 data *clock7l bil clock7l
670 data bbc1 port-c bit-7
680 data *bit-7 rorx
690 data *clock8h bih clock8h
700 data *clock8l bil clock8l
710 data bbc1 port-c bit-8
720 data *bit-8 rorx
730 data *byte bih byte
740 data bst0 port-c
750 data rts
760 data *data jsr check
770 data *busy bbs0 port-a busy
780 data sta port-b
790 data bcl3 port-c
800 data bst3 port-c
810 data *jsr80 jsr get-byte
820 data bbs2 port-c data
830 data jmp test-dev
840 data org 0400
850 data lda@ 00
860 data sta ddr-a
870 data lda@ ff
880 data sta ddr-b
890 data inca
900 data sta port-b
910 data lda@ 09
920 data sta ddr-c
930 data deca
940 data sta port-c
950 data clr eoi-flag
960 data clr cbm-flag
970 data clr dot-flag
980 data clr lf-flag
990 data clr asc.flag
995 data clr frz-flag
1000 data lda port-a
1010 data eor@ ff
1020 data tax
1030 data asra
1040 data and@ 03
1050 data add@ 24
1060 data sta dev-#
1070 data lda@ d6
1080 data sta opcode
1090 data lda@ 01
1100 data sta hi-byte
1110 data clr lo-byte
1120 data lda@ 81
1130 data sta label23
1140 data clc
1150 data txa
1160 data asla
1170 data bcc test-lf
1180 data bst7 dot-flag
1190 data *test-lf clc
1200 data asla
1210 data bcc atn
1220 data bst7 lf-flag
1230 data *atn bbs2 port-c atn
1240 data *clock bih clock
1250 data clr sec.flag
1260 data clr $22-flag
1270 data clr crsr-flag
1280 data clr restore
1290 data clr asc.flag
1300 data bst0 port-c
1310 data jsr get-byte
1320 data *test-dev cpx dev-#
1330 data beq plus13
1340 data *unlist cpx@ 3f
1350 data bne atn2
1360 data *datal bra release
1370 data *atn2 bbc7 eoi-flag slr
1380 data *release lda@ 0e
1390 data bst0 port-c
1400 data *tfr deca
1410 data bne tfr
1420 data bcl7 eoi-flag
1430 data *slr bcl0 port-c
1440 data *wait bbc2 port-c wait
1450 data bra atn
1460 data *plus13 jsr get-byte
1470 data bbc2 port-c sec.adr.
1480 data jmp data
1490 data *sec.adr. cpx@ 3f
1500 data beq release
1502 data bbs7 frz-flag store
1510 data txa
1520 data and@ 0f
1530 data cmp@ 0e
1540 data bhs autofeed
1550 data cmp@ 01
1560 data beq truth
1570 data cmp@ 02
1580 data beq ascii
1582 data cmp@ 03
1584 data beq freeze
1590 data cmp@ 05
1600 data beq truth
1610 data cmp@ 06
1620 data beq truth
1630 data cmp@ 07
1640 data beq busin
1650 data *clr.sec. bcl7 sec.flag
1660 data *store jmp jsr80
1670 data *autofeed cmp@ 0f
1680 data bne off
1690 data bst7 lf-flag
1700 data bra store
1703 data *freeze bst7 frz-flag
1706 data bra store
1710 data *off bcl7 lf-flag
1720 data bra store
1730 data *truth bst7 cbm-flag
1740 data bcl7 sec.flag
1750 data bra store
1760 data *busin bst7 sec.flag
1770 data bst7 restore
1780 data bra store
1790 data *ascii bcl7 sec.flag
1800 data bcl7 restore
1810 data bst7 asc.flag
1820 data bra store
1830 data *check txa
1840 data bbc7 cbm-flag check-2
1850 data cmp@ 0d
1860 data bne print
1870 data bbc7 lf-flag print
1880 data jsr out
1890 data lda@ 0a
1900 data *print rts
1910 data *check-2 bbs7 asc.flag ascii-1
1920 data cmp@ 22
1930 data bne verder
1940 data inc $22-flag
1950 data *verder and@ 7f
1960 data cmp@ 1f
1970 data bls codes
1980 data txa
1990 data bbs7 sec.flag transl.
2000 data cmp@ 5b
2010 data bhs graphic
2020 data rts
2030 data *ascii-1 jmp ascii-2
2040 data *graphic cmp@ 60
2050 data bhs bit-8h
2060 data lda@ 03
2070 data sta hi-byte
2080 data lda@ 40
2090 data sta lo-byte
2100 data txa
2110 data sub@ 5b
2120 data sta label14
2130 data asla
2140 data asla
2150 data add label14
2160 data add label14
2170 data add lo-byte
2180 data sta lo-byte
2190 data jmp bit-imm.
2200 data *bit-8h cmp@ 9f
2210 data bhi m.adr.
2220 data add@ 60
2230 data tax
2240 data *m.adr. clr lo-byte
2250 data lda@ 01
2260 data sta hi-byte
2270 data jsr multiply
2280 data jmp bit-imm.
2290 data *codes jmp codes-1
2300 data *transl. jmp business
2310 data *multiply txa
2320 data sub@ a0
2330 data sta label14
2340 data *multi clc
2350 data asla
2360 data bcc multi-4
2370 data inc hi-byte
2380 data clc
2390 data *multi-4 asla
2400 data bcc multi-5
2410 data inc hi-byte
2420 data clc
2430 data *multi-5 adc label14
2440 data bcc sum
2450 data inc hi-byte
2460 data clc
2470 data *sum adc label14
2480 data bcc result
2490 data inc hi-byte
2500 data clc
2510 data *result sta lo-byte
2520 data rts
2530 data *bit-imm. jsr dottest
2540 data *nxt jsr opcode
2550 data jsr out
2560 data incx
2570 data cpx@ 06
2580 data bne nxt
2590 data clra
2600 data *return rsp
2610 data jmp jsr80
2620 data *out bbs0 port-a out
2630 data sta port-b
2640 data bcl3 port-c
2650 data bst3 port-c
2660 data rts
2670 data *business cmp@ 5b
2680 data bhs upper-1
2690 data cmp@ 41
2700 data bhs lower
2710 data rts
2720 data *lower ora@ 20
2730 data rts
2740 data *upper-1 cmp@ 61
2750 data bhs upper-2
2760 data sub@ 5b
2770 data sta label14
2780 data lda@ 03
2790 data sta hi-byte
2800 data lda label14
2810 data jsr multi
2820 data add@ 40
2830 data sta lo-byte
2840 data jmp bit-imm.
2850 data *upper-2 cmp@ 7b
2860 data bhs graph-2
2870 data and@ 5f
2880 data rts
2890 data *graph-2 cmp@ 80
2900 data bhs kar-a9
2910 data sub@ 7b
2920 data *graph-3 sta label14
2930 data lda@ 03
2940 data sta hi-byte
2950 data lda label14
2960 data jsr multi
2970 data add@ 64
2980 data sta lo-byte
2990 data jmp bit-imm.
3000 data *kar-a9 cmp@ a9
3010 data bne kar-ba
3020 data lda@ 03
3030 data sta hi-byte
3040 data lda@ 82
3050 data sta lo-byte
3060 data jmp bit-imm.
3070 data *kar-ba cmp@ ba
3080 data bne kar-ff
3090 data lda@ 03
3100 data sta hi-byte
3110 data lda@ 88
3120 data sta lo-byte
3130 data jmp bit-imm.
3140 data *kar-ff cmp@ ff
3150 data bne kar-c0
3160 data lda@ 03
3170 data sta hi-byte
3180 data lda@ 76
3190 data sta lo-byte
3200 data jmp bit-imm.
3210 data *kar-c0 cmp@ c0
3220 data bne graph-4
3230 data lda@ 03
3240 data sta hi-byte
3250 data lda@ 5e
3260 data sta lo-byte
3270 data jmp bit-imm.
3280 data *graph-4 cmp@ e0
3290 data bhs graph-5
3300 data cmp@ c1
3310 data bhs upper-3
3320 data jmp m.adr.
3330 data *graph-5 and@ bf
3340 data jmp kar-a9
3350 data *upper-3 cmp@ db
3360 data bhs graph-6
3370 data and@ 7f
3380 data rts
3390 data *graph-6 sub@ db
3400 data jmp graph-3
3410 data *codes-1 txa
3420 data cmp@ 0d
3430 data bne codes-2
3440 data bbc7 crsr-flag cr-1
3450 data lda restore
3460 data sta sec.flag
3470 data clr crsr-flag
3480 data *cr-1 bbs7 lf-flag lf
3490 data clr $22-flag
3500 data rts
3510 data *lf jsr out
3520 data clr $22-flag
3530 data lda@ 0a
3540 data rts
3550 data *codes-2 cmp@ 11
3560 data beq codes-3
3570 data cmp@ 91
3580 data beq codes-4
3590 data cmp@ 12
3600 data beq codes-5
3610 data cmp@ 13
3620 data beq codes-6
3630 data cmp@ 0e
3640 data beq codes-7
3650 data cmp@ 0f
3660 data beq codes-8
3670 data bne codes-9
3680 data *codes-3 bbs0 $22-flag print-d
3690 data bst7 sec.flag
3700 data bst7 crsr-flag
3710 data jmp return
3720 data *codes-4 bbs0 $22-flag codes-9
3730 data bcl7 sec.flag
3740 data bst7 crsr-flag
3750 data jmp return
3760 data *codes-5 bbs0 $22-flag print-r
3770 data jmp return
3780 data *codes-6 bbs0 $22-flag print-s
3790 data jmp return
3800 data *print-d lda@ 8e
3810 data sta lo-byte
3820 data *pr-code lda@ 03
3830 data sta hi-byte
3840 data jmp bit-imm.
3850 data *print-r lda@ 94
3860 data sta lo-byte
3870 data bra pr-code
3880 data *print-s lda@ 9a
3890 data sta lo-byte
3900 data bra pr-code
3910 data *codes-7 bbs0 $22-flag codes-9
3920 data lda@ 1b
3930 data jsr out
3940 data lda@ 57
3950 data jsr out
3960 data lda@ 01
3970 data jsr out
3980 data jmp return
3990 data *codes-8 bbs0 $22-flag codes-9
4000 data lda@ 1b
4010 data jsr out
4020 data lda@ 57
4030 data jsr out
4040 data lda@ 00
4050 data jsr out
4060 data jmp return
4070 data *codes-9 bbs0 $22-flag end
4080 data cmp@ 10
4090 data beq chr$16
4100 data cmp@ 08
4110 data beq chr$26
4120 data rts
4130 data *chr$26 jsr get-byte
4140 data txa
4150 data cmp@ 1a
4160 data beq repead
4170 data rts
4180 data *repead jmp rep-char.
4190 data *chr$16 jmp set-tap
4200 data *end add@ 40
4210 data tax
4220 data cmp@ 45
4230 data bne hoger-1
4240 data lda@ a0
4250 data sta lo-byte
4260 data lda@ 03
4270 data sta hi-byte
4280 data jmp bit-imm.
4290 data *hoger-1 cmp@ 80
4300 data bhs hoger-2
4310 data lda@ 03
4320 data sta hi-byte
4330 data txa
4340 data sub@ 5b
4350 data sta label14
4360 data jsr multi
4370 data add@ 40
4380 data sta lo-byte
4390 data jmp bit-rev.
4400 data *hoger-2 clr lo-byte
4410 data lda@ 01
4420 data sta hi-byte
4430 data jsr multiply
4440 data *bit-rev. jsr dottest
4450 data *go-on jsr opcode
4460 data eor@ fe
4470 data jsr out
4480 data incx
4490 data cpx@ 06
4500 data bne go-on
4510 data clra
4520 data rsp
4530 data jmp jsr80
4540 data *dottest bbs7 dot-flag ibm
4550 data lda@ 1b
4560 data jsr out
4570 data lda@ 4b
4580 data jsr out
4590 data lda@ 06
4600 data jsr out
4610 data clrx
4620 data clra
4630 data jsr out
4640 data rts
4650 data *ibm lda@ 1b
4660 data jsr out
4670 data lda@ 2a
4680 data jsr out
4690 data lda@ 00
4700 data jsr out
4710 data lda@ 06
4720 data jsr out
4730 data clrx
4740 data clra
4750 data jsr out
4760 data rts
4770 data org 03a8
4780 data *set-tap lda@ 1b
4790 data jsr out
4800 data lda@ 44
4810 data jsr out
4820 data jsr get-byte
4830 data txa
4840 data and@ 0f
4850 data asla
4860 data sta label14
4870 data asla
4880 data asla
4890 data add label14
4900 data sta label14
4910 data jsr get-byte
4920 data txa
4930 data and@ 0f
4940 data add label14
4950 data jsr out
4960 data lda@ 00
4970 data jsr out
4980 data lda@ 09
4990 data jsr out
5000 data jmp return
5010 data org 03d8
5020 data *ascii-2 cmp@ 9f
5023 data bls cmp-0d
5026 data and@ 7f
5030 data *cmp-0d cmp@ 0d
5040 data beq asc-lf
5050 data cmp@ 60
5060 data bhs asc.low
5070 data cmp@ 40
5080 data bhs asc.up
5090 data *printen rts
5100 data *asc.low and@ 5f
5110 data bra printen
5120 data *asc.up ora@ 20
5130 data bra printen
5140 data *asc-lf bbc7 lf-flag printen
5150 data jsr out
5160 data lda@ 0a
5170 data rts
5180 data org 0738
5190 data *rep-char. lda@ 1b
5200 data jsr out
5210 data bbs7 dot-flag ibm-2
5220 data lda@ 4b
5230 data jsr out
5240 data bra rep-2
5250 data *ibm-2 lda@ 2a
5260 data jsr out
5270 data lda@ 00
5280 data jsr out
5290 data *rep-2 jsr get-byte
5300 data txa
5310 data sta label14
5320 data jsr out
5330 data lda@ 00
5340 data jsr out
5350 data jsr get-byte
5360 data txa
5370 data ldx label14
5380 data *rep-3 jsr out
5390 data decx
5400 data bne rep-3
5410 data jmp return
5420 rem 550 statements - 148 labels
10000 print"[147]":print"assembler for motorola mc68705":print
10010 open4,4:poke56,144:clr
10020 print"even geduld a.u.b.":print
10030 for cl=36864 to 38912:pokecl,0:next
10040 poke38910,4:poke38788,128
10050 print"base adress of ass. code buffer $9000":p=36864:print
10060 input"how many lines to be assembled";d:print
10070 input"how many labels are used";c:print:print
10080 diml$(c),a(c):z=1
10090 print"first pass running":print:print
10100 k=0:q=0
10110 for x=1 to d:printx;
10120 if z=3 then print#4,x;
10130 gosub 12250
10140 goto 10240
10150 gosub 12450
10160 next x
10170 z=z+1
10180 if z=4 then 10210
10190 if z=3 then print"print-out":print:print:restore:goto10100
10200 print"secund pass running":print:print:restore:goto 10100
10210 print:print:print"assembly complete":print#4:print#4:print#4,"assembly complete"
10220 print#4:print#4
10230 close 4:end
10240 read s$:p$=s$
10250 if left$(s$,1)="*" then gosub 10930
10260 m$=left$(s$,3):s$=right$(s$,(len(s$)-3))
10270 if m$="adc" then b=169:goto 11050
10280 if m$="add" then b=171:goto 11050
10290 if m$="and" then b=164:goto 11050
10300 if m$="asl" then b=56:goto 10990
10310 if m$="asr" then b=55:goto 10990
10320 if m$="bcc" then o=36:goto 11450
10330 if m$="bcl" then b=17:goto 11610
10340 if m$="bcs" then o=37:goto 11450
10350 if m$="beq" then o=39:goto 11450
10360 if m$="bhc" then o=40:goto 11450
10370 if m$="bhf" then o=41:goto 11450
10380 if m$="bhi" then o=34:goto 11450
10390 if m$="bhs" then o=36:goto 11450
10400 if m$="bih" then o=47:goto 11450
10410 if m$="bil" then o=46:goto 11450
10420 if m$="bit" then b=165:goto 11050
10430 if m$="blo" then o=37:goto 11450
10440 if m$="bls" then o=35:goto 11450
10450 if m$="bmc" then o=44:goto 11450
10460 if m$="bmi" then o=43:goto 11450
10470 if m$="bms" then o=45:goto 11450
10480 if m$="bne" then o=38:goto 11450
10490 if m$="bpl" then o=42:goto 11450
10500 if m$="bra" then o=32:goto 11450
10510 if m$="brn" then o=33:goto 11450
10520 if m$="bbc" then b=1:goto 11720
10530 if m$="bbs" then b=0:goto 11720
10540 if m$="bst" then b=16:goto 11610
10550 if m$="bsr" then o=173:goto 11450
10560 if m$="clc" then o=152:goto 11780
10570 if m$="cli" then o=154:goto 11780
10580 if m$="clr" then b=63:goto 10990
10590 if m$="cmp" then b=161:goto 11050
10600 if m$="com" then b=51:goto 10990
10610 if m$="cpx" then b=163:goto 11050
10620 if m$="dat" then 12060
10630 if m$="dec" then b=58:goto10990
10640 if m$="eor" then b=168:goto11050
10650 if m$="equ" then 12160
10660 if m$="inc" then b=60:goto10990
10670 if m$="jmp" then b=172:goto11050
10680 if m$="jsr" then b=173:goto11050
10690 if m$="lda" then b=166:goto11050
10700 if m$="ldx" then b=174:goto11050
10710 if m$="lsl" then b=56:goto10990
10720 if m$="lsr" then b=52:goto10990
10730 if m$="neg" then b=48:goto10990
10740 if m$="nop" then o=157:goto11780
10750 if m$="ora" then b=170:goto11050
10760 if m$="org" then 12090
10770 if m$="rol" then b=57:goto10990
10780 if m$="ror" then b=54:goto10990
10790 if m$="rsp" then o=156:goto11780
10800 if m$="rti" then o=128:goto11780
10810 if m$="rts" then o=129:goto11780
10820 if m$="sbc" then b=162:goto11050
10830 if m$="sec" then o=153:goto11780
10840 if m$="sei" then o=155:goto11780
10850 if m$="sta" then b=167:goto11050
10860 if m$="stx" then b=175:goto11050
10870 if m$="sub" then b=160:goto11050
10880 if m$="swi" then o=130:goto11780
10890 if m$="tax" then o=151:goto11780
10900 if m$="tst" then b=61:goto10990
10910 if m$="txa" then o=159:goto11780
10920 print"mnemonic error in line ";x:close4:end
10930 l$=mid$(s$,2,1):s$=right$(s$,(len(s$)-2))
10940 if left$(s$,1)=" " then 10970
10950 l$=l$+left$(s$,1):gosub 12230
10960 goto 10940
10970 gosub 12230:k=k+1:l$(k)=l$
10980 a(k)=q:return
10990 t=1:m$=left$(s$,1):gosub 12230
11000 if m$=" " then m=0:goto11140
11010 if m$="a" then m=1:goto 11100
11020 if m$="x" then m=2:goto 11100
11030 if m$="(" then m=3:goto 11120
11040 print"adress mode error in line ";x:close4:end
11050 t=2:m$=left$(s$,1):gosub 12230
11060 if m$="@" then m=0:goto 11350
11070 if m$=" " then m=2:goto 11140
11080 if m$="(" then m=3:goto 11120
11090 goto 11040
11100 gosub 11800
11110 goto 10150
11120 m$=left$(s$,1)
11130 if m$=")" then 11210
11140 gosub 11910
11150 if f=0 then 11250
11160 if t=2 then 11300
11170 ifh>0thenprint"read/modefy/write to page zero only - error in line ";x:close4:end
11180 gosub 11800
11190 gosub 11880
11200 goto 10150
11210 if t=2 then m=5:goto 11230
11220 m=4
11230 gosub 11800
11240 goto 10150
11250 if z=2 then print"undefined label in line ";x:close4:end
11260 if t=1 then 11180
11270 gosub 11800
11280 gosub 11840
11290 goto 10150
11300 if a(y)>q then 11270
11310 if h>0 then 11270
11320 if m=2 then m=1:goto 11340
11330 m=4
11340 goto 11180
11350 gosub 12230
11360 gosub 11380
11370 goto 11180
11380 m$=left$(s$,1)
11390 if asc(m$)<71 and asc(m$)> 64 then l=(asc(m$)-55)*16:goto 11410
11400 l=(asc(m$)-48)*16
11410 m$=mid$(s$,2,1)
11420 if asc(m$)<71 and asc(m$)>64 then l=l+asc(m$)-55:goto 11440
11430 l=l+asc(m$)-48
11440 return
11450 gosub 11810
11460 gosub 12230
11470 gosub 11910
11480 if f=0 then 11560
11490 if a(y)>q+1 then 11530
11500 if (q+1)-a(y)>128 then print"branch out of range in line ";x:close4:end
11510 l=256-((q+1)-a(y))
11520 goto 11580
11530 if a(y)-(q+1)>127 then print"branch out of range in line ";x:close4:end
11540 l=a(y)-(q+1)
11550 goto 11580
11560 if z=2 then print"undefined label in line ";x-1:close4:end
11570 l=0
11580 if o<16 then return
11590 gosub 11880
11600 goto 10150
11610 m$=left$(s$,1):gosub 12230
11620 if val(m$)<0 or val(m$)>7 then print"bit number error in line ";x:close4:end
11630 m=val(m$)
11640 gosub 12230:gosub 11910
11650 if f=0 then print"undefined label in line ";x:close4:end
11660 if a(y)>127thenprint"target byte not in ram - error in line ";x:close4:end
11670 o=b+(2*m)
11680 gosub 11810
11690 if b<16 then return
11700 gosub 11880
11710 goto 10150
11720 gosub 11610
11730 j=l
11740 gosub 11470
11750 h=j
11760 gosub 11840
11770 goto 10150
11780 gosub 11810
11790 goto 10150
11800 o=b+(16*m)
11810 poke(p+q),o:q=q+1
11820 gosub 12300
11830 return
11840 poke(p+q),h:q=q+1
11850 gosub 12350
11860 if b=0 or b=1 then l=l-1
11870 if l<0 then l=0
11880 poke(p+q),l:q=q+1
11890 gosub 12400
11900 return
11910 l$=""
11920 if len(s$)=0 then 11960
11930 l$=l$+left$(s$,1):gosub 12230
11940 ifright$(l$,1)=")"orright$(l$,1)=" "thenl$=left$(l$,(len(l$)-1)):goto11960
11950 goto 11920
11960 y=0
11970 y=y+1
11980 if y>k then 12030
11990 if l$=l$(y) then 12020
12000 goto 11970
12010 f=0:h=255:l=255:return
12020 f=1:h=int(a(y)/256):l=a(y)-(h*256):return
12030 if z=1 then 12010
12040 if y>c then 12010
12050 goto 11990
12060 gosub 12230
12070 gosub 11380
12080 gosub 11880:goto 10150
12090 gosub 12230
12100 gosub 11380
12110 h=l
12120 s$=right$(s$,(len(s$)-2))
12130 gosub 11380
12140 q=l+(256*h)
12150 goto 10150
12160 gosub 12230
12170 gosub 11380
12180 a(k)=256*l
12190 s$=right$(s$,(len(s$)-2))
12200 gosub 11380
12210 a(k)=a(k)+l
12220 goto 10150
12230 s$=right$(s$,(len(s$)-1))
12240 return
12250 if z<3 then return
12260 r=q:e=3
12270 gosub 12560
12280 print#4,tab(6) r$;
12290 return
12300 if z<3 then return
12310 r=o:e=2
12320 gosub 12560
12330 print#4,tab(11)r$;
12340 return
12350 if z<3 then return
12360 r=h:e=2
12370 gosub 12560
12380 print#4,tab(14)r$;
12390 return
12400 if z<3 then return
12410 r=l:e=2
12420 gosub 12560
12430 print#4,tab(17)r$;
12440 return
12450 if z<3 then return
12460 hp$=""
12470 if left$(p$,1)="*" then 12490
12480 goto 12530
12490 hp$=hp$+(left$(p$,1))
12500 p$=right$(p$,(len(p$)-1))
12510 if left$(p$,1)<>" " then 12490
12520 print#4,tab(21)hp$;tab(32)p$:goto 12540
12530 print#4,tab(33)p$
12540 :
12550 return
12560 r$=""
12570 for y=e to 1 step-1
12580 i=int(r/16^(y-1))):r=r-(i*(16^(y-1)))
12590 if i>9 then i$=chr$(i+55):goto 12610
12600 i$=chr$(i+48)
12610 r$=r$+i$
12620 next y
12630 return