The first two bytes of an assembly program (not counting the size bytes) are required to be $BB, $6D. That is how the OS determines whether or not a program is an assembly program.
I was wondering this too, for the same purpose in fact. How would one go about testing this? I can use memkit to get the pointer to a program so what do i do to after that? EDIT: I guess i cant get the pointer with memkit. dim()r gives a bad symbol error x.x
:GetCalc("prgmNAME")→P
:If {P}r=E6DBB
:. ASM program
:ElseIf {P}r=E6CBB
:. Unsquished ASM program
:Else
:. BASIC program/Axe source
Ah i c that was easy thanks ;D. I can use GetCalc with memkit (to list only basic or asm programs) but its a bit more code than dim()r would be.
#Axiom(MEMKIT)
Load()
While Next()
Print(L1)
"prgm"L1->A ;or something to that effect
GetCalc(A)->P
If {P}r=E6DBB or {P}r=E6CBB
Disp L1
Disp i
End
End
If it is BB6C, then it is an uncompressed assembly program.Yes, I found this out too. (thanks to XXEdit)
If it is BB6C, then it is an uncompressed assembly program.Yes, I found this out too. (thanks to XXEdit)
I am now getting the headers for Ion, MOS and DCS with XXEdit.
Code: (Homescreen-runnable) [Select] BB | Code: (Shell only) [Select] BB |
Code: (MirageOS) [Select] BB |
The mass of Hs is the icon; it's 15x15 (with an extra zero padded to each row), so it's 32 bytes total.Actually, that would be 30 bytes because there isn't an extra row, just an extra column.
The mass of Hs is the icon; it's 15x15 (with an extra zero padded to each row), so it's 32 bytes total.Actually, that would be 30 bytes because there isn't an extra row, just an extra column.