mirror of
https://github.com/dschmenk/apple2pi.git
synced 2024-06-07 21:29:32 +00:00
66 lines
1.7 KiB
QBasic
66 lines
1.7 KiB
QBasic
|
NEW
|
||
|
|
||
|
10 PRINT
|
||
|
11 PRINT "STARTING APPLE II PI CLIENT."
|
||
|
12 PRINT "PRESS ANY KEY TO CANCEL..."
|
||
|
|
||
|
REM ALLOCATE BASIC BUFFER SPACE
|
||
|
|
||
|
20 PRINT CHR$ (4);"BLOAD DEFSLOT"
|
||
|
30 CALL 769
|
||
|
|
||
|
REM LOAD APPROPRIATE CLIENT
|
||
|
|
||
|
40 A2$ = "A2PI" : IF PEEK (64435) < > 6 THEN A2$ = "A2PLUSPI"
|
||
|
50 PRINT CHR$ (4);"BLOAD ";A2$
|
||
|
|
||
|
REM IF DEFAULT SLOT NOT SET, SEARCH FOR SSC
|
||
|
|
||
|
60 IF PEEK (768) = 0 THEN GOSUB 100
|
||
|
65 POKE 769,0
|
||
|
|
||
|
REM INIT A2PI DRIVER
|
||
|
|
||
|
70 PRINT CHR$ (4);"PR# A$9600"
|
||
|
80 IF PEEK (769) < > 0 THEN PRINT "APPLE II PI CONNECTED." : PRINT "KEYBOARD ROUTED TO LINUX" : GOSUB 300
|
||
|
90 NEW : END
|
||
|
|
||
|
REM SEARCH FOR SSC
|
||
|
|
||
|
100 SC = 0 : PI = 0
|
||
|
110 FOR S = 1 TO 7
|
||
|
120 FW = 49152 + 256 * S
|
||
|
130 IF PEEK (FW + 5) = 56 AND PEEK (FW + 7) = 24 AND PEEK (FW + 12) = 49 THEN SC = S : PRINT "FOUND SERIAL CARD: SLOT #";S
|
||
|
150 NEXT
|
||
|
160 IF SC < > 0 THEN POKE 768,SC * 16: RETURN
|
||
|
|
||
|
REM NOTHING FOUND. LOW BUZZ TO SIGNIFY CONFIG NEEDED
|
||
|
|
||
|
200 FOR S = 1 TO 100 : SP = PEEK (49200): NEXT
|
||
|
210 POP : PRINT CHR$ (4);"RUN CONFIG"
|
||
|
220 END
|
||
|
|
||
|
REM LOAD PIDRIVE AND APPLY FIXUPS
|
||
|
|
||
|
300 PRINT CHR$ (4);"BLOAD PIDRIVE"
|
||
|
310 VE = 816 : FX = VE + 4 : SI = PEEK(768) : SN = SI / 8
|
||
|
|
||
|
REM CHECK IF PRODOS DEVICE VECTOR SET
|
||
|
|
||
|
320 IF PEEK(48913 + SN) = 222 THEN POKE 48912 + SN, PEEK(VE) : POKE 48913 + SN, PEEK (VE + 1)
|
||
|
330 IF PEEK(48929 + SN) = 222 THEN POKE 48928 + SN, PEEK(VE) : POKE 48929 + SN, PEEK (VE + 1)
|
||
|
335 PRINT "PIDRIVE CONNECTED ON SLOT #"; SN / 2
|
||
|
|
||
|
REM INSERT CLOCK DRIVER
|
||
|
|
||
|
340 POKE 48903 + SN, PEEK (VE + 2) : POKE 48904 + SN, PEEK (VE + 3)
|
||
|
345 PRINT "PICLOCK CONNECTED"
|
||
|
|
||
|
REM RUN THROUGH FIXUP TABLE
|
||
|
|
||
|
350 AA = PEEK (FX) + PEEK (FX + 1) * 256 : FX = FX + 2
|
||
|
360 IF AA = 0 THEN RETURN
|
||
|
370 POKE AA, PEEK (AA) + SI
|
||
|
380 GOTO 350
|
||
|
|
||
|
]
|