1000REM "InitVec" 1010GOTO 1320 1020DEF FNvec(vector, code_addr) 1040 1050REM Should work out extended vector space at run-time 1060REM but this will do for the moment. 1070 1080REM redefine vector to point to code, 1090REM use 3 byte vectors because code will be in ROM 1100 1110vector_no = vector - &200 1120A% = &A8: X% = 0: Y% = &FF 1130extended_base = (USR(OSBYTE) AND &FFFF00) DIV &100 1140 1150extended_vector = extended_base + (vector_no DIV 2)*3 1160vector_addr = &FF00 + (vector_no DIV 2)*3 1180 1190[OPT Pass 1200 Lda #(vector_addr MOD 256) 1210 Sta vector 1220 Lda #(vector_addr DIV 256) 1230 Sta vector+1 1240 Lda #(code_addr MOD 256) 1250 Sta extended_vector 1260 Lda #(code_addr DIV 256) 1270 Sta extended_vector+1 1280 Lda Our_rom 1290 Sta extended_vector+2 1300] 1310=Pass 1320OSBYTE = &FFF4 1330Our_rom = &F4 1340[OPT Pass 1350.InitVec 1360 \############################################################ 1370 \## ## 1380 \## Filing system vectors ## 1390 \## FILEV - *LOAD, *SAVE ## 1400 \## ARGSV - Cli param line, fsys no. ## 1410 \## BGETV, BPUTV - byte IO ## 1420 \## GBPBV - not implemented ## 1430 \## FINDV - OPENIN etc. ## 1440 \## FSCV - *cat, *run etc. ## 1450 \## ## 1460 \############################################################ 1470 1480 OPT FNvec(filev, OsFile) 1490 OPT FNvec(argsv, OsArgs) 1500 OPT FNvec(bgetv, Bget) 1510 OPT FNvec(bputv, Bput) 1520 OPT FNvec(gbpbv, OsGBPB) 1530 OPT FNvec(findv, OsFind) 1540 OPT FNvec(fscv, filesys) 1541 RTS 1590.OsGBPB 1591 Jsr dobrk 1592 EQUB 123 1593 EQUS "OSGBPB not implemented in RS423 filing system" 1594 EQUB 0 1620 Rts 1630] 1640RETURN