You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
(5) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
|
Feb
(6) |
Mar
(41) |
Apr
(23) |
May
(11) |
Jun
(2) |
Jul
|
Aug
|
Sep
(9) |
Oct
(2) |
Nov
(1) |
Dec
(1) |
| 2008 |
Jan
(6) |
Feb
(1) |
Mar
(23) |
Apr
(18) |
May
(21) |
Jun
(13) |
Jul
(34) |
Aug
(5) |
Sep
(1) |
Oct
(4) |
Nov
|
Dec
(4) |
| 2009 |
Jan
|
Feb
(5) |
Mar
(5) |
Apr
(10) |
May
(1) |
Jun
(11) |
Jul
(1) |
Aug
|
Sep
|
Oct
(2) |
Nov
(3) |
Dec
(13) |
| 2010 |
Jan
(10) |
Feb
(4) |
Mar
(28) |
Apr
(3) |
May
(38) |
Jun
(22) |
Jul
(92) |
Aug
(154) |
Sep
(218) |
Oct
(45) |
Nov
(20) |
Dec
(1) |
| 2011 |
Jan
(33) |
Feb
(15) |
Mar
(32) |
Apr
(33) |
May
(48) |
Jun
(35) |
Jul
(7) |
Aug
|
Sep
(11) |
Oct
(5) |
Nov
|
Dec
(7) |
| 2012 |
Jan
(56) |
Feb
(11) |
Mar
(6) |
Apr
|
May
(128) |
Jun
(59) |
Jul
(21) |
Aug
(16) |
Sep
(24) |
Oct
(39) |
Nov
(12) |
Dec
(12) |
| 2013 |
Jan
(14) |
Feb
(61) |
Mar
(97) |
Apr
(46) |
May
(13) |
Jun
(23) |
Jul
(12) |
Aug
(25) |
Sep
(9) |
Oct
(81) |
Nov
(73) |
Dec
(45) |
| 2014 |
Jan
(36) |
Feb
(57) |
Mar
(20) |
Apr
(41) |
May
(43) |
Jun
(11) |
Jul
(14) |
Aug
(32) |
Sep
(9) |
Oct
(27) |
Nov
(21) |
Dec
(6) |
| 2015 |
Jan
(14) |
Feb
(23) |
Mar
(1) |
Apr
(19) |
May
(40) |
Jun
(11) |
Jul
(1) |
Aug
(2) |
Sep
(14) |
Oct
(10) |
Nov
(9) |
Dec
(13) |
| 2016 |
Jan
(4) |
Feb
(3) |
Mar
(7) |
Apr
|
May
(4) |
Jun
(13) |
Jul
(8) |
Aug
(3) |
Sep
(4) |
Oct
(1) |
Nov
|
Dec
|
| 2017 |
Jan
(6) |
Feb
(1) |
Mar
(1) |
Apr
(7) |
May
(10) |
Jun
(5) |
Jul
(7) |
Aug
(9) |
Sep
|
Oct
(1) |
Nov
(5) |
Dec
|
| 2018 |
Jan
|
Feb
|
Mar
(5) |
Apr
|
May
|
Jun
(3) |
Jul
(6) |
Aug
|
Sep
(2) |
Oct
(54) |
Nov
(47) |
Dec
(53) |
| 2019 |
Jan
(23) |
Feb
(24) |
Mar
(19) |
Apr
(15) |
May
(5) |
Jun
(34) |
Jul
(9) |
Aug
(9) |
Sep
(3) |
Oct
(2) |
Nov
|
Dec
|
| 2020 |
Jan
|
Feb
|
Mar
(7) |
Apr
(7) |
May
(5) |
Jun
(15) |
Jul
(22) |
Aug
(28) |
Sep
(13) |
Oct
(9) |
Nov
(17) |
Dec
(13) |
| 2021 |
Jan
(5) |
Feb
(1) |
Mar
(1) |
Apr
(9) |
May
(21) |
Jun
(9) |
Jul
|
Aug
(6) |
Sep
(16) |
Oct
|
Nov
(1) |
Dec
(6) |
| 2022 |
Jan
|
Feb
|
Mar
|
Apr
(7) |
May
(6) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(11) |
Sep
(21) |
Oct
(5) |
Nov
(1) |
Dec
(1) |
| 2024 |
Jan
(1) |
Feb
(4) |
Mar
|
Apr
(7) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
| 2025 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(7) |
Sep
(9) |
Oct
|
Nov
(4) |
Dec
|
|
From: Al W. <al....@aw...> - 2010-09-16 02:51:31
|
Thanks Klaus, The marker.asm did NOT work on 4.1. I made the 3 changes plus I had to chnage EE_SYS0 to 2 (juding from the Forth code and noting a compile error or EE_SYS0). It did strike me as odd though that there were not 4 places to change. But I didn't get thought theh code enought to tell. I will look at the savesystem code. What would be ideal would be to configure a pin to boot into "restore mode" -- for example, since I am hooked up to USB for power, it could be configured to be the Rx line. Then a jumper could bring it low on boot (it would normally be high connected to the serial port) and trigger a restore. I'll try that soon. Thanks again for your help. On Wednesday, September 15, 2010 18:51:35 pm Kalus Michael wrote: > Hi Al. > > Seems the list does not take any attachments. > Try these links: > http://dl.dropbox.com/u/1170761/marker.asm > http://dl.dropbox.com/u/1170761/savesystem.asm > > > I presume this is broken because of the changes to here and dp > > recently. > > This is the old version I have on amforth3.6, may be its still good > > with 3.8 : > : pushee ( -- ) > > here , heap , edp , edp 8 do i e@ , 2 +loop ; > > : popee ( adr n -- ) > > 0 do dup i + i@ i 2* 2 + e! loop drop ; > > : marker ( -- ) > > edp >r here >r > pushee create r> , r> , > does> >r r@ i@ r> 1+ i@ popee ; > > Michael > > Am 16.09.2010 um 00:49 schrieb Al Williams: > > I tried entering this as Forth code and got the same result. Not > > sure what > > changes you mean (since you define pushee and popee). Also, I don't > > think the > > list took your attachment. > > > > I presume this is broken because of the changes to here and dp > > recently. > > Anyway, for now I'm sticking with a hybrid 3.8 -- I did take some > > of the > > device and driver stuff out of 4.1 and got it working with 3.8. > > > > On Wednesday, September 15, 2010 16:59:25 pm Kalus Michael wrote: > >> Hi. > >> > >> > >> Am 15.09.2010 um 21:24 schrieb Al Williams: > >> .. > >> > >>> Any ideas on getting marker to work? > >> > >> maybe this version works. It copies the _entire_ system vector to > >> flash, and pops it back when executing the marker word. > >> > >> : pushee ( -- ) dp , here , edp , edp 8 do i e@ , 2 +loop ; > >> : popee ( adr n -- ) 0 do dup i + i@ i 2* 2 + e! loop drop ; > >> : marker ( -- ) > >> : > >> edp >r dp >r > >> pushee create r> , r> , > >> does> >r r@ i@ r> 1+ i@ popee ; > >> > >> I append marker.asm, include it in your application words if you > >> like. > >> BUT since it was written for amforth-3.6 on atmega168 you have to do > >> the changes mentioned in the file. (pushee has been called ,ee > >> there.) > >> > >> Michael > > > > ---------------------------------------------------------------------- > > -------- > > Start uncovering the many advantages of virtual appliances > > and start using them to simplify application deployment and > > accelerate your shift to cloud computing. > > http://p.sf.net/sfu/novell-sfdev2dev > > _______________________________________________ > > Amforth-devel mailing list > > Amf...@li... > > https://lists.sourceforge.net/lists/listinfo/amforth-devel > > --------------------------------------------------------------------------- > --- Start uncovering the many advantages of virtual appliances > and start using them to simplify application deployment and > accelerate your shift to cloud computing. > http://p.sf.net/sfu/novell-sfdev2dev > _______________________________________________ > Amforth-devel mailing list > Amf...@li... > https://lists.sourceforge.net/lists/listinfo/amforth-devel |
|
From: Kalus M. <mic...@on...> - 2010-09-16 01:01:14
|
Hi. Here is an explanation example. Comments wellcome. http://dl.dropbox.com/u/1170761/2dup.asm Michael Am 15.09.2010 um 10:01 schrieb Marcin Cieslak: > On Wed, 15 Sep 2010, pito wrote: > >> Hi, >> is there any expalnation available on what these >> .dw $ff03 ; > > High byte: > $75 means the word is immediate word > $ff means the word is about to compiled normally > > Low byte: > $03 is a length of the word name in bytes that follows > > See core/words/docreate.asm, core/words/immediate.asm > how its modified, and core/words/search-wordlist.asm > how it's used. > >> ff02 ff05 in the header of a ams word definition means? And if >> important, how is the implication when writing words in asm? Thanks, >> Pito > > //Marcin > > PS. I am working on the f/ you sent me yesterday. > > ---------------------------------------------------------------------- > -------- > Start uncovering the many advantages of virtual appliances > and start using them to simplify application deployment and > accelerate your shift to cloud computing. > http://p.sf.net/sfu/novell-sfdev2dev > _______________________________________________ > Amforth-devel mailing list > Amf...@li... > https://lists.sourceforge.net/lists/listinfo/amforth-devel |
|
From: pito <pi...@vo...> - 2010-09-16 00:07:38
|
Hi, the f* routine (my template based) works now (a bug - I did not care on R0,1 - where MULT puts results..), so Marcin may redo it into amforth look, when required. > : test_mul_asm timer-start 30000 0 do _pi _ln2 f* drop drop loop oktimer-stop 30000 s>f f/ fs. ." sec per mul-asm operation" ; ok > test_mul_asm 4.5088768E-5 sec per mul-asm operation ok > _pi _pi f* fs. 9.869605 ok > _1e9 _1e-12 _pi f* f* fs. 3.1415927E-3 ok > So f* is much faster as the previous one (f* in forth 5ms). As you may see the most of the time has been consumed by "_pi _ln2 f* drop drop" overhead comparable to f* duration (my estimation is: f* raw 8us, f/ raw 30us). Still thinking how to precisely measure duration of such forth words in the do loop.. And the fs. speed is now tremendous.. I like amforth! Pito. |
|
From: Kalus M. <mic...@on...> - 2010-09-15 23:51:45
|
Hi Al. Seems the list does not take any attachments. Try these links: http://dl.dropbox.com/u/1170761/marker.asm http://dl.dropbox.com/u/1170761/savesystem.asm > I presume this is broken because of the changes to here and dp > recently. This is the old version I have on amforth3.6, may be its still good with 3.8 : : pushee ( -- ) here , heap , edp , edp 8 do i e@ , 2 +loop ; : popee ( adr n -- ) 0 do dup i + i@ i 2* 2 + e! loop drop ; : marker ( -- ) edp >r here >r pushee create r> , r> , does> >r r@ i@ r> 1+ i@ popee ; Michael Am 16.09.2010 um 00:49 schrieb Al Williams: > I tried entering this as Forth code and got the same result. Not > sure what > changes you mean (since you define pushee and popee). Also, I don't > think the > list took your attachment. > > I presume this is broken because of the changes to here and dp > recently. > Anyway, for now I'm sticking with a hybrid 3.8 -- I did take some > of the > device and driver stuff out of 4.1 and got it working with 3.8. > > > On Wednesday, September 15, 2010 16:59:25 pm Kalus Michael wrote: >> Hi. >> >> >> Am 15.09.2010 um 21:24 schrieb Al Williams: >> .. >> >>> Any ideas on getting marker to work? >> >> maybe this version works. It copies the _entire_ system vector to >> flash, and pops it back when executing the marker word. >> >> : pushee ( -- ) dp , here , edp , edp 8 do i e@ , 2 +loop ; >> : popee ( adr n -- ) 0 do dup i + i@ i 2* 2 + e! loop drop ; >> : marker ( -- ) >> >> edp >r dp >r >> pushee create r> , r> , >> does> >r r@ i@ r> 1+ i@ popee ; >> >> I append marker.asm, include it in your application words if you >> like. >> BUT since it was written for amforth-3.6 on atmega168 you have to do >> the changes mentioned in the file. (pushee has been called ,ee >> there.) >> >> Michael > > ---------------------------------------------------------------------- > -------- > Start uncovering the many advantages of virtual appliances > and start using them to simplify application deployment and > accelerate your shift to cloud computing. > http://p.sf.net/sfu/novell-sfdev2dev > _______________________________________________ > Amforth-devel mailing list > Amf...@li... > https://lists.sourceforge.net/lists/listinfo/amforth-devel |
|
From: Kalus M. <mic...@on...> - 2010-09-15 23:31:37
|
Hi Al. .. > The problem is once you mess up the flash you have to reprogram. Adding a simple 'restoresystem on reset' helps allot. It just takes a copy of the original system vectors and puts them back into eeprom. As long as you did not overwrite amforth below DP by mistake this will work. Include your restoresystem word in the cold start routine cold.asm - here you find how it may be done: |
|
From: Marcin C. <sa...@sa...> - 2010-09-15 22:55:27
|
Al Williams <al....@aw...> wrote: > Right, I understand the i@ word constitutes a bootloader of sorts. But I was > trying to get a way a student with no strange equipment could go back to a > default state. I guess another way would be to drop a marker at the end of the > default dictionary and have a config option that basically says "if the > specified pin is low on boot up, drop back to that marker and erase everything" > -- of course that could be bad too, but what I have in mind isn't critical at > all. I did a presentation/workshop for the German hacking community two weeks ago: http://mrmcd1001b.metarheinmain.de/schedule/76/event/4008.en.html I plugged three Arduinos to my laptop running FreeBSD. There was a special workshop-jail (virtual instance) of the system configured with two users "box1" and "box2". You could log in to one of them and you immediately got a shared live terminal session. Both were displayed on a beamer screen during the workshop (FORTH looks cool in xterm with 24- or 36-point font). Third Arduino running boot software was ready with ICSP cables connected for a quick re-flashing if needed (proved not to be necessary as I didn't use "marker" :-) I was typing mostly on one, people hacking the other one, somebody tried to paste Forth "Hello world!" example from Wikipedia (and failed, since it was all-uppercase). Next time I will leave more time for hands-on hacking like this (it was targeted to a general tech public new to FORTH, 90% people knew C). By the way, the main point of the presentation was to demonstrate certain weaknesses of programming Harvard architecture machines in C (PROGMEM macro, string copying from flash to RAM to have unified pointers, linker tricks to fake unified address space, etc.). It is also not the FORTH favourite environment, but I find i@, e@ and friends a much more elegant solution to the problem. //Marcin |
|
From: Al W. <al....@aw...> - 2010-09-15 22:49:54
|
I tried entering this as Forth code and got the same result. Not sure what changes you mean (since you define pushee and popee). Also, I don't think the list took your attachment. I presume this is broken because of the changes to here and dp recently. Anyway, for now I'm sticking with a hybrid 3.8 -- I did take some of the device and driver stuff out of 4.1 and got it working with 3.8. On Wednesday, September 15, 2010 16:59:25 pm Kalus Michael wrote: > Hi. > > > Am 15.09.2010 um 21:24 schrieb Al Williams: > .. > > > Any ideas on getting marker to work? > > maybe this version works. It copies the _entire_ system vector to > flash, and pops it back when executing the marker word. > > : pushee ( -- ) dp , here , edp , edp 8 do i e@ , 2 +loop ; > : popee ( adr n -- ) 0 do dup i + i@ i 2* 2 + e! loop drop ; > : marker ( -- ) > > edp >r dp >r > pushee create r> , r> , > does> >r r@ i@ r> 1+ i@ popee ; > > I append marker.asm, include it in your application words if you like. > BUT since it was written for amforth-3.6 on atmega168 you have to do > the changes mentioned in the file. (pushee has been called ,ee there.) > > Michael |
|
From: Al W. <al....@aw...> - 2010-09-15 22:34:28
|
Right, I understand the i@ word constitutes a bootloader of sorts. But I was trying to get a way a student with no strange equipment could go back to a default state. I guess another way would be to drop a marker at the end of the default dictionary and have a config option that basically says "if the specified pin is low on boot up, drop back to that marker and erase everything" -- of course that could be bad too, but what I have in mind isn't critical at all. |
|
From: Marcin C. <sa...@sa...> - 2010-09-15 22:31:10
|
On Wed, 15 Sep 2010, Al Williams wrote: > One of my many hats is that I am a "blogger" for the venerable Dr. Dobb's > Journal (I used to do columns for their magazines, but blogging is hipper ;) > ). > > I wrote about my experiences with Amforth: > http://www.drdobbs.com/blog/archives/2010/09/forth_love_if_h.html > > I am very impressed with it, although my original purpose might not be > suitable. I was thinking of having inexpensive development boards for > students. The problem is once you mess up the flash you have to reprogram. I > was thinking long term it would be possible to either have a bootloader built > in that would let you reflash a pristine system. Sort of a rescue mode. > > Maybe something I'll try when I ever get enough free time. Amforth has a kind of bootloader built-in, since it constantly flashes new words defined. I am doing so-called in-line serial programming with two Arduinos (cheap AVR development board with USB - http://www.arduino.cc/) connected to each other. One runs the flasher (not yet in Forth, but soon!) and the other one is being flashed. I don't even have a programmer here. Actually we have a project with 4 AVRs connected to another one (a master) via the SPI interface, and we will probably try to test re-programming them on the fly via SPI (exciting possibility of a really self-replicating, self-deploying distributed programming). There is also possibility to flash the Arduino board completely in-line via the FTDI chip that is on-board there, but one needs to solder a small 4-pin header to the board and it's kind of slow, but works great in emergency. //Marcin |
|
From: Al W. <al....@aw...> - 2010-09-15 22:21:17
|
One of my many hats is that I am a "blogger" for the venerable Dr. Dobb's Journal (I used to do columns for their magazines, but blogging is hipper ;) ). I wrote about my experiences with Amforth: http://www.drdobbs.com/blog/archives/2010/09/forth_love_if_h.html I am very impressed with it, although my original purpose might not be suitable. I was thinking of having inexpensive development boards for students. The problem is once you mess up the flash you have to reprogram. I was thinking long term it would be possible to either have a bootloader built in that would let you reflash a pristine system. Sort of a rescue mode. Maybe something I'll try when I ever get enough free time. Thanks again for all the replies. Al W. On Wednesday, September 15, 2010 17:15:33 pm Marcin Cieslak wrote: > Al Williams <al....@aw...> wrote: > > I saw amforth and popped it on an ATMega 8. Works but very little code > > space. So I dug up an ATmega 16 (you can mark it as working on the > > matrix -- it does). > > > > However, I want to be able to use Marker. I have uploaded the definiton > > several different ways including the python shell (which appears not to > > handle backspace well in interactive mode, by the way). It seems to > > work, but after you execute it (example: marker blah) the system will > > say OK but any input will hang the system when you hit enter. > > I have reproduced this error and dumped 6 images of flash > and eeprom at the different stages: > > http://saper.info/hg/forth/2010-sep-marker-problem/ > > You can fetch all the files using Mercurial (http://mercurial.seleni.com) > with: > > hg clone http://saper.info/hg/forth/2010-sep-marker-problem/ > > There is something strange when portion of flash memory gets erased for > the new word. > > --Marcin > > > --------------------------------------------------------------------------- > --- Start uncovering the many advantages of virtual appliances > and start using them to simplify application deployment and > accelerate your shift to cloud computing. > http://p.sf.net/sfu/novell-sfdev2dev > _______________________________________________ > Amforth-devel mailing list > Amf...@li... > https://lists.sourceforge.net/lists/listinfo/amforth-devel |
|
From: Marcin C. <sa...@sa...> - 2010-09-15 22:16:01
|
Al Williams <al....@aw...> wrote: > I saw amforth and popped it on an ATMega 8. Works but very little code space. > So I dug up an ATmega 16 (you can mark it as working on the matrix -- it > does). > > However, I want to be able to use Marker. I have uploaded the definiton several > different ways including the python shell (which appears not to handle > backspace well in interactive mode, by the way). It seems to work, but after > you execute it (example: marker blah) the system will say OK but any input > will hang the system when you hit enter. I have reproduced this error and dumped 6 images of flash and eeprom at the different stages: http://saper.info/hg/forth/2010-sep-marker-problem/ You can fetch all the files using Mercurial (http://mercurial.seleni.com) with: hg clone http://saper.info/hg/forth/2010-sep-marker-problem/ There is something strange when portion of flash memory gets erased for the new word. --Marcin |
|
From: Kalus M. <mic...@on...> - 2010-09-15 21:59:37
|
Hi.
Am 15.09.2010 um 21:24 schrieb Al Williams:
..
> Any ideas on getting marker to work?
maybe this version works. It copies the _entire_ system vector to
flash, and pops it back when executing the marker word.
: pushee ( -- ) dp , here , edp , edp 8 do i e@ , 2 +loop ;
: popee ( adr n -- ) 0 do dup i + i@ i 2* 2 + e! loop drop ;
: marker ( -- )
edp >r dp >r
pushee create r> , r> ,
does> >r r@ i@ r> 1+ i@ popee ;
I append marker.asm, include it in your application words if you like.
BUT since it was written for amforth-3.6 on atmega168 you have to do
the changes mentioned in the file. (pushee has been called ,ee there.)
Michael
|
|
From: Al W. <al....@aw...> - 2010-09-15 20:06:32
|
Excellent! Reverting to 3.8 did the trick. Thanks for the quick response. > > > The other issue I had was trying to use the 16's internal RC clock. It > > would work until you wrote to flash (colon definition) and then it would > > also die with no recourse but to reflash. With a 10MHz resonator (and > > the right fuses) it works fine. Maybe my OSCCAL was too far off for 8MHz > > (I didn't load the 8MHz OSCAL but the default 1MHz one was pretty > > close). > > It could be, that it has nothing to do with the resonator, but with colon > breaking the dictionary. Well it all works (except for marker) with a 10MHz resonator. I can create colon defintions as much as I want -- I just can't get rid of them. But with the internal clock any colon definition and you are done for. I suspect it is the timing of the flash write. |
|
From: pito <pi...@vo...> - 2010-09-15 19:53:14
|
As an example the f/ "__DIV" code has been generated by C compiler from "c=a/b". So we may that way create any floating point-function in few seconds. However, it is up to amforth community to agree the integration standards. When the ___frutine will be hard coded to certain amforth registers, the Q is what happens when Matthias will change the regs allocation in future. Therefore I've tried to create an "interface" with ".def _tempX = Rx". The original ___froutine's Rx registers will be renamed to _tmpX and renamed by ".def _tmp24 = R14" as you want. The same as Matthias does with temp0,1,2... So my point when integrating a ready to use asm code to amforth is (AN Example): ; ..core\words\f_div.asm ; ( a b -- c ) Function c = a / b ; R( ? -- ? ) VE_FDIV: .dw $ff02 .db "f/" .dw VE_HEAD .set VE_HEAD = VE_FDIV XT_FDIV: .dw PFA_FDIV PFA_FDIV: .cseg ; $$$ REGS REDEFINITION $$$$$$$$$$$$$$$$$$$$$ ; _tmpX is RX used in the code .def _tmp0 = R8 .def _tmp1 = R9 ; .def _tmp2 = Rx ..... ; .def _tmp15 = Rx .def _tmp17 = R13 .def _tmp18 = R18 ; used as word ..... .def _tmp23 = R23 .def _tmp24 = R16 ;24 tosl .def _tmp25 = R17 ;25 tosh .def _tmp26 = R26 ;26 X word used .def _tmp27 = R27 ;27 X .def _tmp28 = R14 ;28 Y do not use,word used .def _tmp29 = R15 ;29 Y do not use, .def _tmp30 = R30 ;30 Z Word used .def _tmp31 = R31 ;31 Z ; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% ; save registers if needed ........... push R30 push R31 ;###################################################### ;main body ; Floating point B = A / B ; IEEE 754 ; High Low ; A = R25 R24 R27 R26 IN ; B = R23 R22 R31 R30 IN / OUT fdiv: ; &&&&&&&& I/O &&&&&&&&&&&& ; fetch B mov _tmp22, tosl mov _tmp23, tosh ld _tmp30, Y+ ld _tmp31, Y+ ; fetch A ld _tmp24, Y+ ld _tmp25, Y+ ld _tmp26, Y+ ld _tmp27, Y+ CALL __DIV ; store B st -Y , _tmp31 st -Y , _tmp30 mov tosh, _tmp23 mov tosl, _tmp22 jmp end_fdiv ;########## DO NOT TOUCH >>> THE ASM ROUTINE ############### __DIVfrank: PUSH _tmp21 RCALL __UNxxx CPI _tmp23, 0x80 BRNE __DIV889 TST _tmp1 __DIVjoe: BRPL __DIV324 RJMP __RNM ............... ROL _tmp22 DEC _tmp23 BRVS __DIV2332 __DIVmary: RCALL __R443 POP _tmp21 RET ;###################################################### end_fdiv: .......... pop R31 pop R30 jmp_ DO_NEXT ; this is the end of the word "f_div" So the framework..P. |
|
From: Marcin C. <sa...@sa...> - 2010-09-15 19:51:52
|
On Wed, 15 Sep 2010, Erich Waelde wrote:
>
> avra is currently being worked on again, so it might work again in the near future.
>
It works if you apply my three patches (and remove unsupported .overlap / .nooverlap
for now).
Links for patches:
3044547 Error:: ldi can only use a high register (r16 - r31)
https://sourceforge.net/tracker/?func=detail&aid=3044547&group_id=55499&atid=477233
3044545 movw y, z causes Error:: No register associated with y and z
https://sourceforge.net/tracker/?func=detail&aid=3044545&group_id=55499&atid=477233
3044541 .ifndef does not work (Can't redefine constant, use .SET)
https://sourceforge.net/tracker/?func=detail&aid=3044541&group_id=55499&atid=477233
Let me know if you have any trouble (can be on avra list too).
--Marcin
|
|
From: Erich W. <ew....@na...> - 2010-09-15 19:44:03
|
Hi and welcome, on 09/15/2010 09:24 PM, Al Williams wrote: > I saw amforth and popped it on an ATMega 8. Works but very little code space. > So I dug up an ATmega 16 (you can mark it as working on the matrix -- it > does). > > However, I want to be able to use Marker. I have uploaded the definiton several > different ways including the python shell (which appears not to handle > backspace well in interactive mode, by the way). It seems to work, but after > you execute it (example: marker blah) the system will say OK but any input > will hang the system when you hit enter. This issue is currently being worked on. Version 3.8 works for me (mostly using atmega32). > The other issue I had was trying to use the 16's internal RC clock. It would > work until you wrote to flash (colon definition) and then it would also die with > no recourse but to reflash. With a 10MHz resonator (and the right fuses) it > works fine. Maybe my OSCCAL was too far off for 8MHz (I didn't load the 8MHz > OSCAL but the default 1MHz one was pretty close). It could be, that it has nothing to do with the resonator, but with colon breaking the dictionary. > > So as it stands now I must use a crystal or resonator and whatever I put in as > colon defintions are pretty much forever because there is no forget (I > understand why) or marker. > > Oh, and it took me awhile to figure out that avra was no longer supported :-( avra is currently being worked on again, so it might work again in the near future. > > Any ideas on getting marker to work? > > Great work, by the way. Really a fun piece of software. Cheers, Erich |
|
From: Al W. <al....@aw...> - 2010-09-15 19:30:55
|
I saw amforth and popped it on an ATMega 8. Works but very little code space. So I dug up an ATmega 16 (you can mark it as working on the matrix -- it does). However, I want to be able to use Marker. I have uploaded the definiton several different ways including the python shell (which appears not to handle backspace well in interactive mode, by the way). It seems to work, but after you execute it (example: marker blah) the system will say OK but any input will hang the system when you hit enter. The other issue I had was trying to use the 16's internal RC clock. It would work until you wrote to flash (colon definition) and then it would also die with no recourse but to reflash. With a 10MHz resonator (and the right fuses) it works fine. Maybe my OSCCAL was too far off for 8MHz (I didn't load the 8MHz OSCAL but the default 1MHz one was pretty close). So as it stands now I must use a crystal or resonator and whatever I put in as colon defintions are pretty much forever because there is no forget (I understand why) or marker. Oh, and it took me awhile to figure out that avra was no longer supported :-( Any ideas on getting marker to work? Great work, by the way. Really a fun piece of software. |
|
From: Marcin C. <sa...@sa...> - 2010-09-15 18:48:02
|
I have uploaded the fdiv code (the one I got from Pito) integrated into amforth here: hg clone http://saper.info/hg/forth/fdiv/ It defines "f0", "fmin", "fmax" and "f/" words. //Marcin |
|
From: pito <pi...@vo...> - 2010-09-15 18:44:16
|
Hi, Leon, Marcin and co., if somebody needs the fast word "f/" in asm (f* still not ready) I recommend to use Marcin's one as mine is not amforth like one (I use an template for educational purposes - the same as the template of fuX I posted in the assembler discussion with a lot of stuff highly unoptimised). So it would be good to discuss the flib stuff - as Leon is doing one in forth, there are a lot of others in forth or asm. So the amforth people shall decide on the strategy and standards, if any. My point was to make a standard "template" where, when needed you may attach _any_ code you need into a new word (so: Word header-> i/o from stack stuff-> kind of regnames translator -> the .asm body from anywhere-> DO_NEXT). Pito. |
|
From: pito <pi...@vo...> - 2010-09-15 13:28:29
|
HI, thanks to Marcin, who had shown me again how the stack works, the f/ routine works within amforth as word f/. You may see the speed up (amforth 4.0, new f/ v1. in asm, @25Mhz): > : test_mul_forth timer-start 30000 0 do _pi _ln2 f* drop drop > loop > oktimer-stop 30000 s>f f/ fs. ." sec per mul-forth operation" ; ok > : test_div_asm timer-start 30000 0 do _pi _ln2 f/ drop drop loop oktimer-stop 30000 s>f f/ fs. ." sec per div-asm operation" ; ok > test_mul_forth 4.8192544E-3 sec per mul-forth operation ok > test_div_asm 6.6060271E-5 sec per div-asm operation ok > .s ok > _pi _ln2 f/ fs. 4.5323606 ok > The next step is f* (already waiting for debugging). Marcin did some improvements on the above asm f/ (e.g. he is not storing all regs used, some optimisation and inlineing) so his version of the f/ coud be faster by few usec. Pito. |
|
From: pito <pi...@vo...> - 2010-09-15 08:10:22
|
Marcin, thanks! Pito ----- PŮVODNÍ ZPRÁVA ----- Od: "Marcin Cieslak" <sa...@sa...> Komu: "Everything around amforth" <amf...@li...> Předmět: Re: [Amforth-devel] Word header in asm Datum: 15.9.2010 - 10:01:59 > On Wed, 15 Sep 2010, pito wrote: > > > Hi, > > is there any expalnation available on what these > > .dw $ff03 ; > > High byte: > $75 means the word is immediate word > $ff means the word is about to compiled normally > > Low byte: > $03 is a length of the word name in bytes that > follows > > See core/words/docreate.asm, > core/words/immediate.asm > how its modified, and > core/words/search-wordlist.asm > how it's used. > > > ff02 ff05 in the header of a ams word definition > > means? And if > > > important, how is the implication when writing > > words in asm? Thanks, > > > Pito > > //Marcin > > PS. I am working on the f/ you sent me yesterday. > > ------------------------------------------------------------------------------ > > Start uncovering the many advantages of virtual > appliances > and start using them to simplify application > deployment and > accelerate your shift to cloud computing. > http://p.sf.net/sfu/novell-sfdev2dev > _______________________________________________ > Amforth-devel mailing list > Amf...@li... > https://lists.sourceforge.net/lists/listinfo/amforth-devel |
|
From: Marcin C. <sa...@sa...> - 2010-09-15 08:02:09
|
On Wed, 15 Sep 2010, pito wrote: > Hi, > is there any expalnation available on what these > .dw $ff03 ; High byte: $75 means the word is immediate word $ff means the word is about to compiled normally Low byte: $03 is a length of the word name in bytes that follows See core/words/docreate.asm, core/words/immediate.asm how its modified, and core/words/search-wordlist.asm how it's used. > ff02 ff05 in the header of a ams word definition means? And if > important, how is the implication when writing words in asm? Thanks, > Pito //Marcin PS. I am working on the f/ you sent me yesterday. |
|
From: pito <pi...@vo...> - 2010-09-15 07:49:05
|
Hi, is there any expalnation available on what these .dw $ff03 ; ff02 ff05 in the header of a ams word definition means? And if important, how is the implication when writing words in asm? Thanks, Pito |
|
From: pito <pi...@vo...> - 2010-09-14 17:34:39
|
Hi Leon, I am preparing two words - f/ and f* in asm. The results from simulator are: f_mul 190cycles, 7.6us @25MHz f_div 735cycles, 29.4us @25MHz. You may add a few usec for an overhead. The mul and div routines works. The words has been compiled with amforth already, however I still have problem with passing from/to stack so I cannot get the right results on stack (could be other problem too), therefore I've asked Marcin to help a little bit, when possible. The routine is using 9 registers (except R24, R25, and YL YH), all the tempx regs and few stack positions. The words are only ~350 bytes big. Pito |
|
From: pito <pi...@vo...> - 2010-09-13 08:06:35
|
Leon, I am not sure if it is caused by fp library or f/ word, I'm prone a little bit to think it is an issue of amforth when loading large libraries in one run. Pito. > Interesting -- I'll look in to it. I've been > thinking about rewriting > f/ to use integer arithmetic -- hopefully that'll > make it faster. I > might do the rewrite and see if that solves the > problem. > -Leon |