Post Reply 
(71B) FORTH questions
06-16-2023, 02:20 PM
Post: #21
RE: (71B) FORTH questions
The IDS V1 is the right source of information. See section 15.1.2:
"The current time may be computed by subtracting the current timer from the target time".
However, doing it by yourself in FORTH is not trivial.
You need to read 2 quantities at 2 different locations still making sure of the consistency, moreover the hardware timer runs asynchronously vs the CPU, its content may change during the read, so a double read and check is required.
There are system routines which do it for you.

A solution could be to build a FORTH word in assembly language to call the right system routine, for instance CMPT (see IDS V2 section 25.1). Then you will *just* have to convert the time in 1/512ths since midnight 1 Jan 0000 to usual date and time of the day.
Don't ask me how, I never did such a thing... but it would be a good exercice.

J-F
Visit this user's website Find all posts by this user
Quote this message in a reply
06-16-2023, 03:18 PM (This post was last modified: 06-16-2023 03:19 PM by Valentin Albillo.)
Post: #22
RE: (71B) FORTH questions
(06-16-2023 01:53 PM)floppy Wrote:  I am searching the memory area where the time counter is placed.

Be also aware of this bug:

"1084-3: Small probability exists for bad timer readings, causing random clock errors."

I vaguely remember that the only solution required reading the clock three consecutive times and checking them, in order to assure a good reading.

V.

  
All My Articles & other Materials here:  Valentin Albillo's HP Collection
 
Visit this user's website Find all posts by this user
Quote this message in a reply
06-16-2023, 04:01 PM
Post: #23
RE: (71B) FORTH questions
(06-16-2023 03:18 PM)Valentin Albillo Wrote:  "1084-3: Small probability exists for bad timer readings, causing random clock errors."

I vaguely remember that the only solution required reading the clock three consecutive times and checking them, in order to assure a good reading.

Thanks Valentin, I didn't remember that bug.
Actually, the code is already doing up to 3 reads with this algorithm (GETTIM routine):
Read timer -> B
Read timer -> A
If A#B then Read timer -> A

The bug is classified as minor in this document, with these extra details:
"Risk of this bug occurring increases if user runs 2 or 3 ON TIMERs with short intervals."
It may come from an inconsistency between the timer and the target time (the 2 quantities I mentioned above), in case a timer event occurs between the reading of these 2 quantities. Without ON TIMER statements, hardware timer events occur every 4.55 hours, so the risk is very low.

I don't know how to easily reproduce the bug, and I can't check if it was fixed in the latest version 2CDCC.

J-F
Visit this user's website Find all posts by this user
Quote this message in a reply
06-16-2023, 05:27 PM
Post: #24
RE: (71B) FORTH questions
Thanks. Is anywhere an assembler list of the "CLOCK" word of the translator module? Could be a point where to start.

HP71 4TH/ASM & Multimod, HP41CV/X & Nov64d, PILBOX, HP-IL 821.62A & 64A & 66A, Deb11 64b-PC & PI2 3 4 w/ ILPER, VIDEO80, V41 & EMU71, DM41X, HP75D
Find all posts by this user
Quote this message in a reply
06-16-2023, 05:39 PM
Post: #25
RE: (71B) FORTH questions
Although I am not a regular HP-71B user, I have studied its clock system in great detail so as to be well prepared for the reverse engineering of the clock systems on the RPL machines (Paladin, Orlando, Charlemagne, Alcuin/Hammer, Elsie) which all use the same basic concepts inherited from Titan, albeit not necessarily the same code.

I can, therefore, confirm that the bug was indeed fixed in ROM revision 2CDCC. Here is my own disassembly of GETTIM for both the 1BBBB and the 2CDCC revisions.

1BBBB
Code:

1254A 04         GETTIM SETHEX
1254C 1B8F2E2           D0=(5)  =TIMER2        Point to timer in disp driv.
12553 AF0               A=0     W
12556 15A5              A=DAT0  6              Read timer
1255A A98               B=A     WP
1255D 15A5              A=DAT0  6              Read again.
12561 25                P=      5
12563 910               ?A=B    WP             Kerchunk anywhere?
12566 60                GOYES   GETTM2         No.  Reads are good.
12568 15A5              A=DAT0  6              Yes.  One more read.
1256C A88        GETTM2 B=A     P
1256F A05               B=B+B   P              Negative?
12572 500               RTNNC                  No
12575 B98               A=-A    WP             Yes.  perform sign-extend
12578 BF8               A=-A    W
1257B 02                RTNSC

2CDCC
Code:

1254A 04         GETTIM SETHEX
1254C 1B8F2E2           D0=(5)  =TIMER2        Point to timer in disp driv.
12553 AF0               A=0     W
12556 15A5              A=DAT0  6              Read timer
1255A 25                P=      5              [GD: Set value of P *before* using...]
1255C A98               B=A     WP             [    ...WP for the first time!]
1255F 15A5              A=DAT0  6              Read again.
12563 910               ?A=B    WP             Kerchunk anywhere?
12566 60                GOYES   GETTM2         No.  Reads are good.
12568 15A5              A=DAT0  6              Yes.  One more read.
1256C A88        GETTM2 B=A     P
1256F A05               B=B+B   P              Negative?
12572 500               RTNNC                  No
12575 B98               A=-A    WP             Yes.  perform sign-extend
12578 BF8               A=-A    W
1257B 02                RTNSC
Find all posts by this user
Quote this message in a reply
06-16-2023, 08:12 PM
Post: #26
RE: (71B) FORTH questions
(06-16-2023 05:39 PM)Giuseppe Donnini Wrote:  Although I am not a regular HP-71B user, I have studied its clock system in great detail ...
I can, therefore, confirm that the bug was indeed fixed in ROM revision 2CDCC. Here is my own disassembly of GETTIM for both the 1BBBB and the 2CDCC revisions.

Good catch!
Indeed, the P= 5 instruction was at the wrong place !
This means the double read check was ineffective most of the time, mostly forcing a third read that was potentially wrong.
This was very likely the cause of the bug.


(06-16-2023 05:27 PM)floppy Wrote:  Thanks. Is anywhere an assembler list of the "CLOCK" word of the translator module? Could be a point where to start.

I've very little knowledge of the translator module (I can't know everything about the 71B ...) so didn't know about the CLOCK word.
Indeed, a disassembly may give you useful information.

J-F
Visit this user's website Find all posts by this user
Quote this message in a reply
06-17-2023, 01:52 AM
Post: #27
RE: (71B) FORTH questions
(06-16-2023 01:53 PM)floppy Wrote:  
(06-16-2023 03:22 AM)rprosperi Wrote:  I'm not sure what you mean by "BASIC functions? prohibited", but you can try this:

" TIME$" BASIC$ which returns a string with the current time to the stack, which you can then display with the TYPE command.
And with no BASIC? I am searching the memory area where the time counter is placed.

Why not use the BASIC commands, that's why they were put there, so you don't have to create all the system access components by hand in Forth? You may as well, since reading various memory locations will all be 71B-specific, and not portable.

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
06-19-2023, 08:09 PM (This post was last modified: 06-19-2023 08:22 PM by floppy.)
Post: #28
RE: (71B) FORTH questions
(06-16-2023 08:12 PM)J-F Garnier Wrote:  I've very little knowledge of the translator module (I can't know everything about the 71B ...) so didn't know about the CLOCK word.
Indeed, a disassembly may give you useful information.

J-F

Manual Translator 7141tr.pdf page 192 (FORTH Words by Category) show CLOCK in the system WORDS. Description of the word CLOCK in page 129.
Any disassembly of it is a plan A so far (I am still searching).
Plan B is I order a translator module on ebay and disassemble on my own (the project is becoming bigger and bigger since assembler on HP71B is a new field for me. apart from all following new tools in my project: emacs gforth Forth71B awk).

HP71 4TH/ASM & Multimod, HP41CV/X & Nov64d, PILBOX, HP-IL 821.62A & 64A & 66A, Deb11 64b-PC & PI2 3 4 w/ ILPER, VIDEO80, V41 & EMU71, DM41X, HP75D
Find all posts by this user
Quote this message in a reply
06-19-2023, 09:08 PM
Post: #29
RE: (71B) FORTH questions
The .BIN file for the 41 Translator is available in various places. Load it into Emu71 and examine it there. The Forth library on which it is based is also available. You could even load the Translator into your MultiMod Smile

Remember kids, "In a democracy, you get the government you deserve."
Find all posts by this user
Quote this message in a reply
06-19-2023, 09:16 PM (This post was last modified: 06-19-2023 09:18 PM by Sylvain Cote.)
Post: #30
RE: (71B) FORTH questions
(06-19-2023 08:09 PM)floppy Wrote:  Manual Translator 7141tr.pdf page 192 (FORTH Words by Category) show CLOCK in the system WORDS. Description of the word CLOCK in page 129.
Any disassembly of it is a plan A so far (I am still searching).
Plan B is I order a translator module on ebay and disassemble on my own (the project is becoming bigger and bigger since assembler on HP71B is a new field for me. apart from all following new tools in my project: emacs gforth Forth71B awk).
Why not using a HP-71B emulator with the Translator module ? Edit: Mark was faster than me. Cool
Find all posts by this user
Quote this message in a reply
06-20-2023, 02:15 AM
Post: #31
RE: (71B) FORTH questions
If you plan to get deeep into 71B Forth and start decompiling, disassembling, and other gory stuff, I strongly recommend you closley examine the "HP-71B Software Developer's Handbook", available here:

https://literature.hpcalc.org/items/1067

A LIF image of the included disk is attached below (remove trailing ".txt", used to allow attachment in the forum).

There is a small, but very good Forth section with some very useful Forth words which are BY FAR the best examples I've ever found on how the 71B Forth System works. The software that came with the book includes full Forth source code for all the words in the package; studying them teaches one a lot about 71B Forth.

While there is no Clock Word, there are words for using the clock to time program execution, walking the dictionary chain, de-compiling a Forth word that's in the dictionary, etc.

This will save you some trouble: The pkg was for the Forth/Assembler and not for the 41 Translator, as the internal dictionaries for the two Forth-based products are not the same. 37 years ago I modified the Forth sources to work with the 41 Translator ROM, but don't believe I still have that version.


Attached File(s)
.txt  DEV-HB.DAT.txt (Size: 49.75 KB / Downloads: 24)

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
06-20-2023, 10:31 AM
Post: #32
RE: (71B) FORTH questions
(06-19-2023 09:08 PM)mfleming Wrote:  The .BIN file for the 41 Translator is available in various places. Load it into Emu71 and examine it there. The Forth library on which it is based is also available. You could even load the Translator into your MultiMod Smile
I will in EMU71.
I had the impression this was hardware linked for a use in HP71B: fine if Multimod works.

HP71 4TH/ASM & Multimod, HP41CV/X & Nov64d, PILBOX, HP-IL 821.62A & 64A & 66A, Deb11 64b-PC & PI2 3 4 w/ ILPER, VIDEO80, V41 & EMU71, DM41X, HP75D
Find all posts by this user
Quote this message in a reply
06-20-2023, 07:41 PM
Post: #33
RE: (71B) FORTH questions
Thanks a lot for that DAT file Bob

It puzzles me how things are right under my nose and then “someone” triggers me to actually “look and learn” - had been looking for good Forth examples on Titan - and there it was.
As a bonus an example of how to assemble with the forth assembler.

Now I am waiting for a rainy day - again…

KimH

(06-20-2023 02:15 AM)rprosperi Wrote:  If you plan to get deeep into 71B Forth and start decompiling, disassembling, and other gory stuff, I strongly recommend you closley examine the "HP-71B Software Developer's Handbook", available here:

https://literature.hpcalc.org/items/1067

A LIF image of the included disk is attached below (remove trailing ".txt", used to allow attachment in the forum).

There is a small, but very good Forth section with some very useful Forth words which are BY FAR the best examples I've ever found on how the 71B Forth System works. The software that came with the book includes full Forth source code for all the words in the package; studying them teaches one a lot about 71B Forth.

While there is no Clock Word, there are words for using the clock to time program execution, walking the dictionary chain, de-compiling a Forth word that's in the dictionary, etc.

This will save you some trouble: The pkg was for the Forth/Assembler and not for the 41 Translator, as the internal dictionaries for the two Forth-based products are not the same. 37 years ago I modified the Forth sources to work with the 41 Translator ROM, but don't believe I still have that version.
Find all posts by this user
Quote this message in a reply
06-20-2023, 09:30 PM
Post: #34
RE: (71B) FORTH questions
(06-20-2023 07:41 PM)KimH Wrote:  Thanks a lot for that DAT file Bob

It puzzles me how things are right under my nose and then “someone” triggers me to actually “look and learn” - had been looking for good Forth examples on Titan - and there it was.
As a bonus an example of how to assemble with the forth assembler.

Now I am waiting for a rainy day - again…

KimH

Happy to help. The source for the Forth tools that came in this product are the only way I was able to teach myself 71B Forth back in the day. I had the Brodie book of course, but sooo many things are different due to wonky 20-bit addresses, etc. that very little I was trying was working, and then after playing around with the info. in this toolkit, much (!) became clear. And they're not only useful for teaching, but also pretty useful as premade tools to use in your programs.

Most interesting tool in the kit: UN: (that's un-colon) which decompiles a word in the dictionary, so you can recover source from binaries. The results are frustratingly only displayed, and redirection isn't possible, but at least it's a start, and hey, you got the code, so you can change it...

Have fun and please report back after it rains....

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
06-21-2023, 12:03 AM (This post was last modified: 06-22-2023 07:43 PM by Sylvain Cote.)
Post: #35
RE: (71B) FORTH questions
From the Software Developer Handbook, assembly code for the FORTH word → TIME

Code:

       FORTH
*                                TIMEASM
*                        FORTH TIME: Primitive

SAVEFP EQU #E717A           FORTH entry points:  Save FORTH pointers
GETFP  EQU #E71A5                                Recover FORTH pointers
STKLFT EQU #E7320                                Lift floating-point stack
CMPT   EQU #125B2          System entry points:  Read time
IDIV   EQU #0EC7B                                Full word integer divide
HXDCW  EQU #0ECB4                                Hex to decimal
FLOAT  EQU #1B322                                Integer to floating point
CLRFRC EQU #0C6F4                                Clear fractional part
DV2-12 EQU #0C4A8                                12-digit divide

* TIME : Read system clock in seconds; return result to X
       WORD 'TIME'
       GOSBVL SAVEFP
       GOSBVL STKLFT
       P=     5              *** workaround for bug 1084
       GOSBVL CMPT           C(W) = Time in hex 512ths of a second
*
ACLC24 A=C W                 Unsupported entry point. 12B79
       C=0 W
       P= 4
       LCHEX 2A3             C = 2A30000
       D=C W                 D = 2A30000 ( 24 hours in 512th's of a second )
*
       GOSBVL IDIV
       GOSBVL HXDCW
       A=C W
       GOSBVL FLOAT
       C=0 W
       P= 12
       LCHEX 512             C = 5.12
       GOSBVL DV2-12         A,B = Time*100
       GOSBVL CLRFRC         A,B = IP(Time*100)
       GOSUB TRUNCC
       C=C-1 X
       C=C-1 X               C = TIME
       SETHEX
       D0=(5) #2FBD0         X-Register
       DAT0=C W              X = TIME
       GOSBVL GETFP
       RTNCC

TRUNCC P= 0                  unsupported system utility at 12B4A
       LCHEX 00499           rounds 15-digit A,B to 12-digit C
       ?A<=C A
       GOYES TRUN20
       C=-C A
       ?A>=C A
       GOYES TRUN20
       C=0 W
       A=A+A A
       GOC TRUN10
       LCHEX F00
       C=A S
TRUN10 RTNCC
TRUN20 C=A W
       C=B M
       RTNCC

       END

Usage: (in FORTH environment)
Code:
TIME  F.  [endline]

edit 1: add Jean-François correction
edit 2: add missing TRUN routines
Find all posts by this user
Quote this message in a reply
06-21-2023, 07:00 AM (This post was last modified: 06-21-2023 07:14 AM by J-F Garnier.)
Post: #36
RE: (71B) FORTH questions
(06-21-2023 12:03 AM)Sylvain Cote Wrote:  From the Software Developer Handbook, assembly code for the FORTH word → TIME

Usage: (in FORTH environment)
Code:
TIME  F.  [endline]

Great!

For 1BBBB users, you can avoid the bug reported above by adding a P= 5 instruction just before the call to CMPT:


Code:

       WORD 'TIME'
       GOSBVL SAVEFP
       GOSBVL STKLFT
       P=     5              *** workaround for bug 1084
       GOSBVL CMPT           C(W) = Time in hex 512ths of a second
...

J-F
Visit this user's website Find all posts by this user
Quote this message in a reply
06-22-2023, 05:13 PM
Post: #37
RE: (71B) FORTH questions
(06-21-2023 07:00 AM)J-F Garnier Wrote:  
(06-21-2023 12:03 AM)Sylvain Cote Wrote:  From the Software Developer Handbook, assembly code for the FORTH word → TIME

Usage: (in FORTH environment)
Code:
TIME  F.  [endline]

Great!

For 1BBBB users, you can avoid the bug reported above by adding a P= 5 instruction just before the call to CMPT:


Code:

       WORD 'TIME'
       GOSBVL SAVEFP
       GOSBVL STKLFT
       P=     5              *** workaround for bug 1084
       GOSBVL CMPT           C(W) = Time in hex 512ths of a second
...

J-F

Ah.

Sylvain: "Software Developer Handbook" page 41 says, upload FTHUTILA and FTHUTILF: where are they (as LIF file)?

JF: how to upload such codes in FORTH?

HP71 4TH/ASM & Multimod, HP41CV/X & Nov64d, PILBOX, HP-IL 821.62A & 64A & 66A, Deb11 64b-PC & PI2 3 4 w/ ILPER, VIDEO80, V41 & EMU71, DM41X, HP75D
Find all posts by this user
Quote this message in a reply
06-22-2023, 06:51 PM (This post was last modified: 06-22-2023 09:38 PM by rprosperi.)
Post: #38
RE: (71B) FORTH questions
I am not them, but hopefully these answers will help:

FTHUTILA is a TEXT file, with source code for the assembler portion
FTHUTILF is a TEXT file with source code for the FORTH portion
FTHUTILC is a (compiled) FORTH file, which can be used as-is (this is the result of assembling FTHUTILA and compiling FTHUTILF into an empty FORTHRAM file) by renaming to FORTHRAM and copying to the 71B's main RAM.

All 3 of these files are in the LIF volume I uploaded.

If you prefer to build it yourself, copy the FTHUTILA and FTHUTILF text files to the 71B and follow the short steps in section 21.1 of the manual. Note that if you have already added FORTH words to your dictionary, these words will be added AFTER your existing words, and if they happen to have the same name, your words will not be available, the new word with the same name will be used.

Creating this (or using the provided FTHUTILC file (renamed to FORTHRAM)) will let you use the TIME word Sylvain mentioned above.

Note: Forth itself, and especially the assembler, are fairly slow, but the more RAM you configure your 71B with, the faster assembling and compiling will be.

Good luck

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
06-22-2023, 07:53 PM (This post was last modified: 06-22-2023 08:06 PM by Sylvain Cote.)
Post: #39
RE: (71B) FORTH questions
(06-22-2023 05:13 PM)floppy Wrote:  Sylvain: "Software Developer Handbook" page 41 says, upload FTHUTILA and FTHUTILF: where are they (as LIF file)?

Using files from SDH LIF volume as is (with the 1BBBB bug in it) in a Emu71 + Virtual-IL setup ...
  1. download the LIF volume file that Robert posted in one of the previous message → DEV-HB.DAT.txt
  2. rename the file to DEV-HB.DAT
  3. run ILPER
  4. configure ILPER to use TCP-IP instead of the PIL-Box
  5. configure ILPER to use the DEV-HB.DAT LIF volume
  6. start ILPER
  7. run EMU71
  8. configure EMU71 virtual IL module to use TCP-IP
  9. configure EMU71 to use the FORTH ROM image
  10. configure EMU71 to use a 128K RAM module
  11. start EMU71
  12. CAT :TAPE should give you the following listing:
    Code:
       NAME    S TYPE   LEN    DATE    TIME 
    STRINGLX     LEX     837 12/11/11 19:58 
    KBD150       BASIC  1088 12/11/11 19:58 
    PATTERN      LEX     171 12/11/11 19:59 
    GEDIT        BASIC  1085 12/11/11 19:59 
    KBD264       BASIC   932 12/11/11 19:59 
    CUSTUTIL     LEX    1007 12/11/11 20:00 
    FTHUTILA     TEXT   7424 12/11/11 20:00 
    BREAKPT      LEX     365 12/11/11 20:01 
    FTHUTILC     FORTH  4437 12/11/11 20:01 
    FTHUTILF     TEXT  11520 12/11/11 20:03
  13. PURGE FORTHRAM // optional: restart from scratch your FORTH environment
  14. FORTH
  15. " FTHUTILA:TAPE" ASSEMBLE
  16. " FTHUTILF:TAPE" LOADF
  17. TIME // get time and put value in X of the floating point stack
  18. F. // display floating point stack X which is the time in seconds
  19. BYE


Alternatively ...

my setup
  • lifutils installed on macOS/linux and in my path.
  • Using virtual machine provider (Parallels , VMware, etc) to run Windows 7 64-bit Pro
  • Virtual-IL & EMU71 is installed in Windows
  • Shared drive is activated and configured so I can stuff in macOS/Linux and use the output in Windows

Using the custom TIME patched file with in a Emu71 + Virtual-IL setup ...
  1. save the following code in an ascii text file named -> timeasm.txt
    Code:

           FORTH
    *                                TIMEASM
    *                        FORTH TIME: Primitive

    SAVEFP EQU #E717A           FORTH entry points:  Save FORTH pointers
    GETFP  EQU #E71A5                                Recover FORTH pointers
    STKLFT EQU #E7320                                Lift floating-point stack
    CMPT   EQU #125B2          System entry points:  Read time
    IDIV   EQU #0EC7B                                Full word integer divide
    HXDCW  EQU #0ECB4                                Hex to decimal
    FLOAT  EQU #1B322                                Integer to floating point
    CLRFRC EQU #0C6F4                                Clear fractional part
    DV2-12 EQU #0C4A8                                12-digit divide

    * TIME : Read system clock in seconds; return result to X
           WORD 'TIME'
           GOSBVL SAVEFP
           GOSBVL STKLFT
           P=     5              *** workaround for bug 1084
           GOSBVL CMPT           C(W) = Time in hex 512ths of a second
    *
    ACLC24 A=C W                 Unsupported entry point. 12B79
           C=0 W
           P= 4
           LCHEX 2A3             C = 2A30000
           D=C W                 D = 2A30000 ( 24 hours in 512th's of a second )
    *
           GOSBVL IDIV
           GOSBVL HXDCW
           A=C W
           GOSBVL FLOAT
           C=0 W
           P= 12
           LCHEX 512             C = 5.12
           GOSBVL DV2-12         A,B = Time*100
           GOSBVL CLRFRC         A,B = IP(Time*100)
           GOSUB TRUNCC
           C=C-1 X
           C=C-1 X               C = TIME
           SETHEX
           D0=(5) #2FBD0         X-Register
           DAT0=C W              X = TIME
           GOSBVL GETFP
           RTNCC

    TRUNCC P= 0                  unsupported system utility at 12B4A
           LCHEX 00499           rounds 15-digit A,B to 12-digit C
           ?A<=C A
           GOYES TRUN20
           C=-C A
           ?A>=C A
           GOYES TRUN20
           C=0 W
           A=A+A A
           GOC TRUN10
           LCHEX F00
           C=A S
    TRUN10 RTNCC
    TRUN20 C=A W
           C=B M
           RTNCC

           END
    From the command line on macOS/Linux and in a folder that is shared with Windows:
  2. lifinit -z -m cass v71time.dat 64
  3. liflabel v71time.dat TAPE01
  4. cat timeasm.txt | textlif TIMEASM | lifput v71time.dat
  5. lifdir v71time.dat // should give you the following listing:
    Code:

    Volume : TAPE01 , formatted : 22/06/23 15:00:00
    Tracks: 2 Surfaces: 1 Blocks/Track: 256 Total size: 512 Blocks, 131072 Bytes
    TIMEASM     TEXT         2048/2048     22/06/23 15:35:45
    1 files (64 max), last block used: 17 of 512
    On Windows
  6. run ILPER
  7. configure ILPER to use TCP-IP instead of the PIL-Box
  8. configure ILPER to use the v71time.dat LIF volume from the shared drive
  9. start ILPER
  10. run EMU71
  11. configure EMU71 virtual IL module to use TCP-IP
  12. configure EMU71 to use the FORTH ROM image
  13. configure EMU71 to use a 128K RAM module
  14. start EMU71
  15. CAT :TAPE should give you the following listing:
    Code:
       NAME    S TYPE   LEN    DATE    TIME 
    TIMEASM      TEXT   1792 06/22/23 15:07
  16. PURGE FORTHRAM // optional: restart from scratch your FORTH environment
  17. FORTH
  18. " TIMEASM:TAPE" ASSEMBLE
  19. TIME // get time and put value in X of the floating point stack
  20. F. // display floating point stack X which is the time in seconds
  21. BYE


edit 1: typo
edir 2: added environment info
Find all posts by this user
Quote this message in a reply
07-25-2023, 02:36 PM
Post: #40
RE: (71B) FORTH questions
What would be the word CELLS implementation (see gforth https://gforth.org/manual/Address-arithm...02d0_002e2 ) in HP71B Forth ?
Any advice is welcome.

HP71 4TH/ASM & Multimod, HP41CV/X & Nov64d, PILBOX, HP-IL 821.62A & 64A & 66A, Deb11 64b-PC & PI2 3 4 w/ ILPER, VIDEO80, V41 & EMU71, DM41X, HP75D
Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 1 Guest(s)