Skip to content

Instantly share code, notes, and snippets.

@tom-seddon
Created July 28, 2016 23:00
Show Gist options
  • Save tom-seddon/27f90e1dd70a79a8495dc526428a9948 to your computer and use it in GitHub Desktop.
Save tom-seddon/27f90e1dd70a79a8495dc526428a9948 to your computer and use it in GitHub Desktop.
BBC Micro 6845 address browser
10REM>B.ADDRS
20:
30ONERRORMODE7:REPORT:PRINT" at line ";ERL:END
40:
50MODE6:HIMEM=&2F00
60*FX154 0
70*FX9 0
80*FX10 1
90?&FE00=1:?&FE01=32
100PROCR(0,63)
110PROCR(1,32)
120PROCR(2,49)
130PROCR(3,&24)
140PROCR(4,38)
150PROCR(5,0)
160PROCR(6,32)
170PROCR(7,34)
180PROCR(8,1)
190PROCR(9,7)
200PROCR(10,0)
210PROCR(12,&60 DIV8)
220:
230C0%=FNBYTE(7,0):C1%=FNBYTE(0,7)
240:
250FORI%=&70TO&8FSTEP2
260I%?0=C0%
270I%?1=C1%
280NEXT
290:
300:
310FORI%=0TO15:PROCSETCOL(I%,I%):NEXT
320:
330DIMTMP%3
340:
350C%=0
360FORA%=&3000TO&7BFFSTEP&400
370B%=FNBYTE(C%DIV7MOD7+1,C%MOD7+1)
380IFA%=&7C00 B%=255:REMFNBYTE(7,4)
390TMP%?0=B%:TMP%?1=B%:TMP%?2=B%:TMP%?3=B%
400FORB%=0TO&3FFSTEP4
410A%!B%=!TMP%
420NEXT:C%=C%+1:NEXT
430:
440A%=&7C00
450FORY%=0TO31
460IFY%AND1 B%=FNBYTE(1,3) ELSE B%=FNBYTE(4,6)
470FORX%=0TO31
480?A%=B%
490A%=A%+1
500NEXT
510NEXT
520:
530PROCMARK(&3000,0,7):REM 20K
540PROCMARK(&4000,3,7):REM 16K
550PROCMARK(&5800,5,7):REM 10K
560PROCMARK(&6000,6,8):REM 8K
570:
580A%=0
590REPEAT
600D%=32
610IFINKEY-1D%=256
620IFINKEY-42A%=A%+D%
630IFINKEY-58A%=A%-D%
640IFA%<0A%=A%+D%
650IFA%>65535A%=A%-D%
660?&FE00=12:?&FE01=A%DIV256
670?&FE00=13:?&FE01=A%AND255
680*FX19
690UNTILINKEY-99
700:
710MODE7
720PRINT;~A%
730END
740:
750DEFFNBYTE(A%,B%):LOCALR%,I%
760FORI%=0TO3
770IFA%AND(2^I%)R%=R%OR(2^(I%*2+1))
780IFB%AND(2^I%)R%=R%OR(2^(I%*2+0))
790NEXT
800=R%
810:
820DEFPROCSETCOL(L%,P%)
830?&FE21=L%*16+(P%EOR7)
840ENDPROC
850:
860DEFPROCR(R%,V%):?&FE00=R%:?&FE01=V%:ENDPROC
870:
880DEFPROCMARK(A%,CA%,CB%):LOCALI%
890A%=A%-256
900A%?0=FNBYTE(CA%,CB%)
910A%?1=FNBYTE(CB%,CA%)
920A%?2=A%?0
930A%?3=A%?1
940FORI%=4TO255STEP4:A%!I%=!A%:NEXT
950ENDPROC
960
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment