[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.