Things to fix ~~~~~~~~~~~~~ 4.aug.93 movem.l d0/a1 if An then something goes wrong... fix fixed 5.aug.93 5.aug.93 Big fixes to the CalcExp to alloc * as CurPc and fix << and >> (now only < and >). fixed 7-8.aug.93 9.aug.93 CalcExp has something wrong in arg2nopar and fix following getvalue and nextoperator. It should sense end of expression bit earlier, i.e. somewhere here or at least after DoCalc. Fixed in late aug by total rewrite of calcexp. 11.aug.93 "asm a.o" , "asm a" both crashed... ??? Should not crash even if we try to assemble complete garbage. don't crash anymore, don't know why. 26.aug.93 11.aug.93 (10,za0,d0.w) for example is not translated to the new fix mode but old disp8(a0,d0) and then zero suppressed An is not translated right. fixed 15.aug.93 16.aug.93 ExpLen and GetSymLen won't handle " and ' marks fix right. Fixed in ~20.aug.93. 30.aug.93 1$ bra 1$ tulkitaan virheelliseksi numeroksi. fix fixed 5 minutes later. 26.sep.93 If symbol dumbing on, handles only first section. fix fixed little later. In fact it crashed....now fixed. 28.sep.93 cnop won't work anymore !!???. Won't align right. fix was in dc.b 'string'. fixed little later. 2.oct.93 pass2 errors... when undefined symbols in macro... error messages are little bit hmm...not so good. part fix little later. Now line refers to file. 13.oct.93 dc.s %0101010011110111... went to null. fix 14.oct.93 Hmmm... lot's of problems with character handling... fix Things get wrong sizes... 16.oct.93 a dc.l 0 fix max = *-a moveq #a,d0 a menee relativeksi, vaikka se pitäisi olla abs. 17.oct.93 same day dc.b 'a,c' menee 'a ja c' ... korjaaa..... fix 17.oct.93 20.oct.93 68000:lla loppu muisti macrossa, kaatu... fixed Oltiin monen macron sisällä... 21.oct.93 Ei oikein toimi kunnolla kun muisti loppuu kesken... fixed Source file jää auki, pientä... Muistin loppuminen hoituu nyt. macro rutiinissa ei testattu dead end virhettä yhdessä kriittisessä paikassa 18.nov.93 and.w #~$f1ff,d0 overflow-> argh! Pieniä periaate- ongelmia. No fix, not real bug, it is a feature. 20.nov.93 move.l #5,10(a5) won't set offset data. fix 2x.nov A silly bug fixed. 26.nov.93 cnop 0,4 fix 27.nov ds.l 2 ei pitäisi tulla cnop koodia. Vaan tulee. Oli ongelmia ds direktiivissä. 2.dec.93 tst.l (10) goes to (BD,An,Xn) mode instead of fix absolute word addressing. Check Optimizer. ParseAm had little problems, fixed. Optimizer ok. 6.dec.93 local symbols won't work. (.abba equ 10). fix little bug, now does 7.dec.93 F040 liput fpu käskyihin! fix 14.dec.93 LineCount ihan päin persettä. fix 21.dec.93 nea9 uupui globalista. v1.39 15.jan.94 include ilman parametria kaataa... fix tarkistus puuttui yhestä paikkaa v1.40 21.jan.94 bss hunk chippiin tai fastiin kopioi datan. fixed 7.apr.94 Huh! (data,An,Xn) generates always D0 in Xn when fix 'data' is defined after that line. Seems to be undef solving problem. Big BUG!!!. Hmm, find more problems from the Opt module. fixed. This one was in PutEa routine. It didn't set extension word if undefined or relative disp8(An,Xn) 7.apr.94 more problems (.tbl,d0.w) went to disp8(An,Xn) urf. fix ea handling had some problems 29.may.94 include a:abba.i causes problems: Treats : as a separator fix not as a device name. Tarkistaako HandleFile että file eikä dir, myös inc_hadnlefile ? same day Kun macro jo määritelty, macroa aletaan kääntämään fix normaalisti. same day ifle tai ifgt häikkää... kokeile devices/prtbase.i fix ift did signed check sameday Z:lla alkavat symbolin nimet tulkataan ZAn rekisteriksi. fix huh huh. Taitaa olla aika päästä eroon koko Zan hommasta. fixed 2.jun.94 movep d0,0(a0) ei salli 0:aa displacementiksi. fix Vika on siinä että SNMA optimoi nollan pois. same day Jos bsr.l somewhere toiseen moduleen, pitäisi varoittaa! 3.jun.94 dc.b 'abba'10 niin tulee 'abba10' stringgi. 13.jun.94 abba = label+2 , jos label on osoite niin menee silti absolute symboliksi. Uupui yksi expflag asetus. 17.jun.94 ins_size is sometimes long. Make sure it is took for fix granted. FIX. yes no, problems... direktiivit joissa ins_size on long eivät luo undef:fejä. 18.jun.94 Varmista buffered filekäskyt, jos sattuu olemaan ei fix bufferoituja niin flush() väliin. tarkistettu. same day dc plus muut vastaavat eivät putsaa ea2:en mode kenttää fix ja jos edellinen käsky sattui olemaan semmonen missä tämä kenttä oli käytössä (siisjoku kahden operandin käsky, direktiivejä ei käsitellä HandleEA:lla joka asettaa ne) niin makeinst tottakai otti sen huomioon. Selvittiin asettamalla nea2+eff_mode(a4) -1:ksi. 23.jun.94 equ_c ei tajua tarkistaa josko symboli sattuisi olemaan tyyppiä REL-REL, joka täytyy lisätä undef listaan mutta ei ole silti relative. Tämä toimii V1.70:ssa mutta siinä vissiin oli jotain muuta häikkää...hitto.... 11.JUL.94 WriteXdef kirjoittaa xdef ext hommelit jokaiseen sectioon. fix Korjattu myös setxdef jos xdef symboli oli undef niin virheviestiin tuli kaikki koska FailPtr osoitti tiedoston loppuun. 13.jul.94 luo xref rakenteita (hunk_ext) object koodiin fix turhaan jos symbolin käytön välissä toinen symboli. pitäisi laittaa samaan nippuun. 18.jul.94 Listing file: eka osa menee pikkasen liian pitkälle. fix 21.jul.94 section : StripQuot ekasta paramerista, tarkista myös fix jos ei koodia ennen ekaa sectionia. Itse asiassa koko hunkki homma on pikkasen turhan sekava. 27.jul.94 Hihhei (expression)(An[,Xn]) ei oikein skulaa. Taidanpa fix myös tietää miksei. Parseri luulee uudeksi syntaksiksi ja ei oikein snaijaa että tuo onkin vanha osoitusmoodi. 8.aug.94 ObjectCode writer varaa muistia BSS hunkille ! fix 8.Aug.94 jos index scale niin ei tarkista tukeeko cpu sitä. fix 8.aug.94 BSS, ds.l 100000 niin väärä määrä (-2). Jaa-a. Luultavasti fix word-lng ongelma tai sitten ei...CNOP ongelma. 9.aug.94 Listing file date stringissä roskaa. fix 9.aug.94 asm.xdme argumenttien parsing ei snaijaa "ram disk:" iä. 10.aug.94 040 specified code ei salli mitään, hey ho!. fix uupui cpu_A määrittelystä. 10.aug.94 EXG a2,a4 menee exg a4,a2. Tosin enpä tiedä onko tuolla fix mitään väliä.Täytyy tarkistaa. Ei enää. 10.aug.94 lsr.w (sp) väärin. fix mokia handlerissä. 14.aug.94 Incbin label. fix Ei asettanut SetRelSymb. 14.aug.94 Addgb läimii päätason symbolit ennen includeja. fix Asettaa päätason symboleihin global lipun. 15.aug.94 Muisti loppuu-> kaatuu. Perhana. Mikähän siinä nyt on. Muutama paikka löytyi, mistä kaatui. 16.aug.94 (a3,d0.w) ei sallittu 68000 modessa. Periaatteessa oikein fix(?) mutta toisaalta tosta voi kyllä generoida 68000 ymmärtämän 0(a3,d0.w) moodin. 16.aug.94 .s pääte ei toimi enää!!! fix 16.aug.94 fmovecr läimiii turhaa kamaa (luultavasti extenended) fix 18.aug.94 reg directiivi ei putsaa ea tai operands rakenteita. fix Oli tse asiassa siinä että rts (+ kumppanit) ei putsannut operand taulua. 19.aug.94 WB alku ->enforcer hit. fix 2.sep.94 bsr toiseen sectioniin optimoidaan, oivoi. fix 3.sep.94 divu.l....argh! fix HYPPY Väärään paikkaan. 3.sep.94 index scale sallitaan mc68000 modessa, shit. 9.oct.94 Multilevel opt ei toimi koska olen unohtanut ins_srcea fix? ja ins_destea kenttien muutokset jos optimoidaan. Tällöin seuraavilla optimointikerroilla saatetaan kohdella väärin optimoitua address modea koska se on jo optimoitu. Tämä on ilmeisesti korjattu kokonaan. 14.oct.94 Expression: (A)A (esim) jää ikuiseen rekursioon. Umh... fix Täytyy vauhdittaa sen expression handlerin uudellenkirjoittamista. Siinä tuo hoituu elegantimmin. Nyt sen detectoiminen on aika työlästä. Luulisin. GetExp ei tajua poistaa sulkuja ja niin se kutsuu ainiaan. Uusi expression handleri tehty. 20 oct.94 Jos on kytketty label semmoiseen käskyyn joka on poistettu eli siis niin...jaa...tarkistahan miten tämä menee. 24.oct.94 Jos ei ollenkaan koodia niin 14 NOP:ia. (?!?). FIXED Joo oli unohtunut putsaus yhen testin jälkeen, korjattu Opt modulissa, o_cnop_c. 26.jan.95 local label .l menee garbageksi ja Enforcer jos FIXED esim " bsr .l" Syy oli explen2:n force word/long tarkistus joka luuli tätä forceksi. 27.jan.95 If CS=OFF (case-sensetive symbols) xdef fails. fixed SetXDef called FindSymb2 instead of FindAbsRel which handled case-sens. detection. 27.jan.95 Jotain vikaa oli jossain pc optimoinnissa jos osoite oli eri hunkissa tai jotain. 6.feb.95 Include directory ei mene snmaoptions filestä. fixed 8.feb.95 VALUE equ.s INTVALUE olis kiva jos toimisi tyyppikonversiolla, ainakin jos INTVALUE todella on integer. fix 13.feb.95 bsr optimoidaan joskus byteksi ja sitten se ei mahdukkaan loppujen lopuksi. cnoppeja ja stringejä. Luultavasti joku paddaus kasvattaa sen isommaksi. 20.feb.95 dc.b 0, dc.l 0, dc.b 0,0 niin ensimmäisen dc.b:n fixed ? alignaus päätyy myös jotenkin toiseen dc.b:een jonka koko menee kolmeksi. Argh. 22.may.95 ctrl-c (break) tulostaa myös kaikenmaailman varoituksia. Olisi ehkä parempi ettei... 26.may.95 ext_abs ja ext_def:t menee ristiin. Argh! Ei ole V1.97:ssa. fixed. Joku kumma beq/bne muunnos. Korjattu. 30.may.95 relative-relative symboli on abs mutta xdef asettaa sen fixed silti ext_def (relative). 6.jun.95 bfextu hommissa jotain vikaa. Wrong number of operands. fixed inst.i datoissa väärin maxoperands. 6.jun.95 {0:2} päättyvät bitfield hommat aiheuttavat väärän virheen. fixed 11.jun.95 ADDGB hukkaa symboleita. Jos ekassa filessä muutama fixed symboli määritelty niin seuraavaassa filessä ekan includen jälkeen ei ensimmäisen filen symbolit ole olemassa. abshasht taulua ei auta putsata, kun ollaan siirretty symbolit MoveHash:lla gb tauluun. Samaa pätee macroihin, MoveHash siirtää nekin. 26.jun.95 Parsing source vaiheessa muistin loppuminen aiheuttaa fixed Missing operand virheen. Ainakin jva:lla. dc.b . Luultavasti korjattu, yksi palautusarvo -1:stä 1:ksi. 26.jun.95 Immediate data doesn't fit in word ja byte viestit. fix Niitä ei tule jos määritellään myöhemmin. (Ratkaistaan pass2:ssa). Eikä dc.w :ssa ollenkaan. Koko homman voisi laittaa warning:ksi jonka voi saada pois päältä. Nyt virheinä, jotka saa pois päältä. 26.jun.95 Macrosta poistuttaessa , palauta assembly nest count fix siksi mikä se oli ennen macroa. Palauttaa jos ENDC:tä puuttui macrosta. Toisinpäin ei voi toimia, tosin se onkin jo virhe sorsassa, ja siitä tulee ENDC without IFxx virhe. 12.jul.95 data(An) kun "data" on label menee silti pc-relative muodossa. Pitäisi käsitellä offsettina hunkin alusta, mutta ei relocausta. Tässä kyllä on ongelmia, kun ottaa huomioon että se on pass2:n ongelma tuo "data"n lopullisen arvon laskeminen. No, sinne rr_ rutiiniin vain tarkistus onko todella pc-relative. 15.jul.95 SelfChecksum tarkistaa nyt SegListin avulla. fix Löytyy pr_CLI->cli_Module tai WBStartup->sm_Segment. 25.jul.95 extended data type isoilla/pienillä numeroilla. 1e-4931.! fix Ei mene nollaksi. Oli ihan sekasin ne atoe ja atod ja atos rutiinit, jos oli exponentti. Pitäisi varmistaa noi lukualueet... 5.aug.95 BTST.W ei virhe. fixed Nyt on. 12.aug.95 Bugireportti jossa paljon asioita...: :-------------------------------------------------------------------- movec sp,d0 is not flagged as an error. FIXED. (SP=a7!) Liian vähän testiä. :-------------------------------------------------------------------- fsave -(a7) produces: "Src operand not legal for the inst." FIXED -- data error :-------------------------------------------------------------------- bfffo d4{0:32},d0 produces: "Bitfield width has something wrong." FIXED -- 32 = 0, mutta vertailtiin 31:een Lisätty ISC tarkistus :-------------------------------------------------------------------- move.l (zd4),d0 produces: "Symbol undefined" (referring to zd4) ??? (za0) ajaa saman - mutta kai toi periaattessa pitäisi hyväksyä. fixed (?) :-------------------------------------------------------------------- cmpi.l #$12345678,8(pc) produces: "Dest operand is not legel for the inst." FIXED -- ei tajunnu ollenkaan. 000:ssa ei sallittu ja mun vanha 030 opas ei tiennyt. :-------------------------------------------------------------------- pack -(a1),-(a2),#$2121 produces: "Value is too big for byte." (same for UNPK) FIXED -- pieniä koko ongelmia. :-------------------------------------------------------------------- move.l ([$1234],d3.l,outdisp),d0 produces: "Data cannot be relative." (Why? It could be relocated.) Can it be used for something useful ? I mean, the way how the outer displacement works. It is added to the value which is fetched from the memory. I can't figure out any useful purpose for relative outer displacement. :-------------------------------------------------------------------- move.l ([$1234],d3.l,$abcd),d0 results: 2030 39A7 1234 0000 ABCD (Outer disp. could be shortened to word.) No. Outer displacement is sing-extended and then this number would turn out to be negative. On the other hand, it is also positive and out of 16 bit signed range. Because all internal math in snma is 32 bit, this number is positive, $ffffabcd does the trick, if negative number is what is wanted. NOFIX :-------------------------------------------------------------------- What I'm getting these from is a test file for Motorola's as68k assembler. The test file is based on the 68020, so I didn't check any XREF 9:asdf causes: GURU #80000004 FIXED, un-balanced stack :-------------------------------------------------------------------- chk.l (a6),d0 causes: "Instruction does not support this size." FIXED , manuska virhe. :-------------------------------------------------------------------- chk2.b (a0),a0 causes: "Instruction does not support this size." FIXED. Oli myös cmp2.b kun An. An kun ei normaalisti huoli byteä. Piti tehdä erikseen checkealeg_cmp2, joka ei tarkasta sitä. :-------------------------------------------------------------------- moves.b a0,(a2) causes: "Instruction does not support this size." FIXED. Sama vika kuin chk2.b :ssä, tuossa yllä. :-------------------------------------------------------------------- tst #immed causes: "Src operand not legal for the inst." NOTE: The 68020 users manual says it's not valid, but the M68000 Family Programmers reference manual say it's valid for 020-040 (it doesn't have 060). FIXED :-------------------------------------------------------------------- cas2.w d0:d1,d0:d1,(a5):(d0) causes: "Third operand is not right." FIXED. Tää oli ihan perseellään. :-------------------------------------------------------------------- tst index+*(PC) causes: "Garbage in expression." :-------------------------------------------------------------------- fbra label causes: "Unknown op-code." NOTE: Generally accepted as a synonym for "fbf". FIXED , lisättiin :-------------------------------------------------------------------- fdbra d0,label causes: "Unknown op-code." NOTE: Generally accepted as a synonym for "fdbf". FIXED , lisättiin :-------------------------------------------------------------------- fsave -(a4) causes: "Src operand not legen for the inst." FIXED, inst data error :-------------------------------------------------------------------- pbcs label causes: "Unknown op-code." FIXED ,, manuska virhe :-------------------------------------------------------------------- pbcc labepbcsl causes: "Unknown op-code." FIXED , manuska virhe :-------------------------------------------------------------------- pdbcs d0,label causes: "Unknown op-code." FIXED ,, manuska virhe :-------------------------------------------------------------------- pdbcc d0,label causes: "Unknown op-code." FIXED ,, manuska virhe :-------------------------------------------------------------------- psave -(sp) causes: "Src operand not legal for the inst." FIXED , osoitusmuodot sekaisin. Koodi myös väärin, kuten myös frestore käskyssä. :-------------------------------------------------------------------- pscs (a6) causes: "Unknown op-code." FIXED ,, manuska virhe :-------------------------------------------------------------------- pscc (a5) causes: "Unknown op-code." FIXED , manuska virhe :-------------------------------------------------------------------- ptrapcs causes: "Unknown op-code." FIXED , manuska virhe :-------------------------------------------------------------------- ptrapcc causes: "Unknown op-code." FIXED , manuska virhe :-------------------------------------------------------------------- pmove psr,d0 causes: "Src operand not legal for the inst." Pitää paikkansa 030:lle. 68851 sallii tämän. FIXED -- uupui hyppy. :-------------------------------------------------------------------- 13.aug.95 "Instruction not supported by current cpu" viestin FailPtr menee ekaan operandiin 13.aug.95 Bitfield width ja offset arvoja ei asetata pass2:ssa. fixed 14.aug.95 xref lab; ";" mukaan nimeen. Aijai... FIXED puuttui wordlencomma rutiinin taulukosta. Katohan SetDataA0. Sen voisi kai tehdä pikkasen nopeammin. siel on lea 8(a0),a0 esim.. 23.aug.95 (An,Xn) ei sallita vieläkään jos 68000 moodi päällä. fixed Senkun laitetaan samalla tavalla kuin jos BD olisi forcattu byteen (uh, eihän sitä voi tehdä?). 29.aug.95 pc-relative optimointi optimoi "tst label" vaikka FIXED cpu type on 68000/010. 13.sep.95 btst #liianiso, voisi heittää varoituksen. 18.sep.95 macrossa: \*upper(\1) kun \1 = '' (tyhjä , ei ole) fixed katkasee macron liian pian. a0:aa ei kasvatettu jos tyhjä. 20.sep.95 (BD.l,An...) (BD.w,An...) forcing ei toimi enää! fixed Tai sitten optimoija ei tajua sitä enää. 21.sep.95 Urgh! Random crash. Kaatuu satunnaisesti...guru... line-f tai buserror. Koodi karkaa. Ei ehdi kääntää mitään (? luulisin...Parsing source viestiä ei tule). Tämä on aika paha. Erittäin todennäköisesti snma:n vika. Ensi epäilys: option file lataus, tai jotain muuta startup sotkua. DOSsi kai sekoaa. Kenen lie vika? Löysin yhden paikan jossa snma luki muistipaikasta jonka osoite otettiin stringistä. Ties mitä se teki jos luki sieltä sun täältä. 24.sep.95 Relative Outer Disp mahdolliseksi. 28.sep.95 @label fixed bra @label tuottaa vikahypyn. Vika @ merkissä. 30.sep.95 ,{num:num} mahdolliseksi (pilkku!) 30.sep.95 QUIET ei toimi. fixed Mitäköhän oli mielessä tonkin kanssa. Esti vain startup viestin. Kai jotain Arexx juttuja...(?) Hällä väliä, nyt se estää kaiken shell outputin. 30.sep.95 equr ztab ; tst.l (ztab) ei toimi. Lukee kai z:n pois. fixed fixed. Pikku muutoksia getar and getindexreg rutiineihin. Parseri on IHAN KAAMEA ! Kirjoitahan uusi. 30.sep.95 Arexx command: set tabs 1 ol 4. fixed jäi luuppiin ikuisiksi ajoiksi. 30.sep.95 Outer displacement ei asetu extension wordiin ! fixed Oli vähän häikkää. 4.oct.95 movec An,tc fixed reports as an error for any source address register Uh...ei ainakaan tällä hetkellä. Tosin 2.02:ssakin on. movec d5,itt0 assembles but generates code for movec d5,tc independent of the specified control register. Joo...nää toimii nyt. En tosin tajua miksi..,en ainakaan muista koskeneeni movec koodaukseen. Ehkäpä olen... tai sitten jotain muuta parseam:ssa fiksasi sen. 4.oct.95 memory usage päin peetä arexx modessa, kun shell output fixed päällä. Korjattu kai jotenkuten putsaamalla MaxUsedMem InitDataArea:ssa. 5-nov-95 kaks bugia. dloads:snma_bug ja snma_bug2 28-dec.95 CASESENS OFF ja xreffit ei skulaa. Symboleita ei tunnisteta. fixed 13-aug-96 move.l label,10(a1) when pc opt on optimizes FIXED 10(a1) to (a1). Luultavasti siinä kun siirretään kybä lähemmäksi jotenkin väärin jolloin otetaankin nolla. Tai jotain vastaavaa. Joo, optimoinnissa oli virhe. 16.aug.96 If a symbol is defined as XREF, an equal symbol in the source should cause an 'double symbol' error. 16.aug.96 XDEFit aina ekaan hunkkiin. FIXED Otettiin XDEF:in paikasta hunkkinumero, eikö sen symbolin. Helppo korjaus, SetXDef:iin vain hunkkinumeron siirto. 20.aug.96 0(a0,d0) menee 020 muotoon vaikka 000 enabloitu myös. Ongelma jos koodissa sekaisin 000 ja 020+ kamaa. Varoitettu kyllä mutta ehkä voisi helpottaa jokin systeemi. ------- MM fixes: 20.11.00 fixed quote parsing routine: rev $110 "dc.b 'txt ''%s'''" was erroneously assembled as "txt '%s''" 21.11.00 fixed various bitfield instructions, which all broke on rev $111 pc-relative addressing modes; f.ex.: "bfffo ([lab,pc,d0.w],20){0:2},d0" (bad source ea table) fixed bug in 8-bit displacement routine: "pmove.w mmusr,(1,a0,d0)" now assembles correctly 22.11.00 fixed bugs in optimizing code - m_bd32od16 and m_bd32od32 rev $112 routines; code like "btst d1,([lab,pc],a0,2)" now assebles correctly (copyword routine trashed lab list) 24.11.00 fixed \*TIME() macro routine crash (movem's were not in sync) rev $114 28.11.00 fixed pc-relative calculations of ds, dx, dcb and incbin: rev $116 " moveq #s,d0 rts b incbin bin s=*-b" now "s" is calculated correctly instead of being zero 30.11.00 fixed heavy bugs in complex addressing modes like: rev $117 "movea.l ([lab-DT,A4],8),A5" fixed relative lab calculation in different sections (section inst code creator didn't reset pc in ins struct) MOVEM opt is now OFF by default as it can change CCR hence should be considered dangerous 2.12.00 fixed bug in ftst code, added "mc68851" and "mc68060" rev $118 directives (though no real 68060 support yet) 10.12.00 fixed FPU code (atod routine bug), inlined code from nsamlib rev $119 13.12.00 fixed bug in dx code rev $120 18.12.00 fixed assembling of absolutes in memory indirect modes, like: rev $121 "move.l ([lab]),d0" enabled optimizing of above to pc-rel mode, if possible 20.12.00 fixed bugs in supressed pc (zpc) mode: rev $122 "move.l (lab,zpc,d0.w),a0" fixed bugs in address reg index mode: "move.l (lab,a0.w*2),d0" and added opt to pc-rel if possible 7.1.01 fixed heavy bugs in indirect modes where both OD and BD were rev $126 labels: "move.l ([lab,a0,a0],lab2),([lab,a0,a0],lab2)" DATE macro in v (version) mode strips leading zeros now 22.1.01 now dx directive is supported only when building an exe file rev $128 (fixes nasty bugs when using linker) 12.2.01 added JOPT switch to opt file and commandline rev $130 19.2.01 once again fixed StripQuot() ("" should now work as supposed) rev $131 changed power operator from '^^' to more common '^' source no longer needs a linefeed or CR at end to work 22.2.01 enhanced HandleComp() to allow relaxed syntax in An indirect rev $132 modes, like An and BD swapped (Ax,BD) f.ex: 'lea (a0,10),a0' 10.6.01 fixed an old bug in opt code: 'tst.l ($80,ax,dx)' was rev $133 assembled as 'tst.l (-$80,ax,dx)' 14.6.01 reworked arexx SET cmd rev $134 15.6.01 fixed nasty bug in read template routine (PORTNAME+AREXX) rev $135 22.6.01 rewritten cmdline and opt file parsing routines, changed some rev $136 options to toggles, unified opt names added auto-alignment to ds.b dcb.b and dx.b directives 21.7.01 small internal fix (wrong error counter in REXX mode) rev $137 23.7.01 enhanced optimizing: more abs can be converted to pc-rel now rev $138 31.8.01 fixed some macro dependencies, added '.q' size to pmove, fixed rev $140 xdef bugs with some instructions 20.10.01 fixed adda/suba.x #0,ax; additionally the instruction is now rev $141 removed if Q opt is turned on 15.1.02 allowed relaxed syntax with shift instructions: rev $142 f.ex. 'lsl dx' is now accepted 18.1.02 fixed nasty bugs I introduced when adding pc-rel opts to some rev $143 complex modes: snmaopt b- was producing weird errors, etc. fixed bugs with supressed stuff (zpc, zan, etc.) 23.1.02 fixed bugs with EQUR directive; parts of HandleComp routine rev $144 have been rewritten 25.1.02 MAJOR: fixed nasty bug in ExpLen routine - force size flags rev $145 were not always reinitialized between calls resulting in some race conditions; this wouldn't allow for some abs longword BDs f.ex. 'move.l (a0,d0.w,$800000.l),d0' fixed bug in k-factor encoding like in: 'fmove.p fp0,(a1){d4}' default size for most FPU opcodes is 'extended' now added new error string for sizes not applicable to particular destination ea: f.ex. 'ftst.x d0' is now flagged off added ACUSR (=PSR=MMUSR) to the spec regs list fixed pflusha/pflushan race condition and pflush+DFC/SFC pvalid generation was broken - fixed 68851 opcodes/modes are allowed when both: 030 bit and 851 bit are set 27.1.02 movec code now checks spec regs against defined CPU type rev $146 30.1.02 '*' comments are better recognized now rev $147 move.w #x,ccr was not supported in 68000 mode; fixed 31.1.02 bcc/bsr to next inst is now removed rev $148 7.2.02 anhanced accuracy of ASCII decimal real to float conversion rev $149 via use of Ken Shillito's TFloat routine FPU presence is now checked properly, mathiee libraries are no longer opened 10.2.02 output object name can now be a directory rev $150 fixed NextNS routine; hope CR at end of source is really no longer required now added BINARY directive fixed old bug in WordLenComma: TAB(s) inside quotes were terminating the string 11.2.02 another old bug fixed - due to misconception in ParseAMs, max rev $151 operand length was limited to 126 chars 13.2.02 fixed serious bug in SET directive: expressions with SET rev $152 re-defined symbols and forward referenced undef(s) was broken f.ex.: symb1 set 1 moveq #symb1+symb2,d0 ;this erroneously yielded 5 symb1 set 2 moveq #symb1+symb2,d0 symb2 equ 3 17.2.02 AREXX mode is entered automatically if PORTNAME is specified rev $153 18.2.02 fixed an old bug in SetDC; owing to wrong register check, dc.p rev $154 was reporting error in some cases 21.2.02 relative undefs for ds/dx/dcb are allowed now rev $155