PCR100 =: ^O<165000> ROMBAS =: ^O<175000> .MACRO $HPAGE PAGE $PAGE PAGE, HALT .ENDM $HPAGE .MACRO $PAGE PAGE, HALT .IF NB PAGNUM = PAGE .IFF PAGNUM = 0 .ENDC PAGBAS = . .IF B BR START .IFF .WORD PAGE ; Page Num .ENDC $SWTCH = . MOV R5, @#PCR100 MOV R4, PC $V4V10 = ^O> BIS #1, 2(SP) .IF B RTI .IFF HALT .ENDC .IF B START: .ENDC .ENDM $PAGE .MACRO $LABEL LABEL .LIST ME LABEL =: ^O> .NLIST ME .ENDM $LABEL .MACRO $SWITCH JUMP .IF NB JMP $SWTCH .IFF .IF GT <^O<.+2-PAGBAS-400>> JMP $SWTCH .IFF BR $SWTCH .ENDC .ENDC .ENDM $SWITCH .MACRO $FILL .IF NE <^O<<.-PAGBAS>&1>> .BYTE ^O<377> .ENDC .REPT <^O<1000-<.-PAGBAS>/2>> .WORD ^O<177777> .ENDR .ENDM $FILL .MACRO $RETURN JUMP MOV (SP)+, R5 MOV (SP)+, R4 $SWITCH JUMP .ENDM $RETURN .MACRO $GOTO PAGE, ADDR, JUMP MOV PAGE, R5 MOV ADDR, R4 $SWITCH JUMP .ENDM $GOTO ; !! $CALL !! .MACRO $GOTO2 PAGE, ADDR, JUMP, ?RET MOV ADDR, R4 MOV #^O>, -(SP) MOV PAGE, R5 MOV #PAGNUM, -(SP) $SWITCH JUMP RET: .ENDM $GOTO2 ; !! $CALL !! .MACRO $GOTO3 PAGE1, ADDR1, PAGE2, ADDR2 MOV PAGE1, R5 MOV ADDR1, R4 MOV ADDR2, -(SP) MOV PAGE2, -(SP) $SWITCH JUMP .ENDM $GOTO3 .MACRO $GOTO4 PAGE, ADDR, JUMP MOV ADDR, R4 MOV PAGE, R5 $SWITCH JUMP .ENDM $GOTO4 .MACRO $CGOTO PAGE, ADDR MOV ADDR, R4 MOV PAGE, R5 .ENDM $CGOTO .MACRO $SGOTO PAGE, ADDR, JUMP MOV ADDR, -(SP) MOV PAGE, -(SP) .IIF DIF , $SWITCH JUMP .ENDM $SGOTO .MACRO $PGO PAGE, ADDR .WORD PAGE $WORD ADDR, PAGE .ENDM $PGO .MACRO $PGO2 PAGE, ADDR $WORD ADDR, PAGE .WORD PAGE .ENDM $PGO2 .MACRO $PGO3 PAGE, ADDR $WORD ADDR, PAGE .WORD 2000!PAGE .ENDM $PGO3 .MACRO $WORD ADDR, PAGE .IF NDF ADDR .WORD ADDR .IFF .IF NE ^O .IF GE ^O .WORD ADDR .IFF .WORD ^O>> .ENDC .IFF .IF GE ^O<-> .WORD ADDR .IFF .WORD ^O>> .ENDC .ENDC .ENDC .ENDM $WORD