New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cas input and output formats #141
Conversation
I believe it's something like this:
|
The output is:
|
Example input:
Character labelled "lbk" (left bracket). Move invisibly to "ai" near upper right. Draw line left to "af". Draw down to "mf". Draw right to "mj". Invisibly move to "mn" at lower right. End. Output:
01 means move diagonally up and right one step; do this eight times. 60 means move up four steps. 56 means draw left three steps. 74 means draw down four steps. 72 means draw left four steps. 62 means move left four steps. 0236000 means there are 15 moves, or 6-bit bytes. |
There is a file documenting PDP-7 assembler in |
Thank you. I turned this into a pull request. I hand checked the output against the input, and there are inconsistencies. I can also see this in the displayed characters. So we don't know everything about this yet. |
r means end, output label=x-b+number. | ||
|
||
All other commands are character pairs denoting y,x coordinates in a | ||
12x14 character raster. Draw a line to that coordinate. Vertical |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here you mention a 12x14 raster (stretching over a-l
and a-m
), but in the pull request text you describe a 13x14 raster (stretching over a-n
and a-m
).
Doing some quick checks of the contents of cas.x
and scope.x
I can see that for cas.x
the coordinates are in the ranges a-n
and a-n
while in scope.x
they vary between a-p
and a-n
respectively. That doesn't match this format.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did some statistics over all coordinates used in cas.x
and scope.x
:
Characters using to the vertical o
coordinate are :lj
, :ly
, :comma
, :semcln
while characters using to the vertical p
coordinate are :lg
, :lp
and :lq
. This seems reasonable since the characters g
, j
, p
, q
and y
all have descenders that fall below the base line of other characters.
Moreover if the vertical coordinate range is a-p
and the horizontal coordinate range is a-n
, it means that the character grid is 16x14
coordinates, where 16 is a power of 2, which rather satisfies my computer engineering heart. :)
Doing new pass of statistics over all letters and numbers in cas.x
and scope.x
but omitting :lg
, :lj
, :lp
, :lq
and :ly
reveals that characters that do not have descenders have vertical coordinates in the range a-n
and horizontal coordinates in the range a-n
. This indicates that coordinate n
is at the base line, while coordinates o
and p
fall below the base line. I'm not sure if this helps with placing characters.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I updated the text. Characters are normally 12 units wide, a-l. n is only used to advance to the next character, right? Did you include mn in your statistics?
I view m as the base line.
You are right about descenders. I'll update the text.
Where is an appropriate place to document the input and output formats for the cas program?