#Compile Exe
%D0 =&hFE : %D1 =&hFD : %D2= &hFB : %D3 =&hF7
%D4 =&hEF : %D5 =&hDF : %D6= &hBF : %D7 =&h7F
%A8 =&hFE : %A9 =&hFD : %A10=&hFB : %A11=&hF7
%A12=&hEF : %A13=&hDF : %A14=&hBF : %A15=&h7F
%SYMBOLSHIFT = 7
%CAPSSHIFT = 6
Function PBMain () As Long
Local Cnt, lVal As dWord, dat As Byte, hFile As Long, Buff As String
Buff = String$(&h10000,&hFF)
hFile = FreeFile
Open "ZXcode.bin" For Binary As #hFile
For Cnt = 0 To &h0FFFF
Dat = &hFF
lVal = Cnt And &h0000003F
If (lVal > 0) And (lVal < 39) Then
If Hi(Byte,Cnt) = Choose(lVal,%A11,%A11,%A11,%A11,%A11, _
%A12,%A12,%A12,%A12,%A12, _
%A9 ,%A15,%A8 ,%A9 ,%A10, _
%A9 ,%A9 ,%A14,%A13,%A14, _
%A14,%A14,%A15,%A15,%A13, _
%A13,%A10,%A10,%A9 ,%A10, _
%A13,%A8 ,%A10,%A8 ,%A13, _
%A8 ,%A15,%A14) Then
Dat = Choose(lVal, %D0,%D1,%D2,%D3,%D4, _
%D4,%D3,%D2,%D1,%D0, _
%D0,%D4,%D3,%D2,%D2, _
%D3,%D4,%D4,%D2,%D3, _
%D2,%D1,%D2,%D3,%D1, _
%D0,%D0,%D3,%D1,%D4, _
%D3,%D4,%D1,%D2,%D4, _
%D1,%D0,%D0)
End If
End If
If (Bit(Cnt,%CAPSSHIFT)=1) And (Hi(Byte,Cnt) = %A8 ) Then
Bit Reset Dat,0
End If
If (Bit(Cnt,%SYMBOLSHIFT)=1) And (Hi(Byte,Cnt) = %A15) Then
Bit Reset Dat,1
End If
Mid$(Buff,Cnt+1,1) = Chr$(Dat)
Next Cnt
Put #hFile,, Buff
Close #hFile
End Function