********************************************************************* ************ Welcome to the MasterSeka V1.75 history ************** ******* MasterSeka 1.75 (C) by GEORGE II of Subway in 1991 !! ****** ********* MasterSeka is a TradeMark of BUDDHA/Spreadpoint ********* ********************************************************************* Contact GEORGE II for other improvements/bugs! You can get my address from any cool guy or contact me by writing to: SUBWAY, PO.BOX 803, A-8011 Graz, Austria Or leave a message on one of the Austrian Boards. MasterSeka V1.75: (The REAL successor of MasterSeka 1.71. Signed: BUDDHA!) ----------------- I (GEORGE II) continued the GREAT work of Buddha in removing bug/ implementing new features. There exists an "inofficial" version 1.8 made by Corsair of Skid Row. This version 1.8 of Corsair uses REQ.LIBRARY to build a more intuition like interface but FMOP (for my own part), it's STILL thrown away memory... And you STILL HAVE to use the mouse for some operations... Those coders who want to play with intuition should try the WORKBENCH or try to code with CAN-DO (or ask Corsair to re-implement the REQ.LIBRARY- stuff for the third time.) By the way: MASTERSEKA is the Seka-label from BUDDHA/Spreadpoint. If you want to release your own Seka under this label, please ask BUDDHA for permission, otherwise try to find your own label. But lets go one: - Reformatting of history file in reverse order (newest changes at the beginning of the file) done by BUDDHA.... Hard work ;-) Remaining bugs and future enhancements are still at the end of this file! - Find-command improved: You may now search for word/longword aligned data (.b is allowed but useless!) by adding the size: e.g. $50000 aa aa 00 aa aa 00 00 00 f.w BEG>$50000 END>$50008 DATA>$aaaa will only display: $50000 If you want to search for an opcode/assembled line just write: fc[.b/w/l] and MasterSeka will ask for COMMAND> instead of DATA>. Now type in any Codeline like: MOVE.W $DFF006,$DFF180 and MasterSeka will look for it in memory. PC-Relative addressing mode is correctly handled by MasterSeka too! Using an extension [.b/w/l] forces MasterSeka to look only for the first byte/word/longword of the opcode. - Bug removed: Trying to assemble a BRA.S in direct memory assembling mode which was out of range caused addressing errors,privilege violations and sometimes a visit from India. - Pressing ESC to get into Editor won't cause a CR any longer. Works also with the TILDE (~)... (BTW this is a bug in V1.8!). - New shortcuts: AMIGA+ 'T' : Goto Bottom of source (Idea from V1.8) 'G' : Global Replace (Idea from V1.8 but replaces really ALL) 'L' : Toggle Line-Nums ON/OFF (Again from V1.8) - V+return without ever having locked a path will now show the dir MasterSeka has been launched from. (Hi TILT!) - Bugs in workspace-handling removed: There were various bug. Too many to be written down here.(some examples: Workspace full-error coz of typing in source killed source!!, workspace full-error confused Paste-buffer & whole paste-handling.. ) - MOVEM.x Rx,(Ax) or MOVEM.x (Ax),Rx .. allowed. You may now MOVEM one single Register.(but you should not use it, coz it's slower and longer than the normal MOVE. I just implemented it to make MasterSeka more DEVPAC/ARGASM-compatible.) (Hi TILT!) (Note from BUDDHA: MOVEM.x ,Dn may be used if you don't want the flags to be changed!) - Very strange and silly editor-bug removed: Just take an old version of MasterSeka (1.52-1.80) and go to the end of the 27th line in the editor and press DEL. Oooopppss.. the rest of the source (lines 28+) disappeared .. forever. Worked every i*256+27 line! NO MORE. - Little Insert/Remove Comment-bug (AMIGA-,/.) removed: Didn't work in line number 1. Corrected. - New Pseudoopcode: OPT option+/-[,opt+/-,..]. Now you may control the following assemble-options via source: OPT A+ - warn absolute addressing ('A-' to switch off again) OPT R+ - warn relocatible adressing ('R-' = off) OPT L+ - produce linkable code ('L-' = off) OPT O+ - optimize on ('O-' = off) OPT Y+ - Auto-Extern. Load all >EXTERNs after successfully assembling A and R may be used wherever you want to supervise some part in matters of absolute or reloc-addressing. The LAST Y-option is significant and L may only be used before any code producing line. - Another silly bug removed: blk.w/l now complains about ODD adr. - SECTION/SYMBOL/RELOC-handling improved/debug/changed: 1. - New section allowed: SECTION Gname,DATA 2. - Force section to FAST allowed: eg. SECTION Strange,DATA_F (useless but developed by Commodore. Implemented to make MasterSeka more and more Devpac/ArgAsm-compatible. (BUDDHA means: Don't use it anyway...)) 3. - 4 (in words FOUR) New Relocation-Blocks created and the two old renamed: RelCC (relocate in Code-Section to Code-Section (old RelC)) RelCB (rel. in Code to Bss (old RelD)) RelCD (rel. in Code to Data) RelDC (rel. in Data to Code) RelDB (rel. in Data to Bss) RelDD (rel. in Data to Data) =/h (workinfo) now displays: WorkSpace, Source, Link, Paste, RelCC-RelDD, CODE, BSS and DATA. 4. - wo cut off up to 3 bytes of the BSS-sectiont!! Corrected. 5. - wo modified for new capabilities (especially the new section/relocs) 6. - Symbol-overflow-bug removed: symbol-overflow didn't warn WORKSPACE FULL and caused strange, sometimes indian effects. Moved back to europe. (Hi Joerg!) REMARK: MasterSeka's SECTION-Handling is now fully PROFIMAT-compatible. This means, that ALL 'sections' of the same type (CODE,DATA..) are automatically linked together. BTW: There is a mistake in the Force_Code-discription above (written by BUDDHA for V1.53). The LAST SECTION-directive is NOT significant for the Force-behavior of MasterSeka!! Every type has its priority: CHIP, FAST and then PUBLIC. e.g. if one Code-Section is forced to chip, the whole code will be forced to chip-mem!! - Bug removed: When pasting an empty paste-buffer, MasterSeka forgot to _LVOPermit(a6). Had various strange results on the Editor. - Display Symbol-List implemented: =S will show the current symbol-list. - Pseudoopcode DATA changed to BSS. DATA is now equal to SECTION name,DATA and BSS is equal to SECTION name2,BSS (what else?!). Well, this is incompatible to older seka-version, but correct! (and Profimat compatible) - Label-handling improved: Masterseka accepts Underscores('_') at the beginning of a Label/Symboldefinition and Dots('.') will be accepted within the label!! e.g.: _GEORGE.II _LVOExecBase and __.__A. are allowed but .AHA is NOT! .S/.W/.L at the end of a Symbol/Label are not allowed to avoid Addressing conflicts. If you define a Symbol: GEORGE.A = 100 it is still possible to use: MOVE.L GEORGE.A.w,a0. - New Pseudoopcodes implemented: [Label] RS[.B/W/L] amount RSRESET RSSET value +new RESERVED SYMBOL: __RS All done to get more DEVPAC/ARGASM-compatible. This are 'label-commands'. This is very useful to create Offset-sructures. RSRESET resets the internal offset-counter. RSSET sets the offset-counter to a given value. You may get the current counter value by acessing the RESERVED SYMBOL __RS. Just an example: -> counter is initialised 0 by the assembler. -> START: rs.w 1 (START has the value 0,__RS=2) -> rs.l 4 (__RS=18) -> MID: rs.b 3 (MID = 18 , __RS=21) -> END: rs.l 1 (END = 21 , __RS=25) WARNING: Be CAREFUL with RS.W/L on odd addresses! BTW negative amount for the RS-command is not allowed, but ZERO(0) is, so you can define various symbols with the same offset: start: rs.l 0 (all symbol have the same value and __RS stays start2: rs.b 0 the same) start3: rs.w 0 - Another new directive: FAIL will cause **USER ERROR. (DEVPAC/ARGASM- compatible). May be used in conditional assembly... - Another RESERVED SYMBOL added: NARG is the number of arguments given to a macro. Another improvement for more DEVPAC/ARGASM-compatibility. e.g. GG: MACRO IF NARG=1 move.l #\1,d0 else FAIL endm GG 100 GG 100,40 <- this line causes **USER ERROR END - Another Editor-bug removed (probably, what Corsair called 'Major Editor-Bug') Caused pages of trash to be printed on screen. Happened when: entering editor, page up/down,resizing editor... Never again.(hopefully!) - Doublequoting implemented: DC.B '"He''s great"' will be assembled as: "He's great". Once again for Devpac/Argasm-compatibility... - IF-pseudoopcode debugged/improved: IF-handling is rewritten. An example to explain the changes: old(wrong): new: George = 1 George =1 IF George = 2 IF George = 2 DC.B 'wont be done' DC.B 'wont be done' IF George = 1 IF George = 1 DC.B 'should not but did' DC.B 'is not' ELSE ELSE DC.B 'did not' DC.B 'is not' ENDIF ENDIF ELSE ELSE DC.B 'did this' DC.B 'does this' ENDIF ENDIF in words: IF will now behave like in Devpac/Argasm or in Pascal/'C' and not in the strange way it did before. WARNING: If you are one of the very few MasterSeka-Users who used nested IF statements: Check your conditionals! Number of nested IFs changed from 8 to 32. - New great directive implemented: INCLUDE filename to include whole sources and/or symboldefinitions into the current one. WARNING --- INCLUDE is allocating its workmemory, so absolute-address freaks (this time, FREAK is used in its negative sense! Signed: BUDDHA) should be extremely cautious/change their style!! INCLUDEs may be nested. This is only limited by the amount of memory you've got. No hard coded limits! Another WARNING --- Y-command/opt y+ won't look for >EXTERNs in the INCLUDE-files! - Another directive for INCLUDE-handling implemented: INCDIR path INCDIR set a drive and/or path for INCLUDE and INCBIN. MasterSeka searches the current directoy AND the path specified byINCDIR This is especially useful when mixing standard include file with customized ones. e.g.: INCDIR dh0:amiga/assembler/sources/myincludes/ INCLUDE symbols INCLUDE macros INCLUDE startup INCLUDE ABCD:fire/DoCliWbStartup INCLUDE shutdown INCDIR dh0:amiga/data/ INCBIN mypic1 INCBIN "mypic2",alloc_pic2 I did some changes on the file-definition-syntax too: You may leave away the quotes and Masterseka will take the text until SPACE,TAB or EOL. (But INCBIN shit,$50000 won't work. Write INCBIN "shit",$50000 instead.) - Little CNOP/ALIGN-bug removed: CNOP x,0 and similar wrong values will now cause: **Bad Alignment Error in XXX (Hi AMICOM & BUDDHA) - Bugs removed: 1.) When Masterseka fails to open PRT: he won't freeze 2.) INCBIN will now behave correctly with IF 3.) Compare: '>' will work now! - Arithmetic Shift implemented: '<<' and '>>' to shift left/right. E.g.: %11000>>2 = %00110 %00011<<2 = %01100 Also implemented: '<>' means NOT-EQUAL. - Reassembling on first Pass removed (It's not necessary...) -> speedup. - Bug removed: History-allocation will work now correctly. (THANX TO BUDDHA!) MasterSeka V1.71: ----------------- - Bug removed: No silly label fuckups ! Sorry HAWK that will teach me not to use alien code ! MasterSeka V1.70: ----------------- Had to change the version number to 1.7 because of an "inofficial" version 1.6 made by Corsair of Dragons (Hey you, Corsair, it's not very nice to replace my name and only put a tiny remark in the startup message!) This version 1.6 of Corsair uses REQ.LIBRARY to build a more intuition like interface but IMHO (in my humble opinion), it's thrown away memory... And you HAVE to use the mouse for some operations... Another MasterSeka (1.54) by Hawk/Setrox was released too.. You will find all IMPORTANT features of this seka in my version too!! NOTE: Contact me for improvements, don't throw away your energy and code your own version!! But back to more serious stuff: - Separation line inserted when disassembling from a new start adr. ( ';=====...' - Thanks Mike and Tilt!) - CNOP (and ALIGN) corrected: Syntax 'CNOP [Offset,]Alignment' works now! (Hi Mike & Tilt!) - Pseudoopcode: NOLIST = NLIST (Hi Mike!) - Quick assemble (shortcut AMIGA-A) keeps last assemble option - Zapping lines won't confuse the scrollbar any more... - '?0' in macro definition restored to its old function: ?0 stands for a 3 digit number which represents the x-th macro- call: you can place labels in your macros! eg. 'label?0:' \0 is replaced by the macro size (B/W/L). read describtion above to get further information... - Option 'a' (report absolute adr) improved... Now only reports absolute adr modes, not relocation stuff... To get a really clean prg (IMHO), use both options 'a' & 'r'. - New shortcuts: AMIGA+ 'o' : kill old and open new source (only in command mode) 'Q' : asssemble and start prg! (quickstart) ',' : Insert comment (';') to marked block '.' : Remove comment from marked block ALT+ (only in editor mode) : jump to accessed label, label must be at the beginning of the line! : jump back to label call, up to 10 positions are stored/restored! - command 'u' (unload seg) debugged. Hi Depeche! - Search and replace made function in a more natural way: Like in other text editors... Just try... The questionmark '?' can be used as a joker for any other char. (BUT it doesn't work properly in replace mode if replace string has another length than search string!!) - Port routine cleanup: No unneeded ports will be added to the public port list any more... (Burn your Data Klecker books, they're all rubbish!!!) - command 'j' (jump) without parameter will report an error if no prg has been (SUCCESSFULLY) assembled before! - Both copperlists are reset when your prg terminates somehow. This should help to get MasterSeka's screen back when your prg, which uses an own copperlist, produces an exception! The keyboard device's qualifier flags are cleared too, so your keyboard will behave normally after a quick- start. - The pr_CLI (Offset $ac) field in MasterSeka's process structure is now set to a DUMMY value <> 0 to let your prg recognize it hasn't been started from workbench! (read section about remaining bugs below!) - symbol list is more readable now... - Funckeys with your own keymap work now in editor too! (Use ALT+Funckey) - MasterSeka can now handle 64k of labels instead of 32k! Hi Lars (Utopia/TSL) - New command: 'cs' (create sinus table) (NEEDS 'mathtrans.library'!!!) BEG> = starting angle END> = guess what!! AMOUNT> = # of entries to be created AMPLITUDE> = 'height' of sinus wave YOFFSET> = value added to each entry SIZE> = Enter B(yte),W(ord) or L(ongword) - MOUSE SUPPORT !!! Set ya cursor with ya mouse!!! You may also change the editor size by just clicking on (and moving) the separation line! - Minor editor speedup! (ca. 20-25%) - CACR extended to longword (68030 uses word, 68040 longword... The future is now!!) - Bug removed: BTST D0,# implemented!! Shame on me!!! I've to confess: I didn't know this mighty usage of the btst instruction!! Many thanks to Hawk/Setrox (read note below!) Bug in range check for some special instructions (addq, moveq, etc.) removed when using forward referenced symbols! Bug in CMPM removed: checks now for correct destination (Thanks Tilt!) - Pass is shown while assembling... - 'label(An)', 'label(An,Rn.x)' now supported for use in base oriented programs. ('An' should point to the base of current section!) - 'label%' (label followed by '%'): only offset from sectionstart is taken e.g. a: move.l #a%,d0 This is for Profimat compatibility -> Especially for HAWK/Setrox! - Command line option extended: -r Types: 0 = None, 1 = ARP, 2 = Req.library (example: use '-r 2' to use req.library! This file requester caches the directory, handy for (Do they still exist!?!) floppy-disk-only-guys!) MasterSeka V1.53: ----------------- - Kill Paste buffer (kp) debugged - Displaybeep if SEARCH didn't find the string. - 68020 instructions: MULU.L ,Dl MULS.L ,Dl MULU.L ,Dh:Dl MULS.L ,Dh:Dl DIVU.L ,Dq DIVS.L ,Dq DIVU.L ,Dr:Dq DIVS.L ,Dr:Dq DIVUL.L ,Dr:Dq DIVSL.L ,Dr:Dq implemented! - Repeat of HELP key disabled. - Slightly improved history. - Exception handler improved: Address and Bus errors will now be handled normally., i.e. the instruction which caused the error is displayed. It works now with 68000 and 68020 (probably also with 68030...) If you are working on a 68000 machine, the following exceptions DO NOT show the instruction which caused them but the next after it. The disasm pointer will be set 18 bytes before the current PC after all exceptions... - Bugs removed: A negative operand for BLK.B/W/L won't crash your machine any more. Reading a corrupt file won't crash it either. - Write object (wo) improved: Only really necessary information (hunks) are stored! - New assembly directive: SECTION
, valid types (case insensitive): CODE, CODE_C, BSS, BSS_C Example: section BuddhaCODE,code (CODE to public mem) section BuddhaBSS,bss_c (BSS to chip mem) This allows to put selectively one of the sections to CHIPMEM! (Note: At this time, only 1 CODE and BSS section will be created, so the LAST section directive specifies, if that section will go to PUBLIC or CHIPMEM! Fastmemory sections are not supported, because they are totally useless!) - A filename may now be specified after: >,R,RI,RO,W,WO,WI,WL,KF separated by a space! eg. 'WOMyProgram' - Quit short cut improved: You may quit the MasterSeka if you press four times in succession. - Register list extended: VBR (vector base register) and CACR (cache control register) are displayed and may be altered like the other regs (xcacr ...) These registers are only valid if you have an 68020 or higher ('30, '40, ...). Otherwise their value is displayed as 0. - New great debugging ability: You may now break a running pgr by pressing . Note: This works only if you DIDN'T disable task switching (Forbid, Disable or disabling interrupts manually...). Quite useful to break some hanging piece of code!! - ZAP without parameter disabled: Just hitting 'z' won't kill a line any more. To zap 1 line, you have to use the editor (CTRL-K) or 'z1'. You may use the history to repeat it. (Hi Firefly/THR) - Editor scrolling left and right!! (Hi Firefly/THR) - 'DS.B' = 'BLK.B' to improve DevPac compatibility. (Hi Firefly/THR) - Special keys like ESC won't act like on the command line any more. (Hi Firefly/THR) - Paste buffer is now nearly resident :-) :-). But seriously, you may now read a new source and the buffer stays in memory AND ALL LAUNCHED MASTERSEKA SHARE THEIR PASTEBUFFER!! -> Cut from one and paste to another!!! If a CUT/PASTE conflict occurs, not enough memory for the block remains or the buffer is empty (PASTE) -> DisplayBeep - If you launch more than one MasterSeka (they must be the same version!), they all will run on the same code, i.e. no extra memory is used for the second running copy of the code. Technical remark: To make MasterSeka as waterproof as possible, I had to take its segment out of the MemEntryList -> if you KILL the MasterSeka process (using Xoper etc.), you lose about 30K. - New directive: INCBIN "filename"<,MemoryAdr> eg: MyData: incbin "superpicture.raw" instead of: MyData: blk.b superpiclen >extern "superpic.raw",MyData If you specifiy a memory address, MasterSeka will try to allocate the required memory and the the file. If it can't allocate the memory, you MUSTN'T load the data manually or you will risk to crash the machine! Your data will only be load once and stay there until you: a) quit MasterSeka b) kill your source (ks command) c) New command 'KA' (kill absolute data) - New commandline option '-L ': -l 0 = No line numbers -l 1 = Line numbers on - Bugs removed: - BTST Dn,8(An,Dn.W/L) doesn't cause an error any more - A faulty written mnemonic won't be taken as a label any more if it is intended,i.e. if the line starts with a whitespace - Assembling a buggy prg with option 'V' won't crash any more - If you press a funckey to jump to a mark which hasn't been set before, nothing will happen! - Long delay when pressing delay to edit a VERY long source removed. (Number of lines is now calculated only once when source is load) - Problem when using ORG,LOAD and BLK solved. No more 'Work- space full' error! MasterSeka V1.51: ----------------- - Speed contest with SEKA V3.2 by PROMAX started :-) New CLI-option '-s ' : Use Screen with bitplanes instead of window. Depth may be 1 or 2. Two bitplanes do NOT slow down the output, it only uses more chipmem! '-s 0' switches screen option off - a window is used. REMARK: Hey Promax, this Seka is still shorter than yours! BTW, my seka handles multitasking correctly! The blitter too is a part of the multitasking ... First I made a mistake using QBlit which made my routine crash when used during disk access. I nearly lost the GREAT source of the MasterSeka because I was scrolling around in the editor while I was saving a backup of the source... BOOOOM! Luckily it was only a backup... As I discovered later on, Promax seems to make a comparable mistake in his SEKA (and he turns on the BLITTERNASTY bit without clearing it any more). One more reason to use mine ;-) :-) The '@' (execute) command works in all modes (Window/Screen and CLI/WorkBench!) - (stop output) improved. New: It toggles output on/off. - (mark block) now toggles block on/off. - Paste buffer is NOT cleared any longer when : a) Jumping to a mark b) Top/Bottom of file c) Leaving editor (!) So you may leave the editor, do something, return to editor AND PASTE! To get rid of the paste buffer (and get its memory back), a new command has been introduced: 'kp' (kill paste buffer) 'r' (read source) and 'o' (old) are the only commands that will kill the paste buffer also... - The remembered filename's extension ('.S' etc.) in the arp filerequester is now cut off... - New CLI-Option '-x' (eXit Workbench): Closes WorkBench if possible (Only possible if no CLI-window is open and MasterSeka is running on a SCREEN! Of course you may put this option in your startupfile). - New command 'wb 0|1': Closes|opens the Workbench! (Only when MasterSeka is running on a SCREEN!) - After (delete to end of line), the cut part is in the paste buffer. - F-keys now always work: An altered keymap doesn't confuse MasterSeka! (To use f-key macros of an altered keymap, press ALT+) - and displays help texts for short cuts in editor. - New CLI-Option '-b ': Use scrollbar! Side can be 0 (no scrollbar), 1 (scroll bar on the right side) and 2 (left side)! - Direct memory assembling improved: old memory content is disassembled and may be accepted by pressing . Entering a new instruction replaces the old one. - Disassembling improved: Memory content is displayed as hexdump too! - Problem with locks solved: MasterSeka now properly unlocks ALL locks! - Program counter is shown as EOP if the end of the program is reached. - Loading a too long source is handled correctly. - Improved assemble options. MasterSeka V1.41: ----------------- - MasterSeka now adapts process priority of launching process (CLI). - The startup file is now searched at the following locations: 1. CURRENT DIR 2. DEVS: 3. S: - AND and OR bug removed: AND.W/L An,Dn and OR.W/L An,Dn now reports error! (Please refer to MC680X0 manual: Illegal addressing mode!) - 68020 TST An TST d16(pc) TST d8(pc,Xn) Allowed! BUT: Disassemble doesn't warn these 68020er instructions! - MasterSeka drastically shortened! Size reduced by 4.6 K! - BTST.L and BTST.B are allowed and checked now! - ASL/ASR/LSL/LSR/ROR/ROL/ROXL/ROXR accessing a memory address now checks size to be WORD (or omitted of course)! Disassembling corrected from LSL.B to LSL.W too! - Optimize to short branch debugged: It should now work!!! - EVAL (?-command) binary: 32 bit are printed in 4 (byte) packets! decimal: Aligned and preceded by a '#' - Start message now displays maximal workspace size! - MACRO definition improved: 1) Standard '\' can now be used like '?' e.g. HolyCow: MACRO move.w #\1,d0 ENDM is the same as BloodyFox: MACRO move.w #?1,d0 ENDM 2) 'Missing ENDM' is now reported if: - ENDM is missing - MACRO definitions are nested 3) To use a '?' or a '\' char in a macro use double-'?' and '\' e.g. moveq #'??',d0 -> moveq #'?',d0 4) Parameter 0 (\0 or ?0) refers to the size given in the macro call: Example: yup: MACRO move.\0 #\1,d0 ENDM Default size: Word yup 1990 = move.w #1990,d0 yup.b 19 = move.b #19,d0 yup.l 42 = move.l #42,d0 - Constant symbols AND labels may now be defined with or without a colon: e.g. Byte moveq #0,d0; LABEL Rider = 100; SYMBOL sun equ $fc00d0; SYMBOL WARNING: It doesn't work yet with MACROS!!!!! - 'ALIGN' improved: Old (and still supported) syntax: ALIGN X -> Align to X bytes New : ALIGN Y,X -> Add offset Y after aligning to X Standard 'CNOP' can be used instead of 'ALIGN'! - '@' (execute) improved: command may be put directly after '@' (example: '@list MasterSeka'). - Using ALT+ won't disturb editor any longer. F-keys won't disturb command (direct) mode any longer. - 'v' changes current dir WITHOUT displaying it! - The CLI- or StartupFile-Option to preload a file has been extended: Now you may also specify a path (ending with ':' or '/') which will be taken as start current dir! (example: 'BYTE'S_HD:SOURCES/') - The editor froze under certain circumstances... Not any more!!! - Bug in file preload fixed. (Did you know that you can execute a command like 'd' or 'q' by pressing instead of and the output will go to the printer?) - The ARP-Filerequester now "remembers" the last filename. - Improved command history! CLI-Option '-h ' determines size of history Default is 127 bytes history stack which holds ca. 13 commands! - '>' (output) command repaired. The first time you enter '>' you will be asked for a filename to copy output to, the second time your previously opened output file will be closed. - Assemble Option 'r' (warn non-relative addressing modes) improved: Absolute memory addressing warning added. - Disassemble: After a change of program flow (a JMP, BRA, RTS, etc.), a separation line is inserted... Handy to distinguish the routines. MasterSeka V1.36: ----------------- - DOS In-/Output handle set to MasterSeka window. - Disassembling of negative offsets corrected. - MasterSeka now handles other fontsizes correctly. - 'h' or '=' command (WorkInfo) shows now only RelocC and RelocD bytes which are really needed. (Previously: Value plus 8...). - New ASSEMBLE option: 'r' MasterSeka complains if the code is not PC-relative... Makes it easier to find some hidden bugs caused by lacking address independance of the code. (BTW: PC-relative code has in fact many advantages to absolute. It is one of the golden rules to write PC-relative stuff. MOVE.L D0,LABEL should be changed to LEA LABEL(PC),A0 MOVE.L D0,(A0) This method doesn't need more bytes but you gain 4 bytes in the relocation table, it is boot block compatible, etc.etc. Clever coding makes it always possible to have some address register you may use... So, it's up to you to make the AMIGA even stronger..... signed BUDDHA) - New 68020 addressing mode: Any index register may now be scaled! Example: MOVE.L (A0,D0*2),D1 New 68020 instruction: EXTB.L Dn (Warning: Use it only if you know what you are doing!!!) - 68020 stuff (Only the already supported) is now disassembled too! MasterSeka V1.34: ----------------- - Extra large windows (i.e. all window sizes) are now handled correctly. - 68010/20 instructions: MOVES MOVEC (full 68020 syntax!) RTD (Example: movec cacr,d2) - New 'ro' command: Load executable program (LoadSeg) 'u' command: Unload last program loaded by 'ro' 'u ' command: Unload program at specific address (Use UNLOAD only if you know what you are doing...) - MOVEA implemented. - SWAP.W, MULU.W, DIVU.W etc. now accepted. - Write object corrected: Saving a object module twice won't differ any longer. In older versions, up to three bytes (to round the size up to 4) could differ. That's corrected. (BTW: The older sekas saved one longword too much. Corrected too!) (Also 'kl' command corrected. Broken in older MasterSekas.) - 'Relative mode error' corrected: The same problem described above with negative symbols as the 'Relative word/byte error' with positive ones. Refer to description of V1.24 above for further information. - Invalid addressing mode 'Offset(Ax)+' will be reported. - MasterSeka tries to determine faulty position in the source code and prints it out inverted. - New 'c' command: Compare Memory, differing addresses are printed out. (Copy Memory is now command 'co'!) - Disassembling is now done in lowercase. (Tschou Deppesch!) - After assembling, 'd','q','n','m' can be used without parameters and display the start of the object code. - BRA.W accepted as BRA.L (Hi SCA!). - Improved window size specification mode: Option -w Checks PAL/NTSC & NON-/INTERLACED Option -w+ Uses Workbench size (Like V1.31) - New CLI-Option '-r': Use Arp File requester! - Temporary problem with '[' & ']' solved (Thanx Depeche!). MasterSeka V1.31: ----------------- - Bugs removed: - 'wo' (write object) now creates correct hunks. - 'v' (show dir) now unlocks its dir. - Trackdisk commands now clean up correctly! - Great new command line parsing (CLI options) added: MasterSeka ... Possible parameters are ( is a number in hex or dec): Workspace size Source to preload -a Use absolute mem at ADR for workspace -c Use Chipmem for workspace -e Editor lines -w X0 Y0 Window specifications (To get a 10/10/620/120 window, write '-w 10 10 620 120' difficult eh? ;-) ) E.g. 'Masterseka 100 MySource -c' uses 100k chipmem and loads the file MySource to edit/assemble. AND you may store a default configuration in 'S:MasterSeka.startup'! Example: Write the following two lines to 'S:MasterSeka.startup': 100 -w 0 1 0 0 That means: Your MasterSeka will have a default workspace of 100k and will open a window with the top left corner at the position (0/1). Setting 0 the width and heigth (or any parameter) uses the default value for them. - Pressing alone now also cancels 'c' (copymem) and 'fi' (fill). - New 'r' & 'w' (read/write source) mode: You may type 'rsourcename' to load a source. " 'wsourcename' to save " - Speed of assembling improved: BLK.X will be assembled much faster! MasterSeka V1.26: ----------------- PS: Since version 1.0: printer.device is only opened if really used! - Pressing is now ignored. No more trash produced. - Command '?' prints now a signed dec number (-2 instead of 4294967294) MasterSeka V1.24: ----------------- - Editor scrolling debugged: doesn't bug any more, ""-bug removed. - SHIFT-LEFT and SHIFT-RIGHT now works in Command-Mode too. - Pressing now repeats 'q.w $200', 'q.l $200' as it should. - Default value to fill a block ('BLK.X ') is now 0 instead of -1. - New math operation '^': 2^3 ( =2*2*2 =8 ), 3^5 ( =3*3*3*3*3 = 243 ),etc. - MEGA-BUG removed: ( '/' means or!) lea X(An,D/An.w/l),a0 with X > 127 / X < -128 : Out of range reported! lea X(PC,D/An.w/l),a0 with distance > 127 / < -128 : Dito! lea X(An/PC,D/An.Y) with Y not 'W'/'L' : Illegal addressing mode reported! (Hi AMICOM!) Remark: Leaving away the size of the offset register, LONGWORD(!) is taken as default. Standard would be WORD, but the old Seka takes longword, so for the sake of compatibility, I left this bug! Example: LEA 12(A0,D0) is equal to LEA 12(A0,D0.L) - MOVEQ got some new modes: (Hi AMICOM!) X: -128 < X < 128 Y: -256 < Y < 256 MOVEQ.L #X,Dn = MOVEQ #X,Dn MOVEQ.B #Y,Dn ( Inofficial syntax!!!! But it allows a range from -256 to 256! remember: The value is sign-extended, i.e. the whole longword is affected !) Remark: MOVEQ.B #200,Dn means the same as MOVEQ.L #200-$100,d0 or MOVEQ #-56,d0 - Bug in read/write sectors/cylinders eliminated. - 'rs', 'rt', 'ws' & 'wt' commands without a drivenumber accesses last chosen drive (or DF0: if none set). Defaults for 'rs' (read sectors) and 'ws' (write sectors) commands: BEG> : $50000 SECTOR> : 0 AMOUNT> : 2 (Just press to use one of these defaults. If you use defaults for SECTOR (0) and AMOUNT (2) [Though you want to write a boot block], the boot block checksum is calculated automagically.) Defaults for 'rt' (read cylinders) and 'wt' (write cylinders) commands: BEG> : $50000 CYLINDER> : 0 AMOUNT> : 1 - Another bug removed: The Seka sometimes stopped assembling with a 'Relative Word/Byte' error when a Symbol/Label was accessed which was defined later in the source. (For example: LEA BUDDHAoffset(a4),a0 . . BUDDHAoffset: = $C64 produced a 'Relative Word/Byte' error, so you had to change your source to: LEA BUDDHAoffset+0(a4),a0 etc. ^^ to deceive the Kuma Seka.) This bug has been corrected. Hi AMICOM! - WindowTitle now shows the full current path. MasterSeka V1.2: ---------------- - Editor marks now remember X- and Y-positions AND MasterSeka 'tries' to track the marks, i.e. entering/deleting lines before a mark will also move the mark's position (except when you are editing the same line a mark is placed... I'll try to fix that sometime) ! WARNING: Jumping to a mark or will clear your cut/paste buffer! I'll remove that bug as soon as possible! - New Commands: rs = read sectors rt = read cylinders ("tracks" is more common but wrong!) ws = write sectors wt = write cylinders : Drive number (0-3) BEGIN> : Address to read to/write from SECTOR/CYLINDER> : First Sec/Cyl to read/write AMOUNT> : Number of Sec/Cyl to read/write (example: Use 'rs1 $50000 0 2 ' to read the boot block from DF1: to $50000) b = Calc BootChkSum for boot block at address (example: 'b $50000' :-0 ). cls = Clear Screen (not a mighty command, but ...) - Bug in MasterSeka 1.0 & 1.1 corrected: BTST DX,DX didn't work. Fixed! - Disassemble now prints: a) MOVEM.L (a7)+,D0-D7/A0-A2/A5 instead of MOVEM.L (a7)+,D0/D1/D2/D3/D4/D5/D6/D7/A0/A1/A2/A5 b) Negative offsets as signed decimals Positive offsets as unsigned hexnumbers (example: MOVE.W #$00F,$180(A5) but JSR -552(A6) !) - Command 'n' (disassemble) has changed its place; it's now called 'd' (old 'd' command [editor x lines down] has been removed). - New command 'n' = ascii dump memory (example: 'n $50000'). - in editor: Kill actual line. - Pressing alone will now repeat the last command if it was one of these: D (disassemble), Q (Hexdump), N (ASCIIdump) - Little bug in the startup-code fixed: CLI/SHELL the MasterSeka is launched from will now behave normally. - EDITOR SCROLLING IMPROVED!!! Just try it!!! MasterSeka V1.1: ---------------- - Some commands changed their place: 'h' has got its old function : Info about Workspace etc. 'f' = FIND (previously h = hunt) 'fi' = fillmem - Fillmem ('fi') and copymem ('c') now have warnings to prevent crashes. - Zap: if you zap more than 20 lines, they won't be printed out any more, so Zap is now much faster. - (Top/Bottom of file in editor) crashed sometimes. It should work now. - Editor marks are now implemented: F1-F10: Jump to mark 1-10 Shift F1-F10: Set mark 1-10 ! MasterSeka V1.0: ---------------- - can now be started from WorkBench (odaer Werchbank , Sali Chris!). - accepts CLI-parameters, i.e. Workspace can be chosen from CLI: type 'MasterSeka 50' to start MasterSeka using 50k workspace (Public). - The hunt command has been improved to support search for longer hex data (i.e. where in Seka V3.0 you had to enter DATA>$70,$00,$60,$06 you may now enter: DATA>$70006006 - The file length is now displayed DEC and HEX and not Pizza. - 'ri' will now display start- and endaddress after having load the file. - Silly endmark (ASCII $1A = CTRL-Z) won't be saved with the source any longer. - Lines with more than 70 characters won't trash the edit window. - MasterSeka will AUTO RUNBACK, i.e. will detach itself from CLI! - The way Seka assembles BRAs has been improved the following way: Optimize will only optimize branches with UPPERCASE ".L", so you are able to set some branches to long by yourself, which are NOT CHANGED! (Thanx to AMICOM for that idea!) Example: bra , bra.L, BRA.L will be optimized (changed to bra.S), but bra.l, BRA.l won't! - One-Hand-Scrolling has been improved: = Screen Up (also ) = Screen Down (also ) = 100 lines up = 100 lines down - jumps to Start/End of Line. - BUSY WAITING has been removed,i.e. MasterSeka will now multitask better! - '!'-command now offers 3 possibilities: a) Exit to System b) Restart MasterSeka (you may change WorkSpaceSize!) c) Abort '!'-command - Write Object has been modified once more (no more 'MODE>' to ignore): 'wo' works like in Seka V1.5 (public hunks) 'woc' produces chipmem hunks, i.e. CODE will be loaded to CHIPMEM! (I implemented this feature though it's a loser feature, because only sloppy programmers occupy worthy CHIPMEM (or GRAPHICSMEM as it will be in KickStart 1.4) with CODE! But I know that there are lots of 'coders' who ignore all the rules which make the AMIGA more powerful than ATARI or (I)diotic (B)ullshit (M)achines. AMIGA: BTTR (better than the rest! Hi BTA-Depeche!) - in editor jumps to top of file. But if you are already there MasterSeka jumps to the bottom of the source! ************************************************************************** Other known but remaining bugs: - The link option is broken. I'm working on it! - Depending on the DISKNAME (name includes special chars as '#'.) sometimes a requester 'INSERT VOLUME etc.' appears. CHANGE THE NAME OF THAT DISK to get rid of that problem... It's a problem of the ARP filerequester! You may use the REQ requester instead! - Again: Warning if you are using macros. There IS some in- compatibility with KumaSeka: Please reread description of macros above (V1.41)! You'll have to make some minor changes to older macro definitions... No problem... - Not really a bug, but a problem caused by directly loading some data (pics,...) to an absolute adr. The new way MasterSeka handles the paste buffer may overwrite your previously load pic OR even worse: vice versa! To get rid of that problem I advise you to: a) Don't load your data to an absolute adr (bad style of programming anyway! Such a program won't run on all AMIGAS and won't be able to get the best out of every configuration) b) If you really WANT to load your data to a fix adr, use the INCBIN command! See description above! - Many users reported the same bug to me: Their CLI-utilities crashed if they tried to read/write to the filehandle they got from INPUT/OUTPUT! You definitely HAVE to check if your in/output handle is 0 and you mustn't assume you get a handle <> 0 if you've been launched from CLI (or your prg will crash if started with 'runback' anyway)! If your handle is 0, open a in/output window. At the moment, this window will open on the WB-screen... Trying to change this produces annoying side effects! The pr_CLI pointer definitely is a DUMMY value, so just use it to check CLI/WB start. It is not possible to read/not allowed to write further infos from/to this structure! - Comments after DIVU.L with 64 bit destination will confuse MasterSeka! Don't use comments after such (68020+) instructions!! (Hi AMICOM!) Features for the future: - Local Labels - Linking - Full-Screen-debugger (Hi Amicom) - No section limits - MAYBE a improved version of BLINK to handle OVERLAYS. - Variable screen sizes! (Interlace, Overscan) - Close Gadget for the window... Especially for the Mega Mighty One! Thanks to AMICOM,DEPECHE,MIKE,TILT (all Spreadpoint), Byte Rider and Tigger, Chris, René, Hawk/Setrox Hater of Area08, Firefly/THR, Lars (Utopia/The Silents), Keyjay/IT, Mr. Spiv/Cave, Beermacht/Tristar, TRS/Armada for reporting bugs / new ideas... Also thanks to CONQUEROR, JOERG and HANNES. --- VERY SPECIAL THANX TO -BUDDHA- FOR ALL. (Cubes rule!) --- (Very special thanks from me to George II for continuing my legendary MasterSeka! You've done great works! Friendship rules! Signed: BUDDHA) BTW: When reporting bugs, enclose a description which version you are using right now... Helps me tracking down problems .... Have fun... George II