Giter VIP home page Giter VIP logo

transfolio's Introduction

Transfolio 1.0 (Februar 2018)
-----------------------------

Transfolio is a file transfer utility that connects a PC to the Atari Portfolio
pocket computer over the parallel port. It communicates with the built-in file
transfer software of the Portfolio.

Contents of this package:
README            This file
transfolio.exe    Precompiled Windows executable (32 bit, command line)
inpout32.dll      3rd party Library required by transfolio.exe
transfolio.c      Source code
Makefile          Linux Makefile
transfolio        Linux executable (x86)

The full documentation is currently only available in German language at
http://www.pofowiki.de/doku.php?id=software:vorstellung:exchanges:transfolio

(c) 2018 by Klaus Peichl ([email protected])

transfolio's People

Contributors

skudi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

transfolio's Issues

Might be a stupid question but

I have a problem trying to get transfolio to open the usb parallel port I have.

debug log with strace:

execve("./transfolio", ["./transfolio", "-d", "/dev/usb/lp0", "-l", "c:\\"], 0x7fff0c22b600 /* 20 vars */) = 0
brk(NULL)                               = 0x55d235b24000
arch_prctl(0x3001 /* ARCH_??? */, 0x7fffe98819d0) = -1 EINVAL (Invalid argument)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f1813d7e000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=22135, ...}, AT_EMPTY_PATH) = 0
mmap(NULL, 22135, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f1813d78000
close(3)                                = 0
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\237\2\0\0\0\0\0"..., 832) = 832
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
pread64(3, "\4\0\0\0 \0\0\0\5\0\0\0GNU\0\2\0\0\300\4\0\0\0\3\0\0\0\0\0\0\0"..., 48, 848) = 48
pread64(3, "\4\0\0\0\24\0\0\0\3\0\0\0GNU\0i8\235HZ\227\223\333\350s\360\352,\223\340."..., 68, 896) = 68
newfstatat(3, "", {st_mode=S_IFREG|0644, st_size=2216304, ...}, AT_EMPTY_PATH) = 0
pread64(3, "\6\0\0\0\4\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0@\0\0\0\0\0\0\0"..., 784, 64) = 784
mmap(NULL, 2260560, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f1813b50000
mmap(0x7f1813b78000, 1658880, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x28000) = 0x7f1813b78000
mmap(0x7f1813d0d000, 360448, PROT_READ, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1bd000) = 0x7f1813d0d000
mmap(0x7f1813d65000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x214000) = 0x7f1813d65000
mmap(0x7f1813d6b000, 52816, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f1813d6b000
close(3)                                = 0
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f1813b4d000
arch_prctl(ARCH_SET_FS, 0x7f1813b4d740) = 0
set_tid_address(0x7f1813b4da10)         = 1297
set_robust_list(0x7f1813b4da20, 24)     = 0
rseq(0x7f1813b4e0e0, 0x20, 0, 0x53053053) = 0
mprotect(0x7f1813d65000, 16384, PROT_READ) = 0
mprotect(0x55d2358e4000, 4096, PROT_READ) = 0
mprotect(0x7f1813db8000, 8192, PROT_READ) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
munmap(0x7f1813d78000, 22135)           = 0
newfstatat(1, "", {st_mode=S_IFREG|0644, st_size=2440, ...}, AT_EMPTY_PATH) = 0
getrandom("\x29\x2e\x73\x67\x91\x2f\x08\x6a", 8, GRND_NONBLOCK) = 8
brk(NULL)                               = 0x55d235b24000
brk(0x55d235b45000)                     = 0x55d235b45000
openat(AT_FDCWD, "/dev/usb/lp0", O_RDWR) = 3
write(2, "Waiting for /dev/usb/lp0 to beco"..., 48Waiting for /dev/usb/lp0 to become available...^M) = 48
ioctl(3, PPCLAIM, 0)                    = -1 ENOTTY (Inappropriate ioctl for device)
write(2, "PPCLAIM: Inappropriate ioctl for"..., 40PPCLAIM: Inappropriate ioctl for device
) = 40
close(3)                                = 0
write(2, "Try 'fuser -m /dev/usb/lp0' to s"..., 70Try 'fuser -m /dev/usb/lp0' to see if other processes use the device.
) = 70
write(2, "Cannot open parallel port!\n", 27Cannot open parallel port!
) = 27
write(1, "Transfolio 1.0.1 - (c) 2018 by K"..., 44Transfolio 1.0.1 - (c) 2018 by Klaus Peichl
) = 44
exit_group(1)                           = ?
+++ exited with 1 +++

So I got to the point that the adapter is visible in linux

Bus 001 Device 003: ID 1a86:7584 QinHeng Electronics CH340S
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         8
  idVendor           0x1a86 QinHeng Electronics
  idProduct          0x7584 CH340S
  bcdDevice            2.54
  iManufacturer           0
  iProduct                2 USB2.0-Print
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x004e
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         7 Printer
      bInterfaceSubClass      1 Printer
      bInterfaceProtocol      1 Unidirectional
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass         7 Printer
      bInterfaceSubClass      1 Printer
      bInterfaceProtocol      2 Bidirectional
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       2
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0
      bInterfaceProtocol    255
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval               1
Device Status:     0x0000
  (Bus Powered)

the exact output while running is

Waiting for /dev/usb/lp0 to become available...
PPCLAIM: Inappropriate ioctl for device
Try 'fuser -m /dev/usb/lp0' to see if other processes use the device.
Cannot open parallel port!
Transfolio 1.0.1 - (c) 2018 by Klaus Peichl

fuser -vm /dev/usb/lp0 shows

                     USER        PID ACCESS COMMAND
/dev/usb/lp0:        root     kernel mount /dev
                     root         19 .rc.. kdevtmpfs

what am I missing, why is this a blocking issue?

there should be nothing accessing lp0 at the moment here, no idea why tmpfs is locking this

Level shifter for Pi in documentation

Thanks for your work! I was reverse engineering the FT.COM to see how the Atari Portfolio communicated to actually have a Pi serve files and I came across your awesome work. I learned a lot about the protocol.

However nowhere in your code or documentation do I see you mention that you should use a 5V to 3.3V level shifter for the inputs on the Pi. Sure they "may" survive 5V but they aren't designed for it.
A simple voltage divider with resistors would do fine a 1K and 2K resistor would do.

          5V
            |
          R1 (1k)
            |
            ----> GPIO
            |
           R2 (2k)
            |
          GND

Can’t make it work in raspberry pi

Hello! I downloaded the zip, unzipped it and the executed make

Looks like the rpi can't find the paralell port...
is there I am missing
I am placing the file in the same folder as transfolio is
image
image

Thank you

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.