The following warnings occurred:
Warning [2] Undefined array key 47388 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 47391 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 47393 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 47394 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 47412 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 47421 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 47525 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 47540 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 47618 - Line: 275 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 275 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $thread - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $fid - Line: 295 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 295 errorHandler->error_callback
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 47394 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 47412 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 47421 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined array key 47618 - Line: 331 - File: inc/plugins/threaded_mode.php PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php 331 errorHandler->error_callback
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 332 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 304 ThreadedMode::buildtree
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $theme - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $theme - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Trying to access array offset on value of type null - Line: 3 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 3 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Undefined variable $lang - Line: 5 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 5 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks
Warning [2] Attempt to read property "messages_in_thread" on null - Line: 5 - File: inc/plugins/threaded_mode.php(305) : eval()'d code PHP 8.1.2-1ubuntu2.14 (Linux)
File Line Function
/inc/class_error.php 153 errorHandler->error
/inc/plugins/threaded_mode.php(305) : eval()'d code 5 errorHandler->error_callback
/inc/plugins/threaded_mode.php 305 eval
/inc/plugins/threaded_mode.php 23 ThreadedMode::showthread_threaded
/inc/class_plugins.php 142 threaded_mode_showthread_threaded
/showthread.php 918 pluginSystem->run_hooks





HP-IL mass storage - opinions needed



#10

Hello,

during last couple of days (or, better to say, couple of nights), I coded the basic layer of the modern mass storage, which I am building from parts saved from old HP-IL cassette drive.

Situation is as follows. The microcontroller react to most HP-IL commands and succesfully mimic the HP-IL mass storage on the HP-IL bus (it is possible to format it with NEWM and write/read data for example with WRTP).

Of course, there are some minor bugs and everything is not yet implemented.

Mainly, the mass storage itself is not implemented (I am using the 64KB external RAM of the microcontroller for testing).

I already got the 64MB MMC card which will be used as a permanent mass storage. When I will start to write the software for MMC card, I must make one basic decision.
To FAT or not to FAT, it is a question. :-)

Normally, the MMC cards are preformatted as a DOS/Win harddisk, with partition table and FAT system. This mean, that they are normally readable/writable by a PC, if the card reader is attached to the system (USB, CF adapter etc.)

For HP-IL compatible storage, it is possible to create 500 DOS files, each 128KB long and implement the LIF file system inside each file. The file without LIF file system will behave like empty, unformatted tape.

Or, there is a second option. Discard the original format of the MMC card and read/write/erase the card on block/sector base.

Each approach has its pros and cons.

FAT system Pros: "tapes" are normally readable and writable by PC and it should be simple to write some PC software which will decode the LIF file system inside those files.

FAT system Cons: the software in the microcontroller must be very complex, because it will be necessary to implement the whole FAT system inside the microcontroller. It is not a trivial task, especially for memory cards (a lot of caching is necessary, because it is not possible to simply rewrite the sector on the card here and there).

Sector use Pros: simple implementation, probably much faster access.

Sector use Cons: it is not possible to read/write card in PC without special driver. Someone must write the driver for the Windows and/or Linux.

Which implementation I should use ? Let's discuss about it.


#11

Pavel,
I am more than interested into your project, not specifically the memory storage emulation but the hpil handling.
I would like to build the HPIL sniffer using a pic too, I need to decide if interfacing with the hpil is feasible or not using a 16f877 and/or a 56f800.

Could you please contact me at giuseppe.marullo@iname.com ?

About FAT implementations, there is one for the PIC 18f + MMC/SD at:

http://www.compsys1.com/workbench/On_top_of_the_Bench/MMC_Project/mmc_project.html

They support reading and writing on a SD with FAT16 support.
There is beta (working) code for pic+picbasic+SecuredDigital.

About the windows driver, you could add a USB support, using a 50 bucks development kit, it provides you usb->serial port or usb->parallel port emulation, with custom h/w identification and easy driver setup. This could be optional, normal users could use rs232 comms.

TIA,

Giuseppe Marullo


#12

I know this PIC page. But it is a commercial solution :-(

Also, I think (I did not saw their code) that the solution is mainly oriented for MMC/SD reading or writing (like many other solutions used for MP3 players or data loggers). This is totally different from mass storage approach, where the rewriting is the main problem.

The USB is a nice option, but it will not solve the driver problem. If I will use the block/sector approach, we will need the FILESYSTEM driver. Not the interface driver. Those are two different things. You need the interface driver for connection to the PC and filesystem driver for reading and writing files to the card.

If you need to build the HP-IL sniffer, it is easy. Just solder the IL chip to PIC to something like 16F876, set the IL chip to LA=1 TA=1 and every frame will initiate interrupt. Read frame, send it to PC (via UART) for decoding and echo it. Simply read R1 and R2, send them to UART, write R2 back.

And analyzer is finished. You just need to interpret the frames in some Visual Basic piece of code on PC side.

Or, you can do the decoding in microcontroller (this is the way I am doing it) and send the results as ASCII messages to UART and look at them via some terminal program.

I will send you the C routines via e-mail.


#13

Pavel,
thank you for the answer, I will gladly take a look. If you have a schematic handy, please send it too.

>The USB is a nice option, but it will not solve the driver >problem. If I will use the block/sector approach, we will >need the FILESYSTEM driver. Not the interface driver.
You could use the serial cable and/or USB option to talk to your mcu using a pc program (user program).
Your mcu could then read/write implementing the correct abstraction level, so you could use the track/sector approach.

On the other hand, if you write the MMC directly from a pc, you could read it from the mcu itself (no pc connection), obviously you need to implement at least FAT16 handling.

Best of both worlds would be you using the FAT16 AND a cable to exchange data with the pc without removing the MMC.

Santa Claus time soon...

Giuseppe Marullo

#14

Dear Pavel,

gratulation for your actual results about IL-mass storage. Please give me your post address, as I told you by email I have some parts for your project....

Please enlarge the 128Kbyte DOS file size (compatible to cass-tape) to the greater memory amount of the HP9114A IL-Disk-Drive (compatible to floppy). This would be nice for user of the HP41 EXT-IL module (this enlarges the address space of the HP41 system to use the complete floppy) and alos for HP71 and HP75 user. Better have some less enlarged files than 500 different virtual tapes.

Please implement two or some more IL-Massstorage units to your system. Like the IL CMT-RAM-DISK which emulates one, two or fore drives at same time. Than we able to copy files from one drive to an other and use different drives for special applications...

For the file format on the MMC card I would prefer the sector solution with much faster speed. Fast mass storage would be a really nice feature for handheld products like HP41 or HP71 and have a higher prijority than file exchange with PC applications.

Because on PC side we have EMU41 : This is able to transfer files from your IL-mass storage unit to the PC world, furthermore EMU41 includes a own virtal mass storage drive, and we able to exchange files between your real IL drive and the virtual drive of EMU41.

Generally your IL-Mass storage project expands´and enlarges the existing HP41 system, also the virtual EMU41 system, and your solution is also compatible to existing HEPAX or RAM-BOX and to future MLDL devices :-)))

Best wishes from Germany - Christoph Klug

#15

Definately FAT16 (possibly FAT32, too) for greater compatibility. You may easily read the card on PC=(Win,Linux) or Mac via a reader (or a direct port on a new laptop). Also you can use the same card in a iPAQ, 49g+, digicamera, Nokia phone (MMC only), etc... # VPN #

#16

Hi Pavel,

I would prefer to have a FAT system and LIF images, do we could exchange LIF images with PC (there are LIF image on this site). LIF image size can be 640kb. Some HP41 modules (e.g. Ext-HPIL) manages the full 640kb space.

An idea would be that your system checks all files for LIF image format (look at 1st 256 bytes), and reflects all these files as mass storage units on HPIL (so non-LIF image files would be ignored on HPIL side). HPIL handles up to 30 devices, so 30*640kb would make 19Mb on line!

In my opinion, access speed is not an issue with HPIL (especially with HP41 as controller).

Jean-Francois


#17

Jean-Francois,

it is a nice idea.
Christoph also suggested that the device should emulate multiple mass-storage units.

I just need to figure out, how to do it. The IL chip is supposed to work only as one unit (there can be only one IL address in the chip register 4) and only messages that belongs to the device with this address or common messages will interrupt the processor.
At least in my current design. Of course, it is possible to capture all messages (chip in analyzer mode) and decode the IL commands in software, but I am affraid that it will be slow.


#18

This is exactly what I'm doing in Emu41 and Emu71: I catch all HP-IL messages (IL chip always in listen state), and manage the virtual devices by software. Speed is really not an issue with the HP41 as controler...

J-F


Possibly Related Threads…
Thread Author Replies Views Last Post
  Library#4 Modules mass-update and New Overlays Ángel Martin 0 1,218 11-09-2013, 05:55 AM
Last Post: 'Angel Martin
  How to move lexfiles from PC to 71 w/o HP-IL? Joe Horn 9 3,166 10-18-2013, 03:50 PM
Last Post: Christoph Giesselink
  Hand Held Products RS232 to HP-IL aj04062 11 3,319 08-31-2013, 07:12 PM
Last Post: Paul Berger (Canada)
  HP IL over wifi ... (ILPer & go71b) Olivier De Smet 12 3,963 08-20-2013, 05:44 AM
Last Post: Olivier De Smet
  [OT?]Orthography corrector needed. Diego Diaz 8 2,502 06-22-2013, 04:31 PM
Last Post: Andrew Nikitin
  HP-50g How to store many equations - help needed Timo Labrenz 5 2,008 03-03-2013, 12:22 PM
Last Post: Timo Labrenz
  Disaster: help for a couple of HP97 needed! Jose Gonzalez Divasson 10 2,893 01-21-2013, 04:45 PM
Last Post: aurelio
  HP41 emulator for HP48sx - keyboard overlay needed Doug (NYC) 3 1,564 12-31-2012, 03:11 PM
Last Post: Allen
  restoring HP29C - help needed Alberto Fenini 9 2,473 11-25-2012, 07:56 AM
Last Post: Alberto Fenini
  HP41 Long term storage Steve Hunt 6 2,020 09-27-2012, 11:08 PM
Last Post: db (martinez, ca.)

Forum Jump: