Listing of file='BSR*LOAD' on disk='vmedia/tbo_81.wvd.zip'
# Sector 872, program filename = 'BSR*LOAD' 0010 REM BSR*LOAD 07/08/80, BSC SUBROUTINE INTERFACE LOAD MICROCODE 0020 REM %--DEFINE AND SET VARIABLES 0030 REM GIO Arguments for Send, Rcv, Get Status, and Set Controls 0040 COM G9$(1)6,G$18,B$1 0050 DIM W$(64,4)16,P$(1)16 0100 REM %.Variable meanings 0110 REM %0 /000 Null controller, /005 CRT 0120 REM %0 #0 Program disk, #6 T.C. Board 0130 REM %0 A$ A$64, B$ B$1, '44 Load TC uCode 0140 REM %0 G$ Status Arg.1., G9$( BID reset addr. 0150 REM %0 P$( COPY array 0160 REM %0 W$ ucode file name, W$( ucode load area 0170 REM %.Set System Device Addresses 0180 SELECT PRINT 005, CO 005, INPUT 001, CI 001 0190 SELECT #6 01C 0200 REM %.Set-up to load T.C. microcode 0210 REM --Argument for GOSUB '40("microcode file",HEX( parameter vector) ) 0220 REM ..Get microcode file name from PRINT STR(W$,9,8) in standard load. 0230 REM ..Get parameter vector from HEXPRINT STR(Z$,1,16) in standard load. 0240 REM ..Example below is for default values for 2780. 0250 GOSUB '44("BSC*010A",HEX(87509001070016161616000001000000)) 0260 REM %.Set status read $GIO Arg 1 0270 G$=HEX(6C014220423042408605C2202020) : REM /.T/VP code status arg.2 0280 $IF ON /000,290 : STOP "LOAD T CODE EMULATOR" 0290 $GIO TEST FOR PROCESSOR /005(7601,A$) 0300 B$=A$ : AND (B$,20) : IF B$=HEX(20)THEN 320 0310 STOP "LOAD VP CODE FOR EMULATOR" 0320 G$=HEX(4401102088014220423042408605C2202020) : REM /MVP code status arg 2. 0330 STOP "LOAD MVP CODE FOR EMULATOR" 0340 REM %..S.R. to load BSC microcode into 2228B T.C. board 0350 DEFFN'44(W$,P$(1)) 0360 REM %--Reset T.C. Hardware 0370 $GIO #6(4580,A$) 0380 REM %--Load 2228B Microcode 0390 REM Open 2228B Microcode file 0400 DATA LOAD DC OPEN T#0,W$ 0410 REM Read High-order 4K of microcode 0420 DATA LOAD DC #0, W$() 0430 DATA LOAD DC #0, W$() 0440 REM Write high-order 4K of microcode into 2228B 0450 $GIO WRITE #6 (012002011212 4400 4020 4000 A200 440C,A$)W$() 0460 IF STR(A$,8,1)<>HEX(00) THEN 580 0470 REM Read Low-order 4K bytes of microcode 0480 DATA LOAD DC OPEN T#0,W$ 0490 DATA LOAD DC #0, W$() 0500 REM Set RAM jump address for BID RESET 0510 MAT COPY W$()<129,6>TO G9$()<1,6> 0520 REM Set Parameter Vector in microcode 0530 MAT COPY P$() <1,13> TO W$() <1695,13> 0540 REM Write Low-order 4K-128 Bytes of microcode into 2228B 0550 $GIO WRITE #6 (4400 4010 4080 A200 440C, A$)W$()<129,4096-128> 0560 IF STR(A$,8,1)<>HEX(00) THEN 580 0570 RETURN 0580 PRINT HEX(03); : STOP "ERROR LOADING MICROCODE -- check 2228B or Op 62B device address"