(71B) FORTH questions
|
10-19-2023, 05:01 PM
(This post was last modified: 06-18-2024 02:22 PM by floppy.)
Post: #81
|
|||
|
|||
RE: (71B) FORTH questions
(06-22-2023 06:51 PM)rprosperi Wrote: FTHUTILA is a TEXT file, with source code for the assembler portion After uploading the files, LIST show following words which are not documented in the Forth utilities manual. Where is the doc? Any advice where to search is welcome. Code:
HP71B 4TH/ASM/Multimod, HP41CV/X/Y & Nov64d, PILBOX, HP-IL 821.62A & 64A & 66A, Deb11 64b-PC & PI2 3 4 w/ ILPER, VIDEO80, V41 & EMU71, DM41X |
|||
10-20-2023, 02:11 AM
Post: #82
|
|||
|
|||
RE: (71B) FORTH questions
These words are simply components of the larger words which are documented in the manual, e.g. UN:C is a component of UN:, DOSST a component of SST, etc.
Limited docs for each word are included in the FTHUTILF source file, including the stack in/out lists and a brief summary of what the word does, for example for UN:C ( UN:C Decompile a word, omitting header [ cfa -> ] ) : UN:C ." CFA: " DUP 'END DUP DUP @ - -5 = IF H. 5SP ." Primitive" PAUSE CR ELSE WORD@ BEGIN 5SP WORD@ DUP ENDA @ = UNTIL DROP THEN ; ( ) --Bob Prosperi |
|||
10-20-2023, 07:45 AM
(This post was last modified: 10-20-2023 07:46 AM by floppy.)
Post: #83
|
|||
|
|||
RE: (71B) FORTH questions
(10-20-2023 02:11 AM)rprosperi Wrote: These words are simply components of the larger words which are documented in the manual, e.g. UN:C is a component of UN:, DOSST a component of SST, etc. Thanks. Good to see few comments in the TXT file. Try in EMU71. first try.. (WEIRD) PLIST FTHUTILF:HDRIVE1 ERR:Invalid Filespec second try.. COPY FTHUTILF:HDRIVE1 TO :MAIN PLIST FTHUTILF (DISPLAY IS PRINTER defined for ILPER) Code: ( FTHUTILF ) HP71B 4TH/ASM/Multimod, HP41CV/X/Y & Nov64d, PILBOX, HP-IL 821.62A & 64A & 66A, Deb11 64b-PC & PI2 3 4 w/ ILPER, VIDEO80, V41 & EMU71, DM41X |
|||
10-20-2023, 11:56 AM
Post: #84
|
|||
|
|||
RE: (71B) FORTH questions
(10-20-2023 07:45 AM)floppy Wrote: first try.. (WEIRD)For some unknown reasons the HP-IL module do not extend the LIST and PLIST keywords to work with files on mass media. Like you did, you have to copy the file into the HP-71B memory and then LIST/PLIST the file. Sylvain Côté |
|||
10-20-2023, 12:32 PM
Post: #85
|
|||
|
|||
RE: (71B) FORTH questions
(10-20-2023 11:56 AM)Sylvain Cote Wrote:(10-20-2023 07:45 AM)floppy Wrote: first try.. (WEIRD)For some unknown reasons the HP-IL module do not extend the LIST and PLIST keywords to work with files on mass media. I've wondered why this limitation exists, and concluded that since the LIST & PLIST output is often directed to an output device (monitor, printer, virtual printer), traffic on the IL loop for simultaneously reading portions of the file INTO the 71B while also sending OUT of the 71B would be quite slow, if indeed not confused. Also, AFAIK, all loop-based file transfers are for the complete file at once, possibly for the same reason(s), but I'm just speculating. --Bob Prosperi |
|||
10-20-2023, 03:46 PM
(This post was last modified: 10-20-2023 03:52 PM by Sylvain Cote.)
Post: #86
|
|||
|
|||
RE: (71B) FORTH questions
(10-20-2023 12:32 PM)rprosperi Wrote:In theory it should be easy to do for a text file, the limitation is probably how list/plist is implemented.(10-20-2023 11:56 AM)Sylvain Cote Wrote: For some unknown reasons the HP-IL module do not extend the LIST and PLIST keywords to work with files on mass media.I've wondered why this limitation exists, and concluded that since the LIST & PLIST output is often directed to an output device (monitor, printer, virtual printer), traffic on the IL loop for simultaneously reading portions of the file INTO the 71B while also sending OUT of the 71B would be quite slow, if indeed not confused. For sure, the way file transfer is currently implemented, it is a lot more efficient to transfer the file into the 71B memory and then list/plist it. When you factor in the other files types, which in some cases include decoding logic, they probably took a step back and decided to leave it as it was. Sylvain Côté |
|||
06-03-2024, 08:49 PM
Post: #87
|
|||
|
|||
RE: (71B) FORTH questions
(06-22-2023 06:51 PM)rprosperi Wrote: FTHUTILA is a TEXT file, with source code for the assembler portionHow this file can be printed or extracted? I just wanted to create a new version of it with the latest updated TIMEASM HP71B 4TH/ASM/Multimod, HP41CV/X/Y & Nov64d, PILBOX, HP-IL 821.62A & 64A & 66A, Deb11 64b-PC & PI2 3 4 w/ ILPER, VIDEO80, V41 & EMU71, DM41X |
|||
06-04-2024, 02:06 AM
Post: #88
|
|||
|
|||
RE: (71B) FORTH questions
(06-03-2024 08:49 PM)floppy Wrote:(06-22-2023 06:51 PM)rprosperi Wrote: FTHUTILA is a TEXT file, with source code for the assembler portionHow this file can be printed or extracted? Code: lifget -r HP-00071-90097_SOFT-DEV-HANDBOOK_MEDIA.LIF FTHUTILA | liftext >FTHUTILA.txt Code: FORTH Sylvain Côté |
|||
06-04-2024, 02:10 AM
Post: #89
|
|||
|
|||
RE: (71B) FORTH questions
(06-03-2024 08:49 PM)floppy Wrote:(06-22-2023 06:51 PM)rprosperi Wrote: FTHUTILA is a TEXT file, with source code for the assembler portionHow this file can be printed or extracted? Connect ILPer, then Code: RESTORE IO Makes changes from revised TIMEASM --Bob Prosperi |
|||
06-17-2024, 02:23 PM
(This post was last modified: 06-17-2024 02:40 PM by floppy.)
Post: #90
|
|||
|
|||
RE: (71B) FORTH questions
From a previous post with TIMEASM..
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 Where can I find all the Forth Primitive? I can find the System primitives there https://github.com/bug400/asm71/blob/mas...71ENTR.TXT and in the HP71 SW IDS Volume 3. Background: trying to make Forth words like X<>Z or RCL/Z or X_2/ or X_2* purely in assembler (no Forth stack movement) HP71B 4TH/ASM/Multimod, HP41CV/X/Y & Nov64d, PILBOX, HP-IL 821.62A & 64A & 66A, Deb11 64b-PC & PI2 3 4 w/ ILPER, VIDEO80, V41 & EMU71, DM41X |
|||
06-18-2024, 02:57 AM
Post: #91
|
|||
|
|||
RE: (71B) FORTH questions
(06-17-2024 02:23 PM)floppy Wrote: Where can I find all the Forth Primitive? There is no canonical list (at least none I've ever found), however to easily explore them, you can use VCAT (in the manual) to list all the words in the ROM, and then use uncolon ("UN:") from the Developers handbook to decompile the Forth words (written in Forth), but these are not true primitives if you mean written in assembler. While disassemblers do exist for the 71B, AFAIK, they all are aimed at disassembling LEX files, which are structurally very different from Forth primitives, so it's highly doubtful if these would work. --Bob Prosperi |
|||
06-18-2024, 04:29 AM
Post: #92
|
|||
|
|||
RE: (71B) FORTH questions
(06-18-2024 02:57 AM)rprosperi Wrote: to easily explore them, you can use VCAT (in the manual) to list all the words in the ROM It's VLIST, on p.32 of the 82441A manual from April 1984. http://WilsonMinesCo.com (Lots of HP-41 links at the bottom of the links page, at http://wilsonminesco.com/links.html#hp41 ) |
|||
06-18-2024, 09:42 AM
(This post was last modified: 06-18-2024 06:36 PM by floppy.)
Post: #93
|
|||
|
|||
RE: (71B) FORTH questions
(06-18-2024 04:29 AM)Garth Wilson Wrote: It's VLIST, on p.32 of the 82441A manual from April 1984.Thanks. Output of it is below (if need of anybody in a text form). However, the entry points E717A and E71A5 and E7320 are not seen: in a readable assembler code like in the IDS V3.. My new path: I will have a look now how to dump the module then to print the assembler in a readable form. VLIST Code: " Are the entries listed above in the post top, the CFA address of some words? when I see the "lift floating point stack" then I was thinking about FENTER. Then I tried to find it.. but it shows E4C0F. Then perhaps thats not the correct way. " FENTER" S. . 2- FIND S. . HEX . [ 35491 6 ] 6 [ E4C0F FFFFF ] -1 -1B3F1 OK { 0 } UN: FENTER show. Word: FENTER LFA: E4BFC Link: E4B8A NFA: E4C01 686454E445542D CFA: E4C0F Primitive OK { 0 } Now I will scan the other Forth words till I find the searched entry points. UPDATE/CLOSURE: the Forth entry points are found in the 71ForthASM_IMS_IDS.pdf (entry point E7320 found in page 298 of the pdf file). HP71B 4TH/ASM/Multimod, HP41CV/X/Y & Nov64d, PILBOX, HP-IL 821.62A & 64A & 66A, Deb11 64b-PC & PI2 3 4 w/ ILPER, VIDEO80, V41 & EMU71, DM41X |
|||
07-03-2024, 09:31 AM
Post: #94
|
|||
|
|||
RE: (71B) FORTH questions
I was searching for Forth words written in ASM using float numbers. Apart the IDS 1 2 3 and Forth ROM IDS and TIMEASM ( and JPC ROM http://www.jeffcalc.hp41.eu/emu71/files/jpclstx.pdf ) where I could find a light mix of float and integer ASM code lines, I could not find anything. Has anybody some hint where to find float functions written in ASM? (outside the HP OS/ROM SW listings)
Thanks. HP71B 4TH/ASM/Multimod, HP41CV/X/Y & Nov64d, PILBOX, HP-IL 821.62A & 64A & 66A, Deb11 64b-PC & PI2 3 4 w/ ILPER, VIDEO80, V41 & EMU71, DM41X |
|||
07-03-2024, 11:47 AM
Post: #95
|
|||
|
|||
RE: (71B) FORTH questions
(07-03-2024 09:31 AM)floppy Wrote: I was searching for Forth words written in ASM using float numbers. Apart the IDS 1 2 3 and Forth ROM IDS and TIMEASM ( and JPC ROM http://www.jeffcalc.hp41.eu/emu71/files/jpclstx.pdf ) where I could find a light mix of float and integer ASM code lines, I could not find anything. Has anybody some hint where to find float functions written in ASM? (outside the HP OS/ROM SW listings) I hope you find something, but I doubt it; I've looked for 30+ years and never found any, or even heard that some exist. The only 'source' of such might be to disassemble programs such as the excellent RPN program from Chris Capener (it's in all the usual 71B LEX collections, although this program was a BIN file, not a LEX). --Bob Prosperi |
|||
07-05-2024, 08:07 AM
(This post was last modified: 07-07-2024 03:13 AM by brouhaha.)
Post: #96
|
|||
|
|||
RE: (71B) FORTH questions
(07-03-2024 09:31 AM)floppy Wrote: Has anybody some hint where to find float functions written in ASM? (outside the HP OS/ROM SW listings) It seems unlikely that there are any floating point routines for Saturn (or the earlier HP calculator architectures) other than the ones built into the machine. There was no advantage to rolling your own, and huge advantage to using what was provided. Even third-party ROMs for the 41 called the 41 mainframe ROMs to do floating point. The 71 was the first machine in the HP APD and CVD development line for which the floating point routines were actually officially documented and supported by HP. The detailed documentation is in the 71B Software IDS Volume II, and the source code in Volume III. The HP-71 FORTH/Assembler ROM provides floating point words, documented on pages 19-21 of the FORTH/Assembler ROM Owner's Manual. These of course use the mainframe floating point rotuines. All later HP calculators based on Saturn processors (or Saturn emulated on ARM) used floating point routines derived from the HP-71, but some of the IEEE support was deemed unnecessary and removed. All HP calculators based on the Nut architecture (41C/CV/CX, 10C-12C, 15C, 16C) used floating point routines nearly identical to the prior 30 series, which themselves are not too different than the 19C/29C/67/97 routines. |
|||
07-05-2024, 11:56 AM
Post: #97
|
|||
|
|||
RE: (71B) FORTH questions
(07-05-2024 08:07 AM)brouhaha Wrote:(07-03-2024 09:31 AM)floppy Wrote: Has anybody some hint where to find float functions written in ASM? (outside the HP OS/ROM SW listings) Thanks Eric, I had not thought of these! These are also well documented in the Forth/Assembler ROM IDS, so very useful examples of using the 71B ROM FP routines. That said, this is a seriously complex set of docs which takes a lot of time to wade through. I've never made much really useful sense of it all, but my motivation when I explored it was mere general curiosity, and did not focus on the FP words, so perhaps they are more clear. --Bob Prosperi |
|||
08-21-2024, 09:23 AM
Post: #98
|
|||
|
|||
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 MultiModIs there an IDS manual for this translator module? Could not find one. HP71B 4TH/ASM/Multimod, HP41CV/X/Y & Nov64d, PILBOX, HP-IL 821.62A & 64A & 66A, Deb11 64b-PC & PI2 3 4 w/ ILPER, VIDEO80, V41 & EMU71, DM41X |
|||
08-21-2024, 11:54 AM
Post: #99
|
|||
|
|||
RE: (71B) FORTH questions
(08-21-2024 09:23 AM)floppy Wrote:(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 MultiModIs there an IDS manual for this translator module? Could not find one. No, but Bill Wickes (author of the Translator) also wrote the "HP 82490A HP-41 Translator Pac Programmer's Toolkit" available at the time from HP's User Library Program, which is available here: https://literature.hpcalc.org/items/1415 It is definitely NOT as detailed as the IDS and contains no source listing, but it will be a big help if you want to get into low-level details. Note that the toolkit itself (a .zip file with the utilities) is also provided towards the bottom. --Bob Prosperi |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 8 Guest(s)