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.
|