Human Input Assembler. Advanced Press Release 22/12/95. -- STEP 1 ----------------- cut here ------------------------ INCLUDE DEFAULT.HIA VAR OuterLoopVariable AS DEFAULT VAR InnerLoopVariable AS DEFAULT ThisIsMyEndlessLoopLabel FOR OuterLoopVariable FROM 7 TO 11 STEP 1 FOR InnerLoopVariable FROM 0 TO 7 STEP 1 PIN InnerLoopVariable TO 1 NEXT InnerLoopVariable FOR InnerLoopVariable FROM 0 TO 7 STEP 1 PIN InnerLoopVariable TO 0 NEXT InnerLoopVariable NEXT OuterLoopVariable GOTO ThisIsMyEndlessLoopLabel DONE -- STEP 2 ------ cut here too and save as HUMAN.INP ---------- -- STEP 3 Invoke assembler MPASM HUMAN.INP /Q -- STEP 4 Wait 7 Seconds (486DX2-66 Win95 DOS-BOX) Comments from an Assembler (MPASM ver 1.30) =========================================== Errors: 0 Warnings: 0 Lines compiled: 801 Program memory words used: 45 (decimal) User ROM allocated: 27 words User RAM allocated: 2 bytes Kernel ROM allocated: 18 words (* see below) Kernel RAM allocated: 2 bytes Listing file(fully expanded): 80,000 bytes Cross reference file: 13,000 bytes * Kernel reduces to 12 words if optimization to PIC16C84 internal data EEPROM is enabled. Comment from an Human (me) ========================== I'm tired... ...but I LIKE IT LIKE IT LIKE IT... Comment from an other Human (my Mom) ==================================== Did you get your life insurance? [...if competitors...] Expected comment from Tom (an Human too) ======================================== [....] this *IS* (...) -- STEP 5 Invoke Simulator MPSIM -- STEP 6 Type GO and whatch the bits to roll on screen -- STEP 7 Exit Simulator -- STEP 8 Type PIP to enter PINAPI device programmer shell -- STEP 9 Press F9 "Auto Burn and GO" -- STEP 10 Wait for the device being programmed in circuit -- STEP 11 Connect a scope and whatch the bits rolling... Easy 11 steps. No comments. Notice: Superuser privileges on my computer required :) HIA Features ============ * BIT, NIBBLE, BYTE and WORD variables are supported. * Reference to subfields of variables is allowed. * ALU, flags and on chip special registers can be accessed as variables of the above types. * Variables can have non-zero initialization value. * Nonvolative variables/constants can be in internal battery backup RAM or EEPROM or in external ROM, they can be used as ordinary variables. * Semafore variables are supported, allowing tasks to perform read-modify-write type access. * Plug-ins are capable of adding new variable types. * Internal math can be enhanced or fully replaced. * 32 bit arithmetic and logic evaluator can used to calculate constant values. * Token set is flexible, plug-ins can replace existing or add new ones. * Default token set is rich implementation of mixed Human, Basic and Assembly like syntax. * Powerful Input Output tokens are implemented. * Serial port tokens support buildt-in or software simulated ports at maximum speeds. * Plug-ins can add tokens to control target specific hardware features like buildt-in ADC or PWM. * Plug-ins can add tokens to control external devices: I2C/Microwire, LCD, Keypad,... * Control of external devices by plug-ins is supported on multiply target platforms, as those plug-ins use only unified assembly tokens implemented in core. * Core publishes "unified assembly tokens" which can be accesed by the Human (who inputs tokens) and by plug-ins. Core implements even commands target doesnt have. As example ST62 family lacks OR and XOR, however an HIA program using those feed into an assembler would produce working code even if ST62 is selected as target. * If PIC family is selected as target a free mixing of Microchip assembly mnemonics is allowed with access to HIA BYTE variables and constants. * MPASM compatibility plug-in adds Microchip assembly like tokens with access to all variable types. * PASM compatibility plug-in adds Parallax like tokens with full access to all variable types. * If PIC is target MPSIM can be used to see how the compiled code works. * Replaceable core can output fully working, "ready to burn" object code for any supported target. It may be a PIC or COP or even STAMP. * Core can create an universal image than can be executed on IBM-PC or Macintosh computers. * Universal images have full access to host accessable I/O ports over PINAPI (PIN driving hardware Application Programming Interface) drivers. Those a line " PIN 3 TO 1" would set a pin assigned to it on the host to logic state 1 (High level). Generic host hardware like LPT/COM (or even Mac modem port) can be used with free pin mapping. Serial port tokens sure can access host serial ports. * It is possible to check the whole target system buy using universal images and PINAPI compliant simulation hardware. * Default time delay package creates delays precise to one machine cycle. Precision can be reduced to save ROM space. Delays are calculated on the base of the actual clock frequency of the target. * Ready made task plug-ins implement various background processing. Real time clock as example. * Except ready made plug-in tasks, it is possible to write customs tasks, or interrupt driven background processing tokens. * It is also possible to write full raw interrupt handlers in either HIA tokens, core exported unified assembly tokens or in underlaying non portable assembly mnemonics. * Target specific boot sequencies may be handled by separete ONEVENT handlers, to specify different actions on cold reset and watchdog reset as example. * ONEVENT handlers may also be installed on exceptions like illegal opcode interrupt for COP8 family. * In circuit Debug tokens can utilize ISP/download cable or additional debug interface for remote monitoring. (Stand alone remote monitor software required.) * Full listing file control lets you see what is happening only when you want it 2. * You can mark places of interest in listing file for easy navigating (full listing may be huge...:). * Listing file contains not only allocated variables but also internal symbols of core, kernel and plug-ins all clearly marked and grouped. Notice: Target specific restrictions may apply. * Code burning is supported on all suitable PINAPI hardware, with flexible pin remapping. Those if you have any PINAPI compliant device programmer that has just enough pins with required behaviour and there is a PINAPI based device programming software for the device to be burned for your host environment you can make a pin-remap socket, assign pin names (using PINMAP wizard) to much your device programmer to the actual device to be programmed and you should be ready 2GO. Advanced notice: Except PICs and serial ROMs current PINAPI based device programming software supports Atmel Flash micros (supported sure by HIA). COP8 family is expected to be added soon. Other devices added from time to time. Also adding new host environments, currently support for GNU C under GO32. Macintosh native to be added soon too. SoftPC being already supported. Human Input Assembler and PINAPI are trademarks by Silicon Studio. All other trademarks are trademarks of their respective owners. Copyright (C) 1995 Silicon Studio. All rights reserved. NAQ: (Never Asked Questions) ============================ Q1: Can this be true? What is DEFAULT.HIA? A1: Yes. .HIA includes more and more files, all of them using MPASM string substition engine, preprocessor commands, 32 bit Arithmetic/Logic evaluator, macro declarations and conditional assembly statements. Code size produced by " INCLUDE .HIA" statement is always 0. Only Human Input will produce compiled code. Q2: Is it *all* free? A2: No. .<-- thats it HAPPY CHRISTMAS 2 ALL OF U FROM ALL OF ME PS: I'm only an Human and dead tire[d], and TELCO disabled my phone (blessed silence...). So dont expect any replies from me this year just cant handle them. I will collect all mailings and make an collective reply. I'm also outof net access those unable to replace all of those fully out-of-date Web pages on our site. Sorry about that too. PPS: For all of those waiting for a personal reply from me on any other matter, please forgive me of being unresponsive lately. I havent got all mailings and I havent forgotten and will reply as soon as I possible can. It may be early days of next year. ADVANCE NOTICE: HAPPY NEW YEAR 2U2 :) piuks, piuks! {in estonian :-) } Would anyone like to join our design team? Signed NDA is required. My assembly is better than any of the 5 human languages my parser accepts including my native :-) Please feel free 2 write 2 me in german or finnish if U prefer so. antti