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.