*---*---*---*---* Version 4.11 Update 3 2007_04_01
Update_03 for the ASxxxx Assembler and Linker Version 4.11 (50K)
(use 'pkunzip -d U03411.ZIP' for extraction with MS-DOS)
(use 'unzip -L -a U03411.ZIP' for extraction with Linux)
This update for Version 4.11 of the ASxxxx Cross Assemblers includes an update to the ASPIC assembler and associated fix to ASLINK: 1) Change the pic addressing to lo / hi from hi / lo byte ordering. 2) The update fixes an error in the pic17 series LCALL instruction. 3) A rewrite of the pic18 series assembler to change the PC addressing from 1 per 16-bit word to 1 per 8-bit byte and add the extended instruction set. 4) Modify the Linker Merge Mode processing to take into account the discarded low order bits for PC Relative Addressing. 5) New tstscn files for testing the assemblers. Merge the update asxv4pxx directory and subdirectories with the V4.11 distribution. The following files will be overwritten: [asxv4pxx\aspic] pic.h picext.c picmch.c picpst.c [asxv4pxx\aspic\p18cxxx] tpic18cx.asm tpic18cx.bat tpic18cx.def tpic18cx.lnk [asxv4pxx\asxmak\cygwin\misc] tstscn.bat [asxv4pxx\asxmak\cygwin\misc\backup] tstscn.bat [asxv4pxx\asxmak\djgpp\misc] tstscn.bat [asxv4pxx\asxmak\djgpp\misc\backup] tstscn.bat [asxv4pxx\asxmak\linux\misc] tstscn.mak [asxv4pxx\asxmak\linux\misc\backup] tstscn.mak [asxv4pxx\asxmak\symantec\misc] tstscn.bat [asxv4pxx\asxmak\symantec\misc\backup] tstscn.bat [asxv4pxx\asxmak\turboc3\misc] tstscn.bat [asxv4pxx\asxmak\turboc3\misc\backup] tstscn.bat [asxv4pxx\asxmak\vc6\misc] tstscn.bat [asxv4pxx\asxmak\vc6\misc\backup] tstscn.bat [asxv4pxx\asxxsrc]: asmain.c asout.c asxxxx.h [asxv4pxx\linksrc]: aslink.h lkhead.c lkrloc4.c [asxv4pxx\asxxhtml] asxbug.htm asxupd.htm You must recompile all the ASxxxx assemblers and linker to incorporate the update. *---*---*---*---*
*---*---*---*---* Version 4.11 Optional Update 2 2006_11_01
Update_02 for the ASxxxx Assembler and Linker Version 4.11 (50K)
(use 'pkunzip -d U02411.ZIP' for extraction with MS-DOS)
(use 'unzip -L -a U02411.ZIP' for extraction with Linux)
This update for Version 4.11 of the ASxxxx Cross Assemblers includes: 1) OS9 definition files and an OS9 assembler module which creates the OS9 header, code and data areas, and the module CRC block: os9_mod.def OS9 Module Definitions os9_sys.def OS9 Sytem Definitions os9_mod.asm OS9 Module Begin / End Code 2) a program, s19os9, to post-process assembled OS9 modules in S19 format into binary OS9 modules with the appropriate header checksum and module CRC values calculated. 3) new make and project files which may be used to compile the s19os9 program. Merge the update asxv4pxx directory and subdirectories with the V4.11 distribution. Note: It is recommended that Optional Update 01 also be installed to update the default pagination behavior of the ASxxxx Assemblers .list, nlist, .page, and .include directives. Prepare your OS9 module as described in os9_mod.asm. os9_mod.asm contains a working OS9 module which can be built using the included module.asm and bldmod.bat files. Once you have assembled your module into an s19 file use the program s19os9 to create the binary OS9 module file. The program s19os9 is invoked from the command line: s19os9 mod.s19 -o mod.bin where mod.s19 is the input s19 file and mod.bin is the os9 binary output file. The following OS9 Driver assembler program shows the steps required when creating an OS9 Driver using the os9_mod.asm file. os9_mod.asm loads the os9_mod.def and os9_sys.def files, defines the software interrupt macro os9, and creates the os9 driver header and crc blocks. ;**** ; Step 1: ; Use the .define assembler directive ; to insert the parameters into the ; os9_mod.asm's header structure. ; ; Note: See the file os9_mod.asm for ; parameter names and definitions. ; .define OS9_ModNam, "LSTNAM" .define OS9_Typ, "PRGRM" .define OS9_Lng, "OBJCT" .define OS9_Att, "REENT" .define OS9_Rev, "1" .define OS9_ModExe, "LSTENT" .define OS9_ModMem, "LSTMEM" ; Step 2: ; Set the symbol OS9_Module equal to 1 ; and .include the file os9_mod.asm. OS9_Module = 1 ; OS9 Module Begin (==1) ; .include "os9_mod.asm" .nlist .include "os9_mod.asm" .list ;*** ;*******; Driver Code Begins ;*** ;*****-----*****-----*****-----*****-----*****-----***** ; LIST UTILITY COMMAND ; Syntax: list; COPIES INPUT FROM SPECIFIED FILE TO STANDARD OUTPUT ; Step 3: ; Allocate the storage in .area OS9_Data .area OS9_Data ; STATIC STORAGE OFFSETS BUFSIZ .equ 200 ; size of input buffer Base = . IPATH = . - Base .rmb 1 ; input path number PRMPTR = . - Base .rmb 2 ; parameter pointer BUFFER = . - Base .rmb BUFSIZ ; allocate line buffer .rmb 200 ; allocate stack .rmb 200 ; room for parameter list LSTMEM = . - Base ; Step 4: ; Insert the Module Code into .area OS9_Module .area OS9_Module LSTNAM: .strs "List" ; String with last byte or'd with 0x80 LSTENT: stx *PRMPTR ; save parameter ptr lda #READ. ; select read access mode os9 I$OPEN ; open input file bcs LIST50 ; exit if error sta *IPATH ; save input path number stx *PRMPTR ; save updated param ptr LIST20: lda *IPATH ; load input path number leax *BUFFER,U ; load buffer pointer ldy #BUFSIZ ; maximum bytes to read os9 I$READLN ; read line of input bcs LIST30 ; exit if error lda #1 ; load std. out. path # os9 I$WRITLN ; output line bcc LIST20 ; Repeat if no error bra LIST50 ; exit if error LIST30: cmpb #E$EOF ; at end of file? bne LIST50 ; branch if not lda *IPATH ; load input path number os9 I$CLOSE ; close input path bcs LIST50 ; ..exit if error ldx *PRMPTR ; restore parameter ptr lda ,X cmpa #0x0D ; End of parameter line? bne LSTENT ; ..no, list next file clrb LIST50: os9 F$EXIT ; ... terminate ; ;*****-----*****-----*****-----*****-----*****-----***** ;*** ;*******; Driver Code Ends ;*** ; Step 5: ; Set the symbol OS9_Module equal to 0 ; and .include the file os9_mod.asm. OS9_Module = 0 ; OS9 Module End (==0) ; .include "os9_mod.asm" .nlist .include "os9_mod.asm" .list *---*---*---*---*
*---*---*---*---* Version 4.11 Optional Update 1 2006_11_01
Update_01 for the ASxxxx Assembler and Linker Version 4.11 (52K)
(use 'pkunzip -d U01411.ZIP' for extraction with MS-DOS)
(use 'unzip -L -a U01411.ZIP' for extraction with Linux)
This update for Version 4.11 of the ASxxxx Cross Assemblers modifies the functionality of the .list, .nlist, .page, and .include directives. The .list and .nlist directives are now modified by .if / .else / .endif processing so that they are active only in a TRUE clause. The .page and .include directives are now modified by the .list and .nlist directives so that pagination occurs only when listing is active. The new default functionality for the .list, .nlist and .page directives may be modified by including an optional argument in the directive as shown here for the .list directive: .list arg a non-zero argument invokes the directive irrespective of the .if / .else / .endif status. Merge the update asxv4pxx directory and subdirectories with the V4.11 distribution. The following files will be overwritten: [asxv4pxx\asxxsrc]: asexpr.c aslex.c aslist.c asmain.c asout.c asxxxx.h [asxv4pxx\asxxhtml] asxupt.htm You must recompile all the ASxxxx assemblers to incorporate the update. Note: This update includes Patch 01 for Version 4.11 of the ASxxxx Cross Assemblers. *---*---*---*---*
*---*---*---*---* 2006_07_26
Patch_01 for the ASxxxx Assembler and Linker Version 4.11 (11K)
(use 'pkunzip -d P01411.ZIP' for extraction with MS-DOS)
(use 'unzip -L -a P01411.ZIP' for extraction with Linux)
ASxxxx: The assembly of a direct page instruction with a numeric constant causes a program crash when a .rel file is created. e.g.: andb *0x02 The use of a symbolic constant or symbol plus a constant compiles normally. val = 0x02 andb *val andb *extern+0x01 The assemblers effected are: as6809 as6812 ash8 aspic Merge the patch asxv4pxx directory and subdirectories with the V4.11 distribution. The following file will be overwritten: asout.c R_PAGN processing corrected The following new subdirectory and its files will be added to the asxtst directory: r_pagn R_PAGN Direct Page Processing Test You must recompile all the ASxxxx assemblers to incorporate the patch. *---*---*---*---*
... Return to the ASxxxx Assembler Index
Last Updated: March 2007