Short: MicroPython interpreter for Amiga68k Author: Fabrice LABATUT Uploader: fabrice labatut club-internet fr Type: dev/lang Version: 1.27.0-build186 Replaces: dev/misc/micropython.lha Requires: 2 MB RAM (4 MB recommended for networking/TLS) Architecture: m68k-amigaos >= 3.0 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.0 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 Python script micropython script.mpy ; run precompiled bytecode 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 Press Ctrl-C at any time to interrupt a running script or a time.sleep() call. 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) - Precompiled bytecode: import and execute .mpy files compiled with mpy-cross, either via import or directly from the command line (micropython script.mpy) - Ctrl-C (KeyboardInterrupt) support during script execution, loops, and time.sleep() Modules included: re, json, math, struct, binascii, base64, time, datetime, random, hashlib (sha256), errno, platform, socket, ssl, urequests, deflate, gzip, arexx, 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.chmod, os.getprotect, 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. ARexx IPC: Inter-process communication with AmigaOS applications via ARexx message ports. arexx.send() for one-shot commands, arexx.exists() to check port availability, arexx.ports() to list active ports, and arexx.Port() persistent client with context manager for efficient multi-command sessions. 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 Changes since build 169 ----------------------- - ARexx IPC module: send commands to and communicate with any ARexx-aware application (IBrowse, Directory Opus, etc.) - os.chmod(): set AmigaOS file protection flags - os.getprotect(): read AmigaOS file protection flags - Ctrl-C support: KeyboardInterrupt now works during script execution, loops, and time.sleep() calls - Direct .mpy execution: run precompiled bytecode files from the command line (micropython script.mpy) - Import .mpy files: precompiled bytecode modules can be imported alongside regular .py modules Known Limitations ----------------- - time.ticks_ms() returns 0 (no high-res timer yet) - 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.