29 lines
828 B
Plaintext
29 lines
828 B
Plaintext
REAL :: workspace(1000), base=16
|
|
|
|
DLG(CHeckbox=bitmap, NameEdit=base, DNum, MIn=1, MAx=16) ! 1 <= stem base <= 16
|
|
READ(ClipBoard, ItemS=nData) workspace ! get raw data
|
|
|
|
ALIAS(workspace,1, dataset,nData, stems,nData)
|
|
SORT(Vector=dataset, Sorted=dataset)
|
|
stems = (dataset - MOD(dataset,base)) / base
|
|
dataset = dataset - base*stems
|
|
max_stem = MAX(stems)
|
|
|
|
IF( bitmap ) AXIS()
|
|
printed = 0
|
|
DO stem = 0, max_stem
|
|
last = INDEX(stems, stem, 4) ! option 4: search backward
|
|
IF( last > printed ) THEN
|
|
nLeaves = last - printed
|
|
IF(bitmap) THEN
|
|
LINE(PenUp=1,W=8, x=0, y=stem, x=nLeaves, y=stem)
|
|
ELSE
|
|
ALIAS(dataset,printed+1, leaves,nLeaves)
|
|
WRITE(Format="i3, ':', 100Z2") stem, leaves
|
|
ENDIF
|
|
printed = printed + nLeaves
|
|
ELSE
|
|
WRITE(Format="i3, ':'") stem
|
|
ENDIF
|
|
ENDDO
|