Coder Social home page Coder Social logo

suite8080's Introduction

Paolo Amoroso

Paolo Amoroso at pad 39A of Kennedy Space Center

I’m an Italian astronomy and space popularizer, a Google expert, and a podcaster.

Being an astronomy and space nerd didn't improve my social skills as a kid. But it sure gave me breadth and depth in these fields. As a young man, unique experiences provided further insight. And my social skills got a little better, too.

Now I work in astronomy and space outreach and education. I’m also a member of the Google Product Experts program.

Programming

I’m no professional developer, just a hobby programmer.

I started playing with and programming computers in the early 1980s. This adventure led me to read about and experiment with many programming languages and environments, from Z-80 and MC-68000 Assembly to Lisp and Python.

Learn more

suite8080's People

Contributors

benjaoming avatar pamoroso avatar

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar

suite8080's Issues

More styles of numeric base notation?

The traditional way to write hex numbers in Intel assemblers is with the h suffix: AB12h, C8h.
However, there are many different ways to write such numbers; the one I'm most familiar with is the C-style 0x prefix: 0xAB12, 0xC8.

The Netwide Assembler accepts a whole 4 ways of annotating numbers as hex: C8h, $0C8, 0xC8 and 0hC8. Are there any plans to add such options here?

String in DB argument cannot contain a comma

The code that splits the arguments for a DB directive blindly splits the string by commas, even if the comma is inside of a string:

suite8080/suite8080/asm80.py

Lines 1055 to 1063 in e6f5771

def parse_db_arguments(string):
"""Return a list of ``db`` arguments parsed from string.
Split string into arguments, strip whitespace from them, and return a list of
the resulting arguments.
"""
arguments = string.split(',')
arguments = [argument.strip() for argument in arguments]
return arguments

This means that declaring a string of text containing a comma can't be done directly:

; this will fail
text: DB 'Hello, World!'

As a workaround, the ASCII comma has the code 2C in hex, so you can split your string on that and insert it on its own.

; hacky workaround
text: DB 'Hello', 2Ch, ' World!'

Output a full memory dump from the assembler?

I would like to use the assembler program to write programs to run on an Intel8080-based computer emulator.
My emulator accepts 65536-byte files that are loaded into memory, with the top 2048 bytes occupied by the "operating system" and overwriting the first 2048 bytes of the dump.

The assembler program outputs files that are as large as needed to fit the assembled program and no larger.
The ORG pseudo-instruction only informs the calculation of label offsets, and does not create blank spaces in the resulting file.
If there is more than one ORG line, there is no separation between the parts where different ORGs apply.

How can I get 65536-sized files from the assembler that form the entire memory space of my emulator, so that I could write the code in the parts of memory I need, and not bother with the gaps?
I have already discovered the DS pseudo-instruction, which inserts a specified number of zero bytes, but then I'd have to count the number of bytes in my code to choose the appropriate number of padding bytes. I'd like to do it with an ORG syntax, especially since the I8080 Programmer's Guide says on page 40 that DS and ORG can be used for similar purposes.

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.