Thomas Hommes - PDA600 - Memory structureThomas Hommes
      PDA600 - Memory structure


PDA600 - Memory and upload structure




V1.1 (04.09.96 hm@bg.bib.de)
V1.2 (01.11.96 fb@knoware.nl)
---------------------------------------------------------------------

main-memory  (108 kByte)

   Real-Memory-Address
          |      Offset
      00E0:0000 +-------+--------------------------------------------
                | 00-xx | first data record        
                +-------+--------------------------------------------
                | xx    | top of free memory (stack)                   
                |       |                    
                |       |                    
      00E0:1B00 +-------+--------------------------------------------
                |       |                    
                +-------+--------------------------------------------
                | 10-13 | memory pointer to first date record       
                +-------+--------------------------------------------
                |       |                    
                +-------+--------------------------------------------
                |       |                    
                +-------+--------------------------------------------
                | FB-FF | memory pointer to stack                  
      00E1:B07F +-------+--------------------------------------------


global memory block structure (data record)
        +-------+-------+--------------------------------------------
        | 00    | Flag  | record in use "01" or free
"00"                                           
        +-------+-------+--------------------------------------------
        | 01-04 | LLHH-O| memory pointer "HHLL-S:HHLL-O"
to                    
        |       | LLHH-S| next memory block                     
        +-------+-------+--------------------------------------------
        | 05-xx | DATA  | record data                   
        +-------+-------+--------------------------------------------

date record (action list type 0003, scheduler type 0001, yearly days
type 0004)
        +-------+-------+--------------------------------------------
        | 00-01 | LLHH-I| record-type (smallint: HHLL)                   
        +-------+-------+--------------------------------------------
        | 02-05 | Point.| memory pointer to prev. date record
        +-------+-------+--------------------------------------------
        | 06-09 | Point.| memory pointer to next  date
record                   
        +-------+-------+--------------------------------------------
        | 0A-20 | TEXT  | info (max 21 Bytes) "\0"
terminated                   
        +-------+-------+--------------------------------------------
        | 21    | byte  | day                   
        +-------+-------+--------------------------------------------
        | 22    | byte  | month                   
        +-------+-------+--------------------------------------------
        | 23    | byte  | year                    
        +-------+-------+--------------------------------------------
        | 24-25 | LLHH-I| time as smallint (4 digits:
HHMM)                   
        +-------+-------+--------------------------------------------
        | 26-29 | ????  |  used for regular events
        +-------+-------+--------------------------------------------
        | 2A-2B | LLHH-I|  action list (0=do, 1=done)                  
        +-------+-------+--------------------------------------------

regular events record (type 0002)
        +-------+-------+--------------------------------------------
        | 00-01 | LLHH-I| record-type (smallint: HHLL)                   
        +-------+-------+--------------------------------------------
        | 02-05 | Point.| memory pointer to prev. date record
        +-------+-------+--------------------------------------------
        | 06-09 | Point.| memory pointer to next  date
record                   
        +-------+-------+--------------------------------------------
        | 0A-20 | TEXT  | info (max 21 Bytes) "\0"
terminated                   
        +-------+-------+--------------------------------------------
        | 21    | byte  | day                   
        +-------+-------+--------------------------------------------
        | 22    | byte  | month                   
        +-------+-------+--------------------------------------------
        | 23    | byte  | year                    
        +-------+-------+--------------------------------------------
        | 24-25 | LLHH-I| time as smallint (4 digits:
HHMM)                   
        +-------+-------+--------------------------------------------
        | 26    | byte  |  0x05=Day; 0x21= Date; 0x37=Week
        +-------+-------+--------------------------------------------
        | 27    | byte  |  bitwise: last, 4th, 3rd, 2nd, 1st
        +-------+-------+--------------------------------------------
        | 28    | byte  |  day of week + 0x20 (0x21=Sunday etc.)
        +-------+-------+--------------------------------------------
        | 29    | byte  |  repetition
        +-------+-------+--------------------------------------------
        | 2A-2B | LLHH-I|  action list (0=do, 1=done)                  
        +-------+-------+--------------------------------------------

address index record (for every char A-Z)
        +-------+-------+--------------------------------------------
        | 00-03 | Point.| memory pointer to address data record of the
        |       |   P   | prev. char or to this pointer P  
        +-------+-------+--------------------------------------------
        | 04-07 | Point.| memory pointer to first address data record    
        |       |   N   | of this char or to pointer N of next char
        +-------+-------+--------------------------------------------
        | 08-0F | ????  | data 0x01 0x01 0x01 0x01 0x13 0x00 0x10
0x01    
        +-------+-------+--------------------------------------------
        | 10    | byte  | index char A-Z                   
        +-------+-------+--------------------------------------------
        | 11-12 | ????  | data 0x00 0x00                   
        +-------+-------+--------------------------------------------
        
address data record (type 5)
        +-------+-------+--------------------------------------------
        | 00-03 | Point.| memory pointer to prev. 
        +-------+-------+--------------------------------------------
        | 04-07 | Point.| memory pointer to next                     
        +-------+-------+--------------------------------------------
        | 08-0B | byte  | type of call-number (-1,-2,-3,-4)
        |       |       | 0=not in use, 1=home, 2=office,
        |       |       | 3=mobile, 4=fax, 5=free entry
(other)           
        +-------+-------+--------------------------------------------
        | 0C-0D | LLHH-I| length of address data
record                   
        +-------+-------+--------------------------------------------
        | 0E-0F | LLHH-I| const 0x10 0x00                    
        +-------+-------+--------------------------------------------
        | 10-xx | TEXT  | 22 ascii strings (max. 21 byte,"\0"
terminated)   
        |       |       | name-1,-2                   
        |       |       | address-1,-2,-3,-4,-5                   
        |       |       | call-number-1,-2,-3,-4                   
        |       |       | call-name-1,-2,-3,-4                   
        |       |       | info-1,-2,-3,-4,-5,-6,-7                   
        +-------+-------+--------------------------------------------

upload format:

  /-> PDA send  1byte   ACK (0x06)
  |   PC send:
  |      const  1byte   0x01
  |      length 2byte   LLHH (of DATA RECORD)
  |      ------ DATA RECORD -----
  \--    crc    1byte   (sum of DATA RECORD-bytes & 0xff)

  to terminate the upload send a DATA RECORD with 0 bytes length
  
  DATA RECORD:
         type    2byte   LLHH  (1=scheduler, 3=action list,
                                4 yearly days, 5=address book)
         Memory-structure for this type (without the type-field)



       Thomas Hommes - Bergisch Gladbach, Germany
      last modified: Wednesday, 26-Feb-1997Webmaster
      Client: @r176m201.cybercable.tm.fr

