[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Tools for BAS to WAV?



Linards Ticmanis wrote:
> On 07/03/2010 12:42 AM, Steve Nickolas wrote:
> 
>>> http://seb.riot.org/appleII/aladt.sml
>> 
>> It worked!  A bit clumsy (obviously it's meant for BIN payloads, so I
>> have
>> to tweak it to work with BAS payloads, or wrap them), but it works.
> 
> I think BAS payloads are simply, on short BIN payload for the length
> (just two bytes?), followed by a longer one for the actual program data.
> Not sure of the exact format though.

I think this is Bob Sander-Cederlof's disassembly.

00D8B0  1  38           SAVE:  SEC
00D8B1  1  A5 AF               LDA PRGEND   ;COMPUTE PROGRAM LENGTH
00D8B3  1  E5 67               SBC TXTTAB
00D8B5  1  85 50               STA LINNUM
00D8B7  1  A5 B0               LDA PRGEND+1
00D8B9  1  E5 68               SBC TXTTAB+1
00D8BB  1  85 51               STA LINNUM+1
00D8BD  1  20 F0 D8            JSR VARTIO   ;SET UP TO WRITE 3 BYTE HEADER

00D8F0  1               VARTIO:
00D8F0  1  A9 50               LDA #LINNUM  ;SET UP TO READ/WRITE 3 BYTE
HEADER
00D8F2  1  A0 00               LDY #0
00D8F4  1  85 3C               STA A1L
00D8F6  1  84 3D               STY A1H
00D8F8  1  A9 52               LDA #TEMPPT
00D8FA  1  85 3E               STA A2L
00D8FC  1  84 3F               STY A2H
00D8FE  1  84 D6               STY LOCK
00D900  1  60                  RTS

00D8C0  1  20 CD FE            JSR WRITE     ;WRITE 'EM
00D8C3  1  20 01 D9            JSR PROGIO   ;SET UP TO WRITE THE PROGRAM

00D901  1               PROGIO:
00D901  1  A5 67               LDA TXTTAB   ;SET UP TO READ/WRITE PROGRAM
00D903  1  A4 68               LDY TXTTAB+1
00D905  1  85 3C               STA A1L
00D907  1  84 3D               STY A1H
00D909  1  A5 69               LDA VARTAB
00D90B  1  A4 6A               LDY VARTAB+1
00D90D  1  85 3E               STA A2L
00D90F  1  84 3F               STY A2H
00D911  1  60                  RTS

00D8C6  1  4C CD FE            JMP WRITE     ;WRITE IT

OK, what little I can get out of it is it writes a 3-byte payload containing
the length and something else (I'm not exactly sure how it's formatted),
followed by the actual content.

I doubt it'll be too hard to hack together once I can generate the 3-byte
payload correctly...

-uso.