CuriousOne
- 3rd June 2023, 21:05
Hello.
Say I have 24 byte array, called "time"
I want to set it's content to 32 (That's ASCII code for space)
TIME=32 Does not work. I have to use:
arraywrite time, [32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32 ,32,32,32,32,32,32,32]
This is weird, and will get even weirder, with longer arrays.
Yes I know there are FOR-NEXT, DO-LOOP and other ways of filling array, but I'm curious, why there's no single statement for doing that?
richard
- 4th June 2023, 01:48
one of pbp3's most redeeming features is USERCOMMAND , If you feel a command is missing then simply create your own
a MEMSET cmd that emulates the C memset(array_name,fill_chr,length) function could easily be created
start here (https://support.melabs.com/forum/picbasic-pro-compiler-3-0-and-later/usercommand)
CuriousOne
- 4th June 2023, 20:48
Thanks!
That appears to be at least partial, but still usable solution.
But arraywrite must always start from position 0 of array, right?
p.s. in PBP_Manual_0609_260 on page 119 it's all about LCDOUT.
Acetronics2
- 4th June 2023, 22:07
if the value bytes are constants ...
you could use POKECODE ...
i.e.
'************************************************* ****************************
'Fading_Table
'************************************************* ****************************
' 0 1 2 3 4 5 6 7 8 9
'
Pokecode @881, 24, 27, 29, 32, 35, 38, 41, 44, 47,_ ' 30
50, 54, 57, 60, 64, 68, 71, 75, 79, 83,_ ' 40
87, 91, 96,100,104,109,113,118,123,127,_ ' 50
132,137,142,147,153,158,163,169,174,180,_ ' 60
186,191,197,203,209,212,217,245,250, 1,_ ' 70
7, 13, 21, 30, 39, 48, 57, 24, 25, 26,_ ' 80
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,_ ' 90
37, 38, 39, 40, 41, 43, 44, 45, 46, 48,_ ' 100
49, 50, 52, 53, 54, 56, 57, 59, 60, 62,_ ' 110
63, 65, 67, 68, 70, 72, 73, 75, 77, 79,_ ' 120
81, 83, 84, 86, 88, 90, 92, 94, 97, 99,_ ' 130
101,103,105,107,110,112,114,117,119,122,_ ' 140
124,126,129,132,134,137,139,142,145,148,_ ' 150
150,153,156,159,162,165,168,172,176,180' 160
see § 5.54 of the LAST version Holy Manual ...
BUUUUUT ... Which version of PBP do you use ???
might be 2.60 ?
Alain
Ioannis
- 5th June 2023, 10:01
Thanks!
That appears to be at least partial, but still usable solution.
But arraywrite must always start from position 0 of array, right?
p.s. in PBP_Manual_0609_260 on page 119 it's all about LCDOUT.
I always refer to the latest Manual.
Yes, the command is referenced to the position 0. If you need something else then you have other options:
1. USERCOMMAND and do something on your own
2. Alias to another array.
But you were specific weren't you? Fill an array with a specific character.
Ioannis
Acetronics2
- 8th June 2023, 06:46
Which version of PBP do you own?
Ioannis
Hi, Ioannis
this is obviously a link to the 2.60 Version Manual ... dated 2009/06 ...
a true Vintage one ;)
Let's suppose PBP Version is the same 2.60 version ( not guaranteed ... )
Alain
Acetronics2
- 8th June 2023, 14:16
If he uses Arrayread/Arraywrite, I doubt that...
Ioannis
ARRAYREAD / ARRAYWRITE belong to the V 2.60 manual ... I have this printed manual in front of me ... :rolleyes:
I also have HUGE archives ( My SSD holds ... a bit more than 1.4 TB !!! ) ;)
Alain
amgen
- 9th June 2023, 01:11
Preview
Default Re: Setting whole content of array variable in a simple way?
from the
' MPASM™ Assembler,
MPLINK™ Object Linker,
MPLIB™ Object Librarian
User’s Guide'
you might be able to use the FILL command....... something like this...calling gosub FILLING
FILLING:
ASM
org: _time 'location by the name of your-array
fill 32, 24 'puts dec 32 in next 24 locations
ENDASM
Return
this is one of the directives of MPASM, hopefully the '_array' with the underscore IS the location in ram of your array
Powered by vBulletin® Version 4.1.7 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.