intel MCS BASIC-52 — Intel MCS BASIC-52 Versions 1 & 1.1 Operating and Reference Manual PDF

int e l RESET OPTIONS (VERSION 1.1 ONLY) ; NOW PUSH THE CRYSTAL VALUE ON TO THE STACK AND LET BASIC ; CALCULATE ALL CRYSTAL DEPENDENT PARAMETERS ; SJMP RESET3 ; XTAL: DB 88H ; THIS IS THE FLOATING POINT VALUE DB 00H ; FOR AN 11.0592 MHZ CRYSTAL DB 00H DB 92H DB 05H DB 11H ; RESET3: MOV DPTR,#XTAL ; SET UP TO PUSH CRYSTAL VALUE MOV A,9 ; GET THE ARG STACK CLR C SUBB A,#6 ; DECREMENT ARG STACK BY ONE FP NUMBER MOV 9,A MOV R0,A ; SAVE THE CALCULATED ADDRESS IN R0 MOV P2,#1 ; THIS IS THE ARG STACK PAGE ADDRESS MOV R1,#6 ; NUMBER OF BYTES TO TRANSFER ; RESET4:

CLR A ; TRANSFER ROM CRYSTAL VALUE TO THE MOVC A,@A+DPTR ; ARGUMENT STACK OF BASIC MOVX @R0,A INC DPTR ; BUMP THE POINTERS DEC R0 DJNZ R1,RESET4 ; LOOP UNTIL THE TRANSFER IS COMPLETE ; ; NOW CALL BASIC TO DO ALL THE CRYSTAL CACULATIONS ; MOV A,#58 ; OPBYTE FOR CRYSTAL CALCULATION LCALL 30H ; DO THE CALCULATION ; ; NOW TELL BASIC WHERE START OF THE USER BASIC PROGRAM IS ; BY LOADING THE START ADDRESS. IF THE PROGRAM IS IN EPROM ; 13H WOULD = HIGH 8011H AND 14H = LOW 8011H. ANYWAY ; ADDRESS 13H:14H MUST POINT TO THE START OF THE BASIC ; PROGRAM ; MOV 13H,#HIGH 512 ; THIS TELLS BASIC THAT THE START OF MOV 14H.#LOW 512 ; THE PROGRAM IS IN LOCATION 512 ; ; NOW THE SERIAL PORT MUST BE INITIALIZED.

THE USER ; CAN SET UP THE SERIAL PORT TO ANY DESIRED CONFIGURATION ; HOWEVER, THIS DEMO CODE WILL SHOW THE AUTO BAUD ; ROUTINE MOV R3,#00H ; INITIALIZE THE AUTO BAUD COUNTERS MOV R1,#00H MOV R0,#04H JB RXD,$ ; LOOP UNTIL A START BIT IS RECEIVED ; - 150 -