- variabelen kunnen in de volgende address ranges liggen: - in eeprom - in ram - in program memory - streams voor: - i2c - onewire - a/d - d/a - dtmf - keyboard - flashfilesystem - uart - variable types: - bit - nyble - byte - sbyte - word - sword - long / sdword - dword / ulong - qword / ulonglong - sqword / longlong - single / float - double - string types - array of type - hashtables? - iopin - stores address of avr iopin in 1 byte - [sizetype][memtype]ptr where memtype={ee,ram,rom,xram} - dim name as type [at address] [modifiers] - modifier can specify memory type. - pointers: ( declared with 'at address' ) - have methods: bit0..bit32 nib0..nib7 byte0..byte3 word0..word1 value ( default ) addr - declaration modifiers: - const -> located in rom - persistent -> located in eeprom - procedure/function parameters can be 'byval' or 'byref' - numeric operators: - binary arithmetic: +, -, *, / (div), % (mod) - unary arithmetic: -, + - binary bitwise: & (and), | (or), ^ (xor), << (shl), >> (shr), rol, ror - binary bitwise: ~ (not) - binary logical/shortcut: &&, || - unary logical: ! - string operators: - binary: + - bitwise functions: - rol, ror, clz - arithmetic functions: - abs, sign - conversion functions: - bcdToInt, IntToBcd - StrToInt, IntToStr - ... - ReverseByteOrder - strings: - fixed length string - variable length string, with limit - longstring - upto 64k, shortstring - upto 255, tinystring - upto 15 - string functions: - left, right, mid, repeatchar, spaces, lcase, ucase, index, ltrim, rtrim, trim - split - lookupstr - base64 - arrays: - fixed length array - variable length array, with limit. - constants: - hex: $0123abcd or &h0123abcd or 0x0123abcd - oct: &o01234567 or 01234567 - bin: %0101010 or 0101010b or &b0101010 - dec: 1299 - string: "qeqwe\n12\"\"3123" - multithreading - on ...event... sub_name - no 'gosub' - what model do we choose for strings? - fixed length strings - variable length strings - math functions: - cos, sin, tan, acos, asin, atan, sqrt, exp, log, log10, log2, pow - cosh, sinh, tanh - deg2rad, rad2deg - modpow - libraries for: - dtmf read/write - via stream. - magcard - binarysearch: see mbasic lookup/lookdown - hashtables - servo control - stepper control - i2c - onewire - spi - systemevents: powerup/powerdown/brownout - x10 - a/d convertor - d/a convertor - dtmf detect/send - keyboard - lcd/text - lcd graphics - flashfilesystem - uart - pulsewidth modulation/detection/pulse counting - sound - queues - tasks - rtc - semaphores - webserver - networking - fft - matrix lib, solveqr, leastsquares - crc16/crc32/csum8/csum16/csum32 - bignumlib - crypto: md5,sha1,sha256, aes, twofish, dh-keyexchange, rsa, zk-proofs - ps2-mouse: read mouse, emulate mouse - pc-keyboard: read kbd, emulate kbd - timer - gps - infrared - powersaveing - sms - crystal tcpip voor atmel/avr support - w3100a tcpip support - scheduler