Why do I keep getting a Type Mismatch error on this line? Also, when i click "View" to view my output screen its blank, so nothing is printing.... can so please help me resolve this?

PRINT USING D$; NAM$; VehicleType$; DaysHeld; Miles; Charge

My Code:

'************************************
'* THIS PROGRAM IS TO CALCULATE CAR RENTAL REVENUE GENERATED *
'*************************************
'VARIABLE USED:
'T1$, H1$, H2$, D1$
'NAM$ Customer Name
'VehicleType$ Vehicle Type
'MILAGE Miles Traveled
'RATE Vehicle Rate
'DaysHeld Days Held
'TOTAL Total Revenue Generated Per Account
'Charge Charge for the car rental

'*************************************
'* PROGRAM MAINLINE *
'*************************************
CLS
GOSUB InitializeVariables
GOSUB PrintHeadings
GOSUB CalculateTotal
END

'*************************************
'* INITILIZE VARIABLES *
'*************************************

InitializeVariables:
LET T$ = " CAR RENTAL "
LET H$ = " Customer Vehicle Days Miles Total Cost"
LET H$ = " Name Type Held Traveled For Rental"
LET D$ = "/ / ## #### ######"

'*************************************
'* PRINT HEADINGS *
'*************************************
PrintHeadings:
PRINT
PRINT T1$ 'Print Title Line
PRINT
PRINT H1$ 'Print Column Heading, Line 1
PRINT H2$ 'Print Column Heading, Line 2
PRINT
RETURN

' ********************************
' Calculate Total
' ********************************

CalculateTotal:
GOSUB ReadData
DO UNTIL NAM$ = "END"
IF VehicleType$ = "Compact" THEN
LET Cost = 10
LET Rate = .15
ELSEIF VehicleType$ = "Intermediate" THEN
LET Cost = 20
LET Rate = .18
ELSE
LET Cost = 30
LET Rate = .22
END IF
LET Charge = Cost * DaysHeld + Rate * Miles
PRINT USING D$; NAM$; VehicleType$; DaysHeld; Miles; Charge
GOSUB ReadData
LOOP
RETURN

'*************************************
'* READ DATA *
'*************************************

ReadData:
READ NAM$, VehicleType$, DaysHeld, MilesTraveled
DATA "Jones","Large",6,500
DATA "Smith","Compact",17,3000
DATA "Baker","Intermediate",8,250
DATA "Williams","Intermediate",4,1000
DATA "Winston","Large",3,500
DATA "END"
RETURN

'*************************************
'* END OF PROGRAM *
'*************************************

Based on the code you provided, there are a few issues that could be causing the Type Mismatch error and the blank output screen.

1. Type Mismatch error: This error usually occurs when there is a mismatch between the data types you are trying to assign to a variable or use in an operation. In your code, there is a line where you try to assign the value of `DaysHeld` to a variable. However, the `DaysHeld` variable is not declared anywhere in the code. Make sure you declare the `DaysHeld` variable before using it. For example, add `DIM DaysHeld AS INTEGER` before the `InitializeVariables` subroutine.

2. Blank output screen: The blank output screen could be caused by a few reasons. One possibility is that the `PRINT` statements are not being executed or there is an issue with the `PRINT USING` statement.

- Make sure there are no errors in the `PrintHeadings` subroutine. Check that all the variables used in the `PRINT` statements, such as `T1$`, `H1$`, and `H2$`, are properly declared and initialized.

- Ensure that the `CalculateTotal` subroutine is being called after the `PrintHeadings` subroutine. You can add a `PRINT` statement before calling `CalculateTotal` to verify if it is being executed.

- Check the `PRINT USING` statement in the `CalculateTotal` subroutine. Make sure the format string `D$` is correctly defined and matches the data being passed to it.

- Verify that the `ReadData` subroutine is properly retrieving the data from the `DATA` statements. You can print the values of `NAM$`, `VehicleType$`, `DaysHeld`, and `MilesTraveled` inside the `ReadData` subroutine to ensure they are being read correctly.

By addressing these issues, you should be able to resolve the Type Mismatch error and view the output on the screen.