Short:        MicroPython interpreter for Amiga68k
Author:       Fabrice LABATUT
Uploader:     fabrice labatut club-internet fr
Type:         dev/misc
Version:      1.27.0-build169
Requires:     2 MB RAM (4 MB recommended for networking/TLS)
Architecture: m68k-amigaos >= 3.1
Distribution: Aminet
URL:          https://github.com/OoZe1911/micropython-amiga-port

MicroPython for AmigaOS (m68k)
==============================

A port of MicroPython v1.27 (compatible Python 3.4) to AmigaOS,
targeting Motorola 68020+ processors. Runs on classic Amiga hardware
(A1200, A3000, A4000) and emulators (WinUAE, FS-UAE).

This port was developed by Fabrice with coding assistance from Claude
(Anthropic's AI), under Fabrice's direct supervision: architecture
decisions, implementation strategy, testing on real hardware/emulator,
and bug reports are all driven by Fabrice. Every change is reviewed
and validated before being committed.


Requirements
------------

  - AmigaOS 3.1 or higher
  - Motorola 68020 CPU or higher
  - 2 MB RAM minimum for simple scripts
  - 4 MB RAM recommended for networking and TLS
  - AmiSSL (optional, required for HTTPS/TLS support)


Usage
-----

  micropython                        ; interactive REPL
  micropython script.py              ; run a script
  micropython -c "print(2**32)"      ; run inline code
  micropython -m 512 script.py       ; run with 512 KB heap

The default heap size is 128 KB. Use -m to allocate more memory
(in KB). For example, downloading a web page may require 4 MB
of heap: micropython -m 4096 script.py


Features
--------

  - Full Python 3.4 compatibility (ROM_LEVEL_EVERYTHING):
    f-strings, set operations, OrderedDict, advanced slicing,
    descriptors, async/await, and more
  - Interactive REPL with readline support (cursor keys, history)
  - Script execution and inline code (-c option)
  - Configurable heap size (-m option)

  Modules included:
    re, json, math, struct, binascii, base64, time, datetime,
    random, hashlib (sha256), errno, platform, socket, ssl,
    urequests, deflate, gzip, gc, sys, io

  File system support:
    Full open/read/write/close via VFS_POSIX. os.listdir,
    os.getcwd, os.chdir, os.mkdir, os.rmdir, os.remove,
    os.rename, os.stat, os.makedirs, os.walk.
    os.path with AmigaOS volume:path conventions.

  Networking:
    TCP/UDP sockets, DNS resolution via bsdsocket.library.
    HTTP client (urequests) with HTTP/1.1, chunked transfer
    encoding, gzip decompression.

  TLS/SSL (requires AmiSSL):
    HTTPS support via AmiSSL. The amissl.library must be
    installed on the Amiga. 4 MB RAM minimum is recommended
    when using TLS.

  Platform detection:
    platform.amiga_info() shows CPU, FPU, chipset, Kickstart
    version, and available memory.


AmigaOS Path Conventions
------------------------

AmigaOS uses ":" to separate volumes from paths and "/" for
subdirectories:

  >>> import os
  >>> os.getcwd()
  'DH0:Work'
  >>> os.path.join("DH0:", "work", "scripts")
  'DH0:work/scripts'
  >>> os.path.isabs("DH0:file.py")
  True


Known Limitations
-----------------

  - time.ticks_ms() returns 0 (no high-res timer yet)
  - No Ctrl-C during script execution (only in REPL input)
  - hashlib only supports SHA256
  - Sockets are always blocking
  - No multithreading


Source Code
-----------

The full source code is available on GitHub:
https://github.com/OoZe1911/micropython-amiga-port


License
-------

MicroPython is licensed under the MIT License.
