Please enable JavaScript to view this site.

A-Shell Reference

Updated July 2024

ASB supports the data types shown in the tables below.

Scalar Types

Type

Code

Size

Description

Floating Point

F

4

Single precision IEEE float, ~7 significant digits

F

6

48 bit (WD16, M68000, AMOS) float, ~11 significant digits

F

8

double precision IEEE float, ~16 significant digits

Unsigned Integer (little-endian byte order)

B

1

8 bit unsigned

B

2

16 bit unsigned

B

3

24 bit unsigned

B

4

32 bit unsigned

B

5

40 bit signed (two's complement)

B

6

48 bit signed (two's complement, little-endian)

Signed Integer

I

1

8 bit signed (two’s complement)

I

2

16 bit signed (two’s complement, little-endian); see Boolean below

I

4

32 bit signed (two’s complement, 2301 order)

I

6

48 bit signed (two's complement); see B6 and I6 Variables below

String

S

#

fixed length string of # bytes; see String Variables below

S

0

variable length string; see Dynamically Sized Variables

Unformatted
(raw bytes)

X

0

fixed length raw bytes

X

0

variable length raw bytes; see Dynamically Sized Variables

(none)

 

Size determined by lower-level MAP declarations.

 

Compound or Structure Types

Type

Example

See Note #

Multi-level MAPs

MAP1 CUST
   MAP2 NAME,S,30
   MAP2 CUSNO,B,4
   MAP2 TOTSALES,F,6

READ #CH, CUST       ! read/write entire group as a unit

? NAME               ! individual fields referenced by name

1, 2

DEFSTRUCT

DEFSTRUCT ST_CUST    ! define structure layout
   MAP2 NAME,S,30
   MAP2 CUSNO,B,4
   MAP2 TOTSALES,F,6
ENDSTRUCT
...
MAP1 CUSREC,ST_CUST  ! define instance of structure
...
READ #CH, CUSREC     ! read/write entire struct at once
? CUSREC.NAME        ! use structvar.member notation for fields

 

DYNSTRUCT

MAP1 DS, DYNSTRUCT

 

 

Table Notes:

1Also known as "records", the multi-level MAP arrangement is physically equivalent a DEFSTRUCT, except for the syntax of accessing its members. Programmers are encouraged to use DEFSTRUCT as it makes the code more self-documenting and simplifies creating multiple instances and arrays of the layout.
2Any MAPn level with higher-numbered levels defined within it.

See Also